Version in base suite: 128.5.0esr-1~deb12u1 Base version: thunderbird_128.5.0esr-1~deb12u1 Target version: thunderbird_128.6.0esr-1~deb12u1 Base file: /srv/ftp-master.debian.org/ftp/pool/main/t/thunderbird/thunderbird_128.5.0esr-1~deb12u1.dsc Target file: /srv/ftp-master.debian.org/policy/pool/main/t/thunderbird/thunderbird_128.6.0esr-1~deb12u1.dsc /srv/release.debian.org/tmp/HKQRBO7Ngj/thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin |binary thunderbird-128.6.0esr/CLOBBER | 2 thunderbird-128.6.0esr/accessible/windows/ia2/ia2Accessible.cpp | 18 thunderbird-128.6.0esr/browser/base/content/test/general/browser_remoteTroubleshoot.js | 14 thunderbird-128.6.0esr/browser/base/content/test/general/test_remoteTroubleshoot.html | 13 thunderbird-128.6.0esr/browser/components/enterprisepolicies/Policies.sys.mjs | 1 thunderbird-128.6.0esr/browser/components/places/tests/browser/browser_bookmark_copy_folder_tree.js | 27 thunderbird-128.6.0esr/browser/components/shopping/tests/browser/browser.toml | 4 thunderbird-128.6.0esr/browser/config/version.txt | 2 thunderbird-128.6.0esr/browser/config/version_display.txt | 2 thunderbird-128.6.0esr/build/moz.configure/bootstrap.configure | 4 thunderbird-128.6.0esr/comm/.gecko_rev.yml | 4 thunderbird-128.6.0esr/comm/calendar/base/content/calendar-chrome-startup.js | 50 thunderbird-128.6.0esr/comm/calendar/base/content/today-pane-agenda.js | 33 thunderbird-128.6.0esr/comm/calendar/base/content/today-pane.js | 16 thunderbird-128.6.0esr/comm/calendar/base/content/widgets/calendar-minimonth.js | 26 thunderbird-128.6.0esr/comm/calendar/providers/caldav/modules/CalDavRequestHandlers.sys.mjs | 13 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/README.md | 88 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/base-x/index.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/bs58/index.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/AESEncryptedSecretStoragePayload.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/another-json.js | 1 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/auth.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/beacon.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/event.js | 26 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/events.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/extensible_events.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/location.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/matrix-sdk-crypto-wasm.d.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/media.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/membership.js | 40 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/oidc-client-ts.d.js | 3 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/requests.js | 27 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/state_events.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/sync.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/@types/topic.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/NamespacedValue.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/ReEmitter.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/ToDeviceMessageQueue.js | 16 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/autodiscovery.js | 106 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/base64.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/browser-index.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/client.js | 1283 ++- thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/common-crypto/CryptoBackend.js | 78 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/common-crypto/key-passphrase.js | 37 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/content-helpers.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/content-repo.js | 77 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api.js | 218 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api/CryptoEvent.js | 37 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api/CryptoEventHandlerMap.js | 3 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api/index.js | 354 + thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api/key-passphrase.js | 48 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto-api/recovery-key.js | 70 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/CrossSigning.js | 36 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/DeviceList.js | 22 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/EncryptionSetup.js | 26 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/OlmDevice.js | 29 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/OutgoingRoomKeyRequestManager.js | 10 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/RoomList.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/SecretSharing.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/SecretStorage.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/aes.js | 140 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/algorithms/base.js | 50 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/algorithms/index.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/algorithms/megolm.js | 45 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/algorithms/olm.js | 34 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/api.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/backup.js | 56 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/crypto.js | 37 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/dehydration.js | 25 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/device-converter.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/deviceinfo.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/index.js | 354 - thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/key_passphrase.js | 62 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/olmlib.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/recoverykey.js | 65 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/store/indexeddb-crypto-store-backend.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/store/indexeddb-crypto-store.js | 20 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/store/localStorage-crypto-store.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/store/memory-crypto-store.js | 61 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/Base.js | 20 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/Error.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/IllegalMethod.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/QRCode.js | 22 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/SAS.js | 21 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/request/InRoomChannel.js | 10 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/request/ToDeviceChannel.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/crypto/verification/request/VerificationRequest.js | 21 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/digest.js | 38 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/embedded.js | 104 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/errors.js | 21 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/event-mapper.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/extensible_events_v1/MessageEvent.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/extensible_events_v1/PollEndEvent.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/extensible_events_v1/PollResponseEvent.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/extensible_events_v1/PollStartEvent.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/filter-component.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/filter.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/http-api/errors.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/http-api/fetch.js | 20 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/http-api/index.js | 22 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/http-api/method.js | 3 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/http-api/utils.js | 48 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/index.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/indexeddb-worker.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/interactive-auth.js | 30 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/logger.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrix.js | 261 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrixrtc/CallMembership.js | 176 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrixrtc/LivekitFocus.js | 28 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrixrtc/MatrixRTCSession.js | 638 + thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrixrtc/MatrixRTCSessionManager.js | 43 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/matrixrtc/index.js | 49 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/MSC3089Branch.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/MSC3089TreeSpace.js | 38 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/beacon.js | 10 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/compare-event-ordering.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/device.js | 7 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/event-context.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/event-timeline-set.js | 46 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/event-timeline.js | 39 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/event.js | 153 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/invites-ignorer.js | 30 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/poll.js | 10 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/profile-keys.js | 13 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/read-receipt.js | 20 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/related-relations.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/relations-container.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/relations.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/room-member.js | 21 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/room-receipts.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/room-state.js | 79 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/room.js | 354 - thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/search-result.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/thread.js | 123 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/typed-event-emitter.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/models/user.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/authorize.js | 22 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/discovery.js | 32 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/index.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/register.js | 55 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/tokenRefresher.js | 26 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/oidc/validate.js | 49 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/pushprocessor.js | 225 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/randomstring.js | 5 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/realtime-callbacks.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/receipt-accumulator.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/MSC3906Rendezvous.js | 241 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/MSC4108SignInWithQR.js | 363 + thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/RendezvousFailureReason.js | 35 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/channels/MSC3903ECDHv1RendezvousChannel.js | 178 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/channels/MSC3903ECDHv2RendezvousChannel.js | 194 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/channels/MSC4108SecureChannel.js | 224 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/channels/index.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/index.js | 55 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/transports/MSC3886SimpleHttpRendezvousTransport.js | 176 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/transports/MSC4108RendezvousSession.js | 238 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rendezvous/transports/index.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/room-hierarchy.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/CrossSigningIdentity.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/DehydratedDeviceManager.js | 267 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/KeyClaimManager.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/OutgoingRequestProcessor.js | 57 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/OutgoingRequestsManager.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/PerSessionKeyBackupDownloader.js | 68 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/RoomEncryptor.js | 67 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/backup.js | 75 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/device-converter.js | 7 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/index.js | 50 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/libolm_migration.js | 171 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/rust-crypto.js | 529 + thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/rust-crypto/verification.js | 111 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/scheduler.js | 40 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/secret-storage.js | 35 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/serverCapabilities.js | 106 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/sliding-sync-sdk.js | 47 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/sliding-sync.js | 30 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/indexeddb-local-backend.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/indexeddb-remote-backend.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/indexeddb-store-worker.js | 8 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/indexeddb.js | 27 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/local-storage-events-emitter.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/memory.js | 15 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/store/stub.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/sync-accumulator.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/sync.js | 113 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/testing.js | 136 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/thread-utils.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/timeline-window.js | 10 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/types.js | 50 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/utils.js | 27 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/utils/decryptAESSecretStorageItem.js | 48 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/utils/encryptAESSecretStorageItem.js | 66 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/utils/internal/deriveKeys.js | 58 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/call.js | 67 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/callEventHandler.js | 16 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/callFeed.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/groupCall.js | 43 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/groupCallEventHandler.js | 16 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/mediaHandler.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/callStatsReportGatherer.js | 26 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/connectionStats.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/groupCallStats.js | 12 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/media/mediaSsrcHandler.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/media/mediaTrackStats.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/media/mediaTrackStatsHandler.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/statsReportEmitter.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-sdk/webrtc/stats/trackStatsBuilder.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/ClientWidgetApi.js | 186 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/WidgetApi.js | 81 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/driver/WidgetDriver.js | 51 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/index.js | 22 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/Capabilities.js | 3 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/DownloadFileAction.js | 6 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/UpdateDelayedEventAction.js | 29 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/matrix-widget-api/interfaces/WidgetApiAction.js | 2 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/moz.build | 44 thunderbird-128.6.0esr/comm/chat/protocols/matrix/lib/oidc-client-ts/oidc-client-ts.js | 553 + thunderbird-128.6.0esr/comm/chat/protocols/matrix/matrix-sdk.sys.mjs | 16 thunderbird-128.6.0esr/comm/chat/protocols/matrix/matrixAccount.sys.mjs | 110 thunderbird-128.6.0esr/comm/chat/protocols/matrix/matrixTextForEvent.sys.mjs | 15 thunderbird-128.6.0esr/comm/chat/protocols/matrix/test/test_matrixMessageContent.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/matrix/test/test_matrixRoom.js | 4 thunderbird-128.6.0esr/comm/chat/protocols/xmpp/test/test_xmppParser.js | 14 thunderbird-128.6.0esr/comm/chat/protocols/xmpp/xmpp-xml.sys.mjs | 11 thunderbird-128.6.0esr/comm/mail/app/profile/all-thunderbird.js | 11 thunderbird-128.6.0esr/comm/mail/base/content/about3Pane.js | 8 thunderbird-128.6.0esr/comm/mail/base/content/aboutMessage.js | 11 thunderbird-128.6.0esr/comm/mail/base/content/hiddenWindowMac.js | 6 thunderbird-128.6.0esr/comm/mail/base/content/mailContext.js | 2 thunderbird-128.6.0esr/comm/mail/base/content/mailWindowOverlay.js | 11 thunderbird-128.6.0esr/comm/mail/base/content/messenger-menubar.inc.xhtml | 2 thunderbird-128.6.0esr/comm/mail/base/content/msgHdrView.js | 3 thunderbird-128.6.0esr/comm/mail/base/content/specialTabs.js | 7 thunderbird-128.6.0esr/comm/mail/base/content/widgets/auto-tree-view.mjs | 12 thunderbird-128.6.0esr/comm/mail/base/content/widgets/folder-tree-row.mjs | 8 thunderbird-128.6.0esr/comm/mail/base/content/widgets/header-fields.js | 6 thunderbird-128.6.0esr/comm/mail/base/content/widgets/listbox/tree-listbox-mixin.mjs | 11 thunderbird-128.6.0esr/comm/mail/base/content/widgets/tree-view.mjs | 71 thunderbird-128.6.0esr/comm/mail/base/content/widgets/treeview/thread-card.mjs | 10 thunderbird-128.6.0esr/comm/mail/base/content/widgets/treeview/thread-row.mjs | 21 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_cardsView.js | 1 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_dummyRow.js | 5 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_mailContext.js | 1 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_preferDisplayName.js | 7 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_threadTreeDeleting.js | 2 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_threadTreeQuirks.js | 3 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_threadTreeSorting.js | 12 thunderbird-128.6.0esr/comm/mail/base/test/browser/browser_threads.js | 3 thunderbird-128.6.0esr/comm/mail/base/test/webextensions/browser_permissions_installTrigger.js | 3 thunderbird-128.6.0esr/comm/mail/base/test/widgets/browser_autoTreeView.js | 15 thunderbird-128.6.0esr/comm/mail/base/test/widgets/browser_treeView.js | 185 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-common.mjs | 22 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-header.xhtml | 11 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.mjs | 13 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.xhtml | 11 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-no-header.xhtml | 11 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.mjs | 13 thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.xhtml | 11 thunderbird-128.6.0esr/comm/mail/components/addrbook/content/aboutAddressBook.js | 36 thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/browser_contact_tree.js | 2 thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/head.js | 1 thunderbird-128.6.0esr/comm/mail/components/extensions/ExtensionPopups.sys.mjs | 3 thunderbird-128.6.0esr/comm/mail/components/extensions/extensionPopup.xhtml | 3 thunderbird-128.6.0esr/comm/mail/components/extensions/test/browser/browser_ext_tabs_create_update_with_real_application_chooser.js | 2 thunderbird-128.6.0esr/comm/mail/config/version.txt | 2 thunderbird-128.6.0esr/comm/mail/config/version_display.txt | 2 thunderbird-128.6.0esr/comm/mail/modules/DBViewWrapper.sys.mjs | 1 thunderbird-128.6.0esr/comm/mail/test/browser/composition/browser.ini | 1 thunderbird-128.6.0esr/comm/mail/test/browser/composition/browser_mailtoComposeFormat.js | 141 thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_columns.js | 37 thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_deletionFromThreads.js | 38 thunderbird-128.6.0esr/comm/mail/test/browser/folder-pane/browser_folderPaneHeader.js | 96 thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser.ini | 1 thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_filtered.js | 211 thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_notification.js | 44 thunderbird-128.6.0esr/comm/mail/themes/shared/mail/threadCard.css | 2 thunderbird-128.6.0esr/comm/mailnews/base/src/MailNotificationManager.sys.mjs | 40 thunderbird-128.6.0esr/comm/mailnews/base/src/nsMsgAccountManager.cpp | 9 thunderbird-128.6.0esr/comm/mailnews/compose/public/nsIMsgComposeService.idl | 11 thunderbird-128.6.0esr/comm/mailnews/compose/src/nsMsgComposeService.cpp | 18 thunderbird-128.6.0esr/comm/mailnews/db/msgdb/public/nsMsgDatabase.h | 2 thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp | 14 thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgThread.cpp | 1 thunderbird-128.6.0esr/comm/mailnews/extensions/smime/nsMsgComposeSecure.cpp | 28 thunderbird-128.6.0esr/comm/mailnews/local/src/Pop3Client.sys.mjs | 79 thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.cpp | 121 thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.h | 7 thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp | 128 thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.h | 3 thunderbird-128.6.0esr/comm/mailnews/mime/public/MimeEncoder.h | 13 thunderbird-128.6.0esr/comm/mailnews/mime/public/nsIPgpMimeProxy.idl | 3 thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.cpp | 68 thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.h | 74 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.cpp | 64 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.h | 20 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecms.cpp | 176 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.cpp | 84 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.h | 23 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimedrft.cpp | 137 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeenc.cpp | 23 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeeobj.cpp | 21 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimei.cpp | 27 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.cpp | 33 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.h | 4 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.cpp | 30 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.h | 5 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemalt.cpp | 7 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.cpp | 141 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.h | 2 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.cpp | 150 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.h | 20 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.cpp | 30 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.h | 4 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsg.cpp | 30 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.cpp | 34 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.h | 22 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemult.cpp | 19 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.cpp | 15 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.h | 2 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.cpp | 3 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.h | 2 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimesun.cpp | 3 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimetext.cpp | 52 thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeunty.cpp | 4 thunderbird-128.6.0esr/comm/mailnews/mime/src/modlmime.h | 37 thunderbird-128.6.0esr/comm/mailnews/mime/src/modmimee.h | 12 thunderbird-128.6.0esr/comm/mailnews/mime/src/moz.build | 2 thunderbird-128.6.0esr/comm/mailnews/mime/src/nsSimpleMimeConverterStub.cpp | 7 thunderbird-128.6.0esr/comm/mailnews/mime/src/nsStreamConverter.cpp | 54 thunderbird-128.6.0esr/comm/mailnews/search/src/nsMsgLocalSearch.cpp | 6 thunderbird-128.6.0esr/config/milestone.txt | 2 thunderbird-128.6.0esr/debian/changelog | 42 thunderbird-128.6.0esr/debian/control | 6 thunderbird-128.6.0esr/debian/rules | 1 thunderbird-128.6.0esr/docshell/base/nsDocShell.cpp | 8 thunderbird-128.6.0esr/dom/base/StructuredCloneHolder.cpp | 12 thunderbird-128.6.0esr/dom/base/nsLineBreaker.cpp | 16 thunderbird-128.6.0esr/dom/canvas/DrawTargetWebgl.cpp | 7 thunderbird-128.6.0esr/dom/html/HTMLInputElement.cpp | 4 thunderbird-128.6.0esr/dom/media/eme/mediafoundation/WMFCDMImpl.cpp | 2 thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.cpp | 17 thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.h | 6 thunderbird-128.6.0esr/dom/media/tools/generateGmpJson.py | 199 thunderbird-128.6.0esr/dom/midi/MIDIAccess.cpp | 8 thunderbird-128.6.0esr/dom/midi/MIDIAccess.h | 18 thunderbird-128.6.0esr/dom/midi/MIDIPort.cpp | 15 thunderbird-128.6.0esr/dom/midi/MIDIPort.h | 14 thunderbird-128.6.0esr/dom/streams/ReadableByteStreamController.cpp | 8 thunderbird-128.6.0esr/dom/streams/test/xpcshell/xpcshell.toml | 1 thunderbird-128.6.0esr/image/AnimationFrameBuffer.cpp | 54 thunderbird-128.6.0esr/image/Decoder.cpp | 14 thunderbird-128.6.0esr/image/imgFrame.cpp | 49 thunderbird-128.6.0esr/image/imgFrame.h | 44 thunderbird-128.6.0esr/image/test/gtest/TestAnimationFrameBuffer.cpp | 9 thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.cpp | 37 thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.h | 91 thunderbird-128.6.0esr/js/src/vm/Modules.cpp | 15 thunderbird-128.6.0esr/layout/generic/nsPageContentFrame.cpp | 9 thunderbird-128.6.0esr/modules/libpref/init/StaticPrefList.yaml | 15 thunderbird-128.6.0esr/netwerk/dns/effective_tld_names.dat | 1471 ++-- thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.cpp | 9 thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.h | 4 thunderbird-128.6.0esr/netwerk/dns/nsHostResolver.cpp | 8 thunderbird-128.6.0esr/netwerk/protocol/http/Http2Session.cpp | 12 thunderbird-128.6.0esr/netwerk/protocol/http/Http2StreamBase.cpp | 4 thunderbird-128.6.0esr/netwerk/protocol/http/nsHttpConnection.cpp | 11 thunderbird-128.6.0esr/netwerk/test/unit/head_channels.js | 1 thunderbird-128.6.0esr/netwerk/wifi/gtest/TestWifiMonitorListenerRemoval.cpp | 159 thunderbird-128.6.0esr/netwerk/wifi/gtest/moz.build | 1 thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.cpp | 54 thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.h | 14 thunderbird-128.6.0esr/python/mach/mach/site.py | 89 thunderbird-128.6.0esr/python/mozboot/mozboot/base.py | 40 thunderbird-128.6.0esr/python/mozboot/mozboot/mozillabuild.py | 4 thunderbird-128.6.0esr/python/mozboot/mozboot/osx.py | 4 thunderbird-128.6.0esr/python/mozbuild/mozbuild/artifact_commands.py | 1 thunderbird-128.6.0esr/python/mozbuild/mozbuild/test/configure/test_bootstrap.py | 3 thunderbird-128.6.0esr/python/mozversioncontrol/mozversioncontrol/__init__.py | 5 thunderbird-128.6.0esr/security/manager/ssl/StaticHPKPins.h | 2 thunderbird-128.6.0esr/security/manager/ssl/nsSTSPreloadList.inc | 3318 ++++------ thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json | 94 thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json | 2 thunderbird-128.6.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json | 317 thunderbird-128.6.0esr/services/settings/dumps/main/search-config-v2.json | 46 thunderbird-128.6.0esr/services/settings/dumps/main/search-telemetry-v2.json | 715 +- thunderbird-128.6.0esr/services/settings/dumps/main/translations-models.json | 110 thunderbird-128.6.0esr/services/settings/dumps/main/translations-wasm.json | 40 thunderbird-128.6.0esr/services/settings/dumps/security-state/intermediates.json | 769 -- thunderbird-128.6.0esr/servo/components/selectors/context.rs | 2 thunderbird-128.6.0esr/servo/components/style/values/generics/calc.rs | 2 thunderbird-128.6.0esr/servo/components/style/values/specified/calc.rs | 9 thunderbird-128.6.0esr/sourcestamp.txt | 6 thunderbird-128.6.0esr/taskcluster/docker/debian-repackage/Dockerfile | 5 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Dockerfile | 71 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Makefile | 12 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/download_and_install_snap.sh | 27 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py | 15 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/firefox.snapcraft.yaml.in | 91 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/policies.json | 5 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/runme.sh | 104 thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/tmpdir | 6 thunderbird-128.6.0esr/taskcluster/docs/attributes.rst | 5 thunderbird-128.6.0esr/taskcluster/docs/kinds.rst | 8 thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover.py | 11 thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover_snap.py | 42 thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/__init__.py | 8 thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/toolchain.py | 8 thunderbird-128.6.0esr/taskcluster/kinds/docker-image/kind.yml | 2 thunderbird-128.6.0esr/taskcluster/kinds/release-snap-repackage/kind.yml | 60 thunderbird-128.6.0esr/taskcluster/kinds/toolchain/dist-toolchains.yml | 2 thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-car.sh | 4 thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-v8.sh | 2 thunderbird-128.6.0esr/testing/web-platform/meta/css/css-page/pseudo-first-margin-004-print.html.ini | 2 thunderbird-128.6.0esr/testing/web-platform/tests/css/css-values/round-function.html | 7 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html | 33 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html | 33 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes-ref.html | 9 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html | 30 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes-ref.html | 9 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html | 30 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html | 33 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html | 33 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes.html | 34 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes-ref.html | 8 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes.html | 34 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes-ref.html | 2 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html | 30 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes-ref.html | 2 thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html | 30 thunderbird-128.6.0esr/thunderbird-l10n/af/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ar/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ast/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/be/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/bg/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/br/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ca/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/cak/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/cs/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/cy/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/da/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/de/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/dsb/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/el/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/en-CA/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/en-GB/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/es-AR/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/es-ES/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/es-MX/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/et/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/eu/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/fi/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/fr/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/fy-NL/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ga-IE/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/gd/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/gl/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/he/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/hr/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/hsb/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/hu/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/hy-AM/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/id/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/is/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/it/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ja/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ka/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/kab/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/kk/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ko/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/lt/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/lv/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ms/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/nb-NO/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/nl/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/nn-NO/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/pa-IN/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/pl/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/pt-BR/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/pt-PT/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/rm/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ro/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/ru/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/sk/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/sl/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/sq/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/sr/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/sv-SE/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/th/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/tr/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/uk/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/uz/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/vi/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/zh-CN/manifest.json | 4 thunderbird-128.6.0esr/thunderbird-l10n/zh-TW/manifest.json | 4 thunderbird-128.6.0esr/toolkit/actors/WebChannelChild.sys.mjs | 50 thunderbird-128.6.0esr/toolkit/actors/WebChannelParent.sys.mjs | 33 thunderbird-128.6.0esr/toolkit/components/extensions/test/mochitest/test_ext_protocolHandlers.html | 42 thunderbird-128.6.0esr/toolkit/components/search/tests/xpcshell/searchconfigs/test_ecosia.js | 3 thunderbird-128.6.0esr/toolkit/content/gmp-sources/openh264.json | 8 thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm.json | 58 thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm_l1.json | 5 thunderbird-128.6.0esr/toolkit/library/build/dependentlibs.py | 23 thunderbird-128.6.0esr/toolkit/modules/GMPInstallManager.sys.mjs | 2 thunderbird-128.6.0esr/toolkit/modules/tests/browser/browser_web_channel.js | 54 thunderbird-128.6.0esr/toolkit/modules/tests/xpcshell/test_GMPInstallManager.js | 440 + thunderbird-128.6.0esr/toolkit/mozapps/extensions/internal/ProductAddonChecker.sys.mjs | 41 thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml | 7 thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker.js | 66 thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker_signatures.js | 2 thunderbird-128.6.0esr/toolkit/xre/dllservices/mozglue/WindowsDllBlocklistDefs.in | 3 thunderbird-128.6.0esr/toolkit/xre/nsAppRunner.cpp | 10 thunderbird-128.6.0esr/tools/lint/rejected-words.yml | 3 thunderbird-128.6.0esr/widget/gtk/nsDragService.cpp | 45 thunderbird-128.6.0esr/widget/gtk/nsDragService.h | 2 thunderbird-128.6.0esr/widget/windows/WinUtils.cpp | 18 thunderbird-128.6.0esr/widget/windows/WinUtils.h | 2 thunderbird-128.6.0esr/widget/windows/nsClipboard.cpp | 43 523 files changed, 15167 insertions(+), 10564 deletions(-) diff -Nru thunderbird-128.5.0esr/CLOBBER thunderbird-128.6.0esr/CLOBBER --- thunderbird-128.5.0esr/CLOBBER 2024-11-25 20:12:29.000000000 +0000 +++ thunderbird-128.6.0esr/CLOBBER 2025-01-07 20:45:10.000000000 +0000 @@ -22,4 +22,4 @@ # changes to stick? As of bug 928195, this shouldn't be necessary! Please # don't change CLOBBER for WebIDL changes any more. -Merge day clobber 2024-10-28 \ No newline at end of file +Merge day clobber 2024-11-25 \ No newline at end of file diff -Nru thunderbird-128.5.0esr/accessible/windows/ia2/ia2Accessible.cpp thunderbird-128.6.0esr/accessible/windows/ia2/ia2Accessible.cpp --- thunderbird-128.5.0esr/accessible/windows/ia2/ia2Accessible.cpp 2024-11-25 20:12:29.000000000 +0000 +++ thunderbird-128.6.0esr/accessible/windows/ia2/ia2Accessible.cpp 2025-01-07 20:45:11.000000000 +0000 @@ -12,12 +12,14 @@ #include "AccessibleStates.h" #include "AccAttributes.h" +#include "ApplicationAccessible.h" #include "Compatibility.h" #include "ia2AccessibleRelation.h" #include "IUnknownImpl.h" #include "nsCoreUtils.h" #include "nsIAccessibleTypes.h" #include "mozilla/a11y/PDocAccessible.h" +#include "mozilla/StaticPrefs_accessibility.h" #include "Relation.h" #include "TextRange-inl.h" #include "nsAccessibilityService.h" @@ -352,6 +354,22 @@ if (!acc) return CO_E_OBJNOTCONNECTED; *aWindowHandle = MsaaAccessible::GetHWNDFor(acc); + if (!*aWindowHandle && !StaticPrefs::accessibility_uia_enable()) { + // Bug 1890155: This can happen if a document is detached from its embedder. + // The document might be about to die or it might be moving to a different + // embedder; e.g. a tab in a different window. The IA2 -> UIA proxy may + // crash if we return a null HWND. For now, pick an arbitrary top level + // Gecko HWND. This might be wrong, but only briefly, since the document + // will either die or move very soon, at which point this method will + // return the correct answer. + // TODO This hack should be removed once we only use our native UIA + // implementation. + if (ApplicationAccessible* app = ApplicationAcc()) { + if (LocalAccessible* firstRoot = app->LocalFirstChild()) { + *aWindowHandle = MsaaAccessible::GetHWNDFor(firstRoot); + } + } + } return S_OK; } diff -Nru thunderbird-128.5.0esr/browser/base/content/test/general/browser_remoteTroubleshoot.js thunderbird-128.6.0esr/browser/base/content/test/general/browser_remoteTroubleshoot.js --- thunderbird-128.5.0esr/browser/base/content/test/general/browser_remoteTroubleshoot.js 2024-11-25 20:12:29.000000000 +0000 +++ thunderbird-128.6.0esr/browser/base/content/test/general/browser_remoteTroubleshoot.js 2025-01-07 20:45:12.000000000 +0000 @@ -13,9 +13,6 @@ "example.com/browser/browser/base/content/test/general/test_remoteTroubleshoot.html"; const TEST_URI_GOOD = Services.io.newURI("https://" + TEST_URL_TAIL); const TEST_URI_BAD = Services.io.newURI("http://" + TEST_URL_TAIL); -const TEST_URI_GOOD_OBJECT = Services.io.newURI( - "https://" + TEST_URL_TAIL + "?object" -); // Creates a one-shot web-channel for the test data to be sent back from the test page. function promiseChannelResponse(channelID, originOrPermission) { @@ -116,15 +113,4 @@ got.message.errno === 2, "should have failed with errno 2, no such channel" ); - - // Check that the page can send an object as well if it's in the whitelist - let webchannelWhitelistPref = "webchannel.allowObject.urlWhitelist"; - let origWhitelist = Services.prefs.getCharPref(webchannelWhitelistPref); - let newWhitelist = origWhitelist + " https://example.com"; - Services.prefs.setCharPref(webchannelWhitelistPref, newWhitelist); - registerCleanupFunction(() => { - Services.prefs.clearUserPref(webchannelWhitelistPref); - }); - got = await promiseNewChannelResponse(TEST_URI_GOOD_OBJECT); - Assert.ok(got.message, "should have gotten some data back"); }); diff -Nru thunderbird-128.5.0esr/browser/base/content/test/general/test_remoteTroubleshoot.html thunderbird-128.6.0esr/browser/base/content/test/general/test_remoteTroubleshoot.html --- thunderbird-128.5.0esr/browser/base/content/test/general/test_remoteTroubleshoot.html 2024-11-25 20:12:29.000000000 +0000 +++ thunderbird-128.6.0esr/browser/base/content/test/general/test_remoteTroubleshoot.html 2025-01-07 20:45:12.000000000 +0000 @@ -1,21 +1,12 @@ diff -Nru thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.mjs thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.mjs --- thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.mjs 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.mjs 2025-01-07 20:45:52.000000000 +0000 @@ -40,16 +40,13 @@ this.d2.classList.add("d2"); } - get index() { - return super.index; - } + _fillRow() { + super._fillRow(); - set index(index) { - super.index = index; - this.id = this.view.getRowProperties(index); + this.id = this.view.getRowProperties(this._index); this.classList.remove("level0", "level1", "level2"); - this.classList.add(`level${this.view.getLevel(index)}`); - this.d2.textContent = this.view.getCellText(index, "text"); + this.classList.add(`level${this.view.getLevel(this._index)}`); + this.d2.textContent = this.view.getCellText(this._index, "text"); } } customElements.define("test-row", TestCardRow, { extends: "tr" }); diff -Nru thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.xhtml thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.xhtml --- thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.xhtml 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-levels.xhtml 2025-01-07 20:45:52.000000000 +0000 @@ -5,12 +5,6 @@ Test for the tree-view custom element diff -Nru thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-no-header.xhtml thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-no-header.xhtml --- thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-no-header.xhtml 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-no-header.xhtml 2025-01-07 20:45:52.000000000 +0000 @@ -10,12 +10,6 @@ Test for the tree-view custom element diff -Nru thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.mjs thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.mjs --- thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.mjs 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.mjs 2025-01-07 20:45:52.000000000 +0000 @@ -40,16 +40,13 @@ this.d2.classList.add("d2"); } - get index() { - return super.index; - } + _fillRow() { + super._fillRow(); - set index(index) { - super.index = index; - this.id = this.view.getRowProperties(index); + this.id = this.view.getRowProperties(this._index); this.classList.remove("level0", "level1", "level2"); - this.classList.add(`level${this.view.getLevel(index)}`); - this.d2.textContent = this.view.getCellText(index, "text"); + this.classList.add(`level${this.view.getLevel(this._index)}`); + this.d2.textContent = this.view.getCellText(this._index, "text"); } } customElements.define("test-row", TestCardRow, { extends: "tr" }); diff -Nru thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.xhtml thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.xhtml --- thunderbird-128.5.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.xhtml 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/base/test/widgets/files/tree-element-test-scroll.xhtml 2025-01-07 20:45:52.000000000 +0000 @@ -5,12 +5,6 @@ Test for the tree-view custom element diff -Nru thunderbird-128.5.0esr/comm/mail/components/addrbook/content/aboutAddressBook.js thunderbird-128.6.0esr/comm/mail/components/addrbook/content/aboutAddressBook.js --- thunderbird-128.5.0esr/comm/mail/components/addrbook/content/aboutAddressBook.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/components/addrbook/content/aboutAddressBook.js 2025-01-07 20:45:52.000000000 +0000 @@ -1215,21 +1215,20 @@ this.appendChild(this.cell); } - get index() { - return super.index; - } - /** - * Override the row setter to generate the layout. + * Generate the layout for the current card. * * @note This element could be recycled, make sure you set or clear all * properties. */ - set index(index) { - super.index = index; + _fillRow() { + super._fillRow(); - const card = this.view.getCardFromRow(index); - this.name.textContent = this.view.getCellText(index, "GeneratedName"); + const card = this.view.getCardFromRow(this._index); + this.name.textContent = this.view.getCellText( + this._index, + "GeneratedName" + ); // Add the address book name for All Address Books if in the sort Context // Address Book is checked. This is done for the list view only. @@ -1246,7 +1245,10 @@ addressBookName.classList.add("address-book-name"); this.firstLine.appendChild(addressBookName); } - addressBookName.textContent = this.view.getCellText(index, "addrbook"); + addressBookName.textContent = this.view.getCellText( + this._index, + "addrbook" + ); } else { this.querySelector(".address-book-name")?.remove(); } @@ -1307,26 +1309,22 @@ } } - get index() { - return super.index; - } - /** - * Override the row setter to generate the layout. + * Generate the layout for the current card. * * @note This element could be recycled, make sure you set or clear all * properties. */ - set index(index) { - super.index = index; + _fillRow() { + super._fillRow(); - const card = this.view.getCardFromRow(index); + const card = this.view.getCardFromRow(this._index); this.classList.toggle("MailList", card.isMailList); for (const column of cardsPane.COLUMNS) { const cell = this.querySelector(`.${column.id.toLowerCase()}-column`); if (!column.hidden) { - cell.textContent = this.view.getCellText(index, column.id); + cell.textContent = this.view.getCellText(this._index, column.id); continue; } diff -Nru thunderbird-128.5.0esr/comm/mail/components/addrbook/test/browser/browser_contact_tree.js thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/browser_contact_tree.js --- thunderbird-128.5.0esr/comm/mail/components/addrbook/test/browser/browser_contact_tree.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/browser_contact_tree.js 2025-01-07 20:45:52.000000000 +0000 @@ -1138,6 +1138,7 @@ await TestUtils.waitForCondition( () => !cardsHeader.querySelector(`[id="addrbook"]`).hidden ); + await new Promise(resolve => abWindow.requestAnimationFrame(resolve)); // Check for the contact that the column is shown. Assert.ok( @@ -1201,6 +1202,7 @@ await TestUtils.waitForCondition( () => !cardsHeader.querySelector(`[id="addrbook"]`).hidden ); + await new Promise(resolve => abWindow.requestAnimationFrame(resolve)); Assert.ok( cardsList diff -Nru thunderbird-128.5.0esr/comm/mail/components/addrbook/test/browser/head.js thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/head.js --- thunderbird-128.5.0esr/comm/mail/components/addrbook/test/browser/head.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/components/addrbook/test/browser/head.js 2025-01-07 20:45:52.000000000 +0000 @@ -73,6 +73,7 @@ const eventName = "_treerowbufferfillAbListReady"; list._rowBufferReadyEvent = new CustomEvent(eventName); await BrowserTestUtils.waitForEvent(list, eventName); + await new Promise(resolve => list.ownerGlobal.requestAnimationFrame(resolve)); } async function openAddressBookWindow() { diff -Nru thunderbird-128.5.0esr/comm/mail/components/extensions/ExtensionPopups.sys.mjs thunderbird-128.6.0esr/comm/mail/components/extensions/ExtensionPopups.sys.mjs --- thunderbird-128.5.0esr/comm/mail/components/extensions/ExtensionPopups.sys.mjs 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/components/extensions/ExtensionPopups.sys.mjs 2025-01-07 20:45:52.000000000 +0000 @@ -239,6 +239,8 @@ browser.setAttribute("selectmenulist", "ContentSelectDropdown"); browser.setAttribute("constrainpopups", "false"); browser.setAttribute("datetimepicker", "DateTimePickerPanel"); + browser.setAttribute("nodefaultsrc", "true"); + browser.setAttribute("maychangeremoteness", "true"); // Ensure the browser will initially load in the same group as other // browsers from the same extension. @@ -250,7 +252,6 @@ if (this.extension.remote) { browser.setAttribute("remote", "true"); browser.setAttribute("remoteType", this.extension.remoteType); - browser.setAttribute("maychangeremoteness", "true"); } // We only need flex sizing for the sake of the slide-in sub-views of the diff -Nru thunderbird-128.5.0esr/comm/mail/components/extensions/extensionPopup.xhtml thunderbird-128.6.0esr/comm/mail/components/extensions/extensionPopup.xhtml --- thunderbird-128.5.0esr/comm/mail/components/extensions/extensionPopup.xhtml 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/components/extensions/extensionPopup.xhtml 2025-01-07 20:45:52.000000000 +0000 @@ -83,7 +83,8 @@ { + await add_message_to_folder( + [folder], + create_message({ + from: "Tester ", + to: identity.email, + subject: `Mailto Test`, + body: { + body: ` + + +Mailto Link + +`, + contentType: "text/html", + }, + }) + ); + }; + + accountA = MailServices.accounts.createAccount(); + accountA.incomingServer = MailServices.accounts.createIncomingServer( + "someone", + "accountA.invalid", + "pop3" + ); + + accountB = MailServices.accounts.createAccount(); + accountB.incomingServer = MailServices.accounts.createIncomingServer( + "someone", + "accountB.invalid", + "pop3" + ); + + inboxA = accountA.incomingServer.rootFolder.getFolderWithFlags( + Ci.nsMsgFolderFlags.Inbox + ); + inboxB = accountB.incomingServer.rootFolder.getFolderWithFlags( + Ci.nsMsgFolderFlags.Inbox + ); + + identityA0 = MailServices.accounts.createIdentity(); + identityA0.email = "someone@accountA.invalid"; + accountA.addIdentity(identityA0); + + identityB0 = MailServices.accounts.createIdentity(); + identityB0.email = "someone@accountB.invalid"; + accountB.addIdentity(identityB0); + + identityB1 = MailServices.accounts.createIdentity(); + identityB1.email = "someone.else@accountB.invalid"; + accountB.addIdentity(identityB1); + + await createTestMessage(inboxA, identityA0); + await createTestMessage(inboxB, identityB1); + await createTestMessage(inboxB, identityB0); + + registerCleanupFunction(() => { + accountB.removeIdentity(identityB1); + identityB0.clearAllValues(); + MailServices.accounts.removeAccount(accountB, true); + identityA0.clearAllValues(); + MailServices.accounts.removeAccount(accountA, true); + }); +}); + +add_task(async function test_mailto_links() { + const subTest = async (formatA0, formatB0, formatB1) => { + const clickMailtoLink = async (folder, identity, row = 0) => { + await be_in_folder(folder); + const msg = await select_click_row(row); + await assert_selected_and_displayed(window, msg); + + const composePromise = promise_new_window("msgcompose"); + await BrowserTestUtils.synthesizeMouseAtCenter( + "#mailtolink", + {}, + get_about_message().getMessagePaneBrowser() + ); + const cwc = await compose_window_ready(composePromise); + + Assert.equal( + cwc.gMsgCompose.identity, + identity, + "The correct identity should be selected." + ); + Assert.equal( + cwc.gMsgCompose.composeHTML, + identity.composeHtml, + "Compose HTML should match the identity's setting." + ); + + await close_compose_window(cwc); + }; + + identityA0.composeHtml = formatA0; + identityB0.composeHtml = formatB0; + identityB1.composeHtml = formatB1; + await clickMailtoLink(inboxA, identityA0); + await clickMailtoLink(inboxB, identityB0); + await clickMailtoLink(inboxB, identityB1, 1); + }; + + await subTest(true, false, true); + await subTest(false, true, false); +}); diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/folder-display/browser_columns.js thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_columns.js --- thunderbird-128.5.0esr/comm/mail/test/browser/folder-display/browser_columns.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_columns.js 2025-01-07 20:45:52.000000000 +0000 @@ -710,25 +710,24 @@ assert_visible_columns(INBOX_DEFAULTS); const about3Pane = document.getElementById("tabmail").currentAbout3Pane; - let factor = 1; ThreadPaneColumns.addCustomColumn("testCol1", { name: "Test1", hidden: true, sortCallback(header) { - return header.subject.length * factor; + return header.subject.length; }, textCallback(header) { - return header.subject.length * factor; + return header.subject.length; }, }); ThreadPaneColumns.addCustomColumn("testCol2", { name: "Test2", hidden: true, sortCallback(header) { - return header.subject.length * factor; + return header.subject.length * 2; }, textCallback(header) { - return header.subject.length * factor; + return header.subject.length * 2; }, }); await new Promise(setTimeout); @@ -749,34 +748,10 @@ 10 ); Assert.greater(value1, 0, "Content of custom cell #1 should be non-zero"); - Assert.greater(value2, 0, "Content of custom cell #2 should be non-zero"); Assert.equal( - value1, value2, - "Content of both custom cells should be identical" - ); - - factor = 2; - ThreadPaneColumns.refreshCustomColumn("testCol1"); - await new Promise(setTimeout); - - const refreshedValue1 = parseInt( - row.querySelector(".testcol1-column").textContent, - 10 - ); - const refreshedValue2 = parseInt( - row.querySelector(".testcol2-column").textContent, - 10 - ); - Assert.equal( - refreshedValue1, - value1 * 2, - "Content of custom cell #1 should have doubled" - ); - Assert.equal( - refreshedValue2, - value2, - "Content of custom cell #2 should have not changed" + 2 * value1, + "Content of custom cell #2 should be twice cell #1" ); ThreadPaneColumns.removeCustomColumn("testCol1"); diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/folder-display/browser_deletionFromThreads.js thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_deletionFromThreads.js --- thunderbird-128.5.0esr/comm/mail/test/browser/folder-display/browser_deletionFromThreads.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/folder-display/browser_deletionFromThreads.js 2025-01-07 20:45:52.000000000 +0000 @@ -30,8 +30,6 @@ "resource://testing-common/mail/FolderDisplayHelpers.sys.mjs" ); -const onHdrDeletedTimeout = 500; - var singleFolder, folderA, folderB, multiFolder; var tab1, tab2; var about3Pane; @@ -58,16 +56,15 @@ const assertReplyCount = async replyCount => { await switch_tab(); - // eslint-disable-next-line mozilla/no-arbitrary-setTimeout - await new Promise(resolve => - about3Pane.setTimeout(resolve, onHdrDeletedTimeout) - ); - Assert.equal( - about3Pane.threadTree.getElementsByClassName("thread-replies")[0] - .textContent, - `${replyCount} replies`, + await new Promise(resolve => about3Pane.requestAnimationFrame(resolve)); + + const replies = about3Pane.threadTree.querySelector(".thread-replies"); + Assert.deepEqual( + about3Pane.document.l10n.getAttributes(replies), + { id: "threadpane-replies", args: { count: replyCount } }, "Thread header in background tab should show the correct message count." ); + await switch_tab(); }; @@ -141,16 +138,21 @@ const assertMessagesCount = async (unreadCount, messagesCount) => { await switch_tab(); - // eslint-disable-next-line mozilla/no-arbitrary-setTimeout - await new Promise(resolve => - about3Pane.setTimeout(resolve, onHdrDeletedTimeout) - ); - Assert.equal( - about3Pane.threadTree.getElementsByClassName("sort-header-details")[0] - .textContent, - `${unreadCount} unread of ${messagesCount} messages`, + await new Promise(resolve => about3Pane.requestAnimationFrame(resolve)); + + const count = about3Pane.threadTree.querySelector(".sort-header-details"); + Assert.deepEqual( + about3Pane.document.l10n.getAttributes(count), + { + id: "threadpane-sort-header-unread-count", + args: { + unread: unreadCount, + total: messagesCount, + }, + }, "Group header in background tab should show the correct message count." ); + await switch_tab(); }; diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/folder-pane/browser_folderPaneHeader.js thunderbird-128.6.0esr/comm/mail/test/browser/folder-pane/browser_folderPaneHeader.js --- thunderbird-128.5.0esr/comm/mail/test/browser/folder-pane/browser_folderPaneHeader.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/folder-pane/browser_folderPaneHeader.js 2025-01-07 20:45:52.000000000 +0000 @@ -23,7 +23,9 @@ moreContext, fetchContext, folderModesContextMenu, - folderModesContextMenuPopup; + folderModesContextMenuPopup, + rootFolder, + inbox; add_setup(async function () { tabmail = document.getElementById("tabmail"); @@ -42,6 +44,9 @@ folderModesContextMenuPopup = about3Pane.document.getElementById( "folderModesContextMenuPopup" ); + rootFolder = MailServices.accounts.accounts[0].incomingServer.rootFolder; + inbox = rootFolder.getFolderWithFlags(Ci.nsMsgFolderFlags.Inbox); + registerCleanupFunction(() => { Services.xulStore.removeDocument( "chrome://messenger/content/messenger.xhtml" @@ -49,6 +54,30 @@ }); }); +async function assertColumns( + row, + unreadCount, + totalCount = null, + folderSize = null +) { + const checkLabel = (label, content) => { + Assert.equal(label.hidden, content == null, `${label} should be visible`); + if (!content) { + return; + } + + Assert.equal( + label.textContent, + content, + "${label} should display the correct content" + ); + }; + + checkLabel(row.unreadCountLabel, unreadCount); + checkLabel(row.totalCountLabel, totalCount); + checkLabel(row.folderSizeLabel, folderSize); +} + async function assertAriaLabel(row, expectedLabel) { await BrowserTestUtils.waitForCondition( () => row.getAttribute("aria-label") === expectedLabel, @@ -514,19 +543,18 @@ "The customization data was saved" ); - const rootFolder = - MailServices.accounts.accounts[0].incomingServer.rootFolder; - const inbox = rootFolder.getFolderWithFlags(Ci.nsMsgFolderFlags.Inbox); await add_message_sets_to_folders([inbox], [create_thread(10)]); await be_in_folder(inbox); about3Pane.folderTree.selectedIndex = 1; const row = about3Pane.folderTree.getRowAtIndex(1); await assertAriaLabel(row, "Inbox, 10 unread messages"); + await assertColumns(row, 10); about3Pane.threadTree.selectedIndex = 0; about3Pane.threadTree.expandRowAtIndex(0); await assertAriaLabel(row, "Inbox, 9 unread messages"); + await assertColumns(row, 9); }); add_task(async function testTotalCountVisible() { @@ -565,6 +593,7 @@ const row = about3Pane.folderTree.getRowAtIndex(1); await assertAriaLabel(row, "Inbox, 9 unread messages, 10 total messages"); + await assertColumns(row, 9, 10); }); add_task(async function testFolderSizeDefaultState() { @@ -624,6 +653,7 @@ row, `Inbox, 9 unread messages, 10 total messages, ${row.folderSize}` ); + await assertColumns(row, 9, 10, row.folderSize); }); add_task(async function testFolderSizeHidden() { @@ -702,6 +732,7 @@ const row = about3Pane.folderTree.getRowAtIndex(1); await assertAriaLabel(row, "Inbox, 9 unread messages"); + await assertColumns(row, 9); }); add_task(async function testHideLocalFoldersXULStore() { @@ -802,8 +833,6 @@ // Create a folder and add messages to that folder to ensure the badges are // visible and they update properly. - const rootFolder = - MailServices.accounts.accounts[0].incomingServer.rootFolder; rootFolder.createSubfolder("NewlyCreatedTestFolder", null); const folder = rootFolder.getChildNamed("NewlyCreatedTestFolder"); await be_in_folder(folder); @@ -851,6 +880,61 @@ ); }); +/** + * Tests that a folder that has just been set as a favorite is displayed + * with the correct columns under "Favorite Folders" right away. + */ +add_task(async function testAddFolderToFavorites() { + // Enable "Favorite Folders" mode. + const shownPromise = BrowserTestUtils.waitForEvent(moreContext, "popupshown"); + EventUtils.synthesizeMouseAtCenter(moreButton, {}, about3Pane); + await shownPromise; + const shownFolderModesSubMenuPromise = BrowserTestUtils.waitForEvent( + folderModesContextMenuPopup, + "popupshown" + ); + EventUtils.synthesizeMouseAtCenter(folderModesContextMenu, {}, about3Pane); + await shownFolderModesSubMenuPromise; + const mode = { + menuID: "#folderPaneMoreContextFavoriteFolders", + modeID: "favorite", + }; + const checkedPromise = TestUtils.waitForCondition( + () => moreContext.querySelector(mode.menuID).hasAttribute("checked"), + `"${mode.modeID}" option has been checked` + ); + moreContext.activateItem(moreContext.querySelector(mode.menuID)); + await checkedPromise; + const folderViewHiddenPromise = BrowserTestUtils.waitForEvent( + folderModesContextMenuPopup, + "popuphidden" + ); + EventUtils.synthesizeKey("KEY_Escape", {}, about3Pane); + await folderViewHiddenPromise; + const menuHiddenPromise = BrowserTestUtils.waitForEvent( + moreContext, + "popuphidden" + ); + EventUtils.synthesizeKey("KEY_Escape", {}, about3Pane); + await menuHiddenPromise; + + // Set inbox as favorite and let the folder tree update itself. + inbox.setFlag(Ci.nsMsgFolderFlags.Favorite); + await new Promise(resolve => setTimeout(resolve)); + + // Expand the server row that has just been added to favorites. + about3Pane.folderTree.selectedIndex = 4; + about3Pane.folderTree.expandRowAtIndex(4); + + // Check the inbox row. + const row = about3Pane.folderTree.getRowAtIndex(5); + await assertAriaLabel( + row, + `Inbox, 9 unread messages, 10 total messages, ${row.folderSize}` + ); + await assertColumns(row, 9, 10, row.folderSize); +}); + add_task(async function testActionButtonsState() { // Delete all accounts to start clean. for (const account of MailServices.accounts.accounts) { diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser.ini thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser.ini --- thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser.ini 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser.ini 2025-01-07 20:45:52.000000000 +0000 @@ -8,4 +8,5 @@ datareporting.policy.dataSubmissionPolicyBypassNotification=true subsuite = thunderbird +[browser_filtered.js] [browser_notification.js] diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser_filtered.js thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_filtered.js --- thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser_filtered.js 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_filtered.js 2025-01-07 20:45:52.000000000 +0000 @@ -0,0 +1,211 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/** + * Tests that duplicate notifications about the same message do not appear. + */ + +const { MailServices } = ChromeUtils.importESModule( + "resource:///modules/MailServices.sys.mjs" +); +const { MessageGenerator } = ChromeUtils.importESModule( + "resource://testing-common/mailnews/MessageGenerator.sys.mjs" +); +const { ServerTestUtils } = ChromeUtils.importESModule( + "resource://testing-common/mailnews/ServerTestUtils.sys.mjs" +); + +Services.scriptloader.loadSubScript( + "chrome://mochikit/content/tests/SimpleTest/MockObjects.js", + this +); + +add_task(async function () { + const localAccount = MailServices.accounts.createLocalMailAccount(); + + const server = await ServerTestUtils.createServer( + ServerTestUtils.serverDefs.imap.plain + ); + server.daemon.createMailbox("INBOX/greenFilter", { subscribed: true }); + server.daemon.createMailbox("INBOX/blueFilter", { subscribed: true }); + server.daemon.createMailbox("INBOX/redFilter", { subscribed: true }); + + const account = MailServices.accounts.createAccount(); + account.addIdentity(MailServices.accounts.createIdentity()); + account.incomingServer = MailServices.accounts.createIncomingServer( + "user", + "test.test", + "imap" + ); + account.incomingServer.prettyName = "IMAP Account"; + account.incomingServer.port = 143; + account.incomingServer.password = "password"; + const rootFolder = account.incomingServer.rootFolder; + const inbox = rootFolder.getFolderWithFlags(Ci.nsMsgFolderFlags.Inbox); + + document.getElementById("tabmail").currentAbout3Pane.displayFolder(inbox); + await TestUtils.waitForCondition( + () => inbox.numSubFolders == 3, + "waiting for all folders to appear" + ); + + function createFilter(sender, folder) { + const filter = filterList.createFilter(sender); + filter.enabled = true; + + const searchTerm = filter.createTerm(); + searchTerm.attrib = Ci.nsMsgSearchAttrib.Sender; + searchTerm.op = Ci.nsMsgSearchOp.Is; + + searchTerm.value = { + QueryInterface: ChromeUtils.generateQI(["nsIMsgSearchValue"]), + attrib: Ci.nsMsgSearchAttrib.Sender, + str: sender, + }; + + const action = filter.createAction(); + action.type = Ci.nsMsgFilterAction.MoveToFolder; + action.targetFolderUri = folder.URI; + + filter.appendTerm(searchTerm); + filter.appendAction(action); + filterList.insertFilterAt(0, filter); + } + + const filterList = account.incomingServer.getFilterList(null); + for (const colour of ["green", "blue", "red"]) { + const folder = inbox.getChildNamed(`${colour}Filter`); + Assert.ok(folder, `folder ${colour}Filter should exist`); + createFilter(`${colour}@test.invalid`, folder); + } + + const trash = await TestUtils.waitForCondition( + () => rootFolder.getFolderWithFlags(Ci.nsMsgFolderFlags.Trash), + "waiting for trash folder to exist" + ); + createFilter("spammer@test.invalid", trash); + + const alertsService = new MockObjectRegisterer( + "@mozilla.org/system-alerts-service;1", + MockAlertsService + ); + alertsService.register(); + + const generator = new MessageGenerator(); + + registerCleanupFunction(async function () { + await TestUtils.waitForCondition( + () => account.incomingServer.allConnectionsIdle, + "waiting for IMAP connection to become idle" + ); + + MailServices.accounts.removeAccount(localAccount, false); + MailServices.accounts.removeAccount(account, false); + alertsService.unregister(); + }); + + await server.addMessages( + inbox, + generator.makeMessages({ + count: 1, + from: ["spammer", "spammer@test.invalid"], + }) + ); + window.GetFolderMessages(); + // There should be no notification here. Wait a bit to be sure. + // eslint-disable-next-line mozilla/no-arbitrary-setTimeout + await new Promise(resolve => setTimeout(resolve, 500)); + Assert.equal( + trash.getNumNewMessages(false), + 1, + "trash should have one new message" + ); + Assert.ok(!MockAlertsService._alert, "there should be no notification"); + + for (const colour of ["red", "green", "blue", "green", "red"]) { + await server.addMessages( + inbox, + generator.makeMessages({ + count: 1, + from: [colour, `${colour}@test.invalid`], + }), + false + ); + window.GetFolderMessages(); + + const alert = await TestUtils.waitForCondition( + () => MockAlertsService._alert, + `waiting for a notification about folder ${colour}Filter` + ); + Assert.stringContains( + alert.text, + `from "${colour}"`, + `notification should be about a message from ${colour}@test.invalid` + ); + Assert.stringContains( + alert.cookie, + `INBOX/${colour}Filter`, + `notification should be about folder ${colour}Filter` + ); + + MockAlertsService._listener.observe(null, "alertfinished", alert.cookie); + delete MockAlertsService._alert; + delete MockAlertsService._listener; + } + + await server.addMessages( + inbox, + generator.makeMessages({ + count: 1, + from: ["spammer", "spammer@test.invalid"], + }) + ); + window.GetFolderMessages(); + // There should be no notification here. Wait a bit to be sure. + // eslint-disable-next-line mozilla/no-arbitrary-setTimeout + await new Promise(resolve => setTimeout(resolve, 500)); + Assert.equal( + trash.getNumNewMessages(false), + 1, + "trash should have one new message" + ); + Assert.equal( + trash.getNumUnread(false), + 2, + "trash should have two unread messages" + ); + Assert.ok(!MockAlertsService._alert, "there should be no notification"); +}); + +/** @implements {nsIAlertsService} */ +class MockAlertsService { + QueryInterface = ChromeUtils.generateQI(["nsIAlertsService"]); + + static _alert; + static _listener; + + showPersistentNotification(persistentData, alert) { + info(`showPersistentNotification: ${alert.text}`); + Assert.ok(false, "unexpected call to showPersistentNotification"); + } + + showAlert(alert, listener) { + info(`showAlert: ${alert.text}`); + Assert.ok( + !MockAlertsService._alert, + "showAlert should not be called while an alert is showing" + ); + MockAlertsService._alert = alert; + MockAlertsService._listener = listener; + } + + showAlertNotification(imageUrl, title, text) { + info(`showAlertNotification: ${text}`); + Assert.ok(false, "unexpected call to showAlertNotification"); + } + + closeAlert() { + Assert.ok(false, "unexpected call to closeAlert"); + } +} diff -Nru thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser_notification.js thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_notification.js --- thunderbird-128.5.0esr/comm/mail/test/browser/notification/browser_notification.js 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/test/browser/notification/browser_notification.js 2025-01-07 20:45:52.000000000 +0000 @@ -41,7 +41,18 @@ QueryInterface: ChromeUtils.generateQI(["nsIAlertsService"]), + promiseShown() { + this._shownDeferred = Promise.withResolvers(); + return this._shownDeferred.promise; + }, + + promiseClosed() { + this._closedDeferred = Promise.withResolvers(); + return this._closedDeferred.promise; + }, + showAlert(alertInfo, alertListener) { + info(`showAlert: ${alertInfo.name}`); const { imageURL, title, text, textClickable, cookie, name } = alertInfo; // Setting the _doFail flag allows us to revert to the newmailalert.xhtml // notification @@ -58,6 +69,9 @@ this._alertListener = alertListener; this._name = name; + this._alertListener.observe(null, "alertshow", alert.cookie); + this._shownDeferred?.resolve(); + this._shownDeferred = null; if (this._doClick) { // eslint-disable-next-line mozilla/no-arbitrary-setTimeout setTimeout( @@ -65,8 +79,15 @@ this._alertListener.observe(null, "alertclickcallback", this._cookie), 100 ); - } else { + } + }, + + closeAlert(name) { + info(`closeAlert: ${name}`); + if (name == this._name) { this._alertListener.observe(null, "alertfinished", this._cookie); + this._closedDeferred?.resolve(); + this._closedDeferred = null; } }, @@ -693,6 +714,27 @@ }); /** + * Test what happens when loading a message when there's a notification about + * it. The notification should be removed. + */ +add_task(async function test_load_message_closes_notification() { + gMockAlertsService._reset(); + + const shownPromise = gMockAlertsService.promiseShown(); + await make_gradually_newer_sets_in_folder([gFolder], [{ count: 1 }]); + await shownPromise; + + const closedPromise = gMockAlertsService.promiseClosed(); + + const tabmail = document.getElementById("tabmail"); + const about3Pane = tabmail.currentAbout3Pane; + about3Pane.restoreState({ folderURI: gFolder.URI, messagePaneVisible: true }); + about3Pane.threadTree.selectedIndex = 0; + + await closedPromise; +}); + +/** * Test that we revert to newmailalert.xhtml if there is no system notification * service present. * diff -Nru thunderbird-128.5.0esr/comm/mail/themes/shared/mail/threadCard.css thunderbird-128.6.0esr/comm/mail/themes/shared/mail/threadCard.css --- thunderbird-128.5.0esr/comm/mail/themes/shared/mail/threadCard.css 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mail/themes/shared/mail/threadCard.css 2025-01-07 20:45:52.000000000 +0000 @@ -354,7 +354,7 @@ gap: var(--thread-card-content-gap); padding: 0; margin: 0; - line-height: 1.3; + line-height: 1.5; position: relative; isolation: isolate; diff -Nru thunderbird-128.5.0esr/comm/mailnews/base/src/MailNotificationManager.sys.mjs thunderbird-128.6.0esr/comm/mailnews/base/src/MailNotificationManager.sys.mjs --- thunderbird-128.5.0esr/comm/mailnews/base/src/MailNotificationManager.sys.mjs 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/base/src/MailNotificationManager.sys.mjs 2025-01-07 20:45:52.000000000 +0000 @@ -31,8 +31,9 @@ this._systemAlertAvailable = true; this._unreadChatCount = 0; this._unreadMailCount = 0; - // @type {Map} - A map of folder and its last biff time. - this._folderBiffTime = new Map(); + // @type {Map} - A map of folder URIs and the date of the + // newest message a notification has been shown for. + this._folderNewestNotifiedTime = new Map(); // @type {Set} - A set of folders to show alert for. this._pendingFolders = new Set(); @@ -207,6 +208,7 @@ return; } this._showAlert(firstNewMsgHdr, title, body); + this._saveNotificationTime(folder, newMsgKeys); this._animateDockIcon(); } @@ -232,7 +234,7 @@ continue; } - if (folder.getNumNewMessages(false) > 0) { + if (this._getNewMsgKeysNotNotified(folder).length > 0) { return folder; } } @@ -404,27 +406,49 @@ args ); this._customizedAlertShown = true; - this._folderBiffTime.set(folder, Date.now()); + this._saveNotificationTime(folder, newMsgKeys); } /** - * Get all NEW messages from a folder that we received after last biff time. + * Get all NEW messages from a folder that are newer than the newest message + * in the folder we had a notification about. * * @param {nsIMsgFolder} folder - The message folder to check. - * @returns {number[]} An array of message keys. + * @returns {nsMsgKey[]} An array of message keys. */ _getNewMsgKeysNotNotified(folder) { + if (folder.getNumNewMessages(false) == 0) { + return []; + } + const msgDb = folder.msgDatabase; - const lastBiffTime = this._folderBiffTime.get(folder) || 0; + const newestNotifiedTime = + this._folderNewestNotifiedTime.get(folder.URI) || 0; return msgDb .getNewList() .slice(-folder.getNumNewMessages(false)) .filter(key => { const msgHdr = msgDb.getMsgHdrForKey(key); - return msgHdr.dateInSeconds * 1000 > lastBiffTime; + return msgHdr.dateInSeconds > newestNotifiedTime; }); } + /** + * Record the time of the newest new message in the folder, so that we never + * notify about it again. + * + * @param {nsIMsgFolder} folder + * @param {nsMsgKey[]} newMsgKeys - As returned by _getNewMsgKeysNotNotified. + */ + _saveNotificationTime(folder, newMsgKeys) { + let newestNotifiedTime = 0; + for (const msgKey of newMsgKeys) { + const msgHdr = folder.msgDatabase.getMsgHdrForKey(msgKey); + newestNotifiedTime = Math.max(newestNotifiedTime, msgHdr.dateInSeconds); + } + this._folderNewestNotifiedTime.set(folder.URI, newestNotifiedTime); + } + async _updateUnreadCount() { if (this._updatingUnreadCount) { // _updateUnreadCount can be triggered faster than we finish rendering the diff -Nru thunderbird-128.5.0esr/comm/mailnews/base/src/nsMsgAccountManager.cpp thunderbird-128.6.0esr/comm/mailnews/base/src/nsMsgAccountManager.cpp --- thunderbird-128.5.0esr/comm/mailnews/base/src/nsMsgAccountManager.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/base/src/nsMsgAccountManager.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -2721,6 +2721,13 @@ nsCOMPtr file; GetVirtualFoldersFile(file); if (!file) return NS_ERROR_FAILURE; + bool exists; + nsresult rv = file->Exists(&exists); + NS_ENSURE_SUCCESS(rv, rv); + if (!exists) { + m_virtualFoldersLoaded = true; + return NS_OK; + } if (m_virtualFoldersLoaded) return NS_OK; @@ -2730,7 +2737,7 @@ // Some may not have been created yet, which would break virtual folders // that depend on them. nsTArray> allServers; - nsresult rv = GetAllServers(allServers); + rv = GetAllServers(allServers); NS_ENSURE_SUCCESS(rv, rv); for (auto server : allServers) { if (server) { diff -Nru thunderbird-128.5.0esr/comm/mailnews/compose/public/nsIMsgComposeService.idl thunderbird-128.6.0esr/comm/mailnews/compose/public/nsIMsgComposeService.idl --- thunderbird-128.5.0esr/comm/mailnews/compose/public/nsIMsgComposeService.idl 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/compose/public/nsIMsgComposeService.idl 2025-01-07 20:45:52.000000000 +0000 @@ -90,10 +90,15 @@ [noscript] boolean determineComposeHTML(in nsIMsgIdentity aIdentity, in MSG_ComposeFormat aFormat); /** - * given a mailto url, parse the attributes and turn them into a nsIMsgComposeParams object - * @return nsIMsgComposeParams which corresponds to the passed in mailto url + * Given a mailto url and an optional identity, parse the attributes and turn + * them into a nsIMsgComposeParams object. + * + * @param aURI The mailto url to parse. + * @param aIdentity An optional identity to send the message from. + + * @return nsIMsgComposeParams which corresponds to the passed in data. */ - nsIMsgComposeParams getParamsForMailto(in nsIURI aURI); + nsIMsgComposeParams getParamsForMailto(in nsIURI aURI, [optional] in nsIMsgIdentity aIdentity); /** * @{ diff -Nru thunderbird-128.5.0esr/comm/mailnews/compose/src/nsMsgComposeService.cpp thunderbird-128.6.0esr/comm/mailnews/compose/src/nsMsgComposeService.cpp --- thunderbird-128.5.0esr/comm/mailnews/compose/src/nsMsgComposeService.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/compose/src/nsMsgComposeService.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -399,7 +399,7 @@ } NS_IMETHODIMP nsMsgComposeService::GetParamsForMailto( - nsIURI* aURI, nsIMsgComposeParams** aParams) { + nsIURI* aURI, nsIMsgIdentity* aIdentity, nsIMsgComposeParams** aParams) { nsresult rv = NS_OK; if (aURI) { nsCString spec; @@ -428,7 +428,8 @@ nsAutoString sanitizedBody; bool composeHTMLFormat; - DetermineComposeHTML(NULL, requestedComposeFormat, &composeHTMLFormat); + DetermineComposeHTML(aIdentity, requestedComposeFormat, + &composeHTMLFormat); // If there was an 'html-body' param, finding it will have requested // HTML format in GetMessageContents, so we try to use it first. If it's @@ -467,6 +468,9 @@ pMsgComposeParams->SetFormat(composeHTMLFormat ? nsIMsgCompFormat::HTML : nsIMsgCompFormat::PlainText); + if (aIdentity) { + pMsgComposeParams->SetIdentity(aIdentity); + } nsCOMPtr pMsgCompFields(do_CreateInstance( "@mozilla.org/messengercompose/composefields;1", &rv)); @@ -496,12 +500,10 @@ NS_IMETHODIMP nsMsgComposeService::OpenComposeWindowWithURI( const char* aMsgComposeWindowURL, nsIURI* aURI, nsIMsgIdentity* identity) { nsCOMPtr pMsgComposeParams; - nsresult rv = GetParamsForMailto(aURI, getter_AddRefs(pMsgComposeParams)); - if (NS_SUCCEEDED(rv)) { - pMsgComposeParams->SetIdentity(identity); - rv = OpenComposeWindowWithParams(aMsgComposeWindowURL, pMsgComposeParams); - } - return rv; + nsresult rv = + GetParamsForMailto(aURI, identity, getter_AddRefs(pMsgComposeParams)); + NS_ENSURE_SUCCESS(rv, rv); + return OpenComposeWindowWithParams(aMsgComposeWindowURL, pMsgComposeParams); } NS_IMETHODIMP nsMsgComposeService::InitCompose(nsIMsgComposeParams* aParams, diff -Nru thunderbird-128.5.0esr/comm/mailnews/db/msgdb/public/nsMsgDatabase.h thunderbird-128.6.0esr/comm/mailnews/db/msgdb/public/nsMsgDatabase.h --- thunderbird-128.5.0esr/comm/mailnews/db/msgdb/public/nsMsgDatabase.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/db/msgdb/public/nsMsgDatabase.h 2025-01-07 20:45:52.000000000 +0000 @@ -20,6 +20,7 @@ #include "nsCOMArray.h" #include "PLDHashTable.h" #include "nsTArray.h" +#include "nsTHashMap.h" #include "nsTObserverArray.h" #include "prtime.h" @@ -287,6 +288,7 @@ nsIMdbStore* m_mdbStore; nsIMdbTable* m_mdbAllMsgHeadersTable; nsIMdbTable* m_mdbAllThreadsTable; + nsTHashMap> m_mdbSearchResultsTables; // Used for asynchronous db opens. If non-null, we're still opening // the underlying mork database. If null, the db has been completely opened. diff -Nru thunderbird-128.5.0esr/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp --- thunderbird-128.5.0esr/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgDatabase.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -1000,6 +1000,7 @@ InvalidateEnumerators(); delete m_cachedHeaders; delete m_headersInUse; + m_mdbSearchResultsTables.Clear(); if (m_msgReferences) { delete m_msgReferences; @@ -5041,10 +5042,15 @@ nsMsgDatabase::HdrIsInCache(const nsACString& aSearchFolderUri, nsIMsgDBHdr* aHdr, bool* aResult) { NS_ENSURE_ARG_POINTER(aResult); - nsCOMPtr table; - nsresult err = - GetSearchResultsTable(aSearchFolderUri, true, getter_AddRefs(table)); - NS_ENSURE_SUCCESS(err, err); + nsresult err; + + RefPtr table; + if (!m_mdbSearchResultsTables.Get(aSearchFolderUri, &table)) { + err = GetSearchResultsTable(aSearchFolderUri, true, getter_AddRefs(table)); + NS_ENSURE_SUCCESS(err, err); + m_mdbSearchResultsTables.InsertOrUpdate(aSearchFolderUri, table); + } + nsMsgKey key; aHdr->GetMessageKey(&key); mdbOid rowObjectId; diff -Nru thunderbird-128.5.0esr/comm/mailnews/db/msgdb/src/nsMsgThread.cpp thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgThread.cpp --- thunderbird-128.5.0esr/comm/mailnews/db/msgdb/src/nsMsgThread.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/db/msgdb/src/nsMsgThread.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -100,7 +100,6 @@ if (hasNew) { nsTArray newKeys; m_mdbDB->GetNewList(newKeys); - newKeys.Sort(); for (uint32_t childIndex = 0; childIndex < m_numChildren; childIndex++) { nsMsgKey key; diff -Nru thunderbird-128.5.0esr/comm/mailnews/extensions/smime/nsMsgComposeSecure.cpp thunderbird-128.6.0esr/comm/mailnews/extensions/smime/nsMsgComposeSecure.cpp --- thunderbird-128.5.0esr/comm/mailnews/extensions/smime/nsMsgComposeSecure.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/extensions/smime/nsMsgComposeSecure.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -48,9 +48,9 @@ static void mime_crypto_write_base64(void* closure, const char* buf, unsigned long size); static nsresult mime_encoder_output_fn(const char* buf, int32_t size, - void* closure); + MimeClosure closure); static nsresult mime_nested_encoder_output_fn(const char* buf, int32_t size, - void* closure); + MimeClosure closure); static nsresult make_multipart_signed_header_string(bool outer_p, char** header_return, char** boundary_return, @@ -548,8 +548,9 @@ } // Initialize the base64 encoder - mCryptoEncoder.reset( - MimeEncoder::GetBase64Encoder(mime_encoder_output_fn, this)); + mCryptoEncoder.reset(MimeEncoder::GetBase64Encoder( + mime_encoder_output_fn, + MimeClosure(MimeClosure::isMsgComposeSecure, this))); /* Initialize the encrypter (and add the sender's cert.) */ PR_ASSERT(mSelfEncryptionCert); @@ -682,7 +683,8 @@ // Initialize the base64 encoder for the signature data. MOZ_ASSERT(!mSigEncoder, "Shouldn't already have a mSigEncoder"); mSigEncoder.reset(MimeEncoder::GetBase64Encoder( - (aOuter ? mime_encoder_output_fn : mime_nested_encoder_output_fn), this)); + (aOuter ? mime_encoder_output_fn : mime_nested_encoder_output_fn), + MimeClosure(MimeClosure::isMsgComposeSecure, this))); /* Write out the signature. */ @@ -1087,8 +1089,13 @@ base64-encoded representation of the signature to the file. */ // TODO: size should probably be converted to uint32_t -nsresult mime_encoder_output_fn(const char* buf, int32_t size, void* closure) { - nsMsgComposeSecure* state = (nsMsgComposeSecure*)closure; +nsresult mime_encoder_output_fn(const char* buf, int32_t size, + MimeClosure closure) { + nsMsgComposeSecure* state = closure.AsMsgComposeSecure(); + if (!state) { + return NS_ERROR_UNEXPECTED; + } + nsCOMPtr stream; state->GetOutputStream(getter_AddRefs(stream)); uint32_t n; @@ -1105,8 +1112,11 @@ directly to the file. */ static nsresult mime_nested_encoder_output_fn(const char* buf, int32_t size, - void* closure) { - nsMsgComposeSecure* state = (nsMsgComposeSecure*)closure; + MimeClosure closure) { + nsMsgComposeSecure* state = closure.AsMsgComposeSecure(); + if (!state) { + return NS_ERROR_FAILURE; + } // Copy to new null-terminated string so JS glue doesn't crash when // MimeCryptoWriteBlock() is implemented in JS. diff -Nru thunderbird-128.5.0esr/comm/mailnews/local/src/Pop3Client.sys.mjs thunderbird-128.6.0esr/comm/mailnews/local/src/Pop3Client.sys.mjs --- thunderbird-128.5.0esr/comm/mailnews/local/src/Pop3Client.sys.mjs 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/local/src/Pop3Client.sys.mjs 2025-01-07 20:45:52.000000000 +0000 @@ -842,6 +842,9 @@ if (this._nextAuthMethod) { // Try the next auth method. + this._logger.debug( + `AUTH ${this._currentAuthMethod} failed. Trying AUTH ${this._nextAuthMethod} next` + ); this._actionAuth(); return; } @@ -909,36 +912,90 @@ }; /** - * The second step of PLAIN auth, send the auth token to the server. + * This is the second step of PLAIN auth. Handle response to AUTH PLAIN + * command. */ _actionAuthPlain = async res => { if (!res.success) { - this._actionError("pop3UsernameFailure", [], res.statusText); + // Command "AUTH PLAIN" failed. If there is another auth mechanism, just + // log the failure and try the next mechanism. + if (this._nextAuthMethod) { + this._logger.debug( + `AUTH PLAIN failed. Trying AUTH ${this._nextAuthMethod} next` + ); + this._actionAuth(); + } else { + // There are no more auth mechanisms, produce a notification to the user + // that we are unable to authenticate (which also gets logged). + // FIXME: Need a new error string here indicating AUTH PLAIN command + // failed. Currently this says sending username failed but username was + // never sent. + this._actionError("pop3UsernameFailure", [], res.statusText); + } return; } + // AUTH PLAIN command succeeded. Obtain and send the plain auth token to the + // server. this._nextAction = this._actionAuthResponse; await this._send(await this._authenticator.getPlainToken(), true); }; /** - * The second step of LOGIN auth, send the username to the server. + * This is the second step of LOGIN auth. Handle response to AUTH LOGIN + * command. */ - _actionAuthLoginUser = async () => { + _actionAuthLoginUser = async res => { + if (!res.success) { + // Command "AUTH LOGIN" failed. If there is another auth mechanism, just + // log the failure and try the next mechanism. + if (this._nextAuthMethod) { + this._logger.debug( + `AUTH LOGIN failed, Trying AUTH ${this._nextAuthMethod} next` + ); + this._actionAuth(); + } else { + // There are no more auth mechanisms, produce a notification to the user + // that we are unable to authenticate (which also gets logged). + // FIXME: Need new error string here indicating AUTH LOGIN command + // failed. Currently this says sending username failed but username was + // never sent. + this._actionError("pop3UsernameFailure", [], res.statusText); + } + return; + } + // AUTH LOGIN command succeeded. Send the base64 username to the server. + // Note: The res.statusText here will be base64 "Username:" and is not + // verified. this._nextAction = this._actionAuthLoginPass; - this._logger.debug("AUTH LOGIN USER"); + this._logger.debug("Sending username for AUTH LOGIN"); await this._send(btoa(this._authenticator.username), true); }; /** - * The third step of LOGIN auth, send the password to the server. + * This is the third step of LOGIN auth. Handle the response to send of + * username for LOGIN. */ _actionAuthLoginPass = async res => { if (!res.success) { - this._actionError("pop3UsernameFailure", [], res.statusText); + // AUTH LOGIN username failed. If there is another auth mechanism, just + // log the failure and try the next mechanism. + if (this._nextAuthMethod) { + this._logger.debug( + `AUTH LOGIN username failed. Trying AUTH ${this._nextAuthMethod} next` + ); + this._actionAuth(); + } else { + // There are no more auth mechanisms, produce a notification to the user + // that we are unable to authenticate (which also gets logged). + this._actionError("pop3UsernameFailure", [], res.statusText); + } return; } + // Send of username for AUTH LOGIN succeeded. Send the base64 password to + // the server. Note: The res.statusText here will be base64 "Password:" + // and is not verified. this._nextAction = this._actionAuthResponse; - this._logger.debug("AUTH LOGIN PASS"); + this._logger.debug("Sending password for AUTH LOGIN"); let password = await this._authenticator.getPassword(); if ( !Services.prefs.getBoolPref( @@ -947,9 +1004,9 @@ ) || !/^[\x00-\xFF]+$/.test(password) // eslint-disable-line no-control-regex ) { - // Unlike PLAIN auth, the payload of LOGIN auth is not standardized. When - // `mail.smtp_login_pop3_user_pass_auth_is_latin1` is true, we apply - // base64 encoding directly. Otherwise, we convert it to UTF-8 + // Unlike PLAIN auth, the payload of LOGIN auth is not standardized. + // When `mail.smtp_login_pop3_user_pass_auth_is_latin1` is true, we + // apply base64 encoding directly. Otherwise, we convert it to UTF-8 // BinaryString first, to make it work with btoa(). password = MailStringUtils.stringToByteString(password); } diff -Nru thunderbird-128.5.0esr/comm/mailnews/local/src/nsLocalUndoTxn.cpp thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.cpp --- thunderbird-128.5.0esr/comm/mailnews/local/src/nsLocalUndoTxn.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -20,8 +20,7 @@ NS_IMPL_ISUPPORTS_INHERITED(nsLocalMoveCopyMsgTxn, nsMsgTxn, nsIFolderListener) -nsLocalMoveCopyMsgTxn::nsLocalMoveCopyMsgTxn() - : m_srcIsImap4(false), m_canUndelete(false) {} +nsLocalMoveCopyMsgTxn::nsLocalMoveCopyMsgTxn() : m_srcIsImap4(false) {} nsLocalMoveCopyMsgTxn::~nsLocalMoveCopyMsgTxn() {} @@ -185,43 +184,6 @@ CheckForToggleDelete(srcFolder, m_srcKeyArray[0], &deleteFlag); // there could have been a toggle. rv = UndoImapDeleteFlag(srcFolder, m_srcKeyArray, deleteFlag); - } else if (m_canUndelete) { - nsTArray> srcMessages(count); - nsTArray> destMessages(count); - - for (i = 0; i < count; i++) { - nsCOMPtr oldHdr; - rv = dstDB->GetMsgHdrForKey(m_dstKeyArray[i], getter_AddRefs(oldHdr)); - NS_ASSERTION(oldHdr, "fatal ... cannot get old msg header"); - if (NS_SUCCEEDED(rv) && oldHdr) { - nsCOMPtr newHdr; - rv = srcDB->CopyHdrFromExistingHdr(m_srcKeyArray[i], oldHdr, true, - getter_AddRefs(newHdr)); - NS_ASSERTION(newHdr, "fatal ... cannot create new msg header"); - if (NS_SUCCEEDED(rv) && newHdr) { - srcDB->UndoDelete(newHdr); - srcMessages.AppendElement(newHdr); - // (we want to keep these two lists in sync) - destMessages.AppendElement(oldHdr); - } - } - } - - nsCOMPtr notifier( - do_GetService("@mozilla.org/messenger/msgnotificationservice;1")); - if (notifier) { - // Remember that we're actually moving things back from the destination - // to the source! - notifier->NotifyMsgsMoveCopyCompleted(true, destMessages, srcFolder, - srcMessages); - } - - nsCOMPtr localFolder = - do_QueryInterface(srcFolder); - if (localFolder) { - localFolder->MarkMsgsOnPop3Server(srcMessages, - POP3_NONE /*deleteMsgs*/); - } } else // undoing a move means moving the messages back. { nsTArray> dstMessages(m_dstKeyArray.Length()); @@ -279,75 +241,24 @@ rv = dstFolder->GetMsgDatabase(getter_AddRefs(dstDB)); if (NS_FAILED(rv)) return rv; - uint32_t count = m_srcKeyArray.Length(); - uint32_t i; - nsCOMPtr oldHdr; - nsCOMPtr newHdr; - nsTArray> srcMessages(m_srcKeyArray.Length()); - for (i = 0; i < count; i++) { - rv = srcDB->GetMsgHdrForKey(m_srcKeyArray[i], getter_AddRefs(oldHdr)); - NS_ASSERTION(oldHdr, "fatal ... cannot get old msg header"); - - if (NS_SUCCEEDED(rv) && oldHdr) { - srcMessages.AppendElement(oldHdr); - - if (m_canUndelete) { - rv = dstDB->CopyHdrFromExistingHdr(m_dstKeyArray[i], oldHdr, true, - getter_AddRefs(newHdr)); - NS_ASSERTION(newHdr, "fatal ... cannot get new msg header"); - if (NS_SUCCEEDED(rv) && newHdr) { - if (i < m_dstSizeArray.Length()) - rv = newHdr->SetMessageSize(m_dstSizeArray[i]); - dstDB->UndoDelete(newHdr); - } - } - } - } - dstDB->SetSummaryValid(true); - - if (m_isMove) { - if (m_srcIsImap4) { - // protect against a bogus undo txn without any source keys - // see bug #179856 for details - NS_ASSERTION(!m_srcKeyArray.IsEmpty(), "no source keys"); - if (m_srcKeyArray.IsEmpty()) return NS_ERROR_UNEXPECTED; - - bool deleteFlag = false; // message is un-deleted- we are trying to redo - CheckForToggleDelete(srcFolder, m_srcKeyArray[0], - &deleteFlag); // there could have been a toggle - rv = UndoImapDeleteFlag(srcFolder, m_srcKeyArray, deleteFlag); - } else if (m_canUndelete) { - nsCOMPtr localFolder = - do_QueryInterface(srcFolder); - if (localFolder) { - localFolder->MarkMsgsOnPop3Server(srcMessages, - POP3_DELETE /*deleteMsgs*/); - } - - rv = srcDB->DeleteMessages(m_srcKeyArray, nullptr); - srcDB->SetSummaryValid(true); - } else { - nsCOMPtr srcHdr; - m_numHdrsCopied = 0; - m_dstKeyArray.Clear(); - for (i = 0; i < count; i++) { - srcDB->GetMsgHdrForKey(m_srcKeyArray[i], getter_AddRefs(srcHdr)); - NS_ASSERTION(srcHdr, "fatal ... cannot get old msg header"); - if (srcHdr) { - nsCString messageId; - srcHdr->GetMessageId(messageId); - m_copiedMsgIds.AppendElement(messageId); - } - } - dstFolder->AddFolderListener(this); - m_undoing = false; - return dstFolder->CopyMessages(srcFolder, srcMessages, true, nullptr, - nullptr, false, false); + nsCOMPtr srcHdr; + m_numHdrsCopied = 0; + m_dstKeyArray.Clear(); + for (nsMsgKey srcKey : m_srcKeyArray) { + rv = srcDB->GetMsgHdrForKey(srcKey, getter_AddRefs(srcHdr)); + NS_ASSERTION(srcHdr, "fatal ... cannot get old msg header"); + if (NS_SUCCEEDED(rv) && srcHdr) { + srcMessages.AppendElement(srcHdr); + nsCString messageId; + srcHdr->GetMessageId(messageId); + m_copiedMsgIds.AppendElement(messageId); } } - - return rv; + dstFolder->AddFolderListener(this); + m_undoing = false; + return dstFolder->CopyMessages(srcFolder, srcMessages, m_isMove, nullptr, + nullptr, false, false); } NS_IMETHODIMP nsLocalMoveCopyMsgTxn::OnFolderAdded(nsIMsgFolder* parent, diff -Nru thunderbird-128.5.0esr/comm/mailnews/local/src/nsLocalUndoTxn.h thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.h --- thunderbird-128.5.0esr/comm/mailnews/local/src/nsLocalUndoTxn.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/local/src/nsLocalUndoTxn.h 2025-01-07 20:45:52.000000000 +0000 @@ -36,12 +36,6 @@ nsresult UndoImapDeleteFlag(nsIMsgFolder* aFolder, nsTArray& aKeyArray, bool deleteFlag); nsresult UndoTransactionInternal(); - // If the store using this undo transaction can "undelete" a message, - // it will call this function on the transaction; This makes undo/redo - // easy because message keys don't change after undo/redo. Otherwise, - // we need to adjust the src or dst keys after every undo/redo action - // to note the new keys. - void SetCanUndelete(bool canUndelete) { m_canUndelete = canUndelete; } private: virtual ~nsLocalMoveCopyMsgTxn(); @@ -51,7 +45,6 @@ nsTArray m_dstKeyArray; bool m_isMove; bool m_srcIsImap4; - bool m_canUndelete; nsTArray m_dstSizeArray; bool m_undoing; // if false, re-doing uint32_t m_numHdrsCopied; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -19,6 +19,7 @@ #include "nsNetUtil.h" #include "mimemoz2.h" +#include "mime_closure.h" #include "nspr.h" #include "plstr.h" #include "nsIPgpMimeProxy.h" @@ -60,13 +61,14 @@ return objClass; } -static void* MimePgpe_init(MimeObject*, - int (*output_fn)(const char*, int32_t, void*), - void*); -static int MimePgpe_write(const char*, int32_t, void*); -static int MimePgpe_eof(void*, bool); -static char* MimePgpe_generate(void*); -static void MimePgpe_free(void*); +static MimeClosure MimePgpe_init(MimeObject*, + int (*output_fn)(const char*, int32_t, int32_t, + void*), + MimeClosure); +static int MimePgpe_write(const char*, int32_t, MimeClosure); +static int MimePgpe_eof(MimeClosure, bool); +static char* MimePgpe_generate(MimeClosure); +static void MimePgpe_free(MimeClosure); /* Returns a string describing the location of the part (like "2.5.3"). This is not a full URL, just a part-number. @@ -114,13 +116,17 @@ public: NS_DECL_ISUPPORTS - int (*output_fn)(const char* buf, int32_t buf_size, void* output_closure); - void* output_closure; + int (*output_fn)(const char* buf, int32_t buf_size, + int32_t output_closure_type, void* output_closure); + MimeClosure output_closure; MimeObject* self; nsCOMPtr mimeDecrypt; - MimePgpeData() : output_fn(nullptr), output_closure(nullptr), self(nullptr) {} + MimePgpeData() + : output_fn(nullptr), + output_closure(MimeClosure::zero()), + self(nullptr) {} private: virtual ~MimePgpeData() {} @@ -128,14 +134,16 @@ NS_IMPL_ISUPPORTS0(MimePgpeData) -static void* MimePgpe_init(MimeObject* obj, - int (*output_fn)(const char* buf, int32_t buf_size, - void* output_closure), - void* output_closure) { - if (!(obj && obj->options && output_fn)) return nullptr; +static MimeClosure MimePgpe_init(MimeObject* obj, + int (*output_fn)(const char* buf, + int32_t buf_size, + int32_t output_closure_type, + void* output_closure), + MimeClosure output_closure) { + if (!(obj && obj->options && output_fn)) return MimeClosure::zero(); MimePgpeData* data = new MimePgpeData(); - NS_ENSURE_TRUE(data, nullptr); + NS_ENSURE_TRUE(data, MimeClosure::zero()); data->self = obj; data->output_fn = output_fn; @@ -145,7 +153,7 @@ // Create proxy object. nsresult rv; data->mimeDecrypt = do_CreateInstance(NS_PGPMIMEPROXY_CONTRACTID, &rv); - if (NS_FAILED(rv)) return data; + if (NS_FAILED(rv)) return MimeClosure(MimeClosure::isMimePgpeData, data); char* ct = MimeHeaders_get(obj->headers, HEADER_CONTENT_TYPE, false, false); @@ -154,12 +162,12 @@ PR_Free(ct); - if (NS_FAILED(rv)) return nullptr; + if (NS_FAILED(rv)) return MimeClosure::zero(); nsCString mimePart = determineMimePart(obj); rv = data->mimeDecrypt->SetMimePart(mimePart); - if (NS_FAILED(rv)) return nullptr; + if (NS_FAILED(rv)) return MimeClosure::zero(); if (mimePart.EqualsLiteral("1.1") && obj->parent && obj->parent->content_type && @@ -176,14 +184,19 @@ data->mimeDecrypt->SetAllowNestedDecrypt(true); } - mime_stream_data* msd = - (mime_stream_data*)(data->self->options->stream_closure); - nsIChannel* channel = msd->channel; nsCOMPtr uri; nsCOMPtr mailChannel; - if (channel) { - channel->GetURI(getter_AddRefs(uri)); - mailChannel = do_QueryInterface(channel); + + mime_stream_data* msd = + data->self->options->stream_closure.IsMimeDraftData() + ? nullptr + : data->self->options->stream_closure.AsMimeStreamData(); + if (msd) { + nsIChannel* channel = msd->channel; + if (channel) { + channel->GetURI(getter_AddRefs(uri)); + mailChannel = do_QueryInterface(channel); + } } if (!uri && obj && obj->options && obj->options->url) { @@ -194,28 +207,43 @@ } // Initialise proxy object with MIME's output function, object and URI. - if (NS_FAILED(data->mimeDecrypt->SetMimeCallback(output_fn, output_closure, - uri, mailChannel))) - return nullptr; + if (NS_FAILED(data->mimeDecrypt->SetMimeCallback( + output_fn, output_closure.mType, output_closure.mClosure, uri, + mailChannel))) + return MimeClosure::zero(); - return data; + return MimeClosure(MimeClosure::isMimePgpeData, data); } static int MimePgpe_write(const char* buf, int32_t buf_size, - void* output_closure) { - MimePgpeData* data = (MimePgpeData*)output_closure; + MimeClosure output_closure) { + if (!output_closure) { + return -1; + } + + MimePgpeData* data = output_closure.AsMimePgpeData(); + if (!data) { + return -1; + } - if (!data || !data->output_fn) return -1; + if (!data->output_fn) return -1; if (!data->mimeDecrypt) return 0; return (NS_SUCCEEDED(data->mimeDecrypt->Write(buf, buf_size)) ? 0 : -1); } -static int MimePgpe_eof(void* output_closure, bool abort_p) { - MimePgpeData* data = (MimePgpeData*)output_closure; +static int MimePgpe_eof(MimeClosure output_closure, bool abort_p) { + if (!output_closure) { + return -1; + } + + MimePgpeData* data = output_closure.AsMimePgpeData(); + if (!data) { + return -1; + } - if (!data || !data->output_fn) return -1; + if (!data->output_fn) return -1; if (NS_FAILED(data->mimeDecrypt->Finish())) return -1; @@ -224,7 +252,7 @@ return 0; } -static char* MimePgpe_generate(void* output_closure) { +static char* MimePgpe_generate(MimeClosure output_closure) { const char htmlMsg[] = "GEN MSG"; char* msg = (char*)PR_MALLOC(strlen(htmlMsg) + 1); if (msg) PL_strcpy(msg, htmlMsg); @@ -232,8 +260,12 @@ return msg; } -static void MimePgpe_free(void* output_closure) { - MimePgpeData* data = (MimePgpeData*)output_closure; +static void MimePgpe_free(MimeClosure output_closure) { + MimePgpeData* data = output_closure.AsMimePgpeData(); + if (!data) { + return; + } + if (data->mimeDecrypt) { data->mimeDecrypt->RemoveMimeCallback(); data->mimeDecrypt = nullptr; @@ -280,7 +312,7 @@ mOutputWasRemoved(false), #endif mOutputFun(nullptr), - mOutputClosure(nullptr), + mOutputClosure(MimeClosure::zero()), mLoadFlags(LOAD_NORMAL), mCancelStatus(NS_OK), mStreamOffset(0), @@ -293,12 +325,13 @@ NS_IMETHODIMP nsPgpMimeProxy::SetMimeCallback(MimeDecodeCallbackFun outputFun, - void* outputClosure, nsIURI* myUri, - nsIMailChannel* mailChannel) { + int32_t outputClosureType, void* outputClosure, + nsIURI* myUri, nsIMailChannel* mailChannel) { if (!outputFun || !outputClosure) return NS_ERROR_NULL_POINTER; mOutputFun = outputFun; - mOutputClosure = outputClosure; + mOutputClosure = + MimeClosure((MimeClosure::ClosureType)outputClosureType, outputClosure); mInitialized = true; mMessageURI = myUri; mMailChannel = mailChannel; @@ -314,7 +347,7 @@ NS_IMETHODIMP nsPgpMimeProxy::RemoveMimeCallback() { mOutputFun = nullptr; - mOutputClosure = nullptr; + mOutputClosure = MimeClosure::zero(); #ifdef DEBUG mOutputWasRemoved = true; #endif @@ -373,7 +406,8 @@ "
\r\n"); PR_SetError(0, 0); - int status = mOutputFun(temp.get(), temp.Length(), mOutputClosure); + int status = mOutputFun(temp.get(), temp.Length(), mOutputClosure.mType, + mOutputClosure.mClosure); if (status < 0) { PR_SetError(status, 0); mOutputFun = nullptr; @@ -460,7 +494,8 @@ if (!mOutputFun) return NS_ERROR_FAILURE; - int status = mOutputFun(buf, buf_size, mOutputClosure); + int status = + mOutputFun(buf, buf_size, mOutputClosure.mType, mOutputClosure.mClosure); if (status < 0) { PR_SetError(status, 0); mOutputFun = nullptr; @@ -669,7 +704,8 @@ rv = aInputStream->Read((char*)buf, readMax, &readCount); NS_ENSURE_SUCCESS(rv, rv); - int status = mOutputFun(buf, readCount, mOutputClosure); + int status = mOutputFun(buf, readCount, mOutputClosure.mType, + mOutputClosure.mClosure); if (status < 0) { PR_SetError(status, 0); mOutputFun = nullptr; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.h thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.h --- thunderbird-128.5.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/cthandlers/pgpmime/nsPgpMimeProxy.h 2025-01-07 20:45:52.000000000 +0000 @@ -6,6 +6,7 @@ #define _nsPgpmimeDecrypt_h_ #include "mimecryp.h" +#include "mime_closure.h" #include "nsIPgpMimeProxy.h" #include "nsCOMPtr.h" #include "nsIStreamListener.h" @@ -52,7 +53,7 @@ PRBool mOutputWasRemoved; #endif MimeDecodeCallbackFun mOutputFun; - void* mOutputClosure; + MimeClosure mOutputClosure; nsCOMPtr mLoadGroup; nsLoadFlags mLoadFlags; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/public/MimeEncoder.h thunderbird-128.6.0esr/comm/mailnews/mime/public/MimeEncoder.h --- thunderbird-128.5.0esr/comm/mailnews/mime/public/MimeEncoder.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/public/MimeEncoder.h 2025-01-07 20:45:52.000000000 +0000 @@ -8,6 +8,7 @@ #define MimeEncoder_h__ #include "nscore.h" +#include "mime_closure.h" namespace mozilla { namespace mailnews { @@ -19,7 +20,7 @@ /// A callback for writing the encoded output typedef nsresult (*OutputCallback)(const char* buf, int32_t size, - void* closure); + MimeClosure closure); /// Encodes the string in the buffer and sends it to the callback virtual nsresult Write(const char* buffer, int32_t size) = 0; @@ -27,14 +28,16 @@ virtual nsresult Flush() { return NS_OK; } /// Get an encoder that outputs Base64-encoded data - static MimeEncoder* GetBase64Encoder(OutputCallback callback, void* closure); + static MimeEncoder* GetBase64Encoder(OutputCallback callback, + MimeClosure closure); /// Get an encoder that outputs quoted-printable data - static MimeEncoder* GetQPEncoder(OutputCallback callback, void* closure); + static MimeEncoder* GetQPEncoder(OutputCallback callback, + MimeClosure closure); protected: - MimeEncoder(OutputCallback callback, void* closure); + MimeEncoder(OutputCallback callback, MimeClosure closure); OutputCallback mCallback; - void* mClosure; + MimeClosure mClosure; uint32_t mCurrentColumn; }; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/public/nsIPgpMimeProxy.idl thunderbird-128.6.0esr/comm/mailnews/mime/public/nsIPgpMimeProxy.idl --- thunderbird-128.5.0esr/comm/mailnews/mime/public/nsIPgpMimeProxy.idl 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/public/nsIPgpMimeProxy.idl 2025-01-07 20:45:52.000000000 +0000 @@ -7,7 +7,7 @@ #include "nsIURI.idl" %{C++ -typedef int (*MimeDecodeCallbackFun)(const char *buf, int32_t buf_size, void *output_closure); +typedef int (*MimeDecodeCallbackFun)(const char *buf, int32_t buf_size, int output_closure_type, void *output_closure); #define NS_PGPMIMEPROXY_CLASSNAME "PGP/Mime Decryption" #define NS_PGPMIMEPROXY_CONTRACTID "@mozilla.org/mime/pgp-mime-decrypt;1" @@ -31,6 +31,7 @@ * set the decoder callback into mimelib */ [noscript] void setMimeCallback(in MimeDecodeCallbackFun outputFun, + in int32_t outputClosureType, in voidPtr outputClosure, in nsIURI myUri, in nsIMailChannel mailChannel); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mime_closure.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mime_closure.cpp 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -0,0 +1,68 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ + +#include "mime_closure.h" +#include "prlog.h" + +MimeObject* MimeClosure::AsMimeObject() { + PR_ASSERT(mType == isMimeObject); + return (mType == isMimeObject) ? static_cast(mClosure) : nullptr; +} + +mime_stream_data* MimeClosure::AsMimeStreamData() { + PR_ASSERT(mType == isMimeStreamData); + return (mType == isMimeStreamData) ? static_cast(mClosure) + : nullptr; +} + +MimeCMSdata* MimeClosure::AsMimeCMSData() { + PR_ASSERT(mType == isMimeCMSData); + return (mType == isMimeCMSData) ? static_cast(mClosure) + : nullptr; +} + +MimeMultCMSdata* MimeClosure::AsMimeMultCMSData() { + PR_ASSERT(mType == isMimeMultCMSData); + return (mType == isMimeMultCMSData) ? static_cast(mClosure) + : nullptr; +} + +MimePgpeData* MimeClosure::AsMimePgpeData() { + PR_ASSERT(mType == isMimePgpeData); + return (mType == isMimePgpeData) ? static_cast(mClosure) + : nullptr; +} + +mime_draft_data* MimeClosure::AsMimeDraftData() { + PR_ASSERT(mType == isMimeDraftData); + return (mType == isMimeDraftData) ? static_cast(mClosure) + : nullptr; +} + +MimeMultipartRelated* MimeClosure::AsMimeMultipartRelated() { + PR_ASSERT(mType == isMimeMultipartRelated); + return (mType == isMimeMultipartRelated) + ? static_cast(mClosure) + : nullptr; +} + +nsMsgComposeSecure* MimeClosure::AsMsgComposeSecure() { + PR_ASSERT(mType == isMsgComposeSecure); + return (mType == isMsgComposeSecure) + ? static_cast(mClosure) + : nullptr; +} + +mime_image_stream_data* MimeClosure::AsMimeImageStreamData() { + PR_ASSERT(mType == isMimeImageStreamData); + return (mType == isMimeImageStreamData) + ? static_cast(mClosure) + : nullptr; +} + +MimeMessage* MimeClosure::AsMimeMessage() { + PR_ASSERT(mType == isMimeMessage); + return (mType == isMimeMessage) ? static_cast(mClosure) + : nullptr; +} diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mime_closure.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mime_closure.h 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mime_closure.h 2025-01-07 20:45:52.000000000 +0000 @@ -0,0 +1,74 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef _MIME_CLOSURE_H_ +#define _MIME_CLOSURE_H_ + +struct MimeObject; +class mime_stream_data; +struct MimeCMSdata; +struct MimeMultCMSdata; +class MimePgpeData; +class mime_draft_data; +struct MimeMultipartRelated; +class nsMsgComposeSecure; +class mime_image_stream_data; +struct MimeMessage; + +class MimeClosure { + // MimeClosure is a helper class to make it safer to pass the various mime + // data objects through callbacks without relying on void* and risky casting. + // The basic idea is that attempts to pull out the wrong kind of pointer will + // assert on debug builds and produce a null pointer on release builds.class + // MimeClosure { + public: + enum ClosureType { + isUndefined = 0, + isMimeObject = 1, + isMimeStreamData, + isMimeCMSData, + isMimeMultCMSData, + isMimePgpeData, + isMimeDraftData, + isMimeMultipartRelated, + isMsgComposeSecure, + isMimeImageStreamData, + isMimeMessage, + }; + + MimeObject* AsMimeObject(); + mime_stream_data* AsMimeStreamData(); + MimeCMSdata* AsMimeCMSData(); + MimeMultCMSdata* AsMimeMultCMSData(); + MimePgpeData* AsMimePgpeData(); + mime_draft_data* AsMimeDraftData(); + MimeMultipartRelated* AsMimeMultipartRelated(); + nsMsgComposeSecure* AsMsgComposeSecure(); + mime_image_stream_data* AsMimeImageStreamData(); + MimeMessage* AsMimeMessage(); + + bool IsMimeDraftData() { return mType == isMimeDraftData; } + + MimeClosure() : mType(isUndefined), mClosure(nullptr) {} + MimeClosure(ClosureType t, void* c) : mType(t), mClosure(c) {} + + static MimeClosure zero() { return MimeClosure(); } + + MimeClosure& operator=(const MimeClosure& other) { + if (this == &other) return *this; + + mType = other.mType; + mClosure = other.mClosure; + return *this; + } + + // explicit: the bool value cannot get implicitly converted to + // integer or pointer. + explicit operator bool() const { return mClosure != nullptr; } + + ClosureType mType; + void* mClosure; +}; + +#endif diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimebuf.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimebuf.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -19,6 +19,7 @@ #include "prlog.h" #include "msgCore.h" #include "nsMimeStringResources.h" +#include "mimeobj.h" extern "C" int mime_GrowBuffer(uint32_t desired_size, uint32_t element_size, uint32_t quantum, char** buffer, int32_t* size) { @@ -40,51 +41,12 @@ return 0; } -/* The opposite of mime_LineBuffer(): takes small buffers and packs them - up into bigger buffers before passing them along. - - Pass in a desired_buffer_size 0 to tell it to flush (for example, in - in the very last call to this function.) - */ -extern "C" int mime_ReBuffer(const char* net_buffer, int32_t net_buffer_size, - uint32_t desired_buffer_size, char** bufferP, - int32_t* buffer_sizeP, uint32_t* buffer_fpP, - int32_t (*per_buffer_fn)(char* buffer, - uint32_t buffer_size, - void* closure), - void* closure) { - int status = 0; - - if (desired_buffer_size >= (uint32_t)(*buffer_sizeP)) { - status = mime_GrowBuffer(desired_buffer_size, sizeof(char), 1024, bufferP, - buffer_sizeP); - if (status < 0) return status; - } - - do { - int32_t size = *buffer_sizeP - *buffer_fpP; - if (size > net_buffer_size) size = net_buffer_size; - if (size > 0) { - memcpy((*bufferP) + (*buffer_fpP), net_buffer, size); - (*buffer_fpP) += size; - net_buffer += size; - net_buffer_size -= size; - } - - if (*buffer_fpP > 0 && *buffer_fpP >= desired_buffer_size) { - status = (*per_buffer_fn)((*bufferP), (*buffer_fpP), closure); - *buffer_fpP = 0; - if (status < 0) return status; - } - } while (net_buffer_size > 0); - - return 0; -} - -static int convert_and_send_buffer( - char* buf, int length, bool convert_newlines_p, - int32_t (*per_line_fn)(char* line, uint32_t line_length, void* closure), - void* closure) { +static int convert_and_send_buffer(char* buf, int length, + bool convert_newlines_p, + int32_t (*per_line_fn)(const char* line, + int32_t line_length, + MimeObject* closure), + MimeObject* closure) { /* Convert the line terminator to the native form. */ char* newline; @@ -132,11 +94,13 @@ return (*per_line_fn)(buf, length, closure); } -extern "C" int mime_LineBuffer( - const char* net_buffer, int32_t net_buffer_size, char** bufferP, - int32_t* buffer_sizeP, uint32_t* buffer_fpP, bool convert_newlines_p, - int32_t (*per_line_fn)(char* line, uint32_t line_length, void* closure), - void* closure) { +extern "C" int mime_LineBuffer(const char* net_buffer, int32_t net_buffer_size, + char** bufferP, int32_t* buffer_sizeP, + uint32_t* buffer_fpP, bool convert_newlines_p, + int32_t (*per_line_fn)(const char* line, + int32_t line_length, + MimeObject* closure), + MimeObject* closure) { int status = 0; if (*buffer_fpP > 0 && *bufferP && (*buffer_fpP < (uint32_t)*buffer_sizeP) && (*bufferP)[*buffer_fpP - 1] == '\r' && net_buffer_size > 0 && diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimebuf.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimebuf.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimebuf.h 2025-01-07 20:45:52.000000000 +0000 @@ -20,18 +20,12 @@ extern "C" int mime_GrowBuffer(uint32_t desired_size, uint32_t element_size, uint32_t quantum, char** buffer, int32_t* size); -extern "C" int mime_LineBuffer( - const char* net_buffer, int32_t net_buffer_size, char** bufferP, - int32_t* buffer_sizeP, int32_t* buffer_fpP, bool convert_newlines_p, - int32_t (*per_line_fn)(char* line, int32_t line_length, void* closure), - void* closure); - -extern "C" int mime_ReBuffer(const char* net_buffer, int32_t net_buffer_size, - uint32_t desired_buffer_size, char** bufferP, - uint32_t* buffer_sizeP, uint32_t* buffer_fpP, - int32_t (*per_buffer_fn)(char* buffer, - uint32_t buffer_size, - void* closure), - void* closure); +extern "C" int mime_LineBuffer(const char* net_buffer, int32_t net_buffer_size, + char** bufferP, int32_t* buffer_sizeP, + int32_t* buffer_fpP, bool convert_newlines_p, + int32_t (*per_line_fn)(const char* line, + int32_t line_length, + MimeObject* closure), + MimeObject* closure); #endif /* _MIMEBUF_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecms.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecms.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecms.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecms.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -33,12 +33,14 @@ MimeDefClass(MimeEncryptedCMS, MimeEncryptedCMSClass, mimeEncryptedCMSClass, &MIME_SUPERCLASS); -static void* MimeCMS_init(MimeObject*, - int (*output_fn)(const char*, int32_t, void*), void*); -static int MimeCMS_write(const char*, int32_t, void*); -static int MimeCMS_eof(void*, bool); -static char* MimeCMS_generate(void*); -static void MimeCMS_free(void*); +static MimeClosure MimeCMS_init(MimeObject*, + int (*output_fn)(const char*, int32_t, int32_t, + void*), + MimeClosure); +static int MimeCMS_write(const char*, int32_t, MimeClosure); +static int MimeCMS_eof(MimeClosure, bool); +static char* MimeCMS_generate(MimeClosure); +static void MimeCMS_free(MimeClosure); extern int SEC_ERROR_CERT_ADDR_MISMATCH; @@ -59,8 +61,9 @@ } typedef struct MimeCMSdata { - int (*output_fn)(const char* buf, int32_t buf_size, void* output_closure); - void* output_closure; + int (*output_fn)(const char* buf, int32_t buf_size, + int32_t output_closure_type, void* output_closure); + MimeClosure output_closure; nsCOMPtr decoder_context; nsCOMPtr content_info; bool ci_is_encrypted; @@ -78,7 +81,7 @@ MimeCMSdata() : output_fn(nullptr), - output_closure(nullptr), + output_closure(MimeClosure::zero()), ci_is_encrypted(false), sender_addr(nullptr), decoding_failed(false), @@ -141,8 +144,15 @@ if (!obj) return false; if (mime_typep(obj, (MimeObjectClass*)&mimeEncryptedCMSClass)) { MimeEncrypted* enc = (MimeEncrypted*)obj; - MimeCMSdata* data = (MimeCMSdata*)enc->crypto_closure; - if (!data || !data->content_info) return false; + + if (!enc->crypto_closure) return false; + + MimeCMSdata* data = enc->crypto_closure.AsMimeCMSData(); + if (!data) { + return false; + } + + if (!data->content_info) return false; data->content_info->GetContentIsEncrypted(&encrypted); return encrypted; } @@ -161,8 +171,15 @@ } if (mime_typep(obj, (MimeObjectClass*)&mimeEncryptedCMSClass)) { MimeEncrypted* enc = (MimeEncrypted*)obj; - MimeCMSdata* data = (MimeCMSdata*)enc->crypto_closure; - if (!data || !data->content_info) return false; + + if (!enc->crypto_closure) return false; + + MimeCMSdata* data = enc->crypto_closure.AsMimeCMSData(); + if (!data) { + return false; + } + + if (!data->content_info) return false; data->content_info->GetContentIsSigned(&is_signed); return is_signed; } @@ -501,17 +518,20 @@ return aCryptoPartNestLevel - aTopMessageNestLevel; } -static void* MimeCMS_init(MimeObject* obj, - int (*output_fn)(const char* buf, int32_t buf_size, - void* output_closure), - void* output_closure) { +static MimeClosure MimeCMS_init(MimeObject* obj, + int (*output_fn)(const char* buf, + int32_t buf_size, + int32_t output_closure_type, + void* output_closure), + MimeClosure output_closure) { MimeCMSdata* data; nsresult rv; - if (!(obj && obj->options && output_fn)) return 0; + if (!(obj && obj->options && output_fn)) + return MimeClosure(MimeClosure::isUndefined, 0); data = new MimeCMSdata; - if (!data) return 0; + if (!data) return MimeClosure(MimeClosure::isUndefined, 0); data->self = obj; data->output_fn = output_fn; @@ -537,58 +557,69 @@ data->decoder_context = do_CreateInstance(NS_CMSDECODER_CONTRACTID, &rv); if (NS_FAILED(rv)) { delete data; - return 0; + return MimeClosure(MimeClosure::isUndefined, 0); } rv = data->decoder_context->Start(MimeCMS_content_callback, data); if (NS_FAILED(rv)) { delete data; - return 0; + return MimeClosure(MimeClosure::isUndefined, 0); } } data->any_parent_is_encrypted_p = MimeAnyParentCMSEncrypted(obj); - mime_stream_data* msd = - (mime_stream_data*)(data->self->options->stream_closure); - if (msd) { - nsIChannel* channel = msd->channel; // note the lack of ref counting... - if (channel) { - nsCOMPtr uri; - channel->GetURI(getter_AddRefs(uri)); - if (uri) { - rv = uri->GetSpec(data->url); - - // We only want to update the UI if the current mime transaction - // is intended for display. - // If the current transaction is intended for background processing, - // we can learn that by looking at the additional header=filter - // string contained in the URI. - // - // If we find something, we do not set smimeSink, - // which will prevent us from giving UI feedback. - // - // If we do not find header=filter, we assume the result of the - // processing will be shown in the UI. - - if (!strstr(data->url.get(), "?header=filter") && - !strstr(data->url.get(), "&header=filter") && - !strstr(data->url.get(), "?header=attach") && - !strstr(data->url.get(), "&header=attach")) { - nsCOMPtr mailChannel = do_QueryInterface(channel); - if (mailChannel) { - mailChannel->GetSmimeSink(getter_AddRefs(data->smimeSink)); + if (data->self->options->stream_closure) { + mime_stream_data* msd = + data->self->options->stream_closure.IsMimeDraftData() + ? nullptr + : data->self->options->stream_closure.AsMimeStreamData(); + if (msd) { + nsIChannel* channel = msd->channel; // note the lack of ref counting... + if (channel) { + nsCOMPtr uri; + channel->GetURI(getter_AddRefs(uri)); + if (uri) { + rv = uri->GetSpec(data->url); + + // We only want to update the UI if the current mime transaction + // is intended for display. + // If the current transaction is intended for background processing, + // we can learn that by looking at the additional header=filter + // string contained in the URI. + // + // If we find something, we do not set smimeSink, + // which will prevent us from giving UI feedback. + // + // If we do not find header=filter, we assume the result of the + // processing will be shown in the UI. + + if (!strstr(data->url.get(), "?header=filter") && + !strstr(data->url.get(), "&header=filter") && + !strstr(data->url.get(), "?header=attach") && + !strstr(data->url.get(), "&header=attach")) { + nsCOMPtr mailChannel = do_QueryInterface(channel); + if (mailChannel) { + mailChannel->GetSmimeSink(getter_AddRefs(data->smimeSink)); + } } } - } - } // if channel - } // if msd + } // if channel + } + } - return data; + return MimeClosure(MimeClosure::isMimeCMSData, data); } -static int MimeCMS_write(const char* buf, int32_t buf_size, void* closure) { - MimeCMSdata* data = (MimeCMSdata*)closure; +static int MimeCMS_write(const char* buf, int32_t buf_size, + MimeClosure closure) { + if (!closure) return -1; + + MimeCMSdata* data = closure.AsMimeCMSData(); + if (!data) { + return -1; + } + nsresult rv; if (!data || !data->output_fn || !data->decoder_context) return -1; @@ -681,12 +712,20 @@ return nullptr; } -static int MimeCMS_eof(void* crypto_closure, bool abort_p) { - MimeCMSdata* data = (MimeCMSdata*)crypto_closure; +static int MimeCMS_eof(MimeClosure crypto_closure, bool abort_p) { + if (!crypto_closure) { + return -1; + } + + MimeCMSdata* data = crypto_closure.AsMimeCMSData(); + if (!data) { + return -1; + } + nsresult rv; int32_t status = nsICMSMessageErrors::SUCCESS; - if (!data || !data->output_fn) { + if (!data->output_fn) { return -1; } @@ -727,13 +766,16 @@ if (bufferContains2Newlines(data->decoded_buffer, data->decoded_bytes) == nullptr) { const char* header = "Content-Type: text/plain; charset=utf-8\r\n\r\n"; - status = data->output_fn(header, strlen(header), data->output_closure); + status = + data->output_fn(header, strlen(header), data->output_closure.mType, + data->output_closure.mClosure); } } if (status == nsICMSMessageErrors::SUCCESS) { status = data->output_fn(data->decoded_buffer, data->decoded_bytes, - data->output_closure); + data->output_closure.mType, + data->output_closure.mClosure); } if (status < 0) { PR_SetError(status, 0); @@ -830,9 +872,13 @@ return 0; } -static void MimeCMS_free(void* crypto_closure) { - MimeCMSdata* data = (MimeCMSdata*)crypto_closure; - if (!data) return; +static void MimeCMS_free(MimeClosure crypto_closure) { + if (!crypto_closure) return; + + MimeCMSdata* data = crypto_closure.AsMimeCMSData(); + if (!data) { + return; + } if (data->decoded_buffer) { PR_Free(data->decoded_buffer); @@ -842,4 +888,4 @@ delete data; } -static char* MimeCMS_generate(void* crypto_closure) { return nullptr; } +static char* MimeCMS_generate(MimeClosure crypto_closure) { return nullptr; } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecryp.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecryp.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -30,16 +30,16 @@ static int MimeEncrypted_initialize(MimeObject*); static void MimeEncrypted_finalize(MimeObject*); static int MimeEncrypted_parse_begin(MimeObject*); -static int MimeEncrypted_parse_buffer(const char*, int32_t, MimeObject*); +static int MimeEncrypted_parse_buffer(const char*, int32_t, MimeClosure); static int MimeEncrypted_parse_line(const char*, int32_t, MimeObject*); static int MimeEncrypted_parse_decoded_buffer(const char*, int32_t, - MimeObject*); + MimeClosure); static int MimeEncrypted_parse_eof(MimeObject*, bool); static int MimeEncrypted_parse_end(MimeObject*, bool); static int MimeEncrypted_add_child(MimeObject*, MimeObject*); -static int MimeHandleDecryptedOutput(const char*, int32_t, void*); -static int MimeHandleDecryptedOutputLine(char*, int32_t, MimeObject*); +static int MimeHandleDecryptedOutput(const char*, int32_t, int32_t, void*); +static int MimeHandleDecryptedOutputLine(const char*, int32_t, MimeObject*); static int MimeEncrypted_close_headers(MimeObject*); static int MimeEncrypted_emit_buffered_child(MimeObject*); @@ -70,12 +70,13 @@ static int MimeEncrypted_parse_begin(MimeObject* obj) { MimeEncrypted* enc = (MimeEncrypted*)obj; - MimeDecoderData* (*fn)(MimeConverterOutputCallback, void*) = 0; + MimeDecoderData* (*fn)(MimeConverterOutputCallback, MimeClosure) = 0; if (enc->crypto_closure) return -1; enc->crypto_closure = (((MimeEncryptedClass*)obj->clazz)->crypto_init)( - obj, MimeHandleDecryptedOutput, obj); + obj, MimeHandleDecryptedOutput, + MimeClosure(MimeClosure::isMimeObject, obj)); if (!enc->crypto_closure) return -1; /* (Mostly duplicated from MimeLeaf, see comments in mimecryp.h.) @@ -86,13 +87,9 @@ else if (!PL_strcasecmp(obj->encoding, ENCODING_BASE64)) fn = &MimeB64DecoderInit; else if (!PL_strcasecmp(obj->encoding, ENCODING_QUOTED_PRINTABLE)) { - enc->decoder_data = - MimeQPDecoderInit(/* The (MimeConverterOutputCallback) cast is to turn - the `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback)((MimeEncryptedClass*) - obj->clazz) - ->parse_decoded_buffer), - obj); + enc->decoder_data = MimeQPDecoderInit( + ((MimeEncryptedClass*)obj->clazz)->parse_decoded_buffer, + MimeClosure(MimeClosure::isMimeObject, obj)); if (!enc->decoder_data) return MIME_OUT_OF_MEMORY; } else if (!PL_strcasecmp(obj->encoding, ENCODING_UUENCODE) || @@ -104,11 +101,8 @@ fn = &MimeYDecoderInit; if (fn) { enc->decoder_data = - fn(/* The (MimeConverterOutputCallback) cast is to turn the `void' - argument into `MimeObject'. */ - ((MimeConverterOutputCallback)((MimeEncryptedClass*)obj->clazz) - ->parse_decoded_buffer), - obj); + fn((((MimeEncryptedClass*)obj->clazz)->parse_decoded_buffer), + MimeClosure(MimeClosure::isMimeObject, obj)); if (!enc->decoder_data) return MIME_OUT_OF_MEMORY; } @@ -117,9 +111,13 @@ } static int MimeEncrypted_parse_buffer(const char* buffer, int32_t size, - MimeObject* obj) { + MimeClosure closure) { /* (Duplicated from MimeLeaf, see comments in mimecryp.h.) */ + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } MimeEncrypted* enc = (MimeEncrypted*)obj; @@ -133,7 +131,8 @@ return MimeDecoderWrite(enc->decoder_data, buffer, size, nullptr); else return ((MimeEncryptedClass*)obj->clazz) - ->parse_decoded_buffer(buffer, size, obj); + ->parse_decoded_buffer(buffer, size, + MimeClosure(MimeClosure::isMimeObject, obj)); } static int MimeEncrypted_parse_line(const char* line, int32_t length, @@ -143,8 +142,13 @@ } static int MimeEncrypted_parse_decoded_buffer(const char* buffer, int32_t size, - MimeObject* obj) { - MimeEncrypted* enc = (MimeEncrypted*)obj; + MimeClosure closure) { + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + + MimeEncrypted* enc = (MimeEncrypted*)closure.mClosure; return ((MimeEncryptedClass*)obj->clazz) ->crypto_write(buffer, size, enc->crypto_closure); } @@ -224,7 +228,7 @@ around for the lifetime of the MIME object, so that we can get at the security info of sub-parts of the currently-displayed message. */ ((MimeEncryptedClass*)obj->clazz)->crypto_free(enc->crypto_closure); - enc->crypto_closure = 0; + enc->crypto_closure = MimeClosure::zero(); } /* (Duplicated from MimeLeaf, see comments in mimecryp.h.) @@ -246,6 +250,7 @@ } static int MimeHandleDecryptedOutput(const char* buf, int32_t buf_size, + int32_t output_closure_type, void* output_closure) { /* This method is invoked by the underlying decryption module. The module is assumed to return a MIME object, and its associated @@ -260,18 +265,20 @@ blank line, as usual) and will then handle the included data as appropriate. */ + + PR_ASSERT(output_closure_type == MimeClosure::isMimeObject); + if (output_closure_type != MimeClosure::isMimeObject) { + return -1; + } MimeObject* obj = (MimeObject*)output_closure; /* Is it truly safe to use ibuffer here? I think so... */ return mime_LineBuffer(buf, buf_size, &obj->ibuffer, &obj->ibuffer_size, - &obj->ibuffer_fp, true, - ((int (*)(char*, int32_t, void*)) - /* This cast is to turn void into MimeObject */ - MimeHandleDecryptedOutputLine), + &obj->ibuffer_fp, true, MimeHandleDecryptedOutputLine, obj); } -static int MimeHandleDecryptedOutputLine(char* line, int32_t length, +static int MimeHandleDecryptedOutputLine(const char* line, int32_t length, MimeObject* obj) { /* Largely the same as MimeMessage_parse_line (the other MIME container type which contains exactly one child.) @@ -343,7 +350,7 @@ } #ifdef MOZ_LOGGING -static int DebugOut(const char* buf, int32_t size, void* closure) { +static int DebugOut(const char* buf, int32_t size, MimeClosure closure) { MOZ_LOG(gMimeCryptLog, LogLevel::Debug, ("MimeEncrypted_emit_buffered_child: (partial) decrypted body\n%.*s", size, buf)); @@ -368,7 +375,8 @@ } if (enc->part_buffer) { - status = MimePartBufferRead(enc->part_buffer, DebugOut, 0); + status = MimePartBufferRead(enc->part_buffer, DebugOut, + MimeClosure(MimeClosure::isUndefined, 0)); if (status < 0) return status; } #endif @@ -466,20 +474,14 @@ { #ifdef MIME_DRAFTS if (obj->options->decompose_file_p && !obj->options->is_multipart_msg) { - status = MimePartBufferRead( - enc->part_buffer, - /* The (MimeConverterOutputCallback) cast is to turn the `void' - argument into `MimeObject'. */ - ((MimeConverterOutputCallback)obj->options->decompose_file_output_fn), - obj->options->stream_closure); + status = MimePartBufferRead(enc->part_buffer, + obj->options->decompose_file_output_fn, + obj->options->stream_closure); } else { #endif /* MIME_DRAFTS */ - status = MimePartBufferRead( - enc->part_buffer, - /* The (MimeConverterOutputCallback) cast is to turn the `void' - argument into `MimeObject'. */ - ((MimeConverterOutputCallback)body->clazz->parse_buffer), body); + status = MimePartBufferRead(enc->part_buffer, body->clazz->parse_buffer, + MimeClosure(MimeClosure::isMimeObject, body)); #ifdef MIME_DRAFTS } #endif /* MIME_DRAFTS */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecryp.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimecryp.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimecryp.h 2025-01-07 20:45:52.000000000 +0000 @@ -105,25 +105,28 @@ /* Duplicated from MimeLeaf, see comments above. This is the callback that is handed to the decoder. */ - int (*parse_decoded_buffer)(const char* buf, int32_t size, MimeObject* obj); + int (*parse_decoded_buffer)(const char* buf, int32_t size, + MimeClosure closure); /* Callbacks used by decryption module. */ - void* (*crypto_init)(MimeObject* obj, - int (*output_fn)(const char* data, int32_t data_size, - void* output_closure), - void* output_closure); + MimeClosure (*crypto_init)(MimeObject* obj, + int (*output_fn)(const char* data, + int32_t data_size, + int32_t output_closure_type, + void* output_closure), + MimeClosure output_closure); int (*crypto_write)(const char* data, int32_t data_size, - void* crypto_closure); - int (*crypto_eof)(void* crypto_closure, bool abort_p); - char* (*crypto_generate_html)(void* crypto_closure); - void (*crypto_free)(void* crypto_closure); + MimeClosure crypto_closure); + int (*crypto_eof)(MimeClosure crypto_closure, bool abort_p); + char* (*crypto_generate_html)(MimeClosure crypto_closure); + void (*crypto_free)(MimeClosure crypto_closure); }; extern MimeEncryptedClass mimeEncryptedClass; struct MimeEncrypted { MimeContainer container; /* superclass variables */ - void* crypto_closure; /* Opaque data used by decryption module. */ + MimeClosure crypto_closure; /* Opaque data used by decryption module. */ MimeDecoderData* decoder_data; /* Opaque data for the Transfer-Encoding decoder. */ MimeHeaders* hdrs; /* Headers of the enclosed object (including diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimedrft.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimedrft.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimedrft.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimedrft.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -67,10 +67,11 @@ // Forward declarations... // extern "C" char* MIME_StripContinuations(char* original); -int mime_decompose_file_init_fn(void* stream_closure, MimeHeaders* headers); +int mime_decompose_file_init_fn(MimeClosure stream_closure, + MimeHeaders* headers); int mime_decompose_file_output_fn(const char* buf, int32_t size, - void* stream_closure); -int mime_decompose_file_close_fn(void* stream_closure); + MimeClosure stream_closure); +int mime_decompose_file_close_fn(MimeClosure stream_closure); extern int MimeHeaders_build_heads_list(MimeHeaders* hdrs); #define NS_MSGCOMPOSESERVICE_CID \ @@ -404,23 +405,36 @@ return rv; } -static int dummy_file_write(char* buf, int32_t size, void* fileHandle) { - if (!fileHandle) return -1; +static int dummy_file_write(const char* buf, int32_t size, + MimeClosure draftData) { + if (!draftData) return -1; + + mime_draft_data* mdd = draftData.AsMimeDraftData(); + if (!mdd) { + return -1; + } - nsIOutputStream* tStream = (nsIOutputStream*)fileHandle; uint32_t bytesWritten; - tStream->Write(buf, size, &bytesWritten); + mdd->tmpFileStream->Write(buf, size, &bytesWritten); return (int)bytesWritten; } static int mime_parse_stream_write(nsMIMESession* stream, const char* buf, int32_t size) { - mime_draft_data* mdd = (mime_draft_data*)stream->data_object; - NS_ASSERTION(mdd, "null mime draft data!"); + NS_ASSERTION(stream->data_object, "null mime data!"); + if (!stream->data_object) { + return -1; + } + + mime_draft_data* mdd = stream->data_object.AsMimeDraftData(); + if (!mdd) { + return -1; + } - if (!mdd || !mdd->obj) return -1; + if (!mdd->obj) return -1; - return mdd->obj->clazz->parse_buffer((char*)buf, size, mdd->obj); + return mdd->obj->clazz->parse_buffer( + (char*)buf, size, MimeClosure(MimeClosure::isMimeObject, mdd->obj)); } static void mime_free_attachments(nsTArray& attachments) { @@ -1107,7 +1121,16 @@ } static void mime_parse_stream_complete(nsMIMESession* stream) { - mime_draft_data* mdd = (mime_draft_data*)stream->data_object; + NS_ASSERTION(stream->data_object, "null mime data"); + if (!stream->data_object) { + return; + } + + mime_draft_data* mdd = stream->data_object.AsMimeDraftData(); + if (!mdd) { + return; + } + nsCOMPtr fields; int htmlAction = 0; int lineWidth = 0; @@ -1139,10 +1162,6 @@ bool bodyAsAttachment = false; bool charsetOverride = false; - NS_ASSERTION(mdd, "null mime draft data"); - - if (!mdd) return; - if (mdd->obj) { int status; @@ -1176,7 +1195,7 @@ mdd->options = 0; } if (mdd->stream) { - mdd->stream->complete((nsMIMESession*)mdd->stream->data_object); + mdd->stream->complete(mdd->stream); PR_Free(mdd->stream); mdd->stream = 0; } @@ -1671,10 +1690,15 @@ } static void mime_parse_stream_abort(nsMIMESession* stream, int status) { - mime_draft_data* mdd = (mime_draft_data*)stream->data_object; - NS_ASSERTION(mdd, "null mime draft data"); + NS_ASSERTION(stream->data_object, "null mime data"); + if (!stream->data_object) { + return; + } - if (!mdd) return; + mime_draft_data* mdd = stream->data_object.AsMimeDraftData(); + if (!mdd) { + return; + } if (mdd->obj) { int status = 0; @@ -1693,7 +1717,7 @@ } if (mdd->stream) { - mdd->stream->abort((nsMIMESession*)mdd->stream->data_object, status); + mdd->stream->abort(mdd->stream, status); PR_Free(mdd->stream); mdd->stream = 0; } @@ -1708,12 +1732,14 @@ PR_Free(mdd); } -static int make_mime_headers_copy(void* closure, MimeHeaders* headers) { - mime_draft_data* mdd = (mime_draft_data*)closure; +static int make_mime_headers_copy(MimeClosure closure, MimeHeaders* headers) { + NS_ASSERTION(closure && headers, "null mime draft data and/or headers"); + if (!closure || !headers) return 0; - NS_ASSERTION(mdd && headers, "null mime draft data and/or headers"); - - if (!mdd || !headers) return 0; + mime_draft_data* mdd = closure.AsMimeDraftData(); + if (!mdd) { + return 0; + } NS_ASSERTION(mdd->headers == NULL, "non null mime draft data headers"); @@ -1723,17 +1749,23 @@ return 0; } -int mime_decompose_file_init_fn(void* stream_closure, MimeHeaders* headers) { - mime_draft_data* mdd = (mime_draft_data*)stream_closure; +int mime_decompose_file_init_fn(MimeClosure stream_closure, + MimeHeaders* headers) { + NS_ASSERTION(stream_closure && headers, + "null mime draft data and/or headers"); + if (!stream_closure || !headers) return -1; + + mime_draft_data* mdd = stream_closure.AsMimeDraftData(); + if (!mdd) { + return -1; + } + nsMsgAttachedFile* newAttachment = 0; int nAttachments = 0; // char *hdr_value = NULL; char* parm_value = NULL; bool creatingMsgBody = true; - NS_ASSERTION(mdd && headers, "null mime draft data and/or headers"); - if (!mdd || !headers) return -1; - if (mdd->options->decompose_init_count) { mdd->options->decompose_init_count++; NS_ASSERTION(mdd->curAttachment, @@ -1896,7 +1928,7 @@ // For now, we are always going to decode all of the attachments // for the message. This way, we have native data if (creatingMsgBody) { - MimeDecoderData* (*fn)(MimeConverterOutputCallback, void*) = 0; + MimeDecoderData* (*fn)(MimeConverterOutputCallback, MimeClosure) = 0; // // Initialize a decoder if necessary. @@ -1905,11 +1937,8 @@ fn = &MimeB64DecoderInit; else if (newAttachment->m_encoding.LowerCaseEqualsLiteral( ENCODING_QUOTED_PRINTABLE)) { - mdd->decoder_data = - MimeQPDecoderInit(/* The (MimeConverterOutputCallback) cast is to turn - the `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback)dummy_file_write), - mdd->tmpFileStream); + mdd->decoder_data = MimeQPDecoderInit( + dummy_file_write, MimeClosure(MimeClosure::isMimeDraftData, mdd)); if (!mdd->decoder_data) return MIME_OUT_OF_MEMORY; } else if (newAttachment->m_encoding.LowerCaseEqualsLiteral( ENCODING_UUENCODE) || @@ -1924,10 +1953,8 @@ fn = &MimeYDecoderInit; if (fn) { - mdd->decoder_data = fn(/* The (MimeConverterOutputCallback) cast is to - turn the `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback)dummy_file_write), - mdd->tmpFileStream); + mdd->decoder_data = + fn(dummy_file_write, MimeClosure(MimeClosure::isMimeDraftData, mdd)); if (!mdd->decoder_data) return MIME_OUT_OF_MEMORY; } } @@ -1936,12 +1963,17 @@ } int mime_decompose_file_output_fn(const char* buf, int32_t size, - void* stream_closure) { - mime_draft_data* mdd = (mime_draft_data*)stream_closure; + MimeClosure stream_closure) { + NS_ASSERTION(stream_closure && buf, "missing mime draft data and/or buf"); + if (!stream_closure || !buf) return -1; + + mime_draft_data* mdd = stream_closure.AsMimeDraftData(); + if (!mdd) { + return -1; + } + int ret = 0; - NS_ASSERTION(mdd && buf, "missing mime draft data and/or buf"); - if (!mdd || !buf) return -1; if (!size) return 0; if (!mdd->tmpFileStream) return 0; @@ -1971,10 +2003,13 @@ return 0; } -int mime_decompose_file_close_fn(void* stream_closure) { - mime_draft_data* mdd = (mime_draft_data*)stream_closure; +int mime_decompose_file_close_fn(MimeClosure stream_closure) { + if (!stream_closure) return -1; - if (!mdd) return -1; + mime_draft_data* mdd = stream_closure.AsMimeDraftData(); + if (!mdd) { + return -1; + } if (--mdd->options->decompose_init_count > 0) return 0; @@ -2050,8 +2085,8 @@ mdd->options->url = strdup(mdd->url_name); mdd->options->format_out = format_out; // output format mdd->options->decompose_file_p = true; /* new field in MimeDisplayOptions */ - mdd->options->stream_closure = mdd; - mdd->options->html_closure = mdd; + mdd->options->stream_closure = MimeClosure(MimeClosure::isMimeDraftData, mdd); + mdd->options->html_closure = MimeClosure(MimeClosure::isMimeDraftData, mdd); mdd->options->decompose_headers_info_fn = make_mime_headers_copy; mdd->options->decompose_file_init_fn = mime_decompose_file_init_fn; mdd->options->decompose_file_output_fn = mime_decompose_file_output_fn; @@ -2083,7 +2118,7 @@ stream->complete = mime_parse_stream_complete; stream->abort = mime_parse_stream_abort; stream->put_block = mime_parse_stream_write; - stream->data_object = mdd; + stream->data_object = MimeClosure(MimeClosure::isMimeDraftData, mdd); status = obj->clazz->initialize(obj); if (status >= 0) status = obj->clazz->parse_begin(obj); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeenc.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeenc.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeenc.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeenc.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -38,7 +38,7 @@ MimeObject* objectToDecode; // might be null, only used for QP currently /* Where to write the decoded data */ MimeConverterOutputCallback write_buffer; - void* closure; + MimeClosure closure; }; static int mime_decode_qp_buffer(MimeDecoderData* data, const char* buffer, @@ -697,7 +697,7 @@ static MimeDecoderData* mime_decoder_init(mime_encoding which, MimeConverterOutputCallback output_fn, - void* closure) { + MimeClosure closure) { MimeDecoderData* data = PR_NEW(MimeDecoderData); if (!data) return 0; memset(data, 0, sizeof(*data)); @@ -711,12 +711,12 @@ } MimeDecoderData* MimeB64DecoderInit(MimeConverterOutputCallback output_fn, - void* closure) { + MimeClosure closure) { return mime_decoder_init(mime_Base64, output_fn, closure); } MimeDecoderData* MimeQPDecoderInit(MimeConverterOutputCallback output_fn, - void* closure, MimeObject* object) { + MimeClosure closure, MimeObject* object) { MimeDecoderData* retData = mime_decoder_init(mime_QuotedPrintable, output_fn, closure); if (retData) retData->objectToDecode = object; @@ -724,12 +724,12 @@ } MimeDecoderData* MimeUUDecoderInit(MimeConverterOutputCallback output_fn, - void* closure) { + MimeClosure closure) { return mime_decoder_init(mime_uuencode, output_fn, closure); } MimeDecoderData* MimeYDecoderInit(MimeConverterOutputCallback output_fn, - void* closure) { + MimeClosure closure) { return mime_decoder_init(mime_yencode, output_fn, closure); } @@ -755,7 +755,7 @@ namespace mozilla { namespace mailnews { -MimeEncoder::MimeEncoder(OutputCallback callback, void* closure) +MimeEncoder::MimeEncoder(OutputCallback callback, MimeClosure closure) : mCallback(callback), mClosure(closure), mCurrentColumn(0) {} class Base64Encoder : public MimeEncoder { @@ -763,7 +763,7 @@ int32_t in_buffer_count; public: - Base64Encoder(OutputCallback callback, void* closure) + Base64Encoder(OutputCallback callback, MimeClosure closure) : MimeEncoder(callback, closure), in_buffer_count(0) {} virtual ~Base64Encoder() {} @@ -886,7 +886,7 @@ class QPEncoder : public MimeEncoder { public: - QPEncoder(OutputCallback callback, void* closure) + QPEncoder(OutputCallback callback, MimeClosure closure) : MimeEncoder(callback, closure) {} virtual ~QPEncoder() {} @@ -987,11 +987,12 @@ } MimeEncoder* MimeEncoder::GetBase64Encoder(OutputCallback callback, - void* closure) { + MimeClosure closure) { return new Base64Encoder(callback, closure); } -MimeEncoder* MimeEncoder::GetQPEncoder(OutputCallback callback, void* closure) { +MimeEncoder* MimeEncoder::GetQPEncoder(OutputCallback callback, + MimeClosure closure) { return new QPEncoder(callback, closure); } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeeobj.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeeobj.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeeobj.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeeobj.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -17,10 +17,10 @@ static int MimeExternalObject_initialize(MimeObject*); static void MimeExternalObject_finalize(MimeObject*); static int MimeExternalObject_parse_begin(MimeObject*); -static int MimeExternalObject_parse_buffer(const char*, int32_t, MimeObject*); +static int MimeExternalObject_parse_buffer(const char*, int32_t, MimeClosure); static int MimeExternalObject_parse_line(const char*, int32_t, MimeObject*); static int MimeExternalObject_parse_decoded_buffer(const char*, int32_t, - MimeObject*); + MimeClosure); static bool MimeExternalObject_displayable_inline_p(MimeObjectClass* clazz, MimeHeaders* hdrs); @@ -148,7 +148,12 @@ } static int MimeExternalObject_parse_buffer(const char* buffer, int32_t size, - MimeObject* obj) { + MimeClosure closure) { + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + NS_ASSERTION(!obj->closed_p, "1.1 19 Mar 1999 12:00"); if (obj->closed_p) return -1; @@ -157,12 +162,13 @@ /* The data will be base64-decoded and passed to MimeExternalObject_parse_decoded_buffer. */ - return ((MimeObjectClass*)&MIME_SUPERCLASS)->parse_buffer(buffer, size, obj); + return ((MimeObjectClass*)&MIME_SUPERCLASS) + ->parse_buffer(buffer, size, closure); } static int MimeExternalObject_parse_decoded_buffer(const char* buf, int32_t size, - MimeObject* obj) { + MimeClosure closure) { /* This is called (by MimeLeafClass->parse_buffer) with blocks of data that have already been base64-decoded. This will only be called in the case where we're not emitting HTML, and want access to the raw @@ -180,6 +186,11 @@ * reading them) and the JS emitter (which doesn't care about attachment data * at all). 0 means ok, the caller just checks for negative return value. */ + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + if (obj->options && (obj->options->metadata_only || obj->options->write_html_p)) return 0; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimei.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimei.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimei.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimei.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -306,8 +306,14 @@ if (!opts) return; - mime_stream_data* msd = (mime_stream_data*)(opts->stream_closure); - if (!msd) return; + if (!opts->stream_closure) return; + + mime_stream_data* msd = opts->stream_closure.IsMimeDraftData() + ? nullptr + : opts->stream_closure.AsMimeStreamData(); + if (!msd) { + return; + } nsCOMPtr channel = msd->channel; // note the lack of ref counting... @@ -417,11 +423,14 @@ char* imip_method = MimeHeaders_get_parameter( full_content_type, "method", nullptr, nullptr); - mime_stream_data* msd = (mime_stream_data*)(opts->stream_closure); - nsCOMPtr mailChannel = do_QueryInterface(msd->channel); - if (mailChannel) { - mailChannel->SetImipMethod( - nsDependentCString(imip_method ? imip_method : "nomethod")); + mime_stream_data* msd = opts->stream_closure.AsMimeStreamData(); + if (msd) { + nsCOMPtr mailChannel = + do_QueryInterface(msd->channel); + if (mailChannel) { + mailChannel->SetImipMethod( + nsDependentCString(imip_method ? imip_method : "nomethod")); + } } // PR_Free checks for null @@ -1516,11 +1525,11 @@ int MimeOptions_write(MimeHeaders* hdrs, MimeDisplayOptions* opt, const char* data, int32_t length, bool user_visible_p) { int status = 0; - void* closure = 0; + MimeClosure closure; if (!opt || !opt->output_fn || !opt->state) return 0; closure = opt->output_closure; - if (!closure) closure = opt->stream_closure; + if (!closure.mClosure) closure = opt->stream_closure; // PR_ASSERT(opt->state->first_data_written_p); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeiimg.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeiimg.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -24,7 +24,7 @@ static int MimeInlineImage_parse_line(const char*, int32_t, MimeObject*); static int MimeInlineImage_parse_eof(MimeObject*, bool); static int MimeInlineImage_parse_decoded_buffer(const char*, int32_t, - MimeObject*); + MimeClosure); static int MimeInlineImageClassInitialize(MimeObjectClass* oclass) { MimeLeafClass* lclass = (MimeLeafClass*)oclass; @@ -116,7 +116,8 @@ if (!img->image_data) return MIME_OUT_OF_MEMORY; - html = obj->options->make_image_html(img->image_data); + html = obj->options->make_image_html( + MimeClosure(MimeClosure::isMimeImageStreamData, img->image_data)); if (!html) return MIME_OUT_OF_MEMORY; status = MimeObject_write(obj, html, strlen(html), true); @@ -129,8 +130,12 @@ // URI for the url being run... // if (obj->options && obj->options->stream_closure && obj->content_type) { - mime_stream_data* msd = (mime_stream_data*)(obj->options->stream_closure); - if ((msd) && (msd->channel)) { + mime_stream_data* msd = obj->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return -1; + } + + if (msd->channel) { msd->channel->SetContentType(nsDependentCString(obj->content_type)); } } @@ -148,8 +153,9 @@ if (status < 0) abort_p = true; if (img->image_data) { - obj->options->image_end(img->image_data, - (status < 0 ? status : (abort_p ? -1 : 0))); + obj->options->image_end( + MimeClosure(MimeClosure::isMimeImageStreamData, img->image_data), + (status < 0 ? status : (abort_p ? -1 : 0))); img->image_data = 0; } @@ -157,11 +163,16 @@ } static int MimeInlineImage_parse_decoded_buffer(const char* buf, int32_t size, - MimeObject* obj) { + MimeClosure closure) { /* This is called (by MimeLeafClass->parse_buffer) with blocks of data that have already been base64-decoded. Pass this raw image data along to the backend-specific image display code. */ + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + MimeInlineImage* img = (MimeInlineImage*)obj; int status; @@ -194,7 +205,9 @@ /* Hand this data off to the backend-specific image display stream. */ - status = obj->options->image_write_buffer(buf, size, img->image_data); + status = obj->options->image_write_buffer( + buf, size, + MimeClosure(MimeClosure::isMimeImageStreamData, img->image_data)); /* If the image display stream fails, then close the stream - but do not return the failure status, and do not give up on parsing this object. @@ -203,7 +216,9 @@ this part, and letting our parent continue. */ if (status < 0) { - obj->options->image_end(img->image_data, status); + obj->options->image_end( + MimeClosure(MimeClosure::isMimeImageStreamData, img->image_data), + status); img->image_data = 0; status = 0; } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeiimg.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeiimg.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeiimg.h 2025-01-07 20:45:52.000000000 +0000 @@ -26,10 +26,10 @@ /* Opaque data object for the backend-specific inline-image-display code (internal-external-reconnect nastiness.) */ - void* image_data; + mime_image_stream_data* image_data; }; #define MimeInlineImageClassInitializer(ITYPE, CSUPER) \ - { MimeLeafClassInitializer(ITYPE, CSUPER) } + {MimeLeafClassInitializer(ITYPE, CSUPER)} #endif /* _MIMEIIMG_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeleaf.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeleaf.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -18,7 +18,7 @@ static int MimeLeaf_initialize(MimeObject*); static void MimeLeaf_finalize(MimeObject*); static int MimeLeaf_parse_begin(MimeObject*); -static int MimeLeaf_parse_buffer(const char*, int32_t, MimeObject*); +static int MimeLeaf_parse_buffer(const char*, int32_t, MimeClosure); static int MimeLeaf_parse_line(const char*, int32_t, MimeObject*); static int MimeLeaf_close_decoder(MimeObject*); static int MimeLeaf_parse_eof(MimeObject*, bool); @@ -78,7 +78,7 @@ static int MimeLeaf_parse_begin(MimeObject* obj) { MimeLeaf* leaf = (MimeLeaf*)obj; - MimeDecoderData* (*fn)(MimeConverterOutputCallback, void*) = 0; + MimeDecoderData* (*fn)(MimeConverterOutputCallback, MimeClosure) = 0; /* Initialize a decoder if necessary. */ @@ -92,10 +92,9 @@ else if (!PL_strcasecmp(obj->encoding, ENCODING_BASE64)) fn = &MimeB64DecoderInit; else if (!PL_strcasecmp(obj->encoding, ENCODING_QUOTED_PRINTABLE)) - leaf->decoder_data = MimeQPDecoderInit( - ((MimeConverterOutputCallback)((MimeLeafClass*)obj->clazz) - ->parse_decoded_buffer), - obj, obj); + leaf->decoder_data = + MimeQPDecoderInit(((MimeLeafClass*)obj->clazz)->parse_decoded_buffer, + MimeClosure(MimeClosure::isMimeObject, obj), obj); else if (!PL_strcasecmp(obj->encoding, ENCODING_UUENCODE) || !PL_strcasecmp(obj->encoding, ENCODING_UUENCODE2) || !PL_strcasecmp(obj->encoding, ENCODING_UUENCODE3) || @@ -105,12 +104,8 @@ fn = &MimeYDecoderInit; if (fn) { - leaf->decoder_data = - fn(/* The MimeConverterOutputCallback cast is to turn the `void' - argument into `MimeObject'. */ - ((MimeConverterOutputCallback)((MimeLeafClass*)obj->clazz) - ->parse_decoded_buffer), - obj); + leaf->decoder_data = fn(((MimeLeafClass*)obj->clazz)->parse_decoded_buffer, + MimeClosure(MimeClosure::isMimeObject, obj)); if (!leaf->decoder_data) return MIME_OUT_OF_MEMORY; } @@ -119,7 +114,12 @@ } static int MimeLeaf_parse_buffer(const char* buffer, int32_t size, - MimeObject* obj) { + MimeClosure closure) { + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + MimeLeaf* leaf = (MimeLeaf*)obj; NS_ASSERTION(!obj->closed_p, "1.1 19 Mar 1999 12:00"); @@ -139,7 +139,9 @@ rv = MimeDecoderWrite(leaf->decoder_data, buffer, size, &outSize); leaf->sizeSoFar += outSize; } else { - rv = ((MimeLeafClass*)obj->clazz)->parse_decoded_buffer(buffer, size, obj); + rv = ((MimeLeafClass*)obj->clazz) + ->parse_decoded_buffer( + buffer, size, MimeClosure(MimeClosure::isMimeObject, obj)); leaf->sizeSoFar += size; } return rv; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeleaf.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeleaf.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeleaf.h 2025-01-07 20:45:52.000000000 +0000 @@ -35,7 +35,8 @@ struct MimeLeafClass { MimeObjectClass object; /* This is the callback that is handed to the decoder. */ - int (*parse_decoded_buffer)(const char* buf, int32_t size, MimeObject* obj); + int (*parse_decoded_buffer)(const char* buf, int32_t size, + MimeClosure closure); int (*close_decoder)(MimeObject* obj); }; @@ -55,6 +56,6 @@ }; #define MimeLeafClassInitializer(ITYPE, CSUPER) \ - { MimeObjectClassInitializer(ITYPE, CSUPER) } + {MimeObjectClassInitializer(ITYPE, CSUPER)} #endif /* _MIMELEAF_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemalt.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemalt.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemalt.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemalt.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -520,11 +520,8 @@ else #endif /* MIME_DRAFTS */ - status = MimePartBufferRead( - buffer, - /* The MimeConverterOutputCallback cast is to turn the - `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback)body->clazz->parse_buffer), body); + status = MimePartBufferRead(buffer, body->clazz->parse_buffer, + MimeClosure(MimeClosure::isMimeObject, body)); if (status < 0) return status; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemcms.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemcms.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -27,16 +27,16 @@ static int MimeMultipartSignedCMS_initialize(MimeObject*); -static void* MimeMultCMS_init(MimeObject*); -static int MimeMultCMS_data_hash(const char*, int32_t, void*); -static int MimeMultCMS_sig_hash(const char*, int32_t, void*); -static int MimeMultCMS_data_eof(void*, bool); -static int MimeMultCMS_sig_eof(void*, bool); -static int MimeMultCMS_sig_init(void*, MimeObject*, MimeHeaders*); -static int MimeMultCMS_sig_ignore(void* crypto_closure); -static char* MimeMultCMS_generate(void*); -static void MimeMultCMS_free(void*); -static void MimeMultCMS_suppressed_child(void* crypto_closure); +static MimeClosure MimeMultCMS_init(MimeObject*); +static int MimeMultCMS_data_hash(const char*, int32_t, MimeClosure); +static int MimeMultCMS_sig_hash(const char*, int32_t, MimeClosure); +static int MimeMultCMS_data_eof(MimeClosure, bool); +static int MimeMultCMS_sig_eof(MimeClosure, bool); +static int MimeMultCMS_sig_init(MimeClosure, MimeObject*, MimeHeaders*); +static int MimeMultCMS_sig_ignore(MimeClosure crypto_closure); +static char* MimeMultCMS_generate(MimeClosure); +static void MimeMultCMS_free(MimeClosure); +static void MimeMultCMS_suppressed_child(MimeClosure crypto_closure); extern int SEC_ERROR_CERT_ADDR_MISMATCH; @@ -118,7 +118,7 @@ extern char* IMAP_CreateReloadAllPartsUrl(const char* url); extern int MIMEGetRelativeCryptoNestLevel(MimeObject* obj); -static void* MimeMultCMS_init(MimeObject* obj) { +static MimeClosure MimeMultCMS_init(MimeObject* obj) { MimeHeaders* hdrs = obj->headers; MimeMultCMSdata* data = 0; char *ct, *micalg; @@ -126,13 +126,17 @@ nsresult rv; data = new MimeMultCMSdata; - if (!data) return 0; + if (!data) return MimeClosure(MimeClosure::isUndefined, 0); data->self = obj; - mime_stream_data* msd = - (mime_stream_data*)(data->self->options->stream_closure); - if (msd) { + if (data->self->options->stream_closure) { + mime_stream_data* msd = + data->self->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return MimeClosure::zero(); + } + nsIChannel* channel = msd->channel; // note the lack of ref counting... if (channel) { nsCOMPtr uri; @@ -188,20 +192,22 @@ nsICMSMessageErrors::GENERAL_ERROR, nullptr, data->url, partnum); } - return data; + return MimeClosure(MimeClosure::isMimeMultCMSData, data); } ct = MimeHeaders_get(hdrs, HEADER_CONTENT_TYPE, false, false); if (!ct) { delete data; - return 0; /* #### bogus message? out of memory? */ + return MimeClosure(MimeClosure::isUndefined, + 0); /* #### bogus message? out of memory? */ } micalg = MimeHeaders_get_parameter(ct, PARAM_MICALG, NULL, NULL); PR_Free(ct); ct = 0; if (!micalg) { delete data; - return 0; /* #### bogus message? out of memory? */ + return MimeClosure(MimeClosure::isUndefined, + 0); /* #### bogus message? out of memory? */ } bool allowSha1 = mozilla::Preferences::GetBool( @@ -236,7 +242,7 @@ data->url, partnum); } PR_Free(micalg); - return data; + return MimeClosure(MimeClosure::isMimeMultCMSData, data); } PR_Free(micalg); @@ -248,23 +254,27 @@ do_CreateInstance("@mozilla.org/security/hash;1", &rv); if (NS_FAILED(rv)) { delete data; - return 0; + return MimeClosure(MimeClosure::isUndefined, 0); } rv = data->data_hash_context->Init(data->hash_type); if (NS_FAILED(rv)) { delete data; - return 0; + return MimeClosure(MimeClosure::isUndefined, 0); } PR_SetError(0, 0); - return data; + return MimeClosure(MimeClosure::isMimeMultCMSData, data); } static int MimeMultCMS_data_hash(const char* buf, int32_t size, - void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; + MimeClosure crypto_closure) { + if (!crypto_closure) { + return -1; + } + + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return -1; } @@ -284,8 +294,12 @@ return 0; } -static int MimeMultCMS_data_eof(void* crypto_closure, bool abort_p) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; +static int MimeMultCMS_data_eof(MimeClosure crypto_closure, bool abort_p) { + if (!crypto_closure) { + return -1; + } + + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return -1; } @@ -318,10 +332,14 @@ return 0; } -static int MimeMultCMS_sig_init(void* crypto_closure, +static int MimeMultCMS_sig_init(MimeClosure crypto_closure, MimeObject* multipart_object, MimeHeaders* signature_hdrs) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); + if (!data) { + return -1; + } + char* ct; int status = 0; nsresult rv; @@ -356,9 +374,12 @@ return status; } -static int MimeMultCMS_sig_ignore(void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; +static int MimeMultCMS_sig_ignore(MimeClosure crypto_closure) { + if (!crypto_closure) { + return -1; + } + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return -1; } @@ -368,24 +389,32 @@ return 0; } -bool MimeMultCMSdata_isIgnored(void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; +bool MimeMultCMSdata_isIgnored(MimeClosure crypto_closure) { + if (!crypto_closure) { + return false; + } + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return false; } + return data->ignoredLayer; } static int MimeMultCMS_sig_hash(const char* buf, int32_t size, - void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; - nsresult rv; + MimeClosure crypto_closure) { + if (!crypto_closure) { + return -1; + } + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return -1; } + nsresult rv; + if (data->reject_signature) { return 0; } @@ -400,9 +429,12 @@ return 0; } -static int MimeMultCMS_sig_eof(void* crypto_closure, bool abort_p) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; +static int MimeMultCMS_sig_eof(MimeClosure crypto_closure, bool abort_p) { + if (!crypto_closure) { + return -1; + } + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); if (!data) { return -1; } @@ -427,18 +459,30 @@ return 0; } -static void MimeMultCMS_free(void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; - if (!data) return; +static void MimeMultCMS_free(MimeClosure crypto_closure) { + if (!crypto_closure) return; + + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); + if (!data) { + return; + } delete data; } -static void MimeMultCMS_suppressed_child(void* crypto_closure) { +static void MimeMultCMS_suppressed_child(MimeClosure crypto_closure) { + if (!crypto_closure) { + return; + } + // I'm a multipart/signed. If one of my cryptographic child elements // was suppressed, then I want my signature to be shown as invalid. - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; - if (data && data->smimeSink) { + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); + if (!data) { + return; + } + + if (data->smimeSink) { if (data->reject_signature || data->ignoredLayer) { return; } @@ -451,9 +495,14 @@ } } -static char* MimeMultCMS_generate(void* crypto_closure) { - MimeMultCMSdata* data = (MimeMultCMSdata*)crypto_closure; - if (!data) return 0; +static char* MimeMultCMS_generate(MimeClosure crypto_closure) { + if (!crypto_closure) return 0; + + MimeMultCMSdata* data = crypto_closure.AsMimeMultCMSData(); + if (!data) { + return nullptr; + } + nsCOMPtr signerCert; int aRelativeNestLevel = MIMEGetRelativeCryptoNestLevel(data->self); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemcms.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemcms.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemcms.h 2025-01-07 20:45:52.000000000 +0000 @@ -32,6 +32,6 @@ #define MimeMultipartSignedCMSClassInitializer(ITYPE, CSUPER) \ {MimeMultipartSignedClassInitializer(ITYPE, CSUPER)} -bool MimeMultCMSdata_isIgnored(void* crypto_closure); +bool MimeMultCMSdata_isIgnored(MimeClosure crypto_closure); #endif /* _MIMEMPKC_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemoz2.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemoz2.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -692,8 +692,15 @@ nsresult rv = NS_OK; if (obj && obj->options) { - mime_stream_data* msd = (mime_stream_data*)(obj->options->stream_closure); - if (msd) { + if (obj->options->stream_closure) { + mime_stream_data* msd = + obj->options->stream_closure.IsMimeDraftData() + ? nullptr + : obj->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return NS_ERROR_UNEXPECTED; + } + nsCOMPtr mailChannel = do_QueryInterface(msd->channel); if (mailChannel) { if (!PL_strcasecmp(aCharacterSet, "us-ascii")) { @@ -708,7 +715,7 @@ return rv; } -static char* mime_file_type(const char* filename, void* stream_closure) { +static char* mime_file_type(const char* filename, MimeClosure stream_closure) { char* retType = nullptr; char* ext = nullptr; nsresult rv; @@ -761,14 +768,20 @@ static int mime_convert_charset(const char* input_line, int32_t input_length, const char* input_charset, nsACString& convertedString, - void* stream_closure) { + MimeClosure stream_closure) { return ConvertToUTF8(input_line, input_length, input_charset, convertedString); } -static int mime_output_fn(const char* buf, int32_t size, void* stream_closure) { +static int mime_output_fn(const char* buf, int32_t size, + MimeClosure stream_closure) { uint32_t written = 0; - mime_stream_data* msd = (mime_stream_data*)stream_closure; + + mime_stream_data* msd = stream_closure.AsMimeStreamData(); + if (!msd) { + return -1; + } + if ((!msd->pluginObj2) && (!msd->output_emitter)) return -1; // Fire pending start request @@ -791,18 +804,28 @@ extern "C" int mime_display_stream_write(nsMIMESession* stream, const char* buf, int32_t size) { - mime_stream_data* msd = - (mime_stream_data*)((nsMIMESession*)stream)->data_object; + if (!stream->data_object) { + return -1; + } - MimeObject* obj = (msd ? msd->obj : 0); + mime_stream_data* msd = stream->data_object.AsMimeStreamData(); + if (!msd) { + return -1; + } + + MimeObject* obj = msd->obj; if (!obj) return -1; - return obj->clazz->parse_buffer((char*)buf, size, obj); + return obj->clazz->parse_buffer((char*)buf, size, + MimeClosure(MimeClosure::isMimeObject, obj)); } extern "C" void mime_display_stream_complete(nsMIMESession* stream) { - mime_stream_data* msd = - (mime_stream_data*)((nsMIMESession*)stream)->data_object; + mime_stream_data* msd = stream->data_object.AsMimeStreamData(); + if (!msd) { + return; + } + MimeObject* obj = (msd ? msd->obj : 0); if (obj) { int status; @@ -854,8 +877,10 @@ } extern "C" void mime_display_stream_abort(nsMIMESession* stream, int status) { - mime_stream_data* msd = - (mime_stream_data*)((nsMIMESession*)stream)->data_object; + mime_stream_data* msd = stream->data_object.AsMimeStreamData(); + if (!msd) { + return; + } MimeObject* obj = (msd ? msd->obj : 0); if (obj) { @@ -883,8 +908,11 @@ static int mime_output_init_fn(const char* type, const char* charset, const char* name, const char* x_mac_type, const char* x_mac_creator, - void* stream_closure) { - mime_stream_data* msd = (mime_stream_data*)stream_closure; + MimeClosure stream_closure) { + mime_stream_data* msd = stream_closure.AsMimeStreamData(); + if (!msd) { + return -1; + } // Now, all of this stream creation is done outside of libmime, so this // is just a check of the pluginObj member and returning accordingly. @@ -894,12 +922,13 @@ return 0; } -static void* mime_image_begin(const char* image_url, const char* content_type, - void* stream_closure); -static void mime_image_end(void* image_closure, int status); -static char* mime_image_make_image_html(void* image_data); +static mime_image_stream_data* mime_image_begin(const char* image_url, + const char* content_type, + MimeClosure stream_closure); +static void mime_image_end(MimeClosure image_closure, int status); +static char* mime_image_make_image_html(MimeClosure image_data); static int mime_image_write_buffer(const char* buf, int32_t size, - void* image_closure); + MimeClosure image_closure); /* Interface between libmime and inline display of images: the abomination that is known as "internal-external-reconnect". @@ -919,9 +948,14 @@ msd = nullptr; } -static void* mime_image_begin(const char* image_url, const char* content_type, - void* stream_closure) { - mime_stream_data* msd = (mime_stream_data*)stream_closure; +static mime_image_stream_data* mime_image_begin(const char* image_url, + const char* content_type, + MimeClosure stream_closure) { + mime_stream_data* msd = stream_closure.AsMimeStreamData(); + if (!msd) { + return nullptr; + } + class mime_image_stream_data* mid; mid = new mime_image_stream_data; @@ -939,21 +973,27 @@ return mid; } -static void mime_image_end(void* image_closure, int status) { - mime_image_stream_data* mid = (mime_image_stream_data*)image_closure; - - PR_ASSERT(mid); - if (!mid) return; +static void mime_image_end(MimeClosure image_closure, int status) { + PR_ASSERT(image_closure); + if (!image_closure) return; + + mime_image_stream_data* mid = image_closure.AsMimeImageStreamData(); + if (!mid) { + return; + } PR_FREEIF(mid->url); delete mid; } -static char* mime_image_make_image_html(void* image_closure) { - mime_image_stream_data* mid = (mime_image_stream_data*)image_closure; +static char* mime_image_make_image_html(MimeClosure image_closure) { + PR_ASSERT(image_closure); + if (!image_closure) return 0; - PR_ASSERT(mid); - if (!mid) return 0; + mime_image_stream_data* mid = image_closure.AsMimeImageStreamData(); + if (!mid) { + return nullptr; + } /* Internal-external-reconnect only works when going to the screen. */ if (!mid->istream) @@ -1005,8 +1045,12 @@ } static int mime_image_write_buffer(const char* buf, int32_t size, - void* image_closure) { - mime_image_stream_data* mid = (mime_image_stream_data*)image_closure; + MimeClosure image_closure) { + mime_image_stream_data* mid = image_closure.AsMimeImageStreamData(); + if (!mid) { + return -1; + } + mime_stream_data* msd = mid->msd; if (((!msd->output_emitter)) && ((!msd->pluginObj2))) return -1; @@ -1139,14 +1183,14 @@ default_charset = nullptr; override_charset = false; force_user_charset = false; - stream_closure = nullptr; + stream_closure = MimeClosure::zero(); /* For setting up the display stream, so that the MIME parser can inform the caller of the type of the data it will be getting. */ output_init_fn = nullptr; output_fn = nullptr; - output_closure = nullptr; + output_closure = MimeClosure::zero(); charset_conversion_fn = nullptr; rfc1522_conversion_p = false; @@ -1155,7 +1199,7 @@ passwd_prompt_fn = nullptr; - html_closure = nullptr; + html_closure = MimeClosure::zero(); generate_header_html_fn = nullptr; generate_post_header_html_fn = nullptr; @@ -1376,7 +1420,8 @@ msd->options->charset_conversion_fn = mime_convert_charset; msd->options->rfc1522_conversion_p = true; msd->options->file_type_fn = mime_file_type; - msd->options->stream_closure = msd; + msd->options->stream_closure = + MimeClosure(MimeClosure::isMimeStreamData, msd); msd->options->passwd_prompt_fn = 0; msd->options->image_begin = mime_image_begin; @@ -1419,7 +1464,7 @@ stream->complete = mime_display_stream_complete; stream->abort = mime_display_stream_abort; stream->put_block = mime_display_stream_write; - stream->data_object = msd; + stream->data_object = MimeClosure(MimeClosure::isMimeStreamData, msd); status = obj->clazz->initialize(obj); if (status >= 0) status = obj->clazz->parse_begin(obj); @@ -1438,8 +1483,12 @@ // Emitter Wrapper Routines! // nsIMimeEmitter* GetMimeEmitter(MimeDisplayOptions* opt) { - mime_stream_data* msd = (mime_stream_data*)opt->stream_closure; - if (!msd) return NULL; + if (!opt->stream_closure) return NULL; + + mime_stream_data* msd = opt->stream_closure.AsMimeStreamData(); + if (!msd) { + return nullptr; + } nsIMimeEmitter* ptr = (nsIMimeEmitter*)(msd->output_emitter); return ptr; @@ -1447,8 +1496,8 @@ mime_stream_data* GetMSD(MimeDisplayOptions* opt) { if (!opt) return nullptr; - mime_stream_data* msd = (mime_stream_data*)opt->stream_closure; - return msd; + + return opt->stream_closure.AsMimeStreamData(); } bool NoEmitterProcessing(nsMimeOutputType format_out) { @@ -1671,7 +1720,7 @@ extern "C" nsresult mimeSetNewURL(nsMIMESession* stream, char* url) { if ((!stream) || (!url) || (!*url)) return NS_ERROR_FAILURE; - mime_stream_data* msd = (mime_stream_data*)stream->data_object; + mime_stream_data* msd = stream->data_object.AsMimeStreamData(); if (!msd) return NS_ERROR_FAILURE; char* tmpPtr = strdup(url); @@ -1717,10 +1766,15 @@ void ResetChannelCharset(MimeObject* obj) { if (obj->options && obj->options->stream_closure && - obj->options->default_charset && obj->headers) { - mime_stream_data* msd = (mime_stream_data*)(obj->options->stream_closure); + obj->options->default_charset && obj->headers && + obj->options->stream_closure) { + mime_stream_data* msd = obj->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return; + } + char* ct = MimeHeaders_get(obj->headers, HEADER_CONTENT_TYPE, false, false); - if (ct && msd && msd->channel) { + if (ct && msd->channel) { char* cSet = MimeHeaders_get_parameter(ct, "charset", nullptr, nullptr); if (cSet) { // The content-type does specify a charset. First, setup the channel. diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemoz2.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemoz2.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemoz2.h 2025-01-07 20:45:52.000000000 +0000 @@ -48,16 +48,16 @@ void* window_id; /* used for progress messages, etc. */ - void* data_object; /* a pointer to whatever - * structure you wish to have - * passed to the routines below - * during writes, etc... - * - * this data object should hold - * the document, document - * structure or a pointer to the - * document. - */ + MimeClosure data_object; /* a pointer to whatever + * structure you wish to have + * passed to the routines below + * during writes, etc... + * + * this data object should hold + * the document, document + * structure or a pointer to the + * document. + */ MKSessionWriteReadyFunc is_write_ready; /* checks to see if the stream is * ready for writing. Returns 0 if diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemrel.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemrel.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -686,7 +686,7 @@ static int real_write(MimeMultipartRelated* relobj, const char* buf, int32_t size) { MimeObject* obj = (MimeObject*)relobj; - void* closure = relobj->real_output_closure; + MimeClosure closure = relobj->real_output_closure; #ifdef MIME_DRAFTS if (obj->options && obj->options->decompose_file_p && @@ -697,10 +697,15 @@ // then restore it when we are done. Not sure if we shouldn't just turn it // off permanently though. - mime_draft_data* mdd = (mime_draft_data*)obj->options->stream_closure; + mime_draft_data* mdd = obj->options->stream_closure.AsMimeDraftData(); + if (!mdd) { + return -1; + } + MimeDecoderData* old_decoder_data = mdd->decoder_data; mdd->decoder_data = nullptr; - int status = obj->options->decompose_file_output_fn(buf, size, (void*)mdd); + int status = obj->options->decompose_file_output_fn( + buf, size, MimeClosure(MimeClosure::isMimeDraftData, mdd)); mdd->decoder_data = old_decoder_data; return status; } else @@ -897,8 +902,12 @@ } static int mime_multipart_related_output_fn(const char* buf, int32_t size, - void* stream_closure) { - MimeMultipartRelated* relobj = (MimeMultipartRelated*)stream_closure; + MimeClosure stream_closure) { + MimeMultipartRelated* relobj = stream_closure.AsMimeMultipartRelated(); + if (!relobj) { + return -1; + } + char* ptr; int32_t delta; int status; @@ -963,7 +972,8 @@ relobj->real_output_closure = obj->options->output_closure; obj->options->output_fn = mime_multipart_related_output_fn; - obj->options->output_closure = obj; + obj->options->output_closure = + MimeClosure(MimeClosure::isMimeMultipartRelated, relobj); body = mime_create(((ct && *ct) ? ct : (dct ? dct : TEXT_HTML)), relobj->buffered_hdrs, obj->options); @@ -1022,8 +1032,9 @@ /* Read it out of memory. */ PR_ASSERT(!relobj->file_buffer && !relobj->input_file_stream); - status = body->clazz->parse_buffer(relobj->head_buffer, - relobj->head_buffer_fp, body); + status = + body->clazz->parse_buffer(relobj->head_buffer, relobj->head_buffer_fp, + MimeClosure(MimeClosure::isMimeObject, body)); } else if (relobj->file_buffer) { /* Read it off disk. */ char* buf; @@ -1064,7 +1075,8 @@ some user events and other input sources get processed. Oh well. */ - status = body->clazz->parse_buffer(buf, bytesRead, body); + status = body->clazz->parse_buffer( + buf, bytesRead, MimeClosure(MimeClosure::isMimeObject, body)); if (status < 0) break; } } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemrel.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemrel.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemrel.h 2025-01-07 20:45:52.000000000 +0000 @@ -48,7 +48,7 @@ PLHashTable* hash; MimeConverterOutputCallback real_output_fn; - void* real_output_closure; + MimeClosure real_output_closure; char* curtag; int32_t curtag_max; @@ -56,6 +56,6 @@ }; #define MimeMultipartRelatedClassInitializer(ITYPE, CSUPER) \ - { MimeMultipartClassInitializer(ITYPE, CSUPER) } + {MimeMultipartClassInitializer(ITYPE, CSUPER)} #endif /* _MIMEMREL_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsg.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsg.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsg.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsg.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -35,7 +35,8 @@ static int MimeMessage_parse_eof(MimeObject*, bool); static int MimeMessage_close_headers(MimeObject* obj); static int MimeMessage_write_headers_html(MimeObject*); -static char* MimeMessage_partial_message_html(const char* data, void* closure, +static char* MimeMessage_partial_message_html(const char* data, + MimeClosure closure, MimeHeaders* headers); #ifdef XP_UNIX @@ -171,14 +172,17 @@ #endif /* MIME_DRAFTS */ if (nl) - return kid->clazz->parse_buffer(line, length, kid); + return kid->clazz->parse_buffer( + line, length, MimeClosure(MimeClosure::isMimeObject, kid)); else { /* Hack a newline onto the end. */ char* s = (char*)PR_MALLOC(length + MSG_LINEBREAK_LEN + 1); if (!s) return MIME_OUT_OF_MEMORY; memcpy(s, line, length); PL_strncpyz(s + length, MSG_LINEBREAK, MSG_LINEBREAK_LEN + 1); - status = kid->clazz->parse_buffer(s, length + MSG_LINEBREAK_LEN, kid); + status = + kid->clazz->parse_buffer(s, length + MSG_LINEBREAK_LEN, + MimeClosure(MimeClosure::isMimeObject, kid)); PR_Free(s); return status; } @@ -465,7 +469,8 @@ char dummy = 0; if (sscanf(xmoz, " %x %c", &flags, &dummy) == 1 && flags & nsMsgMessageFlags::Partial) { - obj->options->html_closure = obj; + obj->options->html_closure = + MimeClosure(MimeClosure::isMimeMessage, obj); obj->options->generate_footer_html_fn = MimeMessage_partial_message_html; } @@ -505,8 +510,12 @@ if ((outer_p || obj->options->notify_nested_bodies) && obj->options && obj->options->write_html_p) { if (obj->options->generate_footer_html_fn) { - mime_stream_data* msd = (mime_stream_data*)obj->options->stream_closure; - if (msd) { + if (obj->options->stream_closure) { + mime_stream_data* msd = obj->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return 0; + } + char* html = obj->options->generate_footer_html_fn( msd->orig_url_name, obj->options->html_closure, msg->hdrs); if (html) { @@ -712,9 +721,14 @@ return 0; } -static char* MimeMessage_partial_message_html(const char* data, void* closure, +static char* MimeMessage_partial_message_html(const char* data, + MimeClosure closure, MimeHeaders* headers) { - MimeMessage* msg = (MimeMessage*)closure; + MimeMessage* msg = closure.AsMimeMessage(); + if (!msg) { + return nullptr; + } + nsAutoCString orig_url(data); char* uidl = MimeHeaders_get(headers, HEADER_X_UIDL, false, false); char* msgId = MimeHeaders_get(headers, HEADER_MESSAGE_ID, false, false); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsig.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsig.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -85,7 +85,7 @@ around for the lifetime of the MIME object, so that we can get at the security info of sub-parts of the currently-displayed message. */ ((MimeMultipartSignedClass*)obj->clazz)->crypto_free(sig->crypto_closure); - sig->crypto_closure = 0; + sig->crypto_closure = MimeClosure::zero(); } if (sig->sig_decoder_data) { @@ -329,7 +329,7 @@ (Similar logic is in MimeLeafClass->parse_begin.) */ { - MimeDecoderData* (*fn)(MimeConverterOutputCallback, void*) = 0; + MimeDecoderData* (*fn)(MimeConverterOutputCallback, MimeClosure) = 0; nsCString encoding; encoding.Adopt(MimeHeaders_get( sig->sig_hdrs, HEADER_CONTENT_TRANSFER_ENCODING, true, false)); @@ -339,9 +339,7 @@ fn = &MimeB64DecoderInit; else if (!PL_strcasecmp(encoding.get(), ENCODING_QUOTED_PRINTABLE)) { sig->sig_decoder_data = MimeQPDecoderInit( - ((MimeConverterOutputCallback)(((MimeMultipartSignedClass*) - obj->clazz) - ->crypto_signature_hash)), + (((MimeMultipartSignedClass*)obj->clazz)->crypto_signature_hash), sig->crypto_closure); if (!sig->sig_decoder_data) return MIME_OUT_OF_MEMORY; } else if (!PL_strcasecmp(encoding.get(), ENCODING_UUENCODE) || @@ -352,11 +350,9 @@ else if (!PL_strcasecmp(encoding.get(), ENCODING_YENCODE)) fn = &MimeYDecoderInit; if (fn) { - sig->sig_decoder_data = - fn(((MimeConverterOutputCallback)(((MimeMultipartSignedClass*) - obj->clazz) - ->crypto_signature_hash)), - sig->crypto_closure); + sig->sig_decoder_data = fn( + (((MimeMultipartSignedClass*)obj->clazz)->crypto_signature_hash), + sig->crypto_closure); if (!sig->sig_decoder_data) return MIME_OUT_OF_MEMORY; } } @@ -701,21 +697,15 @@ if (body->options->decompose_file_p && !mime_typep(body, (MimeObjectClass*)&mimeMultipartClass) && body->options->decompose_file_output_fn) - status = - MimePartBufferRead(sig->part_buffer, - /* The (MimeConverterOutputCallback) cast is to - turn the `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback) - body->options->decompose_file_output_fn), - body->options->stream_closure); + status = MimePartBufferRead(sig->part_buffer, + + body->options->decompose_file_output_fn, + body->options->stream_closure); else #endif /* MIME_DRAFTS */ - status = MimePartBufferRead( - sig->part_buffer, - /* The (MimeConverterOutputCallback) cast is to turn the - `void' argument into `MimeObject'. */ - ((MimeConverterOutputCallback)body->clazz->parse_buffer), body); + status = MimePartBufferRead(sig->part_buffer, body->clazz->parse_buffer, + MimeClosure(MimeClosure::isMimeObject, body)); if (status < 0) return status; } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsig.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemsig.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemsig.h 2025-01-07 20:45:52.000000000 +0000 @@ -93,27 +93,27 @@ MimeMultipartClass multipart; /* Callbacks used by dexlateion (really, signature verification) module. */ - void* (*crypto_init)(MimeObject* multipart_object); + MimeClosure (*crypto_init)(MimeObject* multipart_object); int (*crypto_data_hash)(const char* data, int32_t data_size, - void* crypto_closure); + MimeClosure crypto_closure); int (*crypto_signature_hash)(const char* data, int32_t data_size, - void* crypto_closure); + MimeClosure crypto_closure); - int (*crypto_data_eof)(void* crypto_closure, bool abort_p); - int (*crypto_signature_eof)(void* crypto_closure, bool abort_p); + int (*crypto_data_eof)(MimeClosure crypto_closure, bool abort_p); + int (*crypto_signature_eof)(MimeClosure crypto_closure, bool abort_p); - int (*crypto_signature_init)(void* crypto_closure, + int (*crypto_signature_init)(MimeClosure crypto_closure, MimeObject* multipart_object, MimeHeaders* signature_hdrs); - int (*crypto_signature_ignore)(void* crypto_closure); + int (*crypto_signature_ignore)(MimeClosure crypto_closure); - char* (*crypto_generate_html)(void* crypto_closure); + char* (*crypto_generate_html)(MimeClosure crypto_closure); - void (*crypto_notify_suppressed_child)(void* crypto_closure); + void (*crypto_notify_suppressed_child)(MimeClosure crypto_closure); - void (*crypto_free)(void* crypto_closure); + void (*crypto_free)(MimeClosure crypto_closure); }; extern "C" MimeMultipartSignedClass mimeMultipartSignedClass; @@ -122,7 +122,7 @@ MimeMultipart multipart; MimeMultipartSignedParseState state; /* State of parser */ - void* crypto_closure; /* Opaque data used by signature + MimeClosure crypto_closure; /* Opaque data used by signature verification module. */ MimeHeaders* body_hdrs; /* The headers of the signed object. */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemult.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemult.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimemult.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimemult.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -462,11 +462,14 @@ /* if we are saving an apple double attachment, we need to set correctly the * content type of the channel */ if (mime_typep(obj, (MimeObjectClass*)&mimeMultipartAppleDoubleClass)) { - mime_stream_data* msd = (mime_stream_data*)body->options->stream_closure; - if (!body->options->write_html_p && body->content_type && - !PL_strcasecmp(body->content_type, APPLICATION_APPLEFILE)) { - if (msd && msd->channel) - msd->channel->SetContentType(nsLiteralCString(APPLICATION_APPLEFILE)); + mime_stream_data* msd = body->options->stream_closure.AsMimeStreamData(); + if (msd) { + if (!body->options->write_html_p && body->content_type && + !PL_strcasecmp(body->content_type, APPLICATION_APPLEFILE)) { + if (msd->channel) + msd->channel->SetContentType( + nsLiteralCString(APPLICATION_APPLEFILE)); + } } } #endif @@ -598,12 +601,14 @@ if (!first_line_p) { /* Push out a preceding newline... */ char nl[] = MSG_LINEBREAK; - status = kid->clazz->parse_buffer(nl, MSG_LINEBREAK_LEN, kid); + status = kid->clazz->parse_buffer( + nl, MSG_LINEBREAK_LEN, MimeClosure(MimeClosure::isMimeObject, kid)); if (status < 0) return status; } /* Now push out the line sans trailing newline. */ - return kid->clazz->parse_buffer(line, length, kid); + return kid->clazz->parse_buffer(line, length, + MimeClosure(MimeClosure::isMimeObject, kid)); } static int MimeMultipart_parse_eof(MimeObject* obj, bool abort_p) { diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeobj.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeobj.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -28,7 +28,7 @@ static int MimeObject_initialize(MimeObject*); static void MimeObject_finalize(MimeObject*); static int MimeObject_parse_begin(MimeObject*); -static int MimeObject_parse_buffer(const char*, int32_t, MimeObject*); +static int MimeObject_parse_buffer(const char*, int32_t, MimeClosure); static int MimeObject_parse_line(const char*, int32_t, MimeObject*); static int MimeObject_parse_eof(MimeObject*, bool); static int MimeObject_parse_end(MimeObject*, bool); @@ -210,16 +210,17 @@ } static int MimeObject_parse_buffer(const char* buffer, int32_t size, - MimeObject* obj) { + MimeClosure closure) { + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + NS_ASSERTION(!obj->closed_p, "object shouldn't be closed"); if (obj->closed_p) return -1; return mime_LineBuffer(buffer, size, &obj->ibuffer, &obj->ibuffer_size, - &obj->ibuffer_fp, true, - ((int (*)(char*, int32_t, void*)) - /* This cast is to turn void into MimeObject */ - obj->clazz->parse_line), - obj); + &obj->ibuffer_fp, true, obj->clazz->parse_line, obj); } static int MimeObject_parse_line(const char* line, int32_t length, diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeobj.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeobj.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeobj.h 2025-01-07 20:45:52.000000000 +0000 @@ -110,7 +110,7 @@ int (*initialize)(MimeObject* obj); void (*finalize)(MimeObject* obj); int (*parse_begin)(MimeObject* obj); - int (*parse_buffer)(const char* buf, int32_t size, MimeObject* obj); + int (*parse_buffer)(const char* buf, int32_t size, MimeClosure closure); int (*parse_line)(const char* line, int32_t length, MimeObject* obj); int (*parse_eof)(MimeObject* obj, bool abort_p); int (*parse_end)(MimeObject* obj, bool abort_p); diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimepbuf.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimepbuf.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -197,7 +197,8 @@ } int MimePartBufferRead(MimePartBufferData* data, - MimeConverterOutputCallback read_fn, void* closure) { + MimeConverterOutputCallback read_fn, + MimeClosure closure) { int status = 0; NS_ASSERTION(data, "no data"); if (!data) return -1; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimepbuf.h thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimepbuf.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimepbuf.h 2025-01-07 20:45:52.000000000 +0000 @@ -57,6 +57,6 @@ */ extern int MimePartBufferRead(MimePartBufferData* data, MimeConverterOutputCallback read_fn, - void* closure); + MimeClosure closure); #endif /* _MIMEPBUF_H_ */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimesun.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimesun.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimesun.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimesun.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -310,5 +310,6 @@ PR_ASSERT(kid); if (!kid) return -1; - return kid->clazz->parse_buffer(line, length, kid); + return kid->clazz->parse_buffer(line, length, + MimeClosure(MimeClosure::isMimeObject, kid)); } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimetext.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimetext.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimetext.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimetext.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -34,10 +34,11 @@ static int MimeInlineText_parse_eof(MimeObject* obj, bool abort_p); static int MimeInlineText_parse_end(MimeObject*, bool); static int MimeInlineText_parse_decoded_buffer(const char*, int32_t, - MimeObject*); -static int MimeInlineText_rotate_convert_and_parse_line(char*, int32_t, + MimeClosure); +static int MimeInlineText_rotate_convert_and_parse_line(const char*, int32_t, MimeObject*); -static int MimeInlineText_open_dam(char* line, int32_t length, MimeObject* obj); +static int MimeInlineText_open_dam(const char* line, int32_t length, + MimeObject* obj); static int MimeInlineText_initializeCharset(MimeObject* obj); static int MimeInlineTextClassInitialize(MimeObjectClass* oclass) { @@ -248,7 +249,12 @@ } static int MimeInlineText_parse_decoded_buffer(const char* buf, int32_t size, - MimeObject* obj) { + MimeClosure closure) { + MimeObject* obj = closure.AsMimeObject(); + if (!obj) { + return -1; + } + PR_ASSERT(!obj->closed_p); if (obj->closed_p) return -1; @@ -267,10 +273,7 @@ // `parse_line` method instead of calling the `parse_line` method directly. return mime_LineBuffer(buf, size, &obj->ibuffer, &obj->ibuffer_size, &obj->ibuffer_fp, true, - ((int (*)(char*, int32_t, void*)) - /* This cast is to turn void into MimeObject */ - MimeInlineText_rotate_convert_and_parse_line), - obj); + MimeInlineText_rotate_convert_and_parse_line, obj); } #define MimeInlineText_grow_cbuffer(text, desired_size) \ @@ -279,7 +282,8 @@ &(text)->cbuffer_size) \ : 0) -static int MimeInlineText_convert_and_parse_line(char* line, int32_t length, +static int MimeInlineText_convert_and_parse_line(const char* line, + int32_t length, MimeObject* obj) { int status; nsAutoCString converted; @@ -309,7 +313,7 @@ line, length, text->charset, converted, obj->options->stream_closure); if (status == 0) { - line = (char*)converted.get(); + line = converted.get(); length = converted.Length(); } @@ -323,7 +327,7 @@ // In this function call, all buffered lines in lineDam will be sent to charset // detector and a charset will be used to parse all those line and following // lines in this mime obj. -static int MimeInlineText_open_dam(char* line, int32_t length, +static int MimeInlineText_open_dam(const char* line, int32_t length, MimeObject* obj) { MimeInlineText* text = (MimeInlineText*)obj; nsAutoCString detectedCharset; @@ -375,20 +379,35 @@ return status; } -static int MimeInlineText_rotate_convert_and_parse_line(char* line, - int32_t length, - MimeObject* obj) { +static int MimeInlineText_rotate_convert_and_parse_line( + const char* original_line, int32_t length, MimeObject* obj) { int status = 0; MimeInlineTextClass* textc = (MimeInlineTextClass*)obj->clazz; PR_ASSERT(!obj->closed_p); if (obj->closed_p) return -1; + const char* line = nullptr; + char* rotated_line = nullptr; + // Rotate the line, if desired (this happens on the raw data, before any // charset conversion). if (obj->options && obj->options->rot13_p) { - status = textc->rot13_line(obj, line, length); - if (status < 0) return status; + rotated_line = (char*)PR_Malloc(length); + if (!rotated_line) { + return -1; + } + memcpy(rotated_line, line, length); + + status = textc->rot13_line(obj, rotated_line, length); + if (status < 0) { + PR_Free(rotated_line); + return status; + } + + line = rotated_line; + } else { + line = original_line; } // Now convert to the canonical charset, if desired. @@ -435,5 +454,6 @@ } else status = obj->clazz->parse_line(line, length, obj); + PR_FREEIF(rotated_line); return status; } diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeunty.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeunty.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/mimeunty.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/mimeunty.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -146,8 +146,8 @@ /* Hand this line to the currently-open sub-part. */ - status = - uty->open_subpart->clazz->parse_buffer(line, length, uty->open_subpart); + status = uty->open_subpart->clazz->parse_buffer( + line, length, MimeClosure(MimeClosure::isMimeObject, uty->open_subpart)); if (status < 0) return status; /* Close this sub-part if this line demands it. diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/modlmime.h thunderbird-128.6.0esr/comm/mailnews/mime/src/modlmime.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/modlmime.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/modlmime.h 2025-01-07 20:45:52.000000000 +0000 @@ -120,9 +120,12 @@ /* The signature for various callbacks in the MimeDisplayOptions structure. */ -typedef char* (*MimeHTMLGeneratorFunction)(const char* data, void* closure, +typedef char* (*MimeHTMLGeneratorFunction)(const char* data, + MimeClosure closure, MimeHeaders* headers); +class mime_image_stream_data; + class MimeDisplayOptions { public: MimeDisplayOptions(); @@ -198,20 +201,20 @@ is what is found in `options->stream_closure'. (One possible exception is for output_fn; see "output_closure" below.) */ - void* stream_closure; + MimeClosure stream_closure; /* For setting up the display stream, so that the MIME parser can inform the caller of the type of the data it will be getting. */ int (*output_init_fn)(const char* type, const char* charset, const char* name, const char* x_mac_type, const char* x_mac_creator, - void* stream_closure); + MimeClosure stream_closure); /* How the MIME parser feeds its output (HTML or raw) back to the caller. */ MimeConverterOutputCallback output_fn; /* Closure to pass to the above output_fn. If NULL, then the stream_closure is used. */ - void* output_closure; + MimeClosure output_closure; /* A hook for the caller to perform charset-conversion before HTML is returned. Each set of characters which originated in a mail message @@ -232,7 +235,8 @@ */ int (*charset_conversion_fn)(const char* input_line, int32_t input_length, const char* input_charset, - nsACString& output_ret, void* stream_closure); + nsACString& output_ret, + MimeClosure stream_closure); /* If true, perform both charset-conversion and decoding of MIME-2 header fields (using RFC-1522 encoding.) @@ -240,7 +244,7 @@ bool rfc1522_conversion_p; /* A hook for the caller to turn a file name into a content-type. */ - char* (*file_type_fn)(const char* filename, void* stream_closure); + char* (*file_type_fn)(const char* filename, MimeClosure stream_closure); /* A hook by which the user may be prompted for a password by the security library. (This is really of type `SECKEYGetPasswordKey'; see sec.h.) */ @@ -250,7 +254,7 @@ Various callbacks; for all of these functions, the `closure' argument is what is found in `html_closure'. */ - void* html_closure; + MimeClosure html_closure; /* For emitting some HTML before the start of the outermost message (this is called before any HTML is written to layout.) */ @@ -282,17 +286,19 @@ /* Begins processing an embedded image; the URL and content_type are of the image itself. */ - void* (*image_begin)(const char* image_url, const char* content_type, - void* stream_closure); + mime_image_stream_data* (*image_begin)(const char* image_url, + const char* content_type, + MimeClosure stream_closure); /* Stop processing an image. */ - void (*image_end)(void* image_closure, int status); + void (*image_end)(MimeClosure image_closure, int status); /* Dump some raw image data down the stream. */ - int (*image_write_buffer)(const char* buf, int32_t size, void* image_closure); + int (*image_write_buffer)(const char* buf, int32_t size, + MimeClosure image_closure); /* What HTML should be dumped out for this image. */ - char* (*make_image_html)(void* image_closure); + char* (*make_image_html)(MimeClosure image_closure); /* ======================================================================= Other random opaque state. @@ -325,14 +331,15 @@ /* Callback to gather the outer most headers so we could use the information to initialize the addressing/subject/newsgroups fields for the composition window. */ - int (*decompose_headers_info_fn)(void* closure, MimeHeaders* headers); + int (*decompose_headers_info_fn)(MimeClosure closure, MimeHeaders* headers); /* Callbacks to create temporary files for drafts attachments. */ - int (*decompose_file_init_fn)(void* stream_closure, MimeHeaders* headers); + int (*decompose_file_init_fn)(MimeClosure stream_closure, + MimeHeaders* headers); MimeConverterOutputCallback decompose_file_output_fn; - int (*decompose_file_close_fn)(void* stream_closure); + int (*decompose_file_close_fn)(MimeClosure stream_closure); #endif /* MIME_DRAFTS */ int32_t attachment_icon_layer_id; /* Hackhackhack. This is zero if we have diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/modmimee.h thunderbird-128.6.0esr/comm/mailnews/mime/src/modmimee.h --- thunderbird-128.5.0esr/comm/mailnews/mime/src/modmimee.h 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/modmimee.h 2025-01-07 20:45:52.000000000 +0000 @@ -12,9 +12,10 @@ #define _MIMEENC_H_ #include "nscore.h" // for nullptr +#include "mime_closure.h" typedef int (*MimeConverterOutputCallback)(const char* buf, int32_t size, - void* closure); + MimeClosure closure); /* This file defines interfaces to generic implementations of Base64, Quoted-Printable, and UU decoders; and of Base64 and Quoted-Printable @@ -29,15 +30,16 @@ /* functions for creating that opaque data. */ MimeDecoderData* MimeB64DecoderInit(MimeConverterOutputCallback output_fn, - void* closure); + MimeClosure closure); MimeDecoderData* MimeQPDecoderInit(MimeConverterOutputCallback output_fn, - void* closure, MimeObject* object = nullptr); + MimeClosure closure, + MimeObject* object = nullptr); MimeDecoderData* MimeUUDecoderInit(MimeConverterOutputCallback output_fn, - void* closure); + MimeClosure closure); MimeDecoderData* MimeYDecoderInit(MimeConverterOutputCallback output_fn, - void* closure); + MimeClosure closure); /* Push data through the encoder/decoder, causing the above-provided write_fn to be called with encoded/decoded data. */ diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/moz.build thunderbird-128.6.0esr/comm/mailnews/mime/src/moz.build --- thunderbird-128.5.0esr/comm/mailnews/mime/src/moz.build 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/moz.build 2025-01-07 20:45:52.000000000 +0000 @@ -4,6 +4,7 @@ # file, You can obtain one at http://mozilla.org/MPL/2.0/. EXPORTS += [ + "mime_closure.h", "mimecont.h", "mimecryp.h", "mimecth.h", @@ -24,6 +25,7 @@ SOURCES += [ "comi18n.cpp", + "mime_closure.cpp", "mimebuf.cpp", "mimecms.cpp", "mimecom.cpp", diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/nsSimpleMimeConverterStub.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/nsSimpleMimeConverterStub.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/nsSimpleMimeConverterStub.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/nsSimpleMimeConverterStub.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -3,6 +3,7 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include "prlog.h" #include "mimecth.h" #include "mimetext.h" #include "mimemoz2.h" @@ -73,7 +74,11 @@ if (ssobj->buffer->IsEmpty()) return 0; - mime_stream_data* msd = (mime_stream_data*)(obj->options->stream_closure); + mime_stream_data* msd = obj->options->stream_closure.AsMimeStreamData(); + if (!msd) { + return 0; + } + nsIChannel* channel = msd->channel; // note the lack of ref counting... if (channel) { nsCOMPtr uri; diff -Nru thunderbird-128.5.0esr/comm/mailnews/mime/src/nsStreamConverter.cpp thunderbird-128.6.0esr/comm/mailnews/mime/src/nsStreamConverter.cpp --- thunderbird-128.5.0esr/comm/mailnews/mime/src/nsStreamConverter.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/mime/src/nsStreamConverter.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -62,9 +62,12 @@ nsMIMESession* session = (nsMIMESession*)bridgeStream; if (session) { - // BAD ASSUMPTION!!!! NEED TO CHECK aType - mime_stream_data* msd = (mime_stream_data*)session->data_object; - if (msd) msd->format_out = aType; // output format type + mime_stream_data* msd = session->data_object.AsMimeStreamData(); + if (!msd) { + return; + } + + msd->format_out = aType; // output format type } } @@ -81,16 +84,15 @@ if ((aOutputType == nsMimeOutput::nsMimeMessageDraftOrTemplate) || (aOutputType == nsMimeOutput::nsMimeMessageEditorTemplate)) { - mime_draft_data* mdd = (mime_draft_data*)session->data_object; - if (mdd->options) { + mime_draft_data* mdd = session->data_object.AsMimeDraftData(); + if (mdd && mdd->options) { default_charset = &(mdd->options->default_charset); override_charset = &(mdd->options->override_charset); url_name = &(mdd->url_name); } } else { - mime_stream_data* msd = (mime_stream_data*)session->data_object; - - if (msd->options) { + mime_stream_data* msd = session->data_object.AsMimeStreamData(); + if (msd && msd->options) { default_charset = &(msd->options->default_charset); override_charset = &(msd->options->override_charset); url_name = &(msd->url_name); @@ -142,12 +144,15 @@ return NS_OK; } -static int mime_headers_callback(void* closure, MimeHeaders* headers) { - // We get away with this because this doesn't get called on draft operations. - mime_stream_data* msd = (mime_stream_data*)closure; - - NS_ASSERTION(msd && headers, "null mime stream data or headers"); - if (!msd || !headers) return 0; +static int mime_headers_callback(MimeClosure closure, MimeHeaders* headers) { + NS_ASSERTION(closure && headers, "null mime stream data or headers"); + if (!closure || !headers) return 0; + + // This doesn't get called on draft operations. + mime_stream_data* msd = closure.AsMimeStreamData(); + if (!msd) { + return 0; + } NS_ASSERTION(!msd->headers, "non-null mime stream data headers"); msd->headers = MimeHeaders_copy(headers); @@ -162,8 +167,8 @@ if ((session) && (session->data_object)) { if ((aOutputType == nsMimeOutput::nsMimeMessageDraftOrTemplate) || (aOutputType == nsMimeOutput::nsMimeMessageEditorTemplate)) { - mime_draft_data* mdd = (mime_draft_data*)session->data_object; - if (mdd->options) { + mime_draft_data* mdd = session->data_object.AsMimeDraftData(); + if (mdd && mdd->options) { if (listener) { mdd->options->caller_need_root_headers = true; mdd->options->decompose_headers_info_fn = mime_headers_callback; @@ -173,9 +178,8 @@ } } } else { - mime_stream_data* msd = (mime_stream_data*)session->data_object; - - if (msd->options) { + mime_stream_data* msd = session->data_object.AsMimeStreamData(); + if (msd && msd->options) { if (listener) { msd->options->caller_need_root_headers = true; msd->options->decompose_headers_info_fn = mime_headers_callback; @@ -811,11 +815,15 @@ if ((mOutputType == nsMimeOutput::nsMimeMessageDraftOrTemplate) || (mOutputType == nsMimeOutput::nsMimeMessageEditorTemplate)) { - mime_draft_data* mdd = (mime_draft_data*)tSession->data_object; - if (mdd) workHeaders = &(mdd->headers); + mime_draft_data* mdd = tSession->data_object.AsMimeDraftData(); + if (mdd) { + workHeaders = &(mdd->headers); + } } else { - mime_stream_data* msd = (mime_stream_data*)tSession->data_object; - if (msd) workHeaders = &(msd->headers); + mime_stream_data* msd = tSession->data_object.AsMimeStreamData(); + if (msd) { + workHeaders = &(msd->headers); + } } if (workHeaders) { diff -Nru thunderbird-128.5.0esr/comm/mailnews/search/src/nsMsgLocalSearch.cpp thunderbird-128.6.0esr/comm/mailnews/search/src/nsMsgLocalSearch.cpp --- thunderbird-128.5.0esr/comm/mailnews/search/src/nsMsgLocalSearch.cpp 2024-11-25 20:13:07.000000000 +0000 +++ thunderbird-128.6.0esr/comm/mailnews/search/src/nsMsgLocalSearch.cpp 2025-01-07 20:45:52.000000000 +0000 @@ -626,6 +626,9 @@ dbErr = m_db->ReverseEnumerateMessages(getter_AddRefs(m_listContext)); if (NS_SUCCEEDED(dbErr) && m_listContext) { PRIntervalTime startTime = PR_IntervalNow(); + nsAutoString nullCharset, folderCharset; + GetSearchCharsets(nullCharset, folderCharset); + NS_ConvertUTF16toUTF8 charset(folderCharset); while (!*aDone) // we'll break out of the loop after kTimeSliceInMS // milliseconds { @@ -636,9 +639,6 @@ // that we did have an error so we'll clean up later else { bool match = false; - nsAutoString nullCharset, folderCharset; - GetSearchCharsets(nullCharset, folderCharset); - NS_ConvertUTF16toUTF8 charset(folderCharset); // Is this message a hit? err = MatchTermsForSearch(msgDBHdr, m_searchTerms, charset.get(), m_scope, m_db, &expressionTree, &match); diff -Nru thunderbird-128.5.0esr/config/milestone.txt thunderbird-128.6.0esr/config/milestone.txt --- thunderbird-128.5.0esr/config/milestone.txt 2024-11-25 20:12:29.000000000 +0000 +++ thunderbird-128.6.0esr/config/milestone.txt 2025-01-07 20:45:12.000000000 +0000 @@ -10,4 +10,4 @@ # hardcoded milestones in the tree from these two files. #-------------------------------------------------------- -128.5.0 +128.6.0 diff -Nru thunderbird-128.5.0esr/debian/changelog thunderbird-128.6.0esr/debian/changelog --- thunderbird-128.5.0esr/debian/changelog 2024-11-27 07:05:12.000000000 +0000 +++ thunderbird-128.6.0esr/debian/changelog 2025-01-09 17:45:53.000000000 +0000 @@ -1,3 +1,45 @@ +thunderbird (1:128.6.0esr-1~deb12u1) bookworm-security; urgency=medium + + * Rebuild for bookworm-security + + [ Carsten Schoenert ] + * [a6ed0c0] d/control: Switch to clang-16/llvm-16 (Closes: #1088615) + * [2e9c2ff] d/rules: Extend PATH to use *llvm-16* environment + + -- Christoph Goehre Thu, 09 Jan 2025 18:45:53 +0100 + +thunderbird (1:128.6.0esr-1) unstable; urgency=medium + + * [996cbfa] New upstream version 128.6.0esr + Fixed CVE issues in upstream version 128.6 (MFSA 2025-05): + CVE-2025-0237: WebChannel APIs susceptible to confused deputy attack + CVE-2025-0238: Use-after-free when breaking lines in text + CVE-2025-0239: Alt-Svc ALPN validation failure when redirected + CVE-2025-0240: Compartment mismatch when parsing JavaScript JSON module + CVE-2025-0241: Memory corruption when using JavaScript Text Segmentation + CVE-2025-0242: Memory safety bugs fixed in Firefox 134, Thunderbird 134, + Firefox ESR 115.19, Firefox ESR 128.6, Thunderbird 115.19 + and Thunderbird 128.6 + CVE-2025-0243: Memory safety bugs fixed in Firefox 134, Thunderbird 134, + Firefox ESR 128.6 and Thunderbird 128.6 + * [1d10b3c] rebuild patch queue from patch-queue branch + obsolete patches (fixed upstream): + fixes/Fix-python-virtual-environment-sysconfig-path-calculation.patch + + -- Christoph Goehre Thu, 09 Jan 2025 10:54:20 +0100 + +thunderbird (1:128.5.2esr-1) unstable; urgency=medium + + * [e106dcb] New upstream version 128.5.2esr + Fixed CVE issues in upstream version 128.5.2 (MFSA 2024-69): + CVE-2024-50336: matrix-js-sdk has insufficient MXC URI validation which + could allow client-side path traversal + * [248b546] rebuild patch queue from patch-queue branch + added patches: + fixes/Fix-python-virtual-environment-sysconfig-path-calculation.patch + + -- Christoph Goehre Sat, 14 Dec 2024 11:23:54 +0100 + thunderbird (1:128.5.0esr-1~deb12u1) bookworm-security; urgency=medium * Rebuild for bookworm-security diff -Nru thunderbird-128.5.0esr/debian/control thunderbird-128.6.0esr/debian/control --- thunderbird-128.5.0esr/debian/control 2024-11-27 07:05:12.000000000 +0000 +++ thunderbird-128.6.0esr/debian/control 2025-01-09 17:45:53.000000000 +0000 @@ -9,7 +9,7 @@ bzip2, cargo-web (>= 1.78.0), cbindgen-web (>= 0.26.0), - clang, + clang-16, debhelper-compat (= 13), dh-apparmor, dh-exec, @@ -18,7 +18,7 @@ libasound2-dev [linux-any], libatk-adaptor, libcairo2-dev (>= 1.10.2-1.1~), - libclang-dev, + libclang-16-dev, libevent-dev (>= 1.4.1), libffi-dev, libfontconfig-dev, @@ -42,7 +42,7 @@ libxau-dev, libxft-dev, libxt-dev, - llvm-dev, + llvm-16-dev, mesa-common-dev, nasm, nodejs (>= 12.22.0), diff -Nru thunderbird-128.5.0esr/debian/rules thunderbird-128.6.0esr/debian/rules --- thunderbird-128.5.0esr/debian/rules 2024-11-27 07:05:12.000000000 +0000 +++ thunderbird-128.6.0esr/debian/rules 2025-01-09 17:45:53.000000000 +0000 @@ -83,6 +83,7 @@ export MOZ_ENABLE_VAAPI # Some Debian build tools clear out some variables export SHELL=/bin/bash +export PATH := /usr/lib/llvm-16/bin/:$(PATH) # Work around https://github.com/rust-lang/cargo/issues/7147 export CARGO_HOME=$(CURDIR)/debian/.cargo export MOZBUILD_STATE_PATH = $(CURDIR)/debian/.mozbuild diff -Nru thunderbird-128.5.0esr/docshell/base/nsDocShell.cpp thunderbird-128.6.0esr/docshell/base/nsDocShell.cpp --- thunderbird-128.5.0esr/docshell/base/nsDocShell.cpp 2024-11-25 20:12:30.000000000 +0000 +++ thunderbird-128.6.0esr/docshell/base/nsDocShell.cpp 2025-01-07 20:45:12.000000000 +0000 @@ -6156,9 +6156,13 @@ if (aStatus == NS_ERROR_UNKNOWN_PROTOCOL) { // For unknown protocols we only display an error if the load is triggered // by the browser itself. Showing the error for page-triggered navigations - // causes annoying behavior for users, see bug 1528305. + // causes annoying behavior for users when a page tries to open an external + // app which has not been installed, see bug 1528305. A missing WebExtension + // protocol handlers will however always load the error page, as it is not + // expected to be opened externally, see bug 1921426. nsCOMPtr info = aChannel->LoadInfo(); - if (!info->TriggeringPrincipal()->IsSystemPrincipal()) { + if (!info->TriggeringPrincipal()->IsSystemPrincipal() && + !BasePrincipal::Cast(info->TriggeringPrincipal())->AddonPolicy()) { if (aSkippedUnknownProtocolNavigation) { *aSkippedUnknownProtocolNavigation = true; } diff -Nru thunderbird-128.5.0esr/dom/base/StructuredCloneHolder.cpp thunderbird-128.6.0esr/dom/base/StructuredCloneHolder.cpp --- thunderbird-128.5.0esr/dom/base/StructuredCloneHolder.cpp 2024-11-25 20:12:30.000000000 +0000 +++ thunderbird-128.6.0esr/dom/base/StructuredCloneHolder.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -1369,7 +1369,6 @@ static_cast(aContent); RefPtr canvas = OffscreenCanvas::CreateFromCloneData(mGlobal, data); - delete data; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, canvas, &value)) { @@ -1377,6 +1376,7 @@ return false; } + delete data; aReturnObject.set(&value.toObject()); return true; } @@ -1390,7 +1390,6 @@ ImageBitmapCloneData* data = static_cast(aContent); RefPtr bitmap = ImageBitmap::CreateFromCloneData(mGlobal, data); - delete data; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, bitmap, &value)) { @@ -1398,6 +1397,7 @@ return false; } + delete data; aReturnObject.set(&value.toObject()); return true; } @@ -1466,14 +1466,14 @@ if (!frame) { return false; } - delete data; - aContent = nullptr; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, frame, &value)) { JS_ClearPendingException(aCx); return false; } + delete data; + aContent = nullptr; aReturnObject.set(&value.toObject()); return true; } @@ -1499,14 +1499,14 @@ if (!audioData) { return false; } - delete data; - aContent = nullptr; JS::Rooted value(aCx); if (!GetOrCreateDOMReflector(aCx, audioData, &value)) { JS_ClearPendingException(aCx); return false; } + delete data; + aContent = nullptr; aReturnObject.set(&value.toObject()); return true; } diff -Nru thunderbird-128.5.0esr/dom/base/nsLineBreaker.cpp thunderbird-128.6.0esr/dom/base/nsLineBreaker.cpp --- thunderbird-128.5.0esr/dom/base/nsLineBreaker.cpp 2024-11-25 20:12:30.000000000 +0000 +++ thunderbird-128.6.0esr/dom/base/nsLineBreaker.cpp 2025-01-07 20:45:12.000000000 +0000 @@ -15,6 +15,7 @@ #include "mozilla/intl/LineBreaker.h" // for LineBreaker::ComputeBreakPositions #include "mozilla/intl/Locale.h" #include "mozilla/intl/UnicodeProperties.h" +#include "mozilla/ScopeExit.h" #include "mozilla/StaticPrefs_intl.h" using mozilla::AutoRestore; @@ -150,6 +151,15 @@ } nsresult nsLineBreaker::FlushCurrentWord() { + auto cleanup = mozilla::MakeScopeExit([&] { + mCurrentWord.Clear(); + mTextItems.Clear(); + mCurrentWordMightBeBreakable = false; + mCurrentWordContainsMixedLang = false; + mCurrentWordLanguage = nullptr; + mWordContinuation = false; + }); + uint32_t length = mCurrentWord.Length(); AutoTArray breakState; if (!breakState.AppendElements(length, mozilla::fallible)) { @@ -232,12 +242,6 @@ offset += ti->mLength; } - mCurrentWord.Clear(); - mTextItems.Clear(); - mCurrentWordMightBeBreakable = false; - mCurrentWordContainsMixedLang = false; - mCurrentWordLanguage = nullptr; - mWordContinuation = false; return NS_OK; } diff -Nru thunderbird-128.5.0esr/dom/canvas/DrawTargetWebgl.cpp thunderbird-128.6.0esr/dom/canvas/DrawTargetWebgl.cpp --- thunderbird-128.5.0esr/dom/canvas/DrawTargetWebgl.cpp 2024-11-25 20:12:30.000000000 +0000 +++ thunderbird-128.6.0esr/dom/canvas/DrawTargetWebgl.cpp 2025-01-07 20:45:12.000000000 +0000 @@ -3048,7 +3048,12 @@ } static inline Point WGRPointToPoint(const WGR::Point& aPoint) { - return Point(IntPoint(aPoint.x, aPoint.y)) * (1.0f / 16.0f); + // WGR points are 28.4 fixed-point where (0.0, 0.0) is assumed to be a pixel + // center, as opposed to (0.5, 0.5) in canvas device space. WGR thus shifts + // each point by (-0.5, -0.5). To undo this, transform from fixed-point back + // to floating-point, and reverse the pixel shift by adding back (0.5, 0.5). + return Point(IntPoint(aPoint.x, aPoint.y)) * (1.0f / 16.0f) + + Point(0.5f, 0.5f); } // Generates a vertex buffer for a stroked path using aa-stroke. diff -Nru thunderbird-128.5.0esr/dom/html/HTMLInputElement.cpp thunderbird-128.6.0esr/dom/html/HTMLInputElement.cpp --- thunderbird-128.5.0esr/dom/html/HTMLInputElement.cpp 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/html/HTMLInputElement.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -5717,7 +5717,7 @@ } uint32_t HTMLInputElement::GetSelectionStartIgnoringType(ErrorResult& aRv) { - uint32_t selEnd, selStart; + uint32_t selEnd = 0, selStart = 0; GetSelectionRange(&selStart, &selEnd, aRv); return selStart; } @@ -5748,7 +5748,7 @@ } uint32_t HTMLInputElement::GetSelectionEndIgnoringType(ErrorResult& aRv) { - uint32_t selEnd, selStart; + uint32_t selEnd = 0, selStart = 0; GetSelectionRange(&selStart, &selEnd, aRv); return selEnd; } diff -Nru thunderbird-128.5.0esr/dom/media/eme/mediafoundation/WMFCDMImpl.cpp thunderbird-128.6.0esr/dom/media/eme/mediafoundation/WMFCDMImpl.cpp --- thunderbird-128.5.0esr/dom/media/eme/mediafoundation/WMFCDMImpl.cpp 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/media/eme/mediafoundation/WMFCDMImpl.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -20,6 +20,7 @@ const WMFCDMImpl::InitParams& aParams) { if (!mCDM) { mCDM = MakeRefPtr(mKeySystem); + mCDM->EnsureRemote(); } RefPtr self = this; mCDM->Init(aParams.mOrigin, aParams.mInitDataTypes, @@ -58,6 +59,7 @@ nsTArray> promises; for (const auto& request : aRequests) { RefPtr cdm = new MFCDMChild(request.mKeySystem); + cdm->EnsureRemote(); promises.AppendElement(cdm->GetCapabilities(MFCDMCapabilitiesRequest{ nsString{request.mKeySystem}, request.mDecryption == KeySystemConfig::DecryptionInfo::Hardware, diff -Nru thunderbird-128.5.0esr/dom/media/ipc/MFCDMChild.cpp thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.cpp --- thunderbird-128.5.0esr/dom/media/ipc/MFCDMChild.cpp 2024-11-25 20:12:31.000000000 +0000 +++ thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -73,19 +73,25 @@ : mKeySystem(aKeySystem), mManagerThread(RemoteDecoderManagerChild::GetManagerThread()), mState(NS_ERROR_NOT_INITIALIZED), - mShutdown(false) { - mRemotePromise = EnsureRemote(); -} + mShutdown(false) {} MFCDMChild::~MFCDMChild() {} -RefPtr MFCDMChild::EnsureRemote() { +void MFCDMChild::EnsureRemote() { + if (mRemotePromise) { + LOG("already created remote promise"); + return; + } + if (!mManagerThread) { LOG("no manager thread"); mState = NS_ERROR_NOT_AVAILABLE; - return RemotePromise::CreateAndReject(mState, __func__); + mRemotePromise = RemotePromise::CreateAndReject(mState, __func__); + return; } + mRemotePromise = mRemotePromiseHolder.Ensure(__func__); + RefPtr self = this; RemoteDecoderManagerChild::LaunchUtilityProcessIfNeeded( RemoteDecodeIn::UtilityProcess_MFMediaEngineCDM) @@ -115,7 +121,6 @@ mRemotePromiseHolder.RejectIfExists(rv, __func__); }) ->Track(mRemoteRequest); - return mRemotePromiseHolder.Ensure(__func__); } void MFCDMChild::Shutdown() { diff -Nru thunderbird-128.5.0esr/dom/media/ipc/MFCDMChild.h thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.h --- thunderbird-128.5.0esr/dom/media/ipc/MFCDMChild.h 2024-11-25 20:12:31.000000000 +0000 +++ thunderbird-128.6.0esr/dom/media/ipc/MFCDMChild.h 2025-01-07 20:45:13.000000000 +0000 @@ -85,6 +85,8 @@ mState = NS_ERROR_NOT_AVAILABLE; } } + + void EnsureRemote(); void Shutdown(); nsISerialEventTarget* ManagerThread() { return mManagerThread; } @@ -95,9 +97,6 @@ private: ~MFCDMChild(); - using RemotePromise = GenericNonExclusivePromise; - RefPtr EnsureRemote(); - void AssertSendable(); const nsString mKeySystem; @@ -105,6 +104,7 @@ const RefPtr mManagerThread; RefPtr mIPDLSelfRef; + using RemotePromise = GenericNonExclusivePromise; RefPtr mRemotePromise; MozPromiseHolder mRemotePromiseHolder; MozPromiseRequestHolder mRemoteRequest; diff -Nru thunderbird-128.5.0esr/dom/media/tools/generateGmpJson.py thunderbird-128.6.0esr/dom/media/tools/generateGmpJson.py --- thunderbird-128.5.0esr/dom/media/tools/generateGmpJson.py 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/media/tools/generateGmpJson.py 2025-01-07 20:45:13.000000000 +0000 @@ -6,10 +6,81 @@ import hashlib import json import logging +import re +from urllib.parse import urlparse, urlunparse import requests +def fetch_url_for_cdms(cdms, urlParams): + any_version = None + for cdm in cdms: + if "fileName" in cdm: + cdm["fileUrl"] = cdm["fileName"].format_map(urlParams) + response = requests.get(cdm["fileUrl"], allow_redirects=False) + if response.status_code != 302: + raise Exception( + "{} unexpected status code {}".format( + cdm["target"], response.status_code + ) + ) + + redirectUrl = response.headers["Location"] + parsedUrl = urlparse(redirectUrl) + if parsedUrl.scheme != "https": + raise Exception( + "{} expected https scheme '{}'".format(cdm["target"], redirectUrl) + ) + + sanitizedUrl = urlunparse( + (parsedUrl.scheme, parsedUrl.netloc, parsedUrl.path, None, None, None) + ) + + # Note that here we modify the returned URL from the + # component update service because it returns a preferred + # server for the caller of the script. This may not match + # up with what the end users require. Google has requested + # that we instead replace these results with the + # edgedl.me.gvt1.com domain/path, which should be location + # agnostic. + normalizedUrl = re.sub( + r"https.+?release2", + "https://edgedl.me.gvt1.com/edgedl/release2", + sanitizedUrl, + ) + if not normalizedUrl: + raise Exception( + "{} cannot normalize '{}'".format(cdm["target"], sanitizedUrl) + ) + + # Because some users are unable to resolve *.gvt1.com + # URLs, we supply an alternative based on www.google.com. + # This should resolve with success more frequently. + mirrorUrl = re.sub( + r"https.+?release2", + "https://www.google.com/dl/release2", + sanitizedUrl, + ) + + version = re.search(r".*?_([\d]+\.[\d]+\.[\d]+\.[\d]+)/", sanitizedUrl) + if version is None: + raise Exception( + "{} cannot extract version '{}'".format(cdm["target"], sanitizedUrl) + ) + if any_version is None: + any_version = version.group(1) + elif version.group(1) != any_version: + raise Exception( + "{} version {} mismatch {}".format( + cdm["target"], version.group(1), any_version + ) + ) + cdm["fileName"] = normalizedUrl + if mirrorUrl and mirrorUrl != normalizedUrl: + cdm["fileNameMirror"] = mirrorUrl + return any_version + + def fetch_data_for_cdms(cdms, urlParams): for cdm in cdms: if "fileName" in cdm: @@ -17,7 +88,20 @@ response = requests.get(cdm["fileUrl"]) response.raise_for_status() cdm["hashValue"] = hashlib.sha512(response.content).hexdigest() + if "fileNameMirror" in cdm: + cdm["mirrorUrl"] = cdm["fileNameMirror"].format_map(urlParams) + mirrorresponse = requests.get(cdm["mirrorUrl"]) + mirrorresponse.raise_for_status() + mirrorhash = hashlib.sha512(mirrorresponse.content).hexdigest() + if cdm["hashValue"] != mirrorhash: + raise Exception( + "Primary hash {} and mirror hash {} differ", + cdm["hashValue"], + mirrorhash, + ) cdm["filesize"] = len(response.content) + if cdm["filesize"] == 0: + raise Exception("Empty response for {target}".format_map(cdm)) def generate_json_for_cdms(cdms): @@ -29,10 +113,22 @@ + ' "alias": "{alias}"\n' + " }},\n" ).format_map(cdm) + elif "mirrorUrl" in cdm: + cdm_json += ( + ' "{target}": {{\n' + + ' "fileUrl": "{fileUrl}",\n' + + ' "mirrorUrls": [\n' + + ' "{mirrorUrl}"\n' + + " ],\n" + + ' "filesize": {filesize},\n' + + ' "hashValue": "{hashValue}"\n' + + " }},\n" + ).format_map(cdm) else: cdm_json += ( ' "{target}": {{\n' + ' "fileUrl": "{fileUrl}",\n' + + ' "mirrorUrls": [],\n' + ' "filesize": {filesize},\n' + ' "hashValue": "{hashValue}"\n' + " }},\n" @@ -45,10 +141,10 @@ cdms = [ {"target": "Darwin_aarch64-gcc3", "fileName": "{url_base}/openh264-macosx64-aarch64-{version}.zip"}, {"target": "Darwin_x86_64-gcc3", "fileName": "{url_base}/openh264-macosx64-{version}.zip"}, + {"target": "Linux_aarch64-gcc3", "fileName": "{url_base}/openh264-linux64-aarch64-{version}.zip"}, {"target": "Linux_x86-gcc3", "fileName": "{url_base}/openh264-linux32-{version}.zip"}, {"target": "Linux_x86_64-gcc3", "fileName": "{url_base}/openh264-linux64-{version}.zip"}, {"target": "Linux_x86_64-gcc3-asan", "alias": "Linux_x86_64-gcc3"}, - {"target": "Linux_aarch64-gcc3", "fileName": "{url_base}/openh264-linux64-aarch64-{version}.zip"}, {"target": "WINNT_aarch64-msvc-aarch64", "fileName": "{url_base}/openh264-win64-aarch64-{version}.zip"}, {"target": "WINNT_x86-msvc", "fileName": "{url_base}/openh264-win32-{version}.zip"}, {"target": "WINNT_x86-msvc-x64", "alias": "WINNT_x86-msvc"}, @@ -121,30 +217,117 @@ ) +def calculate_chrome_component_json( + name: str, altname: str, url_base: str, cdms +) -> str: + try: + version = fetch_url_for_cdms(cdms, {"url_base": url_base}) + fetch_data_for_cdms(cdms, {}) + except Exception as e: + logging.error( + "calculate_chrome_component_json: could not create JSON due to: %s", e + ) + return "" + else: + return ( + "{\n" + + ' "hashFunction": "sha512",\n' + + ' "name": "{}-{}",\n'.format(name, version) + + ' "schema_version": 1000,\n' + + ' "vendors": {\n' + + ' "gmp-{}": {{\n'.format(altname) + + ' "platforms": {\n' + + generate_json_for_cdms(cdms) + + " },\n" + + ' "version": "{}"\n'.format(version) + + " }\n" + + " }\n" + + "}" + ) + + +def calculate_widevinecdm_component_json(url_base: str) -> str: + # fmt: off + cdms = [ + {"target": "Darwin_aarch64-gcc3", "fileName": "{url_base}&os=mac&arch=arm64&os_arch=arm64"}, + {"target": "Darwin_x86_64-gcc3", "alias": "Darwin_x86_64-gcc3-u-i386-x86_64"}, + {"target": "Darwin_x86_64-gcc3-u-i386-x86_64", "fileName": "{url_base}&os=mac&arch=x64&os_arch=x64"}, + {"target": "Linux_x86_64-gcc3", "fileName": "{url_base}&os=Linux&arch=x64&os_arch=x64"}, + {"target": "Linux_x86_64-gcc3-asan", "alias": "Linux_x86_64-gcc3"}, + {"target": "WINNT_aarch64-msvc-aarch64", "fileName": "{url_base}&os=win&arch=arm64&os_arch=arm64"}, + {"target": "WINNT_x86-msvc", "fileName": "{url_base}&os=win&arch=x86&os_arch=x86"}, + {"target": "WINNT_x86-msvc-x64", "alias": "WINNT_x86-msvc"}, + {"target": "WINNT_x86-msvc-x86", "alias": "WINNT_x86-msvc"}, + {"target": "WINNT_x86_64-msvc", "fileName": "{url_base}&os=win&arch=x64&os_arch=x64"}, + {"target": "WINNT_x86_64-msvc-x64", "alias": "WINNT_x86_64-msvc"}, + {"target": "WINNT_x86_64-msvc-x64-asan", "alias": "WINNT_x86_64-msvc"}, + ] + # fmt: on + return calculate_chrome_component_json( + "Widevine", + "widevinecdm", + url_base.format_map({"guid": "oimompecagnajdejgnnjijobebaeigek"}), + cdms, + ) + + +def calculate_widevinecdm_l1_component_json(url_base: str) -> str: + # fmt: off + cdms = [ + {"target": "WINNT_x86_64-msvc", "fileName": "{url_base}&os=win&arch=x64&os_arch=x64"}, + {"target": "WINNT_x86_64-msvc-x64", "alias": "WINNT_x86_64-msvc"}, + {"target": "WINNT_x86_64-msvc-x64-asan", "alias": "WINNT_x86_64-msvc"}, + ] + # fmt: on + return calculate_chrome_component_json( + "Widevine-L1", + "widevinecdm-l1", + url_base.format_map({"guid": "neifaoindggfcjicffkgpmnlppeffabd"}), + cdms, + ) + + def main(): examples = """examples: python dom/media/tools/generateGmpJson.py widevine 4.10.2557.0 >toolkit/content/gmp-sources/widevinecdm.json - python dom/media/tools/generateGmpJson.py --url http://localhost:8080 openh264 2.3.1 0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e""" + python dom/media/tools/generateGmpJson.py --url http://localhost:8080 openh264 2.3.1 0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e + python dom/media/tools/generateGmpJson.py widevine_component""" parser = argparse.ArgumentParser( description="Generate JSON for GMP plugin updates", epilog=examples, formatter_class=argparse.RawDescriptionHelpFormatter, ) - parser.add_argument("plugin", help="which plugin: openh264, widevine") - parser.add_argument("version", help="version of plugin") + parser.add_argument( + "plugin", + help="which plugin: openh264, widevine, widevine_component, widevine_l1_component", + ) + parser.add_argument("version", help="version of plugin", nargs="?") parser.add_argument("revision", help="revision hash of plugin", nargs="?") parser.add_argument("--url", help="override base URL from which to fetch plugins") + parser.add_argument( + "--testrequest", + action="store_true", + help="request upcoming version for component update service", + ) args = parser.parse_args() if args.plugin == "openh264": url_base = "http://ciscobinary.openh264.org" - if args.revision is None: - parser.error("openh264 requires revision") + if args.version is None or args.revision is None: + parser.error("openh264 requires version and revision") elif args.plugin == "widevine": url_base = "https://redirector.gvt1.com/edgedl/widevine-cdm" + if args.version is None: + parser.error("widevine requires version") if args.revision is not None: parser.error("widevine cannot use revision") + elif args.plugin in ("widevine_component", "widevine_l1_component"): + url_base = "https://update.googleapis.com/service/update2/crx?response=redirect&x=id%3D{guid}%26uc&acceptformat=crx3&updaterversion=999" + if args.testrequest: + url_base += "&testrequest=1" + if args.version is not None or args.revision is not None: + parser.error("chrome component cannot use version or revision") else: parser.error("plugin not recognized") @@ -158,6 +341,10 @@ json_result = calculate_gmpopenh264_json(args.version, args.revision, url_base) elif args.plugin == "widevine": json_result = calculate_widevinecdm_json(args.version, url_base) + elif args.plugin == "widevine_component": + json_result = calculate_widevinecdm_component_json(url_base) + elif args.plugin == "widevine_l1_component": + json_result = calculate_widevinecdm_l1_component_json(url_base) try: json.loads(json_result) diff -Nru thunderbird-128.5.0esr/dom/midi/MIDIAccess.cpp thunderbird-128.6.0esr/dom/midi/MIDIAccess.cpp --- thunderbird-128.5.0esr/dom/midi/MIDIAccess.cpp 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/midi/MIDIAccess.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -45,6 +45,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK(mOutputMap) NS_IMPL_CYCLE_COLLECTION_UNLINK(mAccessPromise) tmp->Shutdown(); + NS_IMPL_CYCLE_COLLECTION_UNLINK_WEAK_PTR NS_IMPL_CYCLE_COLLECTION_UNLINK_END NS_INTERFACE_MAP_BEGIN_CYCLE_COLLECTION(MIDIAccess) @@ -74,7 +75,6 @@ if (mHasShutdown) { return; } - mDestructionObservers.Broadcast(void_t()); if (MIDIAccessManager::IsRunning()) { MIDIAccessManager::Get()->RemoveObserver(this); } @@ -188,8 +188,6 @@ // That is bad. MOZ_CRASH("We shouldn't be here!"); } - // Set up port to listen for destruction of this access object. - mDestructionObservers.AddObserver(port); // If we haven't resolved the promise for handing the MIDIAccess object to // content, this means we're still populating the list of already connected @@ -236,10 +234,6 @@ return MIDIAccess_Binding::Wrap(aCx, this, aGivenProto); } -void MIDIAccess::RemovePortListener(MIDIAccessDestructionObserver* aObs) { - mDestructionObservers.RemoveObserver(aObs); -} - void MIDIAccess::DisconnectFromOwner() { IgnoreKeepAliveIfHasListenersFor(nsGkAtoms::onstatechange); diff -Nru thunderbird-128.5.0esr/dom/midi/MIDIAccess.h thunderbird-128.6.0esr/dom/midi/MIDIAccess.h --- thunderbird-128.5.0esr/dom/midi/MIDIAccess.h 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/midi/MIDIAccess.h 2025-01-07 20:45:13.000000000 +0000 @@ -10,6 +10,7 @@ #include "mozilla/Attributes.h" #include "mozilla/DOMEventTargetHelper.h" #include "mozilla/Observer.h" +#include "mozilla/WeakPtr.h" #include "nsCycleCollectionParticipant.h" #include "nsWrapperCache.h" @@ -18,10 +19,6 @@ namespace mozilla { class ErrorResult; -// Predeclare void_t here, as including IPCMessageUtils brings in windows.h and -// causes binding compilation problems. -struct void_t; - namespace dom { class MIDIAccessManager; @@ -35,8 +32,6 @@ class MIDIPortList; class Promise; -using MIDIAccessDestructionObserver = Observer; - /** * MIDIAccess is the DOM object that is handed to the user upon MIDI permissions * being successfully granted. It manages access to MIDI ports, and fires events @@ -46,7 +41,8 @@ * MIDIAccess objects are managed via MIDIAccessManager. */ class MIDIAccess final : public DOMEventTargetHelper, - public Observer { + public Observer, + public SupportsWeakPtr { // Use the Permission Request class in MIDIAccessManager for creating // MIDIAccess objects. friend class MIDIPermissionRequest; @@ -72,12 +68,6 @@ // Observer implementation for receiving port connection updates void Notify(const MIDIPortList& aEvent) override; - // All MIDIPort objects observe destruction of the MIDIAccess object that - // created them, as the port object receives disconnection events which then - // must be passed up to the MIDIAccess object. If the Port object dies before - // the MIDIAccess object, it needs to be removed from the observer list. - void RemovePortListener(MIDIAccessDestructionObserver* aObs); - // Fires DOM event on port connection/disconnection void FireConnectionEvent(MIDIPort* aPort); @@ -101,8 +91,6 @@ RefPtr mInputMap; // Stores all known MIDIOutput Ports RefPtr mOutputMap; - // List of MIDIPort observers that need to be updated on destruction. - ObserverList mDestructionObservers; // True if user gave permissions for sysex usage to this object. bool mSysexEnabled; // Promise created by RequestMIDIAccess call, to be resolved after port diff -Nru thunderbird-128.5.0esr/dom/midi/MIDIPort.cpp thunderbird-128.6.0esr/dom/midi/MIDIPort.cpp --- thunderbird-128.5.0esr/dom/midi/MIDIPort.cpp 2024-11-25 20:12:31.000000000 +0000 +++ thunderbird-128.6.0esr/dom/midi/MIDIPort.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -48,10 +48,6 @@ } MIDIPort::~MIDIPort() { - if (mMIDIAccessParent) { - mMIDIAccessParent->RemovePortListener(this); - mMIDIAccessParent = nullptr; - } if (Port()) { // If the IPC port channel is still alive at this point, it means we're // probably CC'ing this port object. Send the shutdown message to also clean @@ -191,13 +187,6 @@ return p.forget(); } -void MIDIPort::Notify(const void_t& aVoid) { - LOG("MIDIPort::notify MIDIAccess shutting down, dropping reference."); - // If we're getting notified, it means the MIDIAccess parent object is dead. - // Nullify our copy. - mMIDIAccessParent = nullptr; -} - void MIDIPort::FireStateChangeEvent() { if (!GetOwner()) { return; // Ignore changes once we've been disconnected from the owner @@ -238,8 +227,8 @@ // Fire MIDIAccess events first so that the port is no longer in the port // maps. - if (mMIDIAccessParent) { - mMIDIAccessParent->FireConnectionEvent(this); + if (RefPtr access = mMIDIAccessParent.get()) { + access->FireConnectionEvent(this); } MIDIConnectionEventInit init; diff -Nru thunderbird-128.5.0esr/dom/midi/MIDIPort.h thunderbird-128.6.0esr/dom/midi/MIDIPort.h --- thunderbird-128.5.0esr/dom/midi/MIDIPort.h 2024-11-25 20:12:31.000000000 +0000 +++ thunderbird-128.6.0esr/dom/midi/MIDIPort.h 2025-01-07 20:45:13.000000000 +0000 @@ -28,8 +28,7 @@ * and communication. * */ -class MIDIPort : public DOMEventTargetHelper, - public MIDIAccessDestructionObserver { +class MIDIPort : public DOMEventTargetHelper { public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_CLASS_INHERITED(MIDIPort, @@ -56,10 +55,6 @@ already_AddRefed Open(ErrorResult& aError); already_AddRefed Close(ErrorResult& aError); - // MIDIPorts observe the death of their parent MIDIAccess object, and delete - // their reference accordingly. - virtual void Notify(const void_t& aVoid) override; - void FireStateChangeEvent(); virtual void StateChange(); @@ -106,11 +101,8 @@ // MIDIAccess object that created this MIDIPort object, which we need for // firing port connection events. There is a chance this MIDIPort object can - // outlive its parent MIDIAccess object, so this is a weak reference that must - // be handled properly. It is set on construction of the MIDIPort object, and - // set to null when the parent MIDIAccess object is destroyed, which fires an - // notification we observe. - MIDIAccess* mMIDIAccessParent; + // outlive its parent MIDIAccess object, so this is a weak pointer. + WeakPtr mMIDIAccessParent; // Promise object generated on Open() call, that needs to be resolved once the // platform specific Open() function has completed. RefPtr mOpeningPromise; diff -Nru thunderbird-128.5.0esr/dom/streams/ReadableByteStreamController.cpp thunderbird-128.6.0esr/dom/streams/ReadableByteStreamController.cpp --- thunderbird-128.5.0esr/dom/streams/ReadableByteStreamController.cpp 2024-11-25 20:12:31.000000000 +0000 +++ thunderbird-128.6.0esr/dom/streams/ReadableByteStreamController.cpp 2025-01-07 20:45:13.000000000 +0000 @@ -2072,6 +2072,14 @@ aRv.ThrowTypeError("autoAllocateChunkSize can not be zero."); return; } + + if constexpr (sizeof(size_t) == sizeof(uint32_t)) { + if (value > uint64_t(UINT32_MAX)) { + aRv.ThrowRangeError("autoAllocateChunkSize too large"); + return; + } + } + autoAllocateChunkSize = mozilla::Some(value); } diff -Nru thunderbird-128.5.0esr/dom/streams/test/xpcshell/xpcshell.toml thunderbird-128.6.0esr/dom/streams/test/xpcshell/xpcshell.toml --- thunderbird-128.5.0esr/dom/streams/test/xpcshell/xpcshell.toml 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/dom/streams/test/xpcshell/xpcshell.toml 2025-01-07 20:45:14.000000000 +0000 @@ -30,3 +30,4 @@ ["subclassing.js"] ["too-big-array-buffer.js"] +skip-if = ["bits == 32"] # autoAllocateChunkSize limit is different on 32-bit diff -Nru thunderbird-128.5.0esr/image/AnimationFrameBuffer.cpp thunderbird-128.6.0esr/image/AnimationFrameBuffer.cpp --- thunderbird-128.5.0esr/image/AnimationFrameBuffer.cpp 2024-11-25 20:12:33.000000000 +0000 +++ thunderbird-128.6.0esr/image/AnimationFrameBuffer.cpp 2025-01-07 20:45:14.000000000 +0000 @@ -432,32 +432,38 @@ RawAccessFrameRef recycledFrame; if (mRecycle.front().mFrame) { - recycledFrame = mRecycle.front().mFrame->RawAccessRef(); - MOZ_ASSERT(recycledFrame); + recycledFrame = mRecycle.front().mFrame->RawAccessRef( + gfx::DataSourceSurface::READ_WRITE); mRecycle.pop_front(); - if (mForceUseFirstFrameRefreshArea) { - // We are still crossing the loop boundary and cannot rely upon the dirty - // rects of entries in mDisplay to be representative. E.g. The first frame - // is probably has a full frame dirty rect. - aRecycleRect = mFirstFrameRefreshArea; - } else { - // Calculate the recycle rect for the recycled frame. This is the - // cumulative dirty rect of all of the frames ahead of us to be displayed, - // and to be used for recycling. Or in other words, the dirty rect between - // the recycled frame and the decoded frame which reuses the buffer. - // - // We know at this point that mRecycle contains either frames from the end - // of the animation with the first frame refresh area as the dirty rect - // (plus the first frame likewise) and frames with their actual dirty rect - // from the start. mDisplay should also only contain frames from the start - // of the animation onwards. - aRecycleRect.SetRect(0, 0, 0, 0); - for (const RefPtr& frame : mDisplay) { - aRecycleRect = aRecycleRect.Union(frame->GetDirtyRect()); - } - for (const RecycleEntry& entry : mRecycle) { - aRecycleRect = aRecycleRect.Union(entry.mDirtyRect); + // If we couldn't map in the surface, it is probably because the frame was + // finalized and we did not expect to need to write into it again. This + // happens for the first frames produced during an animation. + if (recycledFrame) { + if (mForceUseFirstFrameRefreshArea) { + // We are still crossing the loop boundary and cannot rely upon the + // dirty rects of entries in mDisplay to be representative. E.g. The + // first frame is probably has a full frame dirty rect. + aRecycleRect = mFirstFrameRefreshArea; + } else { + // Calculate the recycle rect for the recycled frame. This is the + // cumulative dirty rect of all of the frames ahead of us to be + // displayed, and to be used for recycling. Or in other words, the dirty + // rect between the recycled frame and the decoded frame which reuses + // the buffer. + // + // We know at this point that mRecycle contains either frames from the + // end of the animation with the first frame refresh area as the dirty + // rect (plus the first frame likewise) and frames with their actual + // dirty rect from the start. mDisplay should also only contain frames + // from the start of the animation onwards. + aRecycleRect.SetRect(0, 0, 0, 0); + for (const RefPtr& frame : mDisplay) { + aRecycleRect = aRecycleRect.Union(frame->GetDirtyRect()); + } + for (const RecycleEntry& entry : mRecycle) { + aRecycleRect = aRecycleRect.Union(entry.mDirtyRect); + } } } } else { diff -Nru thunderbird-128.5.0esr/image/Decoder.cpp thunderbird-128.6.0esr/image/Decoder.cpp --- thunderbird-128.5.0esr/image/Decoder.cpp 2024-11-25 20:12:33.000000000 +0000 +++ thunderbird-128.6.0esr/image/Decoder.cpp 2025-01-07 20:45:14.000000000 +0000 @@ -303,8 +303,7 @@ if (mCurrentFrame) { mHasFrameToTake = true; - // Gather the raw pointers the decoders will use. - mCurrentFrame->GetImageData(&mImageData, &mImageDataLength); + mImageData = mCurrentFrame.Data(); // We should now be on |aFrameNum|. (Note that we're comparing the frame // number, which is zero-based, with the frame count, which is one-based.) @@ -316,6 +315,9 @@ // Update our state to reflect the new frame. MOZ_ASSERT(!mInFrame, "Starting new frame but not done with old one!"); mInFrame = true; + } else { + mImageData = nullptr; + mImageDataLength = 0; } return mCurrentFrame ? NS_OK : NS_ERROR_FAILURE; @@ -376,7 +378,8 @@ // animation parameters elsewhere. For now we just drop it. bool blocked = ref.get() == mRestoreFrame.get(); if (!blocked) { - blocked = NS_FAILED(ref->InitForDecoderRecycle(aAnimParams.ref())); + blocked = NS_FAILED( + ref->InitForDecoderRecycle(aAnimParams.ref(), &mImageDataLength)); } if (blocked) { @@ -395,12 +398,13 @@ bool nonPremult = bool(mSurfaceFlags & SurfaceFlags::NO_PREMULTIPLY_ALPHA); auto frame = MakeNotNull>(); if (NS_FAILED(frame->InitForDecoder(aOutputSize, aFormat, nonPremult, - aAnimParams, bool(mFrameRecycler)))) { + aAnimParams, bool(mFrameRecycler), + &mImageDataLength))) { NS_WARNING("imgFrame::Init should succeed"); return RawAccessFrameRef(); } - ref = frame->RawAccessRef(); + ref = frame->RawAccessRef(gfx::DataSourceSurface::READ_WRITE); if (!ref) { frame->Abort(); return RawAccessFrameRef(); diff -Nru thunderbird-128.5.0esr/image/imgFrame.cpp thunderbird-128.6.0esr/image/imgFrame.cpp --- thunderbird-128.5.0esr/image/imgFrame.cpp 2024-11-25 20:12:32.000000000 +0000 +++ thunderbird-128.6.0esr/image/imgFrame.cpp 2025-01-07 20:45:14.000000000 +0000 @@ -145,7 +145,8 @@ nsresult imgFrame::InitForDecoder(const nsIntSize& aImageSize, SurfaceFormat aFormat, bool aNonPremult, const Maybe& aAnimParams, - bool aShouldRecycle) { + bool aShouldRecycle, + uint32_t* aImageDataLength) { // Assert for properties that should be verified by decoders, // warn for properties related to bad content. if (!SurfaceCache::IsLegalSize(aImageSize)) { @@ -217,10 +218,15 @@ } } + if (aImageDataLength) { + *aImageDataLength = GetImageDataLength(); + } + return NS_OK; } -nsresult imgFrame::InitForDecoderRecycle(const AnimationParams& aAnimParams) { +nsresult imgFrame::InitForDecoderRecycle(const AnimationParams& aAnimParams, + uint32_t* aImageDataLength) { // We want to recycle this frame, but there is no guarantee that consumers are // done with it in a timely manner. Let's ensure they are done with it first. MonitorAutoLock lock(mMonitor); @@ -287,6 +293,10 @@ mDisposalMethod = aAnimParams.mDisposalMethod; mDirtyRect = GetRect(); + if (aImageDataLength) { + *aImageDataLength = GetImageDataLength(); + } + return NS_OK; } @@ -391,7 +401,10 @@ DrawableFrameRef imgFrame::DrawableRef() { return DrawableFrameRef(this); } -RawAccessFrameRef imgFrame::RawAccessRef() { return RawAccessFrameRef(this); } +RawAccessFrameRef imgFrame::RawAccessRef( + gfx::DataSourceSurface::MapType aMapType) { + return RawAccessFrameRef(this, aMapType); +} imgFrame::SurfaceWithFormat imgFrame::SurfaceForDrawing( bool aDoPartialDecode, bool aDoTile, ImageRegion& aRegion, @@ -586,36 +599,6 @@ return GetImageBytesPerRow() * mImageSize.height; } -void imgFrame::GetImageData(uint8_t** aData, uint32_t* aLength) const { - MonitorAutoLock lock(mMonitor); - GetImageDataInternal(aData, aLength); -} - -void imgFrame::GetImageDataInternal(uint8_t** aData, uint32_t* aLength) const { - mMonitor.AssertCurrentThreadOwns(); - MOZ_ASSERT(mRawSurface); - - if (mRawSurface) { - // TODO: This is okay for now because we only realloc shared surfaces on - // the main thread after decoding has finished, but if animations want to - // read frame data off the main thread, we will need to reconsider this. - *aData = mRawSurface->GetData(); - MOZ_ASSERT(*aData, - "mRawSurface is non-null, but GetData is null in GetImageData"); - } else { - *aData = nullptr; - } - - *aLength = GetImageDataLength(); -} - -uint8_t* imgFrame::GetImageData() const { - uint8_t* data; - uint32_t length; - GetImageData(&data, &length); - return data; -} - void imgFrame::FinalizeSurface() { MonitorAutoLock lock(mMonitor); FinalizeSurfaceInternal(); diff -Nru thunderbird-128.5.0esr/image/imgFrame.h thunderbird-128.6.0esr/image/imgFrame.h --- thunderbird-128.5.0esr/image/imgFrame.h 2024-11-25 20:12:33.000000000 +0000 +++ thunderbird-128.6.0esr/image/imgFrame.h 2025-01-07 20:45:14.000000000 +0000 @@ -55,7 +55,8 @@ nsresult InitForDecoder(const nsIntSize& aImageSize, SurfaceFormat aFormat, bool aNonPremult, const Maybe& aAnimParams, - bool aShouldRecycle); + bool aShouldRecycle, + uint32_t* aImageDataLength = nullptr); /** * Reinitialize this imgFrame with the new parameters, but otherwise retain @@ -65,7 +66,8 @@ * given an IDecoderFrameRecycler object which may yield a recycled imgFrame * that was discarded to save memory. */ - nsresult InitForDecoderRecycle(const AnimationParams& aAnimParams); + nsresult InitForDecoderRecycle(const AnimationParams& aAnimParams, + uint32_t* aImageDataLength = nullptr); /** * Initialize this imgFrame with a new surface and draw the provided @@ -90,7 +92,8 @@ /** * Create a RawAccessFrameRef for the frame. */ - RawAccessFrameRef RawAccessRef(); + RawAccessFrameRef RawAccessRef( + gfx::DataSourceSurface::MapType aMapType = gfx::DataSourceSurface::READ); bool Draw(gfxContext* aContext, const ImageRegion& aRegion, SamplingFilter aSamplingFilter, uint32_t aImageFlags, @@ -160,8 +163,6 @@ BlendMethod GetBlendMethod() const { return mBlendMethod; } DisposalMethod GetDisposalMethod() const { return mDisposalMethod; } bool FormatHasAlpha() const { return mFormat == SurfaceFormat::OS_RGBA; } - void GetImageData(uint8_t** aData, uint32_t* length) const; - uint8_t* GetImageData() const; const IntRect& GetDirtyRect() const { return mDirtyRect; } void SetDirtyRect(const IntRect& aDirtyRect) { mDirtyRect = aDirtyRect; } @@ -186,7 +187,6 @@ bool AreAllPixelsWritten() const MOZ_REQUIRES(mMonitor); nsresult ImageUpdatedInternal(const nsIntRect& aUpdateRect); - void GetImageDataInternal(uint8_t** aData, uint32_t* length) const; uint32_t GetImageBytesPerRow() const; uint32_t GetImageDataLength() const; void FinalizeSurfaceInternal(); @@ -356,13 +356,25 @@ */ class RawAccessFrameRef final { public: - RawAccessFrameRef() : mData(nullptr) {} + RawAccessFrameRef() = default; - explicit RawAccessFrameRef(imgFrame* aFrame) - : mFrame(aFrame), mData(nullptr) { + explicit RawAccessFrameRef(imgFrame* aFrame, + gfx::DataSourceSurface::MapType aMapType) + : mFrame(aFrame) { MOZ_ASSERT(mFrame, "Need a frame"); - mData = mFrame->GetImageData(); + // Note that we do not use ScopedMap here because it holds a strong + // reference to the underlying surface. This affects the reuse logic for + // recycling in imgFrame::InitForDecoderRecycle. + { + MonitorAutoLock lock(mFrame->mMonitor); + gfx::DataSourceSurface::MappedSurface map; + if (mFrame->mRawSurface && mFrame->mRawSurface->Map(aMapType, &map)) { + MOZ_ASSERT(map.mData); + mData = map.mData; + } + } + if (!mData) { mFrame = nullptr; } @@ -373,11 +385,15 @@ aOther.mData = nullptr; } - ~RawAccessFrameRef() = default; + ~RawAccessFrameRef() { reset(); } RawAccessFrameRef& operator=(RawAccessFrameRef&& aOther) { MOZ_ASSERT(this != &aOther, "Self-moves are prohibited"); + if (mFrame) { + MonitorAutoLock lock(mFrame->mMonitor); + mFrame->mRawSurface->Unmap(); + } mFrame = std::move(aOther.mFrame); mData = aOther.mData; aOther.mData = nullptr; @@ -401,6 +417,10 @@ const imgFrame* get() const { return mFrame; } void reset() { + if (mFrame) { + MonitorAutoLock lock(mFrame->mMonitor); + mFrame->mRawSurface->Unmap(); + } mFrame = nullptr; mData = nullptr; } @@ -412,7 +432,7 @@ RawAccessFrameRef& operator=(const RawAccessFrameRef& aOther) = delete; RefPtr mFrame; - uint8_t* mData; + uint8_t* mData = nullptr; }; } // namespace image diff -Nru thunderbird-128.5.0esr/image/test/gtest/TestAnimationFrameBuffer.cpp thunderbird-128.6.0esr/image/test/gtest/TestAnimationFrameBuffer.cpp --- thunderbird-128.5.0esr/image/test/gtest/TestAnimationFrameBuffer.cpp 2024-11-25 20:12:33.000000000 +0000 +++ thunderbird-128.6.0esr/image/test/gtest/TestAnimationFrameBuffer.cpp 2025-01-07 20:45:14.000000000 +0000 @@ -759,8 +759,7 @@ while (!buffer.Recycle().empty()) { gfx::IntRect recycleRect; RawAccessFrameRef frameRef = buffer.RecycleFrame(recycleRect); - EXPECT_TRUE(frameRef); - EXPECT_FALSE(ReinitForRecycle(frameRef)); + EXPECT_FALSE(frameRef); } // Reinsert the first two frames as recyclable and reset again. @@ -829,8 +828,7 @@ gfx::IntRect recycleRect; EXPECT_FALSE(buffer.Recycle().empty()); RawAccessFrameRef frameRef = buffer.RecycleFrame(recycleRect); - EXPECT_TRUE(frameRef); - EXPECT_FALSE(ReinitForRecycle(frameRef)); + EXPECT_FALSE(frameRef); EXPECT_TRUE(buffer.Recycle().empty()); // Insert a recyclable partial frame. Its dirty rect shouldn't matter since @@ -842,8 +840,7 @@ VerifyAdvance(buffer, 5, true); EXPECT_FALSE(buffer.Recycle().empty()); frameRef = buffer.RecycleFrame(recycleRect); - EXPECT_TRUE(frameRef); - EXPECT_FALSE(ReinitForRecycle(frameRef)); + EXPECT_FALSE(frameRef); EXPECT_TRUE(buffer.Recycle().empty()); // Insert a recyclable partial frame. Its dirty rect should match the recycle diff -Nru thunderbird-128.5.0esr/js/src/builtin/intl/Segmenter.cpp thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.cpp --- thunderbird-128.5.0esr/js/src/builtin/intl/Segmenter.cpp 2024-11-25 20:12:34.000000000 +0000 +++ thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.cpp 2025-01-07 20:45:15.000000000 +0000 @@ -574,7 +574,7 @@ void* brk = segments->getBreakIterator(); MOZ_ASSERT(brk); - bool isLatin1 = segments->getString()->hasLatin1Chars(); + bool isLatin1 = segments->hasLatin1StringChars(); switch (segments->getGranularity()) { case SegmenterGranularity::Grapheme: { @@ -611,16 +611,16 @@ MOZ_ASSERT(gcx->onMainThread()); auto* segments = &obj->as(); - bool isLatin1 = segments->getString()->hasLatin1Chars(); - if (void* chars = segments->getStringChars()) { + if (auto chars = segments->getStringChars()) { size_t length = segments->getString()->length(); - if (isLatin1) { + if (chars.has()) { intl::RemoveICUCellMemory(gcx, segments, length * sizeof(JS::Latin1Char)); + js_free(chars.data()); } else { intl::RemoveICUCellMemory(gcx, segments, length * sizeof(char16_t)); + js_free(chars.data()); } - js_free(chars); } if (segments->getBreakIterator()) { @@ -632,16 +632,16 @@ MOZ_ASSERT(gcx->onMainThread()); auto* iterator = &obj->as(); - bool isLatin1 = iterator->getString()->hasLatin1Chars(); - if (void* chars = iterator->getStringChars()) { + if (auto chars = iterator->getStringChars()) { size_t length = iterator->getString()->length(); - if (isLatin1) { + if (chars.has()) { intl::RemoveICUCellMemory(gcx, iterator, length * sizeof(JS::Latin1Char)); + js_free(chars.data()); } else { intl::RemoveICUCellMemory(gcx, iterator, length * sizeof(char16_t)); + js_free(chars.data()); } - js_free(chars); } if (iterator->getBreakIterator()) { @@ -660,7 +660,7 @@ template static Boundaries GraphemeBoundaries(Handle segments, int32_t index) { #if defined(MOZ_ICU4X) - if (segments->getString()->hasLatin1Chars()) { + if (segments->hasLatin1StringChars()) { return FindBoundaryFrom( segments, index); } @@ -674,7 +674,7 @@ template static Boundaries WordBoundaries(Handle segments, int32_t index) { #if defined(MOZ_ICU4X) - if (segments->getString()->hasLatin1Chars()) { + if (segments->hasLatin1StringChars()) { return FindBoundaryFrom(segments, index); } @@ -687,7 +687,7 @@ template static Boundaries SentenceBoundaries(Handle segments, int32_t index) { #if defined(MOZ_ICU4X) - if (segments->getString()->hasLatin1Chars()) { + if (segments->hasLatin1StringChars()) { return FindBoundaryFrom(segments, index); } @@ -721,7 +721,7 @@ if (!chars) { return false; } - segments->setLatin1Chars(chars.release()); + segments->setStringChars(SegmentsStringChars{chars.release()}); intl::AddICUCellMemory(segments, length * sizeof(JS::Latin1Char)); } else { @@ -729,7 +729,7 @@ if (!chars) { return false; } - segments->setTwoByteChars(chars.release()); + segments->setStringChars(SegmentsStringChars{chars.release()}); intl::AddICUCellMemory(segments, length * sizeof(char16_t)); } @@ -744,7 +744,7 @@ void* segmenter = segments->getSegmenter()->getSegmenter(); MOZ_ASSERT(segmenter); - void* chars = segments->getStringChars(); + auto chars = segments->getStringChars(); MOZ_ASSERT(chars); size_t length = segments->getString()->length(); @@ -753,8 +753,9 @@ typename Interface::Char)>::Type; auto* seg = static_cast(segmenter); - auto* ch = static_cast(chars); - return Interface::create(seg, ch, length); + auto* ch = chars.template data(); + auto* chUnsigned = reinterpret_cast(ch); + return Interface::create(seg, chUnsigned, length); } /** @@ -785,7 +786,7 @@ } #if defined(MOZ_ICU4X) - bool isLatin1 = segments->getString()->hasLatin1Chars(); + bool isLatin1 = segments->hasLatin1StringChars(); // Create a new break iterator based on the granularity and character type. void* brk; diff -Nru thunderbird-128.5.0esr/js/src/builtin/intl/Segmenter.h thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.h --- thunderbird-128.5.0esr/js/src/builtin/intl/Segmenter.h 2024-11-25 20:12:34.000000000 +0000 +++ thunderbird-128.6.0esr/js/src/builtin/intl/Segmenter.h 2025-01-07 20:45:15.000000000 +0000 @@ -8,6 +8,7 @@ #define builtin_intl_Segmenter_h #include +#include #include "builtin/SelfHostingDefines.h" #include "js/Class.h" @@ -84,6 +85,66 @@ static void finalize(JS::GCContext* gcx, JSObject* obj); }; +class SegmentsStringChars final { + uintptr_t tagged_ = 0; + + enum Tag { + Latin1 = 0, + TwoByte = 1, + + TagMask = TwoByte, + }; + + static uintptr_t toTagged(const void* chars, Tag tag) { + MOZ_ASSERT(chars != nullptr, "can't tag nullptr"); + + auto ptr = reinterpret_cast(chars); + MOZ_ASSERT((ptr & TagMask) == 0, "pointer already tagged"); + + return ptr | tag; + } + + Tag tag() const { return static_cast(tagged_ & TagMask); } + + uintptr_t untagged() const { return tagged_ & ~TagMask; } + + explicit SegmentsStringChars(const void* taggedChars) + : tagged_(reinterpret_cast(taggedChars)) {} + + public: + SegmentsStringChars() = default; + + explicit SegmentsStringChars(const JS::Latin1Char* chars) + : tagged_(toTagged(chars, Latin1)) {} + + explicit SegmentsStringChars(const char16_t* chars) + : tagged_(toTagged(chars, TwoByte)) {} + + static auto fromTagged(const void* taggedChars) { + return SegmentsStringChars{taggedChars}; + } + + explicit operator bool() const { return tagged_ != 0; } + + template + bool has() const { + if constexpr (std::is_same_v) { + return tag() == Latin1; + } else { + static_assert(std::is_same_v); + return tag() == TwoByte; + } + } + + template + CharT* data() const { + MOZ_ASSERT(has()); + return reinterpret_cast(untagged()); + } + + uintptr_t tagged() const { return tagged_; } +}; + class SegmentsObject : public NativeObject { public: static const JSClass class_; @@ -125,20 +186,21 @@ return !getFixedSlot(STRING_CHARS_SLOT).isUndefined(); } - void* getStringChars() const { + SegmentsStringChars getStringChars() const { const auto& slot = getFixedSlot(STRING_CHARS_SLOT); if (slot.isUndefined()) { - return nullptr; + return SegmentsStringChars{}; } - return slot.toPrivate(); + return SegmentsStringChars::fromTagged(slot.toPrivate()); } - void setLatin1Chars(JS::Latin1Char* chars) { - setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars)); + void setStringChars(SegmentsStringChars chars) { + setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars.tagged())); } - void setTwoByteChars(char16_t* chars) { - setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars)); + bool hasLatin1StringChars() const { + MOZ_ASSERT(hasStringChars()); + return getStringChars().has(); } int32_t getIndex() const { @@ -226,20 +288,21 @@ return !getFixedSlot(STRING_CHARS_SLOT).isUndefined(); } - void* getStringChars() const { + SegmentsStringChars getStringChars() const { const auto& slot = getFixedSlot(STRING_CHARS_SLOT); if (slot.isUndefined()) { - return nullptr; + return SegmentsStringChars{}; } - return slot.toPrivate(); + return SegmentsStringChars::fromTagged(slot.toPrivate()); } - void setLatin1Chars(JS::Latin1Char* chars) { - setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars)); + void setStringChars(SegmentsStringChars chars) { + setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars.tagged())); } - void setTwoByteChars(char16_t* chars) { - setFixedSlot(STRING_CHARS_SLOT, PrivateValue(chars)); + bool hasLatin1StringChars() const { + MOZ_ASSERT(hasStringChars()); + return getStringChars().has(); } int32_t getIndex() const { diff -Nru thunderbird-128.5.0esr/js/src/vm/Modules.cpp thunderbird-128.6.0esr/js/src/vm/Modules.cpp --- thunderbird-128.5.0esr/js/src/vm/Modules.cpp 2024-11-25 20:12:37.000000000 +0000 +++ thunderbird-128.6.0esr/js/src/vm/Modules.cpp 2025-01-07 20:45:18.000000000 +0000 @@ -45,9 +45,9 @@ static bool ModuleLink(JSContext* cx, Handle module); static bool ModuleEvaluate(JSContext* cx, Handle module, - MutableHandle result); + MutableHandle rval); static bool SyntheticModuleEvaluate(JSContext* cx, Handle module, - MutableHandle result); + MutableHandle rval); //////////////////////////////////////////////////////////////////////////////// // Public API @@ -1433,8 +1433,8 @@ static bool SyntheticModuleEvaluate(JSContext* cx, Handle moduleArg, - MutableHandle result) { - // Steps 1-12 happens elsewhere in the engine. + MutableHandle rval) { + // Steps 1-12 happen elsewhere in the engine. // Step 13. Let pc be ! NewPromiseCapability(%Promise%). Rooted resultPromise(cx, CreatePromiseObjectForAsync(cx)); @@ -1442,15 +1442,18 @@ return false; } + // Since the only synthetic modules we support are JSON modules, result is + // always |undefined|. + // Step 14. IfAbruptRejectPromise(result, pc) (Skipped) // 15. Perform ! pc.[[Resolve]](result). - if (!AsyncFunctionReturned(cx, resultPromise, result)) { + if (!AsyncFunctionReturned(cx, resultPromise, JS::UndefinedHandleValue)) { return false; } // 16. Return pc.[[Promise]]. - result.set(ObjectValue(*resultPromise)); + rval.set(ObjectValue(*resultPromise)); return true; } diff -Nru thunderbird-128.5.0esr/layout/generic/nsPageContentFrame.cpp thunderbird-128.6.0esr/layout/generic/nsPageContentFrame.cpp --- thunderbird-128.5.0esr/layout/generic/nsPageContentFrame.cpp 2024-11-25 20:12:37.000000000 +0000 +++ thunderbird-128.6.0esr/layout/generic/nsPageContentFrame.cpp 2025-01-07 20:45:19.000000000 +0000 @@ -379,10 +379,13 @@ // Add the canvas background color to the bottom of the list. This // happens after we've built the list so that AddCanvasBackgroundColorItem - // can monkey with the contents if necessary. + // can monkey with the contents if necessary. The opaque backstop should + // ideally not be needed, but it workarounds some windows-specific clipping + // issues, see bug 1928512 and bug 1930269. const nsRect backgroundRect(aBuilder->ToReferenceFrame(this), GetSize()); - PresShell()->AddCanvasBackgroundColorItem( - aBuilder, &content, this, backgroundRect, NS_RGBA(0, 0, 0, 0)); + constexpr nscolor kBackstop = NS_RGB(255, 255, 255); + PresShell()->AddCanvasBackgroundColorItem(aBuilder, &content, this, + backgroundRect, kBackstop); } content.AppendNewToTop( diff -Nru thunderbird-128.5.0esr/modules/libpref/init/StaticPrefList.yaml thunderbird-128.6.0esr/modules/libpref/init/StaticPrefList.yaml --- thunderbird-128.5.0esr/modules/libpref/init/StaticPrefList.yaml 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/modules/libpref/init/StaticPrefList.yaml 2025-01-07 20:45:20.000000000 +0000 @@ -13196,6 +13196,13 @@ value: false mirror: always +# When true, Firefox will send Extensivle prioritization scheme +# PRIORITY_UPDATE frames. +- name: network.http.http2.priority_updates + type: RelaxedAtomicBool + value: false + mirror: always + # This pref controls whether to send the # SETTINGS_NO_RFC7540_PRIORITIES when stream dependencies # are disabled, and extensible prioritization scheme is in use. @@ -13261,6 +13268,14 @@ type: RelaxedAtomicBool value: false mirror: always + +# When true, Firefox will send a SETTINGS_MAX_CONCURRENT_STREAMS +# parameter when push is disabled. Chrome doesn't send this, +# so some servers misbehave when we do. See Bug 1919750. +- name: network.http.http2.send-push-max-concurrent-frame + type: RelaxedAtomicBool + value: false + mirror: always - name: network.http.http2.push-allowance type: RelaxedAtomicInt32 diff -Nru thunderbird-128.5.0esr/netwerk/dns/effective_tld_names.dat thunderbird-128.6.0esr/netwerk/dns/effective_tld_names.dat --- thunderbird-128.5.0esr/netwerk/dns/effective_tld_names.dat 2024-11-25 20:12:38.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/dns/effective_tld_names.dat 2025-01-07 20:45:20.000000000 +0000 @@ -5,8 +5,8 @@ // Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat, // rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported. -// VERSION: 2024-11-12_14-53-17_UTC -// COMMIT: c5a2c693abe0851e2aad80062f9ef654c05372ca +// VERSION: 2024-12-16_22-51-06_UTC +// COMMIT: bc9a4ea7bea6062240b3b6161125931925283dc1 // Instructions on pulling and using this list can be found at https://publicsuffix.org/list/. @@ -17,23 +17,23 @@ com.ac edu.ac gov.ac -net.ac mil.ac +net.ac org.ac // ad : https://www.iana.org/domains/root/db/ad.html +// Confirmed by Amadeu Abril i Abril (CORE) 2024-11-17 ad -nom.ad // ae : https://tdra.gov.ae/en/aeda/ae-policies ae +ac.ae co.ae +gov.ae +mil.ae net.ae org.ae sch.ae -ac.ae -gov.ae -mil.ae // aero : https://information.aero/registration/policies/dmp aero @@ -135,27 +135,27 @@ workinggroup.aero works.aero -// af : http://www.nic.af/help.jsp +// af : https://www.nic.af/domain-price af -gov.af com.af -org.af -net.af edu.af +gov.af +net.af +org.af // ag : http://www.nic.ag/prices.htm ag +co.ag com.ag -org.ag net.ag -co.ag nom.ag +org.ag // ai : http://nic.com.ai/ ai -off.ai com.ai net.ai +off.ai org.ai // al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31 @@ -168,6 +168,7 @@ org.al // am : https://www.amnic.net/policy/en/Policy_EN.pdf +// Confirmed by ISOC AM 2024-11-18 am co.am com.am @@ -176,17 +177,17 @@ org.am // ao : https://www.iana.org/domains/root/db/ao.html -// http://www.dns.ao/REGISTR.DOC +// https://www.dns.ao/ao/ ao +co.ao ed.ao edu.ao gov.ao gv.ao +it.ao og.ao org.ao -co.ao pb.ao -it.ao // aq : https://www.iana.org/domains/root/db/aq.html aq @@ -230,24 +231,24 @@ // Confirmed by registry 2008-06-17 at ac.at +sth.ac.at co.at gv.at or.at -sth.ac.at // au : https://www.iana.org/domains/root/db/au.html // http://www.auda.org.au/ +// Confirmed by registry 2024-11-17 au // 2LDs +asn.au com.au -net.au -org.au edu.au gov.au -asn.au id.au +net.au +org.au // Historic 2LDs (closed to new registration, but sites still exist) -info.au conf.au oz.au // CGDNs - http://www.cgdn.org.au/ @@ -290,19 +291,23 @@ ax // az : https://www.iana.org/domains/root/db/az.html +// Confirmed via https://whois.az/?page_id=10 2024-12-11 az +biz.az +co.az com.az -net.az -int.az -gov.az -org.az edu.az +gov.az info.az -pp.az +int.az mil.az name.az +net.az +org.az +pp.az +// No longer available for registration, however domains exist as of 2024-12-11 +// see https://whois.az/?page_id=783 pro.az -biz.az // ba : http://nic.ba/users_data/files/pravilnik_o_registraciji.pdf ba @@ -341,6 +346,16 @@ // bg : https://www.iana.org/domains/root/db/bg.html // https://www.register.bg/user/static/rules/en/index.html bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg a.bg b.bg c.bg @@ -367,24 +382,14 @@ x.bg y.bg z.bg -0.bg -1.bg -2.bg -3.bg -4.bg -5.bg -6.bg -7.bg -8.bg -9.bg // bh : https://www.iana.org/domains/root/db/bh.html bh com.bh edu.bh +gov.bh net.bh org.bh -gov.bh // bi : https://www.iana.org/domains/root/db/bi.html // http://whois.nic.bi/ @@ -417,12 +422,12 @@ net.bj org.bj ote.bj -resto.bj restaurant.bj +resto.bj tourism.bj univ.bj -// bm : http://www.bermudanic.bm/dnr-text.txt +// bm : https://www.bermudanic.bm/domain-registration/index.php bm com.bm edu.bm @@ -438,15 +443,16 @@ net.bn org.bn -// bo : https://nic.bo/delegacion2015.php#h-1.10 +// bo : https://nic.bo +// Confirmed by registry 2024-11-19 bo com.bo edu.bo gob.bo int.bo -org.bo -net.bo mil.bo +net.bo +org.bo tv.bo web.bo // Social Domains @@ -472,9 +478,9 @@ nombre.bo noticias.bo patria.bo +plurinacional.bo politica.bo profesional.bo -plurinacional.bo pueblo.bo revista.bo salud.bo @@ -661,10 +667,10 @@ // bs : http://www.nic.bs/rules.html bs com.bs -net.bs -org.bs edu.bs gov.bs +net.bs +org.bs // bt : https://www.iana.org/domains/root/db/bt.html bt @@ -679,10 +685,12 @@ bv // bw : https://www.iana.org/domains/root/db/bw.html -// http://www.gobin.info/domainname/bw.doc -// list of other 2nd level tlds ? +// https://nic.net.bw/bw-name-structure bw +ac.bw co.bw +gov.bw +net.bw org.bw // by : https://www.iana.org/domains/root/db/by.html @@ -703,10 +711,10 @@ bz co.bz com.bz -net.bz -org.bz edu.bz gov.bz +net.bz +org.bz // ca : https://www.iana.org/domains/root/db/ca.html ca @@ -736,7 +744,7 @@ cc // cd : https://www.iana.org/domains/root/db/cd.html -// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 +// https://www.nic.cd cd gov.cd @@ -750,21 +758,20 @@ ch // ci : https://www.iana.org/domains/root/db/ci.html -// http://www.nic.ci/index.php?page=charte ci -org.ci -or.ci -com.ci +ac.ci +aéroport.ci +asso.ci co.ci -edu.ci +com.ci ed.ci -ac.ci -net.ci +edu.ci go.ci -asso.ci -aéroport.ci -int.ci gouv.ci +int.ci +net.ci +or.ci +org.ci // ck : https://www.iana.org/domains/root/db/ck.html *.ck @@ -792,12 +799,12 @@ com.cn edu.cn gov.cn +mil.cn net.cn org.cn -mil.cn 公司.cn -网络.cn 網絡.cn +网络.cn // cn geographic names ah.cn bj.cn @@ -805,18 +812,20 @@ fj.cn gd.cn gs.cn -gz.cn gx.cn +gz.cn ha.cn hb.cn he.cn hi.cn +hk.cn hl.cn hn.cn jl.cn js.cn jx.cn ln.cn +mo.cn nm.cn nx.cn qh.cn @@ -826,30 +835,24 @@ sn.cn sx.cn tj.cn +tw.cn xj.cn xz.cn yn.cn zj.cn -hk.cn -mo.cn -tw.cn // co : https://www.iana.org/domains/root/db/co.html -// Submitted by registry +// https://www.cointernet.com.co/registra +// https://www.cointernet.com.co/como-funciona-un-dominio-restringido +// Confirmed by registry 2024-11-18 co -arts.co com.co edu.co -firm.co gov.co -info.co -int.co mil.co net.co nom.co org.co -rec.co -web.co // com : https://www.iana.org/domains/root/db/com.html com @@ -857,7 +860,7 @@ // coop : https://www.iana.org/domains/root/db/coop.html coop -// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do +// cr : https://nic.cr/capitulo-1-registro-de-un-nombre-de-dominio/ cr ac.cr co.cr @@ -878,16 +881,20 @@ org.cu // cv : https://www.iana.org/domains/root/db/cv.html -// cv : http://www.dns.cv/tldcv_portal/do?com=DS;5446457100;111;+PAGE(4000018)+K-CAT-CODIGO(RDOM)+RCNT(100); <- registration rules +// https://ola.cv/domain-extensions-under-cv/ +// Confirmed by registry 2024-11-26 cv com.cv edu.cv +id.cv int.cv +net.cv nome.cv org.cv +publ.cv -// cw : http://www.una.cw/cw_registry/ -// Confirmed by registry 2013-03-26 +// cw : https://www.uoc.cw/cw-registry +// Confirmed by registry 2024-11-19 cw com.cw edu.cw @@ -900,8 +907,8 @@ gov.cx // cy : http://www.nic.cy/ -// Submitted by registry Panayiotou Fotia -// namespace policies URL https://www.nic.cy/portal//sites/default/files/symfonia_gia_eggrafi.pdf +// Submitted by Panayiotou Fotia +// https://nic.cy/wp-content/uploads/2024/01/Create-Request-for-domain-name-registration-1.pdf cy ac.cy biz.cy @@ -932,12 +939,15 @@ dk // dm : https://www.iana.org/domains/root/db/dm.html +// https://nic.dm/policies/pdf/DMRulesandGuidelines2024v1.pdf +// Confirmed by registry 2024-11-19 dm +co.dm com.dm -net.dm -org.dm edu.dm gov.dm +net.dm +org.dm // do : https://www.iana.org/domains/root/db/do.html do @@ -959,77 +969,83 @@ com.dz edu.dz gov.dz -org.dz net.dz +org.dz pol.dz soc.dz tm.dz -// ec : http://www.nic.ec/reg/paso1.asp +// ec : https://www.nic.ec/ // Submitted by registry ec com.ec -info.ec -net.ec +edu.ec fin.ec +gob.ec +gov.ec +info.ec k12.ec med.ec -pro.ec -org.ec -edu.ec -gov.ec -gob.ec mil.ec +net.ec +org.ec +pro.ec // edu : https://www.iana.org/domains/root/db/edu.html edu -// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B +// ee : https://www.internet.ee/domains/general-domains-and-procedure-for-registration-of-sub-domains-under-general-domains ee +aip.ee +com.ee edu.ee +fie.ee gov.ee -riik.ee lib.ee med.ee -com.ee -pri.ee -aip.ee org.ee -fie.ee +pri.ee +riik.ee // eg : https://www.iana.org/domains/root/db/eg.html +// https://domain.eg/en/domain-rules/subdomain-names-types/ eg +ac.eg com.eg edu.eg eun.eg gov.eg +info.eg +me.eg mil.eg name.eg net.eg org.eg sci.eg +sport.eg +tv.eg // er : https://www.iana.org/domains/root/db/er.html *.er -// es : https://www.nic.es/site_ingles/ingles/dominios/index.html +// es : https://www.dominios.es/en es com.es +edu.es +gob.es nom.es org.es -gob.es -edu.es // et : https://www.iana.org/domains/root/db/et.html et +biz.et com.et -gov.et -org.et edu.et -biz.et -name.et +gov.et info.et +name.et net.et +org.et // eu : https://www.iana.org/domains/root/db/eu.html eu @@ -1060,11 +1076,11 @@ *.fk // fm : https://www.iana.org/domains/root/db/fm.html +fm com.fm edu.fm net.fm org.fm -fm // fo : https://www.iana.org/domains/root/db/fo.html fo @@ -1091,24 +1107,25 @@ gb // gd : https://www.iana.org/domains/root/db/gd.html +gd edu.gd gov.gd -gd -// ge : http://www.nic.net.ge/policy_en.pdf +// ge : https://nic.ge/en/administrator/the-ge-domain-regulations +// Confirmed by registry 2024-11-20 ge com.ge edu.ge gov.ge -org.ge -mil.ge net.ge +org.ge pvt.ge +school.ge // gf : https://www.iana.org/domains/root/db/gf.html gf -// gg : http://www.channelisles.net/register-domains/ +// gg : https://www.channelisles.net/register-1/register-direct // Confirmed by registry 2013-11-28 gg co.gg @@ -1116,23 +1133,23 @@ org.gg // gh : https://www.iana.org/domains/root/db/gh.html -// see also: http://www.nic.gh/reg_now.php +// https://www.nic.gh/ // Although domains directly at second level are not possible at the moment, // they have been possible for some time and may come back. gh com.gh edu.gh gov.gh -org.gh mil.gh +org.gh // gi : http://www.nic.gi/rules.html gi com.gi -ltd.gi +edu.gi gov.gi +ltd.gi mod.gi -edu.gi org.gi // gl : https://www.iana.org/domains/root/db/gl.html @@ -1154,20 +1171,20 @@ com.gn edu.gn gov.gn -org.gn net.gn +org.gn // gov : https://www.iana.org/domains/root/db/gov.html gov // gp : http://www.nic.gp/index.php?lang=en gp +asso.gp com.gp -net.gp -mobi.gp edu.gp +mobi.gp +net.gp org.gp -asso.gp // gq : https://www.iana.org/domains/root/db/gq.html gq @@ -1177,9 +1194,9 @@ gr com.gr edu.gr +gov.gr net.gr org.gr -gov.gr // gs : https://www.iana.org/domains/root/db/gs.html gs @@ -1230,21 +1247,21 @@ idv.hk net.hk org.hk +个人.hk +個人.hk 公司.hk -教育.hk -敎育.hk 政府.hk -個人.hk -个人.hk +敎育.hk +教育.hk 箇人.hk +組織.hk +組织.hk +網絡.hk 網络.hk -网络.hk 组織.hk -網絡.hk -网絡.hk 组织.hk -組織.hk -組织.hk +网絡.hk +网络.hk // hm : https://www.iana.org/domains/root/db/hm.html hm @@ -1253,69 +1270,69 @@ hn com.hn edu.hn -org.hn -net.hn -mil.hn gob.hn +mil.hn +net.hn +org.hn // hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf hr -iz.hr +com.hr from.hr +iz.hr name.hr -com.hr // ht : http://www.nic.ht/info/charte.cfm ht +adult.ht +art.ht +asso.ht com.ht -shop.ht +coop.ht +edu.ht firm.ht +gouv.ht info.ht -adult.ht +med.ht net.ht -pro.ht org.ht -med.ht -art.ht -coop.ht +perso.ht pol.ht -asso.ht -edu.ht +pro.ht rel.ht -gouv.ht -perso.ht +shop.ht // hu : http://www.domain.hu/domain/English/sld.html // Confirmed by registry 2008-06-12 hu -co.hu -info.hu -org.hu -priv.hu -sport.hu -tm.hu 2000.hu agrar.hu bolt.hu casino.hu city.hu +co.hu erotica.hu erotika.hu film.hu forum.hu games.hu hotel.hu +info.hu ingatlan.hu jogasz.hu konyvelo.hu lakas.hu media.hu news.hu +org.hu +priv.hu reklam.hu sex.hu shop.hu +sport.hu suli.hu szex.hu +tm.hu tozsde.hu utazas.hu video.hu @@ -1367,11 +1384,11 @@ im ac.im co.im -com.im ltd.co.im +plc.co.im +com.im net.im org.im -plc.co.im tt.im tv.im @@ -1443,12 +1460,12 @@ // iq : http://www.cmc.iq/english/iq/iqregister1.htm iq -gov.iq +com.iq edu.iq +gov.iq mil.iq -com.iq -org.iq net.iq +org.iq // ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules // Also see http://www.nic.ir/Internationalized_Domain_Names @@ -1467,22 +1484,16 @@ ايران.ir // is : http://www.isnic.is/domain/rules.php -// Confirmed by registry 2008-12-06 +// Confirmed by registry 2024-11-17 is -net.is -com.is -edu.is -gov.is -org.is -int.is // it : https://www.iana.org/domains/root/db/it.html +// https://www.nic.it/ it -gov.it edu.it -// Reserved geo-names (regions and provinces): -// https://www.nic.it/sites/default/files/archivio/docs/Regulation_assignation_v7.1.pdf -// Regions +gov.it +// Regions (3.3.1) +// https://www.nic.it/en/manage-your-it/forms-and-docs -> "Assignment and Management of domain names" abr.it abruzzo.it aosta-valley.it @@ -1541,6 +1552,7 @@ trentin-südtirol.it trentin-sued-tirol.it trentin-suedtirol.it +trentino.it trentino-a-adige.it trentino-aadige.it trentino-alto-adige.it @@ -1553,7 +1565,6 @@ trentino-südtirol.it trentino-sued-tirol.it trentino-suedtirol.it -trentino.it trentinoa-adige.it trentinoaadige.it trentinoalto-adige.it @@ -1597,7 +1608,7 @@ vda.it ven.it veneto.it -// Provinces +// Provinces (3.3.2) ag.it agrigento.it al.it @@ -1625,10 +1636,10 @@ av.it avellino.it ba.it +balsan.it balsan-sudtirol.it balsan-südtirol.it balsan-suedtirol.it -balsan.it bari.it barletta-trani-andria.it barlettatraniandria.it @@ -1642,21 +1653,21 @@ bn.it bo.it bologna.it -bolzano-altoadige.it bolzano.it +bolzano-altoadige.it +bozen.it bozen-sudtirol.it bozen-südtirol.it bozen-suedtirol.it -bozen.it br.it brescia.it brindisi.it bs.it bt.it +bulsan.it bulsan-sudtirol.it bulsan-südtirol.it bulsan-suedtirol.it -bulsan.it bz.it ca.it cagliari.it @@ -1758,9 +1769,9 @@ mn.it mo.it modena.it +monza.it monza-brianza.it monza-e-della-brianza.it -monza.it monzabrianza.it monzaebrianza.it monzaedellabrianza.it @@ -1839,8 +1850,8 @@ sp.it sr.it ss.it -suedtirol.it südtirol.it +suedtirol.it sv.it ta.it taranto.it @@ -1899,23 +1910,30 @@ // jm : http://www.com.jm/register.html *.jm -// jo : http://www.dns.jo/Registration_policy.aspx +// jo : https://www.dns.jo/JoFamily.aspx +// Confirmed by registry 2024-11-17 jo +agri.jo +ai.jo com.jo -org.jo -net.jo edu.jo -sch.jo +eng.jo +fm.jo gov.jo mil.jo -name.jo +net.jo +org.jo +per.jo +phd.jo +sch.jo +tv.jo // jobs : https://www.iana.org/domains/root/db/jobs.html jobs // jp : https://www.iana.org/domains/root/db/jp.html // http://jprs.co.jp/en/jpdomain.html -// Submitted by registry +// Confirmed by registry 2024-11-22 jp // jp organizational type names ac.jp @@ -1928,6 +1946,9 @@ ne.jp or.jp // jp prefecture type names +// 2024-11-22: JPRS confirmed that regional .jp suffixes no longer accept new registrations. +// Once all existing registrations expire (marking full discontinuation), these suffixes +// will be removed from the PSL. aichi.jp akita.jp aomori.jp @@ -1975,26 +1996,14 @@ yamagata.jp yamaguchi.jp yamanashi.jp -栃木.jp -愛知.jp -愛媛.jp +三重.jp +京都.jp +佐賀.jp 兵庫.jp -熊本.jp -茨城.jp 北海道.jp 千葉.jp 和歌山.jp -長崎.jp -長野.jp -新潟.jp -青森.jp -静岡.jp -東京.jp -石川.jp 埼玉.jp -三重.jp -京都.jp -佐賀.jp 大分.jp 大阪.jp 奈良.jp @@ -2004,20 +2013,32 @@ 山口.jp 山形.jp 山梨.jp -岩手.jp 岐阜.jp 岡山.jp +岩手.jp 島根.jp 広島.jp 徳島.jp +愛媛.jp +愛知.jp +新潟.jp +東京.jp +栃木.jp 沖縄.jp 滋賀.jp +熊本.jp +石川.jp 神奈川.jp 福井.jp 福岡.jp 福島.jp 秋田.jp 群馬.jp +茨城.jp +長崎.jp +長野.jp +青森.jp +静岡.jp 香川.jp 高知.jp 鳥取.jp @@ -3727,56 +3748,56 @@ // kg : http://www.domain.kg/dmn_n.html kg -org.kg -net.kg com.kg edu.kg gov.kg mil.kg +net.kg +org.kg // kh : http://www.mptc.gov.kh/dns_registration.htm *.kh // ki : http://www.ki/dns/index.html ki -edu.ki biz.ki -net.ki -org.ki +com.ki +edu.ki gov.ki info.ki -com.ki +net.ki +org.ki // km : https://www.iana.org/domains/root/db/km.html // http://www.domaine.km/documents/charte.doc km -org.km -nom.km +ass.km +com.km +edu.km gov.km +mil.km +nom.km +org.km prd.km tm.km -edu.km -mil.km -ass.km -com.km // These are only mentioned as proposed suggestions at domaine.km, but // https://www.iana.org/domains/root/db/km.html says they're available for registration: -coop.km asso.km -presse.km +coop.km +gouv.km medecin.km notaires.km pharmaciens.km +presse.km veterinaire.km -gouv.km // kn : https://www.iana.org/domains/root/db/kn.html // http://www.dot.kn/domainRules.html kn -net.kn -org.kn edu.kn gov.kn +net.kn +org.kn // kp : http://www.kcce.kp/en_index.php kp @@ -3843,24 +3864,24 @@ // kz : https://www.iana.org/domains/root/db/kz.html // see also: http://www.nic.kz/rules/index.jsp kz -org.kz +com.kz edu.kz -net.kz gov.kz mil.kz -com.kz +net.kz +org.kz // la : https://www.iana.org/domains/root/db/la.html // Submitted by registry la -int.la -net.la -info.la +com.la edu.la gov.la -per.la -com.la +info.la +int.la +net.la org.la +per.la // lb : https://www.iana.org/domains/root/db/lb.html // Submitted by registry @@ -3874,33 +3895,33 @@ // lc : https://www.iana.org/domains/root/db/lc.html // see also: http://www.nic.lc/rules.htm lc -com.lc -net.lc co.lc -org.lc +com.lc edu.lc gov.lc +net.lc +org.lc // li : https://www.iana.org/domains/root/db/li.html li // lk : https://www.nic.lk/index.php/domain-registration/lk-domain-naming-structure lk -gov.lk -sch.lk -net.lk -int.lk +ac.lk +assn.lk com.lk -org.lk edu.lk +gov.lk +grp.lk +hotel.lk +int.lk +ltd.lk +net.lk ngo.lk +org.lk +sch.lk soc.lk web.lk -ltd.lk -assn.lk -grp.lk -hotel.lk -ac.lk // lr : http://psg.com/dns/lr/lr.txt // Submitted by registry @@ -3908,8 +3929,8 @@ com.lr edu.lr gov.lr -org.lr net.lr +org.lr // ls : http://www.nic.ls/ // Confirmed by registry @@ -3934,68 +3955,67 @@ // lv : http://www.nic.lv/DNS/En/generic.php lv +asn.lv com.lv +conf.lv edu.lv gov.lv -org.lv -mil.lv id.lv +mil.lv net.lv -asn.lv -conf.lv +org.lv // ly : http://www.nic.ly/regulations.php ly com.ly -net.ly -gov.ly -plc.ly edu.ly -sch.ly +gov.ly +id.ly med.ly +net.ly org.ly -id.ly +plc.ly +sch.ly // ma : https://www.iana.org/domains/root/db/ma.html // http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf ma +ac.ma co.ma -net.ma gov.ma +net.ma org.ma -ac.ma press.ma // mc : http://www.nic.mc/ mc -tm.mc asso.mc +tm.mc // md : https://www.iana.org/domains/root/db/md.html md // me : https://www.iana.org/domains/root/db/me.html me +ac.me co.me -net.me -org.me edu.me -ac.me gov.me its.me +net.me +org.me priv.me -// mg : http://nic.mg/nicmg/?page_id=39 +// mg : https://nic.mg mg -org.mg -nom.mg -gov.mg -prd.mg -tm.mg +co.mg +com.mg edu.mg +gov.mg mil.mg -com.mg -co.mg +nom.mg +org.mg +prd.mg // mh : https://www.iana.org/domains/root/db/mh.html mh @@ -4007,12 +4027,12 @@ // see also: http://dns.marnet.net.mk/postapka.php mk com.mk -org.mk -net.mk edu.mk gov.mk inf.mk name.mk +net.mk +org.mk // ml : http://www.gobin.info/domainname/ml-template.doc // see also: https://www.iana.org/domains/root/db/ml.html @@ -4030,17 +4050,17 @@ // mn : https://www.iana.org/domains/root/db/mn.html mn -gov.mn edu.mn +gov.mn org.mn // mo : http://www.monic.net.mo/ mo com.mo -net.mo -org.mo edu.mo gov.mo +net.mo +org.mo // mobi : https://www.iana.org/domains/root/db/mobi.html mobi @@ -4074,13 +4094,13 @@ // mu : https://www.iana.org/domains/root/db/mu.html mu -com.mu -net.mu -org.mu -gov.mu ac.mu co.mu +com.mu +gov.mu +net.mu or.mu +org.mu // museum : https://welcome.museum/wp-content/uploads/2018/05/20180525-Registration-Policy-MUSEUM-EN_VF-2.pdf https://welcome.museum/buy-your-dot-museum-2/ museum @@ -4120,10 +4140,10 @@ // Submitted by registry mx com.mx -org.mx -gob.mx edu.mx +gob.mx net.mx +org.mx // my : http://www.mynic.my/ // Available strings: https://mynic.my/resources/domains/buying-a-domain/ @@ -4158,7 +4178,8 @@ net.na org.na -// name : has 2nd-level tlds, but there's no list of them +// name : http://www.nic.name/ +// Regarding 2LDs: https://github.com/publicsuffix/list/issues/2306 name // nc : http://www.cctld.nc/ @@ -4174,16 +4195,16 @@ // nf : https://www.iana.org/domains/root/db/nf.html nf -com.nf -net.nf -per.nf -rec.nf -web.nf arts.nf +com.nf firm.nf info.nf +net.nf other.nf +per.nf +rec.nf store.nf +web.nf // ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds ng @@ -4228,18 +4249,18 @@ no // Norid category second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-c/ fhs.no -vgs.no -fylkesbibl.no folkebibl.no -museum.no +fylkesbibl.no idrett.no +museum.no priv.no +vgs.no // Norid category second-level domains managed by parties other than Norid : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-d/ -mil.no -stat.no dep.no -kommune.no herad.no +kommune.no +mil.no +stat.no // Norid geographical second level domains : https://www.norid.no/en/om-domenenavn/regelverk-for-no/vedlegg-b/ // counties aa.no @@ -4291,10 +4312,10 @@ algard.no ålgård.no arna.no -brumunddal.no -bryne.no bronnoysund.no brønnøysund.no +brumunddal.no +bryne.no drobak.no drøbak.no egersund.no @@ -4338,27 +4359,32 @@ tranby.no vossevangen.no // communities +aarborte.no +aejrie.no afjord.no åfjord.no agdenes.no +nes.akershus.no +aknoluokta.no +ákŋoluokta.no al.no ål.no +alaheadju.no +álaheadju.no alesund.no ålesund.no alstahaug.no alta.no áltá.no -alaheadju.no -álaheadju.no alvdal.no amli.no åmli.no amot.no åmot.no +andasuolo.no andebu.no andoy.no andøy.no -andasuolo.no ardal.no årdal.no aremark.no @@ -4368,9 +4394,9 @@ åseral.no asker.no askim.no -askvoll.no askoy.no askøy.no +askvoll.no asnes.no åsnes.no audnedaln.no @@ -4383,27 +4409,37 @@ austrheim.no averoy.no averøy.no -balestrand.no -ballangen.no +badaddja.no +bådåddjå.no +bærum.no +bahcavuotna.no +báhcavuotna.no +bahccavuotna.no +báhccavuotna.no +baidar.no +báidár.no +bajddar.no +bájddar.no balat.no bálát.no +balestrand.no +ballangen.no balsfjord.no -bahccavuotna.no -báhccavuotna.no bamble.no bardu.no +barum.no +batsfjord.no +båtsfjord.no +bearalvahki.no +bearalváhki.no beardu.no beiarn.no -bajddar.no -bájddar.no -baidar.no -báidár.no berg.no bergen.no berlevag.no berlevåg.no -bearalvahki.no -bearalváhki.no +bievat.no +bievát.no bindal.no birkenes.no bjarkoy.no @@ -4412,36 +4448,32 @@ bjugn.no bodo.no bodø.no -badaddja.no -bådåddjå.no -budejju.no bokn.no +bomlo.no +bømlo.no bremanger.no bronnoy.no brønnøy.no +budejju.no +nes.buskerud.no bygland.no bykle.no -barum.no -bærum.no -bo.telemark.no -bø.telemark.no -bo.nordland.no -bø.nordland.no -bievat.no -bievát.no -bomlo.no -bømlo.no -batsfjord.no -båtsfjord.no -bahcavuotna.no -báhcavuotna.no +cahcesuolo.no +čáhcesuolo.no +davvenjarga.no +davvenjárga.no +davvesiida.no +deatnu.no +dielddanuorri.no +divtasvuodna.no +divttasvuotna.no +donna.no +dønna.no dovre.no drammen.no drangedal.no dyroy.no dyrøy.no -donna.no -dønna.no eid.no eidfjord.no eidsberg.no @@ -4453,14 +4485,12 @@ engerdal.no etne.no etnedal.no -evenes.no evenassi.no evenášši.no +evenes.no evje-og-hornnes.no farsund.no fauske.no -fuossko.no -fuoisku.no fedje.no fet.no finnoy.no @@ -4468,33 +4498,40 @@ fitjar.no fjaler.no fjell.no +fla.no +flå.no flakstad.no flatanger.no flekkefjord.no flesberg.no flora.no -fla.no -flå.no folldal.no +forde.no +førde.no forsand.no fosnes.no +fræna.no +frana.no frei.no frogn.no froland.no frosta.no -frana.no -fræna.no froya.no frøya.no +fuoisku.no +fuossko.no fusa.no fyresdal.no -forde.no -førde.no +gaivuotna.no +gáivuotna.no +galsa.no +gálsá.no gamvik.no gangaviika.no gáŋgaviika.no gaular.no gausdal.no +giehtavuoatna.no gildeskal.no gildeskål.no giske.no @@ -4512,38 +4549,37 @@ gratangen.no grimstad.no grong.no -kraanghke.no -kråanghke.no grue.no gulen.no +guovdageaidnu.no +ha.no +hå.no +habmer.no +hábmer.no hadsel.no +hægebostad.no +hagebostad.no halden.no halsa.no hamar.no hamaroy.no -habmer.no -hábmer.no -hapmir.no -hápmir.no -hammerfest.no hammarfeasta.no hámmárfeasta.no +hammerfest.no +hapmir.no +hápmir.no haram.no hareid.no harstad.no hasvik.no -aknoluokta.no -ákŋoluokta.no hattfjelldal.no -aarborte.no haugesund.no +os.hedmark.no +valer.hedmark.no +våler.hedmark.no hemne.no hemnes.no hemsedal.no -heroy.more-og-romsdal.no -herøy.møre-og-romsdal.no -heroy.nordland.no -herøy.nordland.no hitra.no hjartdal.no hjelmeland.no @@ -4555,96 +4591,95 @@ holmestrand.no holtalen.no holtålen.no +os.hordaland.no hornindal.no horten.no -hurdal.no -hurum.no -hvaler.no -hyllestad.no -hagebostad.no -hægebostad.no hoyanger.no høyanger.no hoylandet.no høylandet.no -ha.no -hå.no +hurdal.no +hurum.no +hvaler.no +hyllestad.no ibestad.no inderoy.no inderøy.no iveland.no +ivgu.no jevnaker.no -jondal.no jolster.no jølster.no -karasjok.no +jondal.no +kafjord.no +kåfjord.no karasjohka.no kárášjohka.no +karasjok.no karlsoy.no -galsa.no -gálsá.no karmoy.no karmøy.no kautokeino.no -guovdageaidnu.no -klepp.no klabu.no klæbu.no +klepp.no kongsberg.no kongsvinger.no +kraanghke.no +kråanghke.no kragero.no kragerø.no kristiansand.no kristiansund.no krodsherad.no krødsherad.no +kvæfjord.no +kvænangen.no +kvafjord.no kvalsund.no -rahkkeravju.no -ráhkkerávju.no kvam.no +kvanangen.no kvinesdal.no kvinnherad.no kviteseid.no kvitsoy.no kvitsøy.no -kvafjord.no -kvæfjord.no -giehtavuoatna.no -kvanangen.no -kvænangen.no -navuotna.no -návuotna.no -kafjord.no -kåfjord.no -gaivuotna.no -gáivuotna.no +laakesvuemie.no +lærdal.no +lahppi.no +láhppi.no +lardal.no larvik.no -lavangen.no lavagis.no -loabat.no -loabát.no +lavangen.no +leangaviika.no +leaŋgaviika.no lebesby.no -davvesiida.no leikanger.no leirfjord.no leka.no leksvik.no lenvik.no -leangaviika.no -leaŋgaviika.no +lerdal.no lesja.no levanger.no lier.no lierne.no lillehammer.no lillesand.no -lindesnes.no lindas.no lindås.no +lindesnes.no +loabat.no +loabát.no +lodingen.no +lødingen.no lom.no loppa.no -lahppi.no -láhppi.no +lorenskog.no +lørenskog.no +loten.no +løten.no lund.no lunner.no luroy.no @@ -4652,25 +4687,19 @@ luster.no lyngdal.no lyngen.no -ivgu.no -lardal.no -lerdal.no -lærdal.no -lodingen.no -lødingen.no -lorenskog.no -lørenskog.no -loten.no -løten.no +malatvuopmi.no +málatvuopmi.no +malselv.no +målselv.no malvik.no -masoy.no -måsøy.no -muosat.no -muosát.no mandal.no marker.no marnardal.no masfjorden.no +masoy.no +måsøy.no +matta-varjjat.no +mátta-várjjat.no meland.no meldal.no melhus.no @@ -4678,39 +4707,39 @@ meløy.no meraker.no meråker.no -moareke.no -moåreke.no midsund.no midtre-gauldal.no +moareke.no +moåreke.no modalen.no modum.no molde.no +heroy.more-og-romsdal.no +sande.more-og-romsdal.no +herøy.møre-og-romsdal.no +sande.møre-og-romsdal.no moskenes.no moss.no mosvik.no -malselv.no -målselv.no -malatvuopmi.no -málatvuopmi.no +muosat.no +muosát.no +naamesjevuemie.no +nååmesjevuemie.no +nærøy.no namdalseid.no -aejrie.no namsos.no namsskogan.no -naamesjevuemie.no -nååmesjevuemie.no -laakesvuemie.no nannestad.no -narvik.no +naroy.no narviika.no +narvik.no naustdal.no +navuotna.no +návuotna.no nedre-eiker.no -nes.akershus.no -nes.buskerud.no nesna.no nesodden.no nesseby.no -unjarga.no -unjárga.no nesset.no nissedal.no nittedal.no @@ -4719,21 +4748,20 @@ nord-odal.no norddal.no nordkapp.no -davvenjarga.no -davvenjárga.no +bo.nordland.no +bø.nordland.no +heroy.nordland.no +herøy.nordland.no nordre-land.no nordreisa.no -raisa.no -ráisa.no nore-og-uvdal.no notodden.no -naroy.no -nærøy.no notteroy.no nøtterøy.no odda.no oksnes.no øksnes.no +omasvuotna.no oppdal.no oppegard.no oppegård.no @@ -4744,11 +4772,11 @@ ørskog.no orsta.no ørsta.no -os.hedmark.no -os.hordaland.no osen.no osteroy.no osterøy.no +valer.ostfold.no +våler.østfold.no ostre-toten.no østre-toten.no overhalla.no @@ -4764,11 +4792,18 @@ porsangu.no porsáŋgu.no porsgrunn.no +rade.no +råde.no radoy.no radøy.no +rælingen.no +rahkkeravju.no +ráhkkerávju.no +raisa.no +ráisa.no rakkestad.no +ralingen.no rana.no -ruovat.no randaberg.no rauma.no rendalen.no @@ -4779,16 +4814,14 @@ ringebu.no ringerike.no ringsaker.no -rissa.no risor.no risør.no +rissa.no roan.no -rollag.no -rygge.no -ralingen.no -rælingen.no rodoy.no rødøy.no +rollag.no +romsa.no romskog.no rømskog.no roros.no @@ -4799,18 +4832,14 @@ røyken.no royrvik.no røyrvik.no -rade.no -råde.no +ruovat.no +rygge.no salangen.no -siellak.no -saltdal.no salat.no -sálát.no sálat.no +sálát.no +saltdal.no samnanger.no -sande.more-og-romsdal.no -sande.møre-og-romsdal.no -sande.vestfold.no sandefjord.no sandnes.no sandoy.no @@ -4822,39 +4851,60 @@ selbu.no selje.no seljord.no +siellak.no sigdal.no siljan.no sirdal.no +skanit.no +skánit.no +skanland.no +skånland.no skaun.no skedsmo.no ski.no skien.no -skiptvet.no -skjervoy.no -skjervøy.no skierva.no skiervá.no +skiptvet.no skjak.no skjåk.no +skjervoy.no +skjervøy.no skodje.no -skanland.no -skånland.no -skanit.no -skánit.no smola.no smøla.no -snillfjord.no +snaase.no +snåase.no snasa.no snåsa.no +snillfjord.no snoasa.no -snaase.no -snåase.no sogndal.no +sogne.no +søgne.no sokndal.no sola.no solund.no +somna.no +sømna.no +sondre-land.no +søndre-land.no songdalen.no +sor-aurdal.no +sør-aurdal.no +sor-fron.no +sør-fron.no +sor-odal.no +sør-odal.no +sor-varanger.no +sør-varanger.no +sorfold.no +sørfold.no +sorreisa.no +sørreisa.no sortland.no +sorum.no +sørum.no spydeberg.no stange.no stavanger.no @@ -4867,7 +4917,6 @@ stord.no stordal.no storfjord.no -omasvuotna.no strand.no stranda.no stryn.no @@ -4879,72 +4928,55 @@ sveio.no svelvik.no sykkylven.no -sogne.no -søgne.no -somna.no -sømna.no -sondre-land.no -søndre-land.no -sor-aurdal.no -sør-aurdal.no -sor-fron.no -sør-fron.no -sor-odal.no -sør-odal.no -sor-varanger.no -sør-varanger.no -matta-varjjat.no -mátta-várjjat.no -sorfold.no -sørfold.no -sorreisa.no -sørreisa.no -sorum.no -sørum.no tana.no -deatnu.no +bo.telemark.no +bø.telemark.no time.no tingvoll.no tinn.no tjeldsund.no -dielddanuorri.no tjome.no tjøme.no tokke.no tolga.no +tonsberg.no +tønsberg.no torsken.no +træna.no +trana.no tranoy.no tranøy.no +troandin.no +trogstad.no +trøgstad.no +tromsa.no tromso.no tromsø.no -tromsa.no -romsa.no trondheim.no -troandin.no trysil.no -trana.no -træna.no -trogstad.no -trøgstad.no tvedestrand.no tydal.no tynset.no tysfjord.no -divtasvuodna.no -divttasvuotna.no tysnes.no -tysvar.no tysvær.no -tonsberg.no -tønsberg.no +tysvar.no ullensaker.no ullensvang.no ulvik.no +unjarga.no +unjárga.no utsira.no +vaapste.no vadso.no vadsø.no -cahcesuolo.no -čáhcesuolo.no +værøy.no +vaga.no +vågå.no +vagan.no +vågan.no +vagsoy.no +vågsøy.no vaksdal.no valle.no vang.no @@ -4953,8 +4985,8 @@ vardø.no varggat.no várggát.no +varoy.no vefsn.no -vaapste.no vega.no vegarshei.no vegårshei.no @@ -4962,6 +4994,7 @@ verdal.no verran.no vestby.no +sande.vestfold.no vestnes.no vestre-slidre.no vestre-toten.no @@ -4971,21 +5004,9 @@ vik.no vikna.no vindafjord.no +voagat.no volda.no voss.no -varoy.no -værøy.no -vagan.no -vågan.no -voagat.no -vagsoy.no -vågsøy.no -vaga.no -vågå.no -valer.ostfold.no -våler.østfold.no -valer.hedmark.no -våler.hedmark.no // np : http://www.mos.com.np/register.html *.np @@ -4994,12 +5015,12 @@ // Submitted by registry nr biz.nr -info.nr -gov.nr +com.nr edu.nr -org.nr +gov.nr +info.nr net.nr -com.nr +org.nr // nu : https://www.iana.org/domains/root/db/nu.html nu @@ -5017,8 +5038,8 @@ iwi.nz kiwi.nz maori.nz -mil.nz māori.nz +mil.nz net.nz org.nz parliament.nz @@ -5046,33 +5067,33 @@ // Some additional second level "domains" resolve directly as hostnames, such as // pannet.pa, so we add a rule for "pa". pa +abo.pa ac.pa -gob.pa com.pa -org.pa -sld.pa edu.pa -net.pa +gob.pa ing.pa -abo.pa med.pa +net.pa nom.pa +org.pa +sld.pa // pe : https://www.nic.pe/InformeFinalComision.pdf pe +com.pe edu.pe gob.pe -nom.pe mil.pe -org.pe -com.pe net.pe +nom.pe +org.pe // pf : http://www.gobin.info/domainname/formulaire-pf.pdf pf com.pf -org.pf edu.pf +org.pf // pg : https://www.iana.org/domains/root/db/pg.html *.pg @@ -5081,13 +5102,13 @@ // Submitted by registry ph com.ph -net.ph -org.ph -gov.ph edu.ph -ngo.ph -mil.ph +gov.ph i.ph +mil.ph +net.ph +ngo.ph +org.ph // pk : https://pknic.net.pk // pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK + grandfathered old gon.pk @@ -5111,15 +5132,15 @@ org.pk web.pk -// pl http://www.dns.pl/english/index.html -// Submitted by registry +// pl : https://www.dns.pl/en/ +// Confirmed by registry 2024-11-18 pl com.pl net.pl org.pl -// pl functional domains (http://www.dns.pl/english/index.html) -aid.pl +// pl functional domains : https://www.dns.pl/en/list_of_functional_domain_names agro.pl +aid.pl atm.pl auto.pl biz.pl @@ -5128,8 +5149,8 @@ gsm.pl info.pl mail.pl -miasta.pl media.pl +miasta.pl mil.pl nieruchomosci.pl nom.pl @@ -5148,7 +5169,8 @@ tourism.pl travel.pl turystyka.pl -// Government domains +// Government domains : https://www.dns.pl/informacje_o_rejestracji_domen_gov_pl +// In accordance with the .gov.pl Domain Name Regulations : https://www.dns.pl/regulamin_gov_pl gov.pl ap.gov.pl griw.gov.pl @@ -5205,7 +5227,7 @@ wzmiuw.gov.pl zp.gov.pl zpisdn.gov.pl -// pl regional domains (http://www.dns.pl/english/index.html) +// pl regional domains : https://www.dns.pl/en/list_of_regional_domain_names augustow.pl babia-gora.pl bedzin.pl @@ -5232,11 +5254,11 @@ jelenia-gora.pl jgora.pl kalisz.pl -kazimierz-dolny.pl karpacz.pl kartuzy.pl kaszuby.pl katowice.pl +kazimierz-dolny.pl kepno.pl ketrzyn.pl klodzko.pl @@ -5279,8 +5301,8 @@ podhale.pl podlasie.pl polkowice.pl -pomorze.pl pomorskie.pl +pomorze.pl prochowice.pl pruszkow.pl przeworsk.pl @@ -5291,11 +5313,11 @@ rzeszow.pl sanok.pl sejny.pl +skoczow.pl slask.pl slupsk.pl sosnowiec.pl stalowa-wola.pl -skoczow.pl starachowice.pl stargard.pl suwalki.pl @@ -5331,31 +5353,31 @@ // pn : http://www.government.pn/PnRegistry/policies.htm pn -gov.pn co.pn -org.pn edu.pn +gov.pn net.pn +org.pn // post : https://www.iana.org/domains/root/db/post.html post // pr : http://www.nic.pr/index.asp?f=1 pr +biz.pr com.pr -net.pr -org.pr -gov.pr edu.pr -isla.pr -pro.pr -biz.pr +gov.pr info.pr +isla.pr name.pr +net.pr +org.pr +pro.pr // these aren't mentioned on nic.pr, but on https://www.iana.org/domains/root/db/pr.html +ac.pr est.pr prof.pr -ac.pr // pro : http://registry.pro/get-pro pro @@ -5374,32 +5396,29 @@ // ps : https://www.iana.org/domains/root/db/ps.html // http://www.nic.ps/registration/policy.html#reg ps +com.ps edu.ps gov.ps -sec.ps -plo.ps -com.ps -org.ps net.ps +org.ps +plo.ps +sec.ps // pt : https://www.dns.pt/en/domain/pt-terms-and-conditions-registration-rules/ pt -net.pt -gov.pt -org.pt +com.pt edu.pt +gov.pt int.pt -publ.pt -com.pt +net.pt nome.pt +org.pt +publ.pt // pw : https://www.iana.org/domains/root/db/pw.html +// Confirmed by registry in private correspondence with @dnsguru 2024-12-09 pw -co.pw -or.pw -ed.pw -go.pw -belau.pw +gov.pw // py : http://www.nic.py/pautas.html#seccion_9 // Submitted by registry @@ -5424,10 +5443,11 @@ sch.qa // re : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf +// Confirmed by registry 2024-11-18 re +// Closed for registration on 2013-03-15 but domains are still maintained asso.re com.re -nom.re // ro : http://www.rotld.ro/ ro @@ -5469,12 +5489,12 @@ // sa : http://www.nic.net.sa/ sa com.sa -net.sa -org.sa +edu.sa gov.sa med.sa +net.sa +org.sa pub.sa -edu.sa sch.sa // sb : http://www.sbnic.net.sb/ @@ -5489,25 +5509,26 @@ // sc : http://www.nic.sc/ sc com.sc +edu.sc gov.sc net.sc org.sc -edu.sc // sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm // Submitted by registry sd com.sd -net.sd -org.sd edu.sd -med.sd -tv.sd gov.sd info.sd +med.sd +net.sd +org.sd +tv.sd // se : https://www.iana.org/domains/root/db/se.html -// Submitted by registry +// https://data.internetstiftelsen.se/barred_domains_list.txt -> Second level domains & Sub-domains +// Confirmed by Registry Services 2024-11-20 se a.se ac.se @@ -5549,22 +5570,22 @@ y.se z.se -// sg : http://www.nic.net.sg/page/registration-policies-procedures-and-guidelines +// sg : https://www.sgnic.sg/domain-registration/sg-categories-rules +// Confirmed by registry 2024-11-19 sg com.sg +edu.sg +gov.sg net.sg org.sg -gov.sg -edu.sg -per.sg // sh : http://nic.sh/rules.htm sh com.sh -net.sh gov.sh -org.sh mil.sh +net.sh +org.sh // si : https://www.iana.org/domains/root/db/si.html si @@ -5580,9 +5601,9 @@ // Submitted by registry sl com.sl -net.sl edu.sl gov.sl +net.sl org.sl // sm : https://www.iana.org/domains/root/db/sm.html @@ -5656,18 +5677,18 @@ // sy : https://www.iana.org/domains/root/db/sy.html // see also: http://www.gobin.info/domainname/sy.doc sy +com.sy edu.sy gov.sy -net.sy mil.sy -com.sy +net.sy org.sy // sz : https://www.iana.org/domains/root/db/sz.html // http://www.sispa.org.sz/ sz -co.sz ac.sz +co.sz org.sz // tc : https://www.iana.org/domains/root/db/tc.html @@ -5723,16 +5744,17 @@ tl gov.tl -// tm : http://www.nic.tm/local.html +// tm : https://www.nic.tm/local.html +// Confirmed by registry - 2024-11-19 tm -com.tm co.tm -org.tm -net.tm -nom.tm +com.tm +edu.tm gov.tm mil.tm -edu.tm +net.tm +nom.tm +org.tm // tn : http://www.registre.tn/fr/ // https://whois.ati.tn/ @@ -5755,11 +5777,11 @@ // Submitted by registry to com.to +edu.to gov.to +mil.to net.to org.to -edu.to -mil.to // tr : https://nic.tr/ // https://nic.tr/forms/eng/policies.pdf @@ -5775,9 +5797,9 @@ gen.tr gov.tr info.tr -mil.tr k12.tr kep.tr +mil.tr name.tr net.tr org.tr @@ -5791,25 +5813,20 @@ // Used by government agencies of Northern Cyprus gov.nc.tr -// tt : http://www.nic.tt/ +// tt : https://www.nic.tt/ +// Confirmed by registry - 2024-11-19 tt +biz.tt co.tt com.tt -org.tt -net.tt -biz.tt +edu.tt +gov.tt info.tt -pro.tt -int.tt -coop.tt -jobs.tt -mobi.tt -travel.tt -museum.tt -aero.tt +mil.tt name.tt -gov.tt -edu.tt +net.tt +org.tt +pro.tt // tv : https://www.iana.org/domains/root/db/tv.html // Not listing any 2LDs as reserved since none seem to exist in practice, @@ -5817,20 +5834,19 @@ tv // tw : https://www.iana.org/domains/root/db/tw.html +// https://twnic.tw/dnservice_catag.php +// Confirmed by registry 2024-11-26 tw +club.tw +com.tw +ebiz.tw edu.tw +game.tw gov.tw +idv.tw mil.tw -com.tw net.tw org.tw -idv.tw -game.tw -ebiz.tw -club.tw -網路.tw -組織.tw -商業.tw // tz : http://www.tznic.or.tz/index.php/domains // Submitted by registry @@ -5936,14 +5952,14 @@ // ug : https://www.registry.co.ug/ ug -co.ug -or.ug ac.ug -sc.ug +co.ug +com.ug go.ug ne.ug -com.ug +or.ug org.ug +sc.ug // uk : https://www.iana.org/domains/root/db/uk.html // Submitted by registry @@ -5961,13 +5977,12 @@ *.sch.uk // us : https://www.iana.org/domains/root/db/us.html +// Confirmed via the .us zone file by William Harrison - 2024-12-10 us dni.us -fed.us isa.us -kids.us nsn.us -// us geographic names +// Geographic Names ak.us al.us ar.us @@ -6016,9 +6031,9 @@ tn.us tx.us ut.us +va.us vi.us vt.us -va.us wa.us wi.us wv.us @@ -6076,22 +6091,30 @@ k12.tn.us k12.tx.us k12.ut.us +k12.va.us k12.vi.us k12.vt.us -k12.va.us k12.wa.us k12.wi.us // k12.wv.us Bug 947705 - Removed at request of Verne Britton -k12.wy.us cc.ak.us +lib.ak.us cc.al.us +lib.al.us cc.ar.us +lib.ar.us cc.as.us +lib.as.us cc.az.us +lib.az.us cc.ca.us +lib.ca.us cc.co.us +lib.co.us cc.ct.us +lib.ct.us cc.dc.us +lib.dc.us cc.de.us cc.fl.us cc.ga.us @@ -6131,22 +6154,14 @@ cc.tn.us cc.tx.us cc.ut.us +cc.va.us cc.vi.us cc.vt.us -cc.va.us cc.wa.us cc.wi.us cc.wv.us cc.wy.us -lib.ak.us -lib.al.us -lib.ar.us -lib.as.us -lib.az.us -lib.ca.us -lib.co.us -lib.ct.us -lib.dc.us +k12.wy.us // lib.de.us Issue #243 - Moved to Private section at request of Ed Moore lib.fl.us lib.ga.us @@ -6186,23 +6201,23 @@ lib.tn.us lib.tx.us lib.ut.us +lib.va.us lib.vi.us lib.vt.us -lib.va.us lib.wa.us lib.wi.us // lib.wv.us Bug 941670 - Removed at request of Larry W Arnold lib.wy.us // k12.ma.us contains school districts in Massachusetts. The 4LDs are -// managed independently except for private (PVT), charter (CHTR) and -// parochial (PAROCH) schools. Those are delegated directly to the -// 5LD operators. -pvt.k12.ma.us +// managed independently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated directly to the +// 5LD operators. chtr.k12.ma.us paroch.k12.ma.us +pvt.k12.ma.us // Merit Network, Inc. maintains the registry for =~ /(k12|cc|lib).mi.us/ and the following -// see also: http://domreg.merit.edu -// see also: whois -h whois.domreg.merit.edu help +// see also: https://domreg.merit.edu : domreg@merit.edu +// see also: whois -h whois.domreg.merit.edu help ann-arbor.mi.us cog.mi.us dst.mi.us @@ -6235,11 +6250,11 @@ // Submitted by registry vc com.vc -net.vc -org.vc +edu.vc gov.vc mil.vc -edu.vc +net.vc +org.vc // ve : https://registro.nic.ve/ // Submitted by registry nic@nic.ve and nicve@conatel.gob.ve @@ -6378,10 +6393,10 @@ // http://samoanic.ws/index.dhtml ws com.ws +edu.ws +gov.ws net.ws org.ws -gov.ws -edu.ws // yt : https://www.afnic.fr/wp-media/uploads/2022/12/afnic-naming-policy-2023-01-01.pdf yt @@ -6416,12 +6431,12 @@ // xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN // CNNIC -// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +// https://www.cnnic.cn/11/192/index.html 中国 // xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN // CNNIC -// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +// https://www.cnnic.com.cn/AU/MediaC/Announcement/201609/t20160905_54470.htm 中國 // xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ @@ -6454,12 +6469,12 @@ // Submitted by registry // https://www.hkirc.hk/content.jsp?id=30#!/34 香港 +個人.香港 公司.香港 -教育.香港 政府.香港 -個人.香港 -網絡.香港 +教育.香港 組織.香港 +網絡.香港 // xn--2scrj9c ("Bharat", Kannada) : IN // India @@ -6590,12 +6605,12 @@ // xn--90a3ac ("srb", Cyrillic) : RS // https://www.rnids.rs/en/domains/national-domains срб -пр.срб -орг.срб +ак.срб обр.срб од.срб +орг.срб +пр.срб упр.срб -ак.срб // xn--p1ai ("rf", Russian-Cyrillic) : RU // https://cctld.ru/files/pdf/docs/en/rules_ru-rf.pdf @@ -6638,11 +6653,11 @@ // xn--o3cw4h ("Thai", Thai) : TH // http://www.thnic.co.th ไทย -ศึกษา.ไทย -ธุรกิจ.ไทย -รัฐบาล.ไทย ทหาร.ไทย +ธุรกิจ.ไทย เน็ต.ไทย +รัฐบาล.ไทย +ศึกษา.ไทย องค์กร.ไทย // xn--pgbs0dh ("Tunisia", Arabic) : TN @@ -6650,7 +6665,7 @@ تونس // xn--kpry57d ("Taiwan", Chinese, Traditional) : TW -// http://www.twnic.net/english/dn/dn_07a.htm +// https://twnic.tw/dnservice_catag.php 台灣 // xn--kprw13d ("Taiwan", Chinese, Simplified) : TW @@ -6674,8 +6689,8 @@ com.ye edu.ye gov.ye -net.ye mil.ye +net.ye org.ye // za : https://www.zadna.org.za/content/page/domain-information/ @@ -6724,7 +6739,7 @@ // newGTLDs -// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-10-31T15:17:42Z +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2024-12-12T15:18:58Z // This list is auto-generated, don't edit it manually. // aaa : American Automobile Association, Inc. // https://www.iana.org/domains/root/db/aaa.html @@ -6954,7 +6969,7 @@ // https://www.iana.org/domains/root/db/arte.html arte -// asda : Wal-Mart Stores, Inc. +// asda : Asda Stores Limited // https://www.iana.org/domains/root/db/asda.html asda @@ -10778,7 +10793,7 @@ // https://www.iana.org/domains/root/db/xn--3bst00m.html 集团 -// xn--3ds443g : TLD REGISTRY LIMITED OY +// xn--3ds443g : Beijing TLD Registry Technology Limited // https://www.iana.org/domains/root/db/xn--3ds443g.html 在线 @@ -11134,7 +11149,7 @@ // https://www.iana.org/domains/root/db/yamaxun.html yamaxun -// yandex : Yandex Europe B.V. +// yandex : ADC Tech Netherlands B.V. // https://www.iana.org/domains/root/db/yandex.html yandex @@ -11192,7 +11207,7 @@ // (Note: these are in alphabetical order by company name) -// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf +// .KRD : https://nic.krd co.krd edu.krd @@ -11228,10 +11243,6 @@ a2hosted.com cpserver.com -// AAA workspace : https://aaa.vodka -// Submitted by Kirill Rezraf -aaa.vodka - // Acorn Labs : https://acorn.io // Submitted by Craig Jellick *.on-acorn.io @@ -11244,6 +11255,13 @@ // Submitted by Mark Terrel adaptable.app +// addr.tools : https://addr.tools/ +// Submitted by Brian Shea +myaddr.dev +myaddr.io +dyn.addr.tools +myaddr.tools + // Adobe : https://www.adobe.com/ // Submitted by Ian Boston and Lars Trieloff adobeaemcloud.com @@ -11274,8 +11292,9 @@ airkitapps-au.com airkitapps.eu -// Aiven: https://aiven.io/ -// Submitted by Etienne Stalmans +// Aiven : https://aiven.io/ +// Submitted by Aiven Security Team +aiven.app aivencloud.com // Akamai : https://www.akamai.com/ @@ -12228,10 +12247,6 @@ // Submitted by Hazel Cora pages.gay -// BetaInABox -// Submitted by Adrian -betainabox.com - // BinaryLane : http://www.binarylane.com // Submitted by Nathan O'Sullivan bnr.la @@ -12330,7 +12345,7 @@ rsc.cdn77.org ssl.origin.cdn77-secure.org -// CentralNic : http://www.centralnic.com/names/domains +// CentralNic : https://teaminternet.com/ // Submitted by registry za.bz br.com @@ -12499,7 +12514,6 @@ gov.ru int.ru mil.ru -test.ru // COSIMO GmbH : http://www.cosimo.de // Submitted by Rene Marticke @@ -12542,12 +12556,6 @@ cyon.link cyon.site -// Danger Science Group: https://dangerscience.com/ -// Submitted by Skylar MacDonald -platform0.app -fnwk.site -folionetwork.site - // Dansk.net : http://www.dansk.net/ // Submitted by Anani Voule biz.dk @@ -13276,6 +13284,10 @@ // Submitted by Eric Chan fldrv.com +// Fleek Labs Inc : https://fleek.xyz +// Submitted by Parsa Ghadimi +on-fleek.app + // FlutterFlow : https://flutterflow.io // Submitted by Anton Emelyanov flutterflow.app @@ -13303,7 +13315,7 @@ // Frederik Braun : https://frederik-braun.com // Submitted by Frederik Braun -0e.vc +*.0e.vc // Freebox : http://www.freebox.fr // Submitted by Romain Fliedel @@ -13384,14 +13396,8 @@ // Submitted by Tom Klein gentapps.com gentlentapis.com -lab.ms cdn-edges.net -// GetLocalCert : https://getlocalcert.net -// Submitted by William Harrison -localcert.net -localhostcert.net - // GignoSystemJapan: http://gsj.bz // Submitted by GignoSystemJapan gsj.bz @@ -13544,26 +13550,9 @@ // Google, Inc. // Submitted by Shannon McCabe -blogspot.ae -blogspot.al -blogspot.am *.hosted.app *.run.app web.app -blogspot.com.ar -blogspot.co.at -blogspot.com.au -blogspot.ba -blogspot.be -blogspot.bg -blogspot.bj -blogspot.com.br -blogspot.com.by -blogspot.ca -blogspot.cf -blogspot.ch -blogspot.cl -blogspot.com.co *.0emm.com appspot.com *.r.appspot.com @@ -13574,66 +13563,11 @@ pagespeedmobilizer.com withgoogle.com withyoutube.com -blogspot.cv -blogspot.com.cy -blogspot.cz -blogspot.de *.gateway.dev -blogspot.dk -blogspot.com.ee -blogspot.com.eg -blogspot.com.es -blogspot.fi -blogspot.fr cloud.goog translate.goog *.usercontent.goog -blogspot.gr -blogspot.hk -blogspot.hr -blogspot.hu -blogspot.co.id -blogspot.ie -blogspot.co.il -blogspot.in -blogspot.is -blogspot.it -blogspot.jp -blogspot.co.ke -blogspot.kr -blogspot.li -blogspot.lt -blogspot.lu -blogspot.md -blogspot.mk -blogspot.com.mt -blogspot.mx -blogspot.my cloudfunctions.net -blogspot.com.ng -blogspot.nl -blogspot.no -blogspot.co.nz -blogspot.pe -blogspot.pt -blogspot.qa -blogspot.re -blogspot.ro -blogspot.rs -blogspot.ru -blogspot.se -blogspot.sg -blogspot.si -blogspot.sk -blogspot.sn -blogspot.td -blogspot.com.tr -blogspot.tw -blogspot.ug -blogspot.co.uk -blogspot.com.uy -blogspot.vn -blogspot.co.za // Goupile : https://goupile.fr // Submitted by Niels Martignene @@ -13717,9 +13651,13 @@ hepforge.org // Heroku : https://www.heroku.com/ -// Submitted by Tom Maher +// Submitted by Shumon Huque herokuapp.com -herokussl.com + +// Heyflow : https://www.heyflow.com +// Submitted by Mirko Nitschke +heyflow.page +heyflow.site // Hibernating Rhinos // Submitted by Oren Eini @@ -13738,10 +13676,6 @@ *.id.pub *.kin.pub -// Hong Kong Productivity Council: https://www.hkpc.org/ -// Submitted by SECaaS Team -secaas.hk - // Hoplix : https://www.hoplix.com // Submitted by Danilo De Franco hoplix.shop @@ -14065,10 +13999,6 @@ lpages.co lpusercontent.com -// Lelux.fi : https://lelux.fi/ -// Submitted by Lelux Admin -lelux.site - // libp2p project : https://libp2p.io // Submitted by Interplanetary Shipyard libp2p.direct @@ -14112,6 +14042,11 @@ // Submitted by Lann Martin *.user.localcert.dev +// LocalCert : https://localcert.net +// Submitted by William Harrison +localcert.net +localhostcert.net + // Lodz University of Technology LODMAN regional domains https://www.man.lodz.pl/dns // Submitted by Piotr Wilk lodz.pl @@ -14216,10 +14151,6 @@ vps.mcdir.ru mcpre.ru -// mcpe.me : https://mcpe.me -// Submitted by Noa Heyl -mcpe.me - // Mediatech : https://mediatech.by // Submitted by Evgeniy Kozhuhovskiy mediatech.by @@ -14347,6 +14278,11 @@ // Net at Work Gmbh : https://www.netatwork.de // Submitted by Jan Jaeschke cloud.nospamproxy.com +o365.cloud.nospamproxy.com + +// Net libre : https://www.netlib.re +// Submitted by Philippe PITTOLI +netlib.re // Netfy Domains : https://netfy.domains // Submitted by Suranga Ranasinghe @@ -14514,8 +14450,6 @@ // Submitted by Steve Russell dnsking.ch mypi.co -n4t.co -001www.com myiphost.com forumz.info soundcast.me @@ -14528,7 +14462,6 @@ dynserv.org now-dns.org x443.pw -now-dns.top ntdll.top freeddns.us @@ -14638,7 +14571,7 @@ // Submitted by OsSav Technology Ltd. can.re -// Oursky Limited : https://authgear.com/, https://skygear.io/ +// Oursky Limited : https://authgear.com/ // Submitted by Authgear Team , Skygear Developer authgear-staging.com authgearapps.com @@ -14936,6 +14869,12 @@ // Submitted by Neil Hanlon rocky.page +// Ruhr University Bochum http://ruhr-uni-bochum.de +// Submitted by Andreas Jobs +rub.de +ruhr-uni-bochum.de +io.noc.ruhr-uni-bochum.de + // Rusnames Limited: http://rusnames.ru/ // Submitted by Sergey Zotov биз.рус @@ -15126,10 +15065,6 @@ // Submitted by Nyoom sheezy.games -// ShiftEdit : https://shiftedit.net/ -// Submitted by Adam Jimenez -shiftedit.io - // Shopblocks : http://www.shopblocks.com/ // Submitted by Alex Bowers myshopblocks.com @@ -15257,8 +15192,8 @@ // Submitted by Adrien Gillon stackhero-network.com -// STACKIT : https://www.stackit.de/en/ -// Submitted by STACKIT-DNS Team (Simon Stier) +// STACKIT GmbH & Co. KG : https://www.stackit.de/en/ +// Submitted by STACKIT-DNS Team (Simon Stier) runs.onstackit.cloud stackit.gg stackit.rocks @@ -15375,7 +15310,7 @@ ts.net *.c.ts.net -// TASK geographical domains (https://www.task.gda.pl/uslugi/dns) +// TASK geographical domains : https://task.gda.pl/en/services/for-entrepreneurs/ gda.pl gdansk.pl gdynia.pl @@ -15539,10 +15474,6 @@ // Submitted by Marcin bielsko.pl -// Upli : https://upli.io -// Submitted by Lenny Bakkalian -upli.io - // urown.net : https://urown.net // Submitted by Hostmaster urown.cloud @@ -15712,10 +15643,6 @@ // Submitted by Stefano Rivera yolasite.com -// Yombo : https://yombo.net -// Submitted by Mitch Schwenk -yombo.me - // Yunohost : https://yunohost.org // Submitted by Valentin Grimaud ynh.fr diff -Nru thunderbird-128.5.0esr/netwerk/dns/nsHostRecord.cpp thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.cpp --- thunderbird-128.5.0esr/netwerk/dns/nsHostRecord.cpp 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -39,6 +39,15 @@ pb(aPb), originSuffix(aOriginsuffix) {} +nsHostKey::nsHostKey(const nsHostKey& other) + : host(other.host), + mTrrServer(other.mTrrServer), + type(other.type), + flags(other.flags), + af(other.af), + pb(other.pb), + originSuffix(other.originSuffix) {} + bool nsHostKey::operator==(const nsHostKey& other) const { return host == other.host && mTrrServer == other.mTrrServer && type == other.type && diff -Nru thunderbird-128.5.0esr/netwerk/dns/nsHostRecord.h thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.h --- thunderbird-128.5.0esr/netwerk/dns/nsHostRecord.h 2024-11-25 20:12:38.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/dns/nsHostRecord.h 2025-01-07 20:45:20.000000000 +0000 @@ -79,13 +79,15 @@ const nsCString host; const nsCString mTrrServer; uint16_t type = 0; - nsIDNSService::DNSFlags flags = nsIDNSService::RESOLVE_DEFAULT_FLAGS; + mozilla::Atomic flags{ + nsIDNSService::RESOLVE_DEFAULT_FLAGS}; uint16_t af = 0; bool pb = false; const nsCString originSuffix; explicit nsHostKey(const nsACString& host, const nsACString& aTrrServer, uint16_t type, nsIDNSService::DNSFlags flags, uint16_t af, bool pb, const nsACString& originSuffix); + explicit nsHostKey(const nsHostKey& other); bool operator==(const nsHostKey& other) const; size_t SizeOfExcludingThis(mozilla::MallocSizeOf mallocSizeOf) const; PLDHashNumber Hash() const; diff -Nru thunderbird-128.5.0esr/netwerk/dns/nsHostResolver.cpp thunderbird-128.6.0esr/netwerk/dns/nsHostResolver.cpp --- thunderbird-128.5.0esr/netwerk/dns/nsHostResolver.cpp 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/dns/nsHostResolver.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -1185,7 +1185,8 @@ } LOG(("NameLookup: %s effectiveTRRmode: %d flags: %X", rec->host.get(), - static_cast(rec->mEffectiveTRRMode), rec->flags)); + static_cast(rec->mEffectiveTRRMode), + static_cast(rec->flags))); if (rec->flags & nsIDNSService::RESOLVE_DISABLE_TRR) { rec->RecordReason(TRRSkippedReason::TRR_DISABLED_FLAG); @@ -2032,8 +2033,9 @@ } info.originAttributesSuffix = recordEntry.GetKey().originSuffix; - info.flags = nsPrintfCString("%u|0x%x|%u|%d|%s", rec->type, rec->flags, - rec->af, rec->pb, rec->mTrrServer.get()); + info.flags = nsPrintfCString("%u|0x%x|%u|%d|%s", rec->type, + static_cast(rec->flags), rec->af, + rec->pb, rec->mTrrServer.get()); args->AppendElement(std::move(info)); } diff -Nru thunderbird-128.5.0esr/netwerk/protocol/http/Http2Session.cpp thunderbird-128.6.0esr/netwerk/protocol/http/Http2Session.cpp --- thunderbird-128.5.0esr/netwerk/protocol/http/Http2Session.cpp 2024-11-25 20:12:38.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/protocol/http/Http2Session.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -1035,11 +1035,13 @@ // The value portion of the setting pair is already initialized to 0 numberOfEntries++; - NetworkEndian::writeUint16( - packet + kFrameHeaderBytes + (6 * numberOfEntries), - SETTINGS_TYPE_MAX_CONCURRENT); - // The value portion of the setting pair is already initialized to 0 - numberOfEntries++; + if (StaticPrefs::network_http_http2_send_push_max_concurrent_frame()) { + NetworkEndian::writeUint16( + packet + kFrameHeaderBytes + (6 * numberOfEntries), + SETTINGS_TYPE_MAX_CONCURRENT); + // The value portion of the setting pair is already initialized to 0 + numberOfEntries++; + } mWaitingForSettingsAck = true; } diff -Nru thunderbird-128.5.0esr/netwerk/protocol/http/Http2StreamBase.cpp thunderbird-128.6.0esr/netwerk/protocol/http/Http2StreamBase.cpp --- thunderbird-128.5.0esr/netwerk/protocol/http/Http2StreamBase.cpp 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/protocol/http/Http2StreamBase.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -1025,6 +1025,10 @@ nsHttp::NotifyActiveTabLoadOptimization(); } + if (!StaticPrefs::network_http_http2_priority_updates()) { + return; + } + nsHttpTransaction* trans = HttpTransaction(); if (!trans) { return; diff -Nru thunderbird-128.5.0esr/netwerk/protocol/http/nsHttpConnection.cpp thunderbird-128.6.0esr/netwerk/protocol/http/nsHttpConnection.cpp --- thunderbird-128.5.0esr/netwerk/protocol/http/nsHttpConnection.cpp 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/protocol/http/nsHttpConnection.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -2429,6 +2429,17 @@ DebugOnly rvDebug = securityInfo->GetNegotiatedNPN(negotiatedNPN); MOZ_ASSERT(NS_SUCCEEDED(rvDebug)); + nsAutoCString transactionNPN; + transactionNPN = mConnInfo->GetNPNToken(); + LOG(("negotiatedNPN: %s - transactionNPN: %s", negotiatedNPN.get(), + transactionNPN.get())); + if (!transactionNPN.IsEmpty() && negotiatedNPN != transactionNPN) { + LOG(("Resetting connection due to mismatched NPN token")); + DontReuse(); + mTransaction->Close(NS_ERROR_NET_RESET); + return; + } + bool earlyDataAccepted = false; if (mTlsHandshaker->EarlyDataUsed()) { // Check if early data has been accepted. diff -Nru thunderbird-128.5.0esr/netwerk/test/unit/head_channels.js thunderbird-128.6.0esr/netwerk/test/unit/head_channels.js --- thunderbird-128.5.0esr/netwerk/test/unit/head_channels.js 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/test/unit/head_channels.js 2025-01-07 20:45:20.000000000 +0000 @@ -377,6 +377,7 @@ Services.env.set("LD_LIBRARY_PATH", greBinDir.path + ":/data/local/xpcb"); Services.env.set("MOZ_TLS_SERVER_DEBUG_LEVEL", "3"); Services.env.set("MOZ_TLS_SERVER_CALLBACK_PORT", CALLBACK_PORT); + Services.env.set("MOZ_TLS_ECH_ALPN_FLAG", "1"); let httpServer = new HttpServer(); let serverReady = new Promise(resolve => { diff -Nru thunderbird-128.5.0esr/netwerk/wifi/gtest/TestWifiMonitorListenerRemoval.cpp thunderbird-128.6.0esr/netwerk/wifi/gtest/TestWifiMonitorListenerRemoval.cpp --- thunderbird-128.5.0esr/netwerk/wifi/gtest/TestWifiMonitorListenerRemoval.cpp 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/wifi/gtest/TestWifiMonitorListenerRemoval.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -0,0 +1,159 @@ +/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim: set ts=8 sts=2 et sw=2 tw=80: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "gtest/gtest.h" +#include "mozilla/SpinEventLoopUntil.h" +#include "nsCOMPtr.h" +#include "nsIWifiListener.h" +#include "nsWifiMonitor.h" +#include "nsWifiAccessPoint.h" +#include "WifiScanner.h" + +#if defined(XP_WIN) && defined(_M_IX86) +# include // STDMETHODCALLTYPE +#endif + +// Test that removing wifi scan listeners in a wifi scan listener does +// not crash. + +// Windows x86 calling convention +#if defined(XP_WIN) && defined(_M_IX86) +# define MOCKCALLTYPE STDMETHODCALLTYPE +#else +# define MOCKCALLTYPE +#endif + +static mozilla::LazyLogModule gLog("TestWifiMonitorListenerRemoval"); +#define LOGI(x) MOZ_LOG(gLog, mozilla::LogLevel::Info, x) +#define LOGD(x) MOZ_LOG(gLog, mozilla::LogLevel::Debug, x) + +namespace mozilla { + +// Number of callbacks called +uint32_t sCalled; + +class MockWifiScanner : public mozilla::WifiScanner { + public: + explicit MockWifiScanner(bool aExpectOnChange) + : mExpectOnChange(aExpectOnChange) {} + + nsresult GetAccessPointsFromWLAN( + nsTArray>& aAccessPoints) override { + if (!mExpectOnChange) { + // Tell monitor to report OnError instead of OnChange. + return NS_ERROR_FAILURE; + } + + // Signal will be unique so we won't match the prior access + // point list. + static int sCurrentId = 0; + nsWifiAccessPoint* ap = new nsWifiAccessPoint(); + ap->mSignal = sCurrentId++; + aAccessPoints.AppendElement(RefPtr(ap)); + return NS_OK; + } + + private: + bool mExpectOnChange; +}; + +class MockWifiListener : public nsIWifiListener { + public: + NS_DECL_THREADSAFE_ISUPPORTS + MockWifiListener(nsWifiMonitor* aWifiMonitor, bool aExpectOnChange) + : mWifiMonitor(aWifiMonitor), mExpectOnChange(aExpectOnChange) {} + + MOCKCALLTYPE nsresult + OnChange(const nsTArray>& accessPoints) override { + return Check(true); + } + + MOCKCALLTYPE nsresult OnError(nsresult error) override { + return Check(false); + } + + private: + nsresult Check(bool aWasOnChange) { + bool gotCorrectCallback = !(mExpectOnChange ^ aWasOnChange); + EXPECT_TRUE(gotCorrectCallback); + if (!gotCorrectCallback) { + return NS_OK; + } + // Each callback removes itself. Test that these removals don't + // break iteration. + mWifiMonitor->StopWatching(this); + ++sCalled; + LOGI(("sCalled = %u", sCalled)); + return NS_OK; + } + + virtual ~MockWifiListener() = default; + RefPtr mWifiMonitor; + // If true, expect test to call OnChange. Otherwise expect OnError. + bool mExpectOnChange; +}; + +NS_IMPL_ISUPPORTS(MockWifiListener, nsIWifiListener) + +// This class has friend privileges with nsWifiMonitor. +class TestWifiMonitor { + public: + explicit TestWifiMonitor(bool aExpectOnChange) { + // Add two listeners so the one can stopWatching before we notify the + // other one. + mWifiMonitor = + MakeRefPtr(MakeUnique(aExpectOnChange)); + mWifiMonitor->StartWatching( + new MockWifiListener(mWifiMonitor, aExpectOnChange), + false /* forcePolling */); + mWifiMonitor->StartWatching( + new MockWifiListener(mWifiMonitor, aExpectOnChange), + false /* forcePolling */); + } + + ~TestWifiMonitor() { + // Manually disconnect observers so that the monitor can be destroyed. + // In the browser, this would be done on xpcom-shutdown but that is sent + // after the tests run, which is too late to avoid a gtest memory-leak + // error. + mWifiMonitor->Close(); + } + + private: + RefPtr mWifiMonitor; +}; + +TEST(TestWifiMonitorListenerRemoval, RemoveDuringOnChange) +{ + sCalled = 0; + TestWifiMonitor testWifiMonitor(true /* expectOnChange */); + + // Give monitor a chance to do a scan and report results, so that we remove + // the listener during the results callback iteration. Then we are done. + mozilla::SpinEventLoopUntil( + "TestWifiMonitorListenerRemoval::WaitForScan_OnChange"_ns, [&]() { + MOZ_ASSERT(sCalled == 0 || sCalled == 2); + return sCalled == 2; + }); + EXPECT_EQ(sCalled, 2u); +} + +TEST(TestWifiMonitorListenerRemoval, RemoveDuringOnError) +{ + sCalled = 0; + TestWifiMonitor testWifiMonitor(false /* expectOnChange */); + + // Give monitor a chance to do a scan and report results, so that we remove + // the listener during the results callback iteration. Then we are done. + mozilla::SpinEventLoopUntil( + "TestWifiMonitorListenerRemoval::WaitForScan_OnError"_ns, [&]() { + MOZ_ASSERT(sCalled == 0 || sCalled == 2); + return sCalled == 2; + }); + EXPECT_EQ(sCalled, 2u); +} + +} // namespace mozilla diff -Nru thunderbird-128.5.0esr/netwerk/wifi/gtest/moz.build thunderbird-128.6.0esr/netwerk/wifi/gtest/moz.build --- thunderbird-128.5.0esr/netwerk/wifi/gtest/moz.build 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/wifi/gtest/moz.build 2025-01-07 20:45:20.000000000 +0000 @@ -8,6 +8,7 @@ UNIFIED_SOURCES += [ # "TestWifiMonitor.cpp", # see bug 1833020 + "TestWifiMonitorListenerRemoval.cpp", ] FINAL_LIBRARY = "xul-gtest" diff -Nru thunderbird-128.5.0esr/netwerk/wifi/nsWifiMonitor.cpp thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.cpp --- thunderbird-128.5.0esr/netwerk/wifi/nsWifiMonitor.cpp 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.cpp 2025-01-07 20:45:20.000000000 +0000 @@ -195,7 +195,10 @@ return NS_ERROR_NULL_POINTER; } - mListeners.AppendElement(WifiListenerHolder(aListener, aForcePolling)); + if (!mListeners.InsertOrUpdate(aListener, WifiListenerData(aForcePolling), + mozilla::fallible)) { + return NS_ERROR_OUT_OF_MEMORY; + } // Run a new scan to update the new listener. If we were polling then // stop that polling and start a new polling interval now. @@ -218,21 +221,16 @@ return NS_ERROR_NULL_POINTER; } - auto idx = mListeners.IndexOf( - WifiListenerHolder(aListener), 0, - [](const WifiListenerHolder& elt, const WifiListenerHolder& toRemove) { - return toRemove.mListener == elt.mListener ? 0 : 1; - }); - - if (idx == nsTArray::NoIndex) { + auto maybeData = mListeners.MaybeGet(aListener); + if (!maybeData) { return NS_ERROR_INVALID_ARG; } - if (mListeners[idx].mShouldPoll) { + if (maybeData->mShouldPoll) { --mNumPollingListeners; } - mListeners.RemoveElementAt(idx); + mListeners.Remove(aListener); if (!ShouldPoll()) { // Stop polling (if we were). @@ -376,27 +374,41 @@ mLastAccessPoints.Clone(), accessPointsChanged)); } +template +nsresult nsWifiMonitor::NotifyListeners(CallbackFn&& aCallback) { + // Listeners may (un)register other listeners while we iterate, + // so we iterate over a copy and re-check membership as we go. + // Iteration order is not important. + auto listenersCopy(mListeners.Clone()); + for (auto iter = listenersCopy.begin(); iter != listenersCopy.end(); ++iter) { + auto maybeIter = mListeners.MaybeGet(iter->GetKey()); + if (maybeIter) { + aCallback(iter->GetKey(), *maybeIter); + } + } + return NS_OK; +} + nsresult nsWifiMonitor::CallWifiListeners( const nsTArray>& aAccessPoints, bool aAccessPointsChanged) { MOZ_ASSERT(NS_IsMainThread()); LOG(("Sending wifi access points to the listeners")); - for (auto& listener : mListeners) { - if (!listener.mHasSentData || aAccessPointsChanged) { - listener.mHasSentData = true; - listener.mListener->OnChange(aAccessPoints); - } - } - return NS_OK; + return NotifyListeners( + [&](nsIWifiListener* aListener, WifiListenerData& aListenerData) { + if (!aListenerData.mHasSentData || aAccessPointsChanged) { + aListenerData.mHasSentData = true; + aListener->OnChange(aAccessPoints); + } + }); } nsresult nsWifiMonitor::PassErrorToWifiListeners(nsresult rv) { MOZ_ASSERT(NS_IsMainThread()); LOG(("About to send error to the wifi listeners")); - for (const auto& listener : mListeners) { - listener.mListener->OnError(rv); - } - return NS_OK; + return NotifyListeners([&](nsIWifiListener* aListener, WifiListenerData&) { + aListener->OnError(rv); + }); } bool nsWifiMonitor::GetHasWifiAdapter() { diff -Nru thunderbird-128.5.0esr/netwerk/wifi/nsWifiMonitor.h thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.h --- thunderbird-128.5.0esr/netwerk/wifi/nsWifiMonitor.h 2024-11-25 20:12:38.000000000 +0000 +++ thunderbird-128.6.0esr/netwerk/wifi/nsWifiMonitor.h 2025-01-07 20:45:20.000000000 +0000 @@ -20,6 +20,7 @@ #include "mozilla/Attributes.h" #include "mozilla/Monitor.h" #include "WifiScanner.h" +#include "nsTHashMap.h" namespace mozilla { class TestWifiMonitor; @@ -38,14 +39,12 @@ # define kMacOSWifiMonitorStackSize (512 * 1024) #endif -struct WifiListenerHolder { - RefPtr mListener; +struct WifiListenerData { bool mShouldPoll; bool mHasSentData = false; - explicit WifiListenerHolder(nsIWifiListener* aListener, - bool aShouldPoll = false) - : mListener(aListener), mShouldPoll(aShouldPoll) {} + explicit WifiListenerData(bool aShouldPoll = false) + : mShouldPoll(aShouldPoll) {} }; class nsWifiMonitor final : public nsIWifiMonitor, public nsIObserver { @@ -86,6 +85,9 @@ mNumPollingListeners > 0; }; + template + nsresult NotifyListeners(CallbackFn&& aCallback); + #ifdef ENABLE_TESTS // Test-only function that confirms we "should" be polling. May be wrong // if somehow the polling tasks are not set to run on the background @@ -97,7 +99,7 @@ nsCOMPtr mThread; // Main thread only. - nsTArray mListeners; + nsTHashMap, WifiListenerData> mListeners; // Background thread only. mozilla::UniquePtr mWifiScanner; diff -Nru thunderbird-128.5.0esr/python/mach/mach/site.py thunderbird-128.6.0esr/python/mach/mach/site.py --- thunderbird-128.5.0esr/python/mach/mach/site.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mach/mach/site.py 2025-01-07 20:45:20.000000000 +0000 @@ -17,6 +17,7 @@ import sys import sysconfig import tempfile +import warnings from contextlib import contextmanager from pathlib import Path from typing import Callable, Optional @@ -817,33 +818,75 @@ """Calculates paths of interest for general python virtual environments""" def __init__(self, prefix): - if _is_windows: - self.bin_path = os.path.join(prefix, "Scripts") - self.python_path = os.path.join(self.bin_path, "python.exe") - else: - self.bin_path = os.path.join(prefix, "bin") - self.python_path = os.path.join(self.bin_path, "python") self.prefix = os.path.realpath(prefix) + self.paths = self._get_sysconfig_paths(self.prefix) - @functools.lru_cache(maxsize=None) - def resolve_sysconfig_packages_path(self, sysconfig_path): - # macOS uses a different default sysconfig scheme based on whether it's using the - # system Python or running in a virtualenv. - # Manually define the scheme (following the implementation in - # "sysconfig._get_default_scheme()") so that we're always following the - # code path for a virtualenv directory structure. - if os.name == "posix": - scheme = "posix_prefix" + # Name of the Python executable to use in virtual environments. + # An executable with the same name as sys.executable might not exist in + # virtual environments. An executable with 'python' as the steam — + # without version numbers or ABI flags — will always be present in + # virtual environments, so we use that. + python_exe_name = "python" + sysconfig.get_config_var("EXE") + + self.bin_path = self.paths["scripts"] + self.python_path = os.path.join(self.bin_path, python_exe_name) + + @staticmethod + def _get_sysconfig_paths(prefix): + """Calculate the sysconfig paths of a virtual environment in the given prefix. + + The virtual environment MUST be using the same Python distribution as us. + """ + # Determine the sysconfig scheme used in virtual environments + if "venv" in sysconfig.get_scheme_names(): + # A 'venv' scheme was added in Python 3.11 to allow users to + # calculate the paths for a virtual environment, since the default + # scheme may not always be the same as used on virtual environments. + # Some common examples are the system Python distributed by macOS, + # Debian, and Fedora. + # For more information, see https://github.com/python/cpython/issues/89576 + venv_scheme = "venv" + elif os.name == "nt": + # We know that before the 'venv' scheme was added, on Windows, + # the 'nt' scheme was used in virtual environments. + venv_scheme = "nt" + elif os.name == "posix": + # We know that before the 'venv' scheme was added, on POSIX, + # the 'posix_prefix' scheme was used in virtual environments. + venv_scheme = "posix_prefix" else: - scheme = os.name + # This should never happen with upstream Python, as the 'venv' + # scheme should always be available on >=3.11, and no other + # platforms are supported by the upstream on older Python versions. + # + # Since the 'venv' scheme isn't available, and we have no knowledge + # of this platform/distribution, fallback to the default scheme. + # + # Hitting this will likely be the result of running a custom Python + # distribution targetting a platform that is not supported by the + # upstream. + # In this case, unless the Python vendor patched the Python + # distribution in such a way as the default scheme may not always be + # the same scheme, using the default scheme should be correct. + # If the vendor did patch Python as such, to work around this issue, + # I would recommend them to define a 'venv' scheme that matches + # the layout used on virtual environments in their Python distribution. + # (rec. signed Filipe Laíns — upstream sysconfig maintainer) + venv_scheme = sysconfig.get_default_scheme() + warnings.warn( + f"Unknown platform '{os.name}', using the default install scheme '{venv_scheme}'. " + "If this is incorrect, please ask your Python vendor to add a 'venv' sysconfig scheme " + "(see https://github.com/python/cpython/issues/89576, or check the code comment).", + stacklevel=2, + ) + # Build the sysconfig config_vars dictionary for the virtual environment. + venv_vars = sysconfig.get_config_vars().copy() + venv_vars["base"] = venv_vars["platbase"] = prefix + # Get sysconfig paths for the virtual environment. + return sysconfig.get_paths(venv_scheme, vars=venv_vars) - sysconfig_paths = sysconfig.get_paths(scheme) - data_path = Path(sysconfig_paths["data"]) - path = Path(sysconfig_paths[sysconfig_path]) - relative_path = path.relative_to(data_path) - - # Path to virtualenv's "site-packages" directory for provided sysconfig path - return os.path.normpath(os.path.normcase(Path(self.prefix) / relative_path)) + def resolve_sysconfig_packages_path(self, sysconfig_path): + return self.paths[sysconfig_path] def site_packages_dirs(self): dirs = [] diff -Nru thunderbird-128.5.0esr/python/mozboot/mozboot/base.py thunderbird-128.6.0esr/python/mozboot/mozboot/base.py --- thunderbird-128.5.0esr/python/mozboot/mozboot/base.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozboot/mozboot/base.py 2025-01-07 20:45:20.000000000 +0000 @@ -16,7 +16,6 @@ from mozboot import rust from mozboot.util import ( MINIMUM_RUST_VERSION, - get_mach_virtualenv_binary, http_download_and_save, ) @@ -332,46 +331,9 @@ """ pass - def install_toolchain_artifact(self, toolchain_job, no_unpack=False): - if no_unpack: - return self.install_toolchain_artifact_impl( - self.state_dir, toolchain_job, no_unpack - ) + def install_toolchain_artifact(self, toolchain_job): bootstrap_toolchain(toolchain_job) - def install_toolchain_artifact_impl( - self, install_dir: Path, toolchain_job, no_unpack=False - ): - if type(self.srcdir) is str: - mach_binary = Path(self.srcdir) / "mach" - else: - mach_binary = (self.srcdir / "mach").resolve() - if not mach_binary.exists(): - raise ValueError(f"mach not found at {mach_binary}") - - if not self.state_dir: - raise ValueError( - "Need a state directory (e.g. ~/.mozbuild) to download " "artifacts" - ) - python_location = get_mach_virtualenv_binary() - if not python_location.exists(): - raise ValueError(f"python not found at {python_location}") - - cmd = [ - str(python_location), - str(mach_binary), - "artifact", - "toolchain", - "--bootstrap", - "--from-build", - toolchain_job, - ] - - if no_unpack: - cmd += ["--no-unpack"] - - subprocess.check_call(cmd, cwd=str(install_dir)) - def auto_bootstrap(self, application, exclude=[]): args = ["--with-ccache=sccache"] if application.endswith("_artifact_mode"): diff -Nru thunderbird-128.5.0esr/python/mozboot/mozboot/mozillabuild.py thunderbird-128.6.0esr/python/mozboot/mozboot/mozillabuild.py --- thunderbird-128.5.0esr/python/mozboot/mozboot/mozillabuild.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozboot/mozboot/mozillabuild.py 2025-01-07 20:45:21.000000000 +0000 @@ -217,8 +217,8 @@ def ensure_sccache_packages(self): from mozboot import sccache - self.install_toolchain_artifact(sccache.RUSTC_DIST_TOOLCHAIN, no_unpack=True) - self.install_toolchain_artifact(sccache.CLANG_DIST_TOOLCHAIN, no_unpack=True) + self.install_toolchain_artifact(sccache.RUSTC_DIST_TOOLCHAIN) + self.install_toolchain_artifact(sccache.CLANG_DIST_TOOLCHAIN) def _update_package_manager(self): pass diff -Nru thunderbird-128.5.0esr/python/mozboot/mozboot/osx.py thunderbird-128.6.0esr/python/mozboot/mozboot/osx.py --- thunderbird-128.5.0esr/python/mozboot/mozboot/osx.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozboot/mozboot/osx.py 2025-01-07 20:45:20.000000000 +0000 @@ -269,8 +269,8 @@ def ensure_sccache_packages(self): from mozboot import sccache - self.install_toolchain_artifact(sccache.RUSTC_DIST_TOOLCHAIN, no_unpack=True) - self.install_toolchain_artifact(sccache.CLANG_DIST_TOOLCHAIN, no_unpack=True) + self.install_toolchain_artifact(sccache.RUSTC_DIST_TOOLCHAIN) + self.install_toolchain_artifact(sccache.CLANG_DIST_TOOLCHAIN) def install_homebrew(self): print(BREW_INSTALL) diff -Nru thunderbird-128.5.0esr/python/mozbuild/mozbuild/artifact_commands.py thunderbird-128.6.0esr/python/mozbuild/mozbuild/artifact_commands.py --- thunderbird-128.5.0esr/python/mozbuild/mozbuild/artifact_commands.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozbuild/mozbuild/artifact_commands.py 2025-01-07 20:45:20.000000000 +0000 @@ -480,6 +480,7 @@ ) record = ArtifactRecord(task_id, artifact_name) + record.unpack = task.attributes.get("toolchain-extract", True) records[record.filename] = record # Handle the list of files of the form task_id:path from --from-task. diff -Nru thunderbird-128.5.0esr/python/mozbuild/mozbuild/test/configure/test_bootstrap.py thunderbird-128.6.0esr/python/mozbuild/mozbuild/test/configure/test_bootstrap.py --- thunderbird-128.5.0esr/python/mozbuild/mozbuild/test/configure/test_bootstrap.py 2024-11-25 20:12:38.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozbuild/mozbuild/test/configure/test_bootstrap.py 2025-01-07 20:45:20.000000000 +0000 @@ -79,14 +79,17 @@ "toolchain-foo": { "index": ["fake.index.foo"], "artifact": "public/foo.artifact", + "extract": True, }, "toolchain-linux64-bar": { "index": ["fake.index.bar"], "artifact": "public/bar.artifact", + "extract": True, }, "toolchain-linux64-qux": { "index": ["fake.index.qux"], "artifact": "public/qux.artifact", + "extract": True, }, }, ) diff -Nru thunderbird-128.5.0esr/python/mozversioncontrol/mozversioncontrol/__init__.py thunderbird-128.6.0esr/python/mozversioncontrol/mozversioncontrol/__init__.py --- thunderbird-128.5.0esr/python/mozversioncontrol/mozversioncontrol/__init__.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/python/mozversioncontrol/mozversioncontrol/__init__.py 2025-01-07 20:45:20.000000000 +0000 @@ -1019,9 +1019,10 @@ """ res = [] # move away the .git or .hg folder from path to more easily test in a hg/git repo - for root, dirs, files in os.walk("."): + for root, dirs, files in os.walk(self.path): + base = os.path.relpath(root, self.path) for name in files: - res.append(os.path.join(root, name)) + res.append(os.path.join(base, name)) return res def get_tracked_files_finder(self, path): diff -Nru thunderbird-128.5.0esr/security/manager/ssl/StaticHPKPins.h thunderbird-128.6.0esr/security/manager/ssl/StaticHPKPins.h --- thunderbird-128.5.0esr/security/manager/ssl/StaticHPKPins.h 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/security/manager/ssl/StaticHPKPins.h 2025-01-07 20:45:20.000000000 +0000 @@ -727,4 +727,4 @@ static const int32_t kUnknownId = -1; -static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1740395958875000); +static const PRTime kPreloadPKPinsExpirationTime = INT64_C(1742923540365000); diff -Nru thunderbird-128.5.0esr/security/manager/ssl/nsSTSPreloadList.inc thunderbird-128.6.0esr/security/manager/ssl/nsSTSPreloadList.inc --- thunderbird-128.5.0esr/security/manager/ssl/nsSTSPreloadList.inc 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/security/manager/ssl/nsSTSPreloadList.inc 2025-01-07 20:45:21.000000000 +0000 @@ -8,7 +8,7 @@ /*****************************************************************************/ #include -const PRTime gPreloadListExpirationTime = INT64_C(1742815155396000); +const PRTime gPreloadListExpirationTime = INT64_C(1745342735434000); %% 0--1.de, 1 0-0.io, 1 @@ -31,7 +31,6 @@ 000a7.com, 1 000a8.com, 1 000a9.com, 1 -000aicai.com, 1 000g.ru, 1 000x2.com, 1 00120012.net, 1 @@ -155,7 +154,6 @@ 022367.com, 1 022391.com, 1 022501.com, 1 -022571.com, 1 022601.com, 1 022609.com, 1 022610.com, 1 @@ -224,7 +222,7 @@ 0555z6.com, 0 056687.com, 0 056697.com, 0 -0570168.com, 1 +0570168.com, 0 0571z6.com, 1 0597z6.com, 1 059958.com, 1 @@ -304,7 +302,6 @@ 09kanagawa.jp, 1 0akarma.me, 1 0au.de, 0 -0c.mom, 1 0cdn.ga, 1 0cdn.net, 1 0cean.tk, 1 @@ -350,7 +347,6 @@ 0x.cx, 1 0x.sk, 1 0x0.li, 1 -0x00c.de, 1 0x00ff00ff.com, 1 0x0a.team, 1 0x1.ink, 1 @@ -547,7 +543,6 @@ 1111systems.com, 1 111365t.com, 1 11168365.com, 1 -111aicai.com, 1 111bet86.com, 1 111novosti.tk, 1 111plus.design, 1 @@ -835,7 +830,6 @@ 12365t.com, 1 123apps.com, 1 123birthdaygreetings.com, 1 -123comparer.fr, 1 123derivatives.com, 1 123djdrop.com, 1 123e.tk, 1 @@ -855,6 +849,7 @@ 123start.tk, 1 123storage.com.au, 1 123termpapers.com, 1 +123verhuislift.nl, 1 123viajando.com, 1 123writings.com, 1 1244.tk, 1 @@ -887,7 +882,6 @@ 1300.cf, 1 1300.jp, 1 130ks.com, 1 -130ks.net, 1 131365a.com, 0 131365qq.com, 1 1313z6.com, 1 @@ -903,7 +897,6 @@ 1337ersprime.com, 1 1339.co, 1 133ks.com, 1 -133ks.net, 1 133z6.com, 1 13411-111.com, 1 134ks.net, 1 @@ -1006,9 +999,9 @@ 1536.cf, 1 1536.kr, 1 153z6.com, 1 +154379.com, 0 154922.com, 0 155175.com, 0 -155ks.net, 1 155z6.com, 1 156k66.com, 1 156z6.com, 1 @@ -1275,6 +1268,7 @@ 188cn-sb.com, 1 188wei.com, 1 189fc.com, 1 +18andover.ru, 1 18f.gov, 1 18f.gsa.gov, 1 18kit.com, 1 @@ -1294,7 +1288,6 @@ 1920303.com, 1 1920304.com, 1 1920305.com, 1 -19216811-sifre.com, 1 192168ll.repair, 1 1921958389.rsc.cdn77.org, 1 1939365.com, 1 @@ -1352,7 +1345,7 @@ 19990yy.com, 0 19990zz.com, 1 199ks.com, 1 -19area.cn, 1 +19area.cn, 0 19hundert84.de, 1 1a-diamantscheiben.de, 1 1a-hyp.de, 1 @@ -1620,7 +1613,6 @@ 1xbet101.com, 1 1xbet102.com, 1 1xbet105.com, 1 -1xbet733390.top, 0 1xbet82.com, 1 1xbet84.com, 1 1xbet88.net, 1 @@ -1697,7 +1689,7 @@ 1zagon.tk, 1 1zavse.si, 1 1zwolle.nl, 1 -2-ca.fr, 1 +2-ca.fr, 0 2-euromuenzen.de, 1 2-faktor-betaling.dk, 1 2-host.com, 1 @@ -1734,6 +1726,15 @@ 2022.dog, 1 20220228.xyz, 1 2022class1.ga, 1 +2024-1.com, 0 +2024-2.com, 0 +2024-3.com, 0 +2024-4.com, 0 +2024-5.com, 0 +2024-6.com, 0 +2024-7.com, 0 +2024-8.com, 0 +2024-9.com, 0 2030404.com, 1 2030411.com, 1 2030calculator.com, 1 @@ -1760,7 +1761,6 @@ 208930.com, 1 208garfield.com, 1 208medical.org, 1 -209-movers.com, 1 20denier.com, 1 20gg.de, 1 20sights.tk, 1 @@ -1790,11 +1790,11 @@ 220control.ru, 1 2211.cf, 1 22168365.com, 1 +221b.store, 1 222001.com, 1 2226321.com, 1 2227552.com, 1 222aghoststory.com, 1 -222aicai.com, 1 222bet86.com, 1 222tips.com, 1 223742.com, 1 @@ -1956,7 +1956,6 @@ 245meadowvistaway.com, 0 246060.ru, 1 247a.co.uk, 1 -247able.com, 1 247analsex.com, 1 247asiansex.com, 1 247bar.fr, 1 @@ -2170,7 +2169,6 @@ 2or3.tk, 1 2pi.finance, 1 2pi.network, 1 -2pigsgaming.com, 1 2rad-prumbaum.de, 1 2rodeo.com, 1 2rsc.com, 1 @@ -2258,6 +2256,7 @@ 321live.nl, 1 3233bet.com, 1 323kkk.com, 1 +324533.com, 0 325fss.marketing, 1 326243.com, 1 3265623.com, 1 @@ -2276,7 +2275,6 @@ 333365t.com, 1 3333ylc.cc, 1 3336321.com, 1 -333aicai.com, 1 333bet86.com, 1 333capital.com, 1 333capital.com.au, 1 @@ -2388,12 +2386,13 @@ 35898w.com, 1 35898x.com, 1 35898y.com, 1 +35l.cc, 1 35mm.im, 1 35wsolutions.com, 1 360-ot.de, 0 3602020.xyz, 1 360365.com, 1 -360alumni.com, 1 +360alumni.com, 0 360bcty.com, 1 360cycling.com.br, 1 360degreecloud.com, 1 @@ -2513,7 +2512,6 @@ 369rr.com, 1 36thdistrictcourtmi.gov, 1 371137.com, 0 -371cloud.com, 0 372bbb.com, 1 373.moe, 1 375337.com, 1 @@ -2541,7 +2539,6 @@ 380111000.com, 1 380111777.com, 1 380222444.com, 0 -380805.com, 1 38138938.com, 1 38317.tk, 1 3837k.com, 0 @@ -2664,7 +2661,6 @@ 3dflat.tk, 1 3dgep.com, 1 3dincites.com, 1 -3dinosaurs.com, 1 3dissue.com, 1 3djake.de, 1 3djake.uk, 1 @@ -2706,6 +2702,7 @@ 3h-co.de, 1 3haeuserprojekt.org, 1 3hh365.com, 1 +3i-infotech.com, 1 3ieimpact.org, 1 3ii365.com, 1 3isk.today, 1 @@ -2784,6 +2781,7 @@ 3u15.com, 1 3v3s.tk, 1 3v4l.org, 1 +3varta.com.ua, 0 3vensen.no, 1 3vlnaeet.cz, 1 3w-solutions.fr, 1 @@ -2906,7 +2904,6 @@ 443782.com, 1 4444.com.tw, 1 4447552.com, 1 -444aicai.com, 1 444bet86.com, 1 44ada.pl, 1 44bet86.com, 1 @@ -2980,6 +2977,7 @@ 457552.com, 1 458663.com, 1 45b.org, 1 +45l.cc, 1 45min.ga, 1 4609eleventhst.com, 1 463855.com, 1 @@ -3002,6 +3000,7 @@ 48d88.com, 1 48lipetsk.tk, 1 48times.online, 1 +490c.cc, 1 491.jp, 1 491783.com, 1 491mhz.net, 1 @@ -3036,7 +3035,6 @@ 4digitiq.nl, 1 4dillusion.tk, 1 4dimension.net, 1 -4dsignworx.com, 1 4e8.net, 1 4everdosti.tk, 1 4everproxy.com, 1 @@ -3065,6 +3063,7 @@ 4iplatform.com, 1 4iq.lt, 1 4k3dyptt.com, 1 +4kiptvspot.com, 1 4kpi.eu, 1 4kprojektory.cz, 1 4lados.tk, 1 @@ -3094,7 +3093,6 @@ 4ree.tk, 1 4screens.net, 1 4season-flowers.com, 1 -4seasonz.co.nz, 1 4seo.ml, 1 4server.ch, 1 4share.tv, 1 @@ -3280,7 +3278,7 @@ 5201365.com, 0 52051.com, 0 52051a.com, 1 -52062z.com, 1 +52062z.com, 0 5209365.com, 0 520strategy.com, 1 521.dog, 1 @@ -3302,6 +3300,7 @@ 52kb1.com, 1 52kb365.com, 0 52ncp.net, 1 +52pojie.cn, 1 52sykb.com, 0 52xuanmi.com, 0 52yanhao.com, 1 @@ -3324,7 +3323,6 @@ 541922.com, 0 5455bet.com, 1 54below.com, 0 -54cuatro.com, 1 550619.com, 1 5518k3.com, 1 5533445.com, 1 @@ -3332,7 +3330,6 @@ 5536z.com, 1 555554.xyz, 1 5557552.com, 1 -555aicai.com, 1 555bet86.com, 1 555btt.com, 1 555kb.com, 1 @@ -3499,7 +3496,6 @@ 5c1fd0f31022cbc40af9f785847baaf9.space, 1 5ca.com, 1 5ccapitalinvestments.com, 1 -5chat.it, 1 5dm.link, 1 5dm.me, 1 5dm.one, 1 @@ -3574,13 +3570,13 @@ 61ag8.com, 1 61d88.com, 1 626562.com, 1 +628462.com, 0 632025.com, 1 632026.com, 1 632027.com, 0 632040.com, 1 632045.com, 1 632046.com, 1 -632047.com, 1 6321000.com, 0 6321007.com, 0 6321008.com, 0 @@ -3735,7 +3731,6 @@ 666860.xyz, 1 666888bet.com, 1 666999bet.com, 1 -666aicai.com, 1 666b58.com, 0 666bet86.com, 1 666btt.net, 1 @@ -3799,10 +3794,8 @@ 66k66.vip, 1 6700.ar, 1 670102.com, 1 -671660.com, 1 672367.com, 1 6729.co, 0 -672990.com, 0 6729a.co, 1 6729aa.co, 1 6729aa.com, 1 @@ -3871,14 +3864,12 @@ 673395.com, 1 673422.com, 0 673569.com, 1 -673660.com, 1 673bbb.com, 1 676812.com, 1 677314.com, 1 677340.com, 1 677341.com, 1 677346.com, 1 -677347.com, 1 677354.com, 1 677364.com, 1 677384.com, 1 @@ -3965,7 +3956,6 @@ 6957zz.co, 1 6997896.com, 1 69asmr.com, 1 -69butterfly.com, 1 69games.xxx, 1 69kzvm3f.com, 1 69level.com, 1 @@ -3990,10 +3980,10 @@ 7-it.ml, 1 7-zip.de, 1 700.az, 1 +700dealer.com, 1 700wns.com, 1 701squad.tk, 1 702341.win, 1 -70365365.com, 0 704533.com, 0 705994.com, 1 708090.ru, 1 @@ -4069,12 +4059,11 @@ 759675.com, 1 75codes.com, 1 75refer.tk, 1 -75social.com, 1 76.to, 1 761.com, 1 761link.net, 1 +762media.com, 0 763361.com, 1 -76365365.com, 1 7654654.xyz, 1 7666321.com, 1 76668.com, 1 @@ -4095,7 +4084,6 @@ 777111.xyz, 1 777365t.com, 1 7776321.com, 0 -777aicai.com, 1 777bet86.com, 1 777coin.com, 1 777mage.com, 1 @@ -4279,7 +4267,6 @@ 8078d.com, 1 807software.com, 0 8081d.com, 1 -808cleanups.org, 1 808gutterking.com, 1 808mao.com, 1 809088.cc, 1 @@ -4318,7 +4305,6 @@ 8162d.com, 1 816jz.com, 1 8171d.com, 1 -817209.com, 0 8173d.com, 1 817615.com, 1 8176d.com, 1 @@ -4512,7 +4498,6 @@ 878431.com, 1 878989.com, 1 8796.jp, 1 -8799bet.com, 1 87kb88.com, 1 8800.ru, 1 880557.com, 1 @@ -4521,7 +4506,6 @@ 8809ks.com, 1 88168365.com, 1 8816d88.com, 1 -8817d88.com, 1 881z6.com, 1 8826d.com, 1 8826d88.com, 1 @@ -4576,7 +4560,6 @@ 888888722.com, 1 88889822.com, 1 888900.xyz, 1 -888aicai.com, 1 888bet86.com, 1 888bwf.com, 1 888lots.com, 1 @@ -4688,8 +4671,6 @@ 8938885.com, 1 893fm.com.au, 1 894324.com, 1 -8966bet.com, 1 -8977bet.com, 1 8989k3.com, 1 899ks.com, 1 8a.pw, 1 @@ -5211,7 +5192,6 @@ 939wns.com, 1 93ag8.com, 1 93cq.com, 1 -93jc.cn, 1 9401.cf, 1 9402.cf, 1 9403.cf, 1 @@ -5245,6 +5225,7 @@ 9507.cf, 1 9508.cf, 1 9509.cf, 1 +950z.cn, 1 9510.cf, 1 9511.cf, 1 9512.cf, 1 @@ -5497,7 +5478,6 @@ 9767.cf, 1 97736.com, 1 97738.com, 0 -977kb.com, 1 97bros.com, 1 9800.cc, 1 9801.cf, 1 @@ -5598,10 +5578,7 @@ 9965.cf, 1 9967.cf, 1 9968.cf, 1 -9968343.com, 1 9968595.com, 0 -9968676.com, 1 -9968787.com, 0 9968959.com, 0 9969.cf, 1 9970.cf, 1 @@ -5719,9 +5696,9 @@ 99998522.com, 1 99999822.com, 1 999998722.com, 1 -999aicai.com, 1 999bet86.com, 1 999btt.net, 1 +999family.com, 0 999salon.co, 1 999zlong.com, 1 99buffets.com, 1 @@ -5800,7 +5777,6 @@ 9i0.com, 1 9iwan.net, 1 9jajuice.com, 1 -9jatunes.ng, 1 9k262.com, 1 9k267.com, 0 9k268.com, 1 @@ -5905,6 +5881,7 @@ 9yw.me, 1 9zlatan9.tk, 1 a-1waterproofing.com, 1 +a-air.com.ua, 1 a-allard.be, 0 a-b.ee, 1 a-better-planet.com, 0 @@ -5912,6 +5889,7 @@ a-care.net, 1 a-classinflatables.co.uk, 1 a-dish.com, 1 +a-finance.in.ua, 1 a-frique.com, 1 a-gokan.com, 1 a-h-p.de, 1 @@ -5949,7 +5927,6 @@ a11ywatch.com, 1 a122.cc, 0 a13x.uk, 1 -a163.top, 1 a16z.com, 1 a1bouncycastlehire.com, 1 a1cashforcar.com.au, 1 @@ -5965,6 +5942,7 @@ a1scuba.com, 1 a1seowebdirectory.com, 0 a1solarstore.com, 1 +a1speedyrooter.com, 1 a1websitepro.com, 1 a210.online, 1 a22z.xyz, 1 @@ -5989,6 +5967,7 @@ a3sys-elodie.fr, 1 a4.com, 1 a4.sk, 1 +a4pmu.net, 1 a4sound.com, 1 a5197.co, 1 a632079.me, 1 @@ -6028,6 +6007,7 @@ aaa-racing.net, 1 aaa.ma, 1 aaa.my, 1 +aaa.ua, 1 aaaaarg.org, 1 aaablindfactory.com, 1 aaahosting70.de, 1 @@ -6035,7 +6015,6 @@ aaapl.com, 1 aaaplumbers.com, 1 aaapo.com.br, 1 -aaapurse.nu, 1 aaapurses.com, 1 aaar.com.hk, 1 aabeltech.com, 1 @@ -6048,7 +6027,6 @@ aachendom.de, 1 aachener-domschatz.de, 1 aachenerdom.de, 1 -aacommunications.site, 1 aacs-design.com, 1 aact.org, 1 aad-gp.com, 1 @@ -6067,7 +6045,6 @@ aaldef.org, 1 aalen.tk, 1 aalianbinhaider.ml, 1 -aalright.org, 1 aalstmotors-usedcars.be, 1 aaltocapital.com, 1 aaltocapital.de, 1 @@ -6143,7 +6120,6 @@ aattrans.com, 1 aau.edu, 1 aautoline.tk, 1 -aavaa.org, 1 aavawhistlerhotel.com, 1 aave.com, 1 aavgo.com, 1 @@ -6159,8 +6135,7 @@ ab2web.com, 1 ab91corp.com, 1 abaa.org, 1 -abaapplianceservice.com, 1 -abaaustin.com, 1 +abaaustin.com, 0 abaca.bar, 1 abaco.cr, 1 abaconappliancerepairs.co.za, 1 @@ -6286,6 +6261,7 @@ abdullahavci.org, 1 abdullahavci.org.tr, 1 abdullahavci.tr, 1 +abdullahki.com, 1 abdullahkoyuncu.de, 1 abdullahzubayerofficial.ml, 1 abdulraheem.org, 1 @@ -6314,7 +6290,6 @@ abelsflooringandtile.com, 1 abemarx.hu, 1 abenberg.de, 1 -abenteuer-kindheit.com, 1 abenteuerschule4u.eu, 1 abenteuerteam.de, 1 abeontech.com, 1 @@ -6535,10 +6510,12 @@ aboutyou.sk, 1 abovethefirehouse.com, 1 abox-kb.com, 1 +abpages.com, 1 abpis.hr, 1 abplive.com, 1 abqbiotechincubator.com, 1 abr.ru, 1 +abra.bg, 1 abracadabramagicas.com.br, 1 abrah.am, 1 abrahamboray.tk, 1 @@ -6548,6 +6525,7 @@ abramovich.tk, 1 abramowskimi.tk, 1 abramsand.co, 1 +abraofilho.blog.br, 1 abrarahmed.tk, 1 abraxan.pro, 1 abraxas-apis.ch, 1 @@ -6661,7 +6639,6 @@ academiadelmolino.com.uy, 1 academiaeureka.tk, 1 academiaofimage.com, 1 -academiasdemodelos.com, 0 academiaveritas.com, 1 academica.nl, 1 academicassembly.com, 1 @@ -6736,6 +6713,7 @@ accesdirectmarketing.ca, 1 accesdirectmarketing.com, 1 accesloges.com, 1 +acceso25.es, 1 accesoriiutilaje.ro, 1 accesorioselcolorado.ec, 1 access-board.gov, 1 @@ -6828,7 +6806,6 @@ acdk2.de, 1 ace-aegon.cloud, 1 ace-clan.tk, 1 -ace-familydental.com, 1 ace-translations.tk, 1 ace-uk.net, 1 ace-wiki.com, 1 @@ -6864,7 +6841,6 @@ acendas.com, 1 acendealuz.com.br, 1 aceofdiamondspainting.com, 1 -aceofheartsgiftbaskets.com, 1 aceparking.com, 1 acepi.pt, 1 acer.org, 1 @@ -6942,6 +6918,7 @@ acidstudios.ro, 1 acidtool.com, 1 acierto.com, 1 +acifinnetwork.com, 1 acihotel.vn, 1 aciksite.com, 1 acilicraft.cn, 1 @@ -6991,7 +6968,7 @@ acornmetal.com.au, 1 acosta.group, 1 acotadecalle.tk, 1 -acourse.io, 1 +acourse.io, 0 acousticalsolutions.com, 1 acousticandfire.co.uk, 1 acousticbiotech.com, 0 @@ -7058,7 +7035,7 @@ acsmuhendislik.com.tr, 1 acsports.ca, 1 acss.com, 1 -acsvalves.com, 1 +acsvalves.com, 0 act-interactive.com, 1 act-news.com, 1 act-on.com, 1 @@ -7079,7 +7056,6 @@ acthar.com, 1 actheater.com, 1 acticu.com, 1 -actiefgeld.nl, 0 actieplaza.tk, 1 actifii.com, 1 actifyleads.com, 1 @@ -7114,7 +7090,6 @@ activate.swiss, 0 activated.win, 1 activatenow.com, 1 -activationkeys.org, 1 activators.ml, 1 active-electrical.com, 1 active-english.tk, 1 @@ -7150,13 +7125,10 @@ activiti.alfresco.com, 1 activities.rocks, 1 activitycellsers.ga, 1 -activityhub.cloud, 1 -activityhub.xyz, 1 activityinfo.org, 1 activitypub.cyou, 1 activlux.pt, 1 activpilot.at, 1 -actodayhvac.com, 1 actom.cc, 1 actonsoft.com, 1 actonwoodworks.com, 1 @@ -7258,6 +7230,8 @@ adad95.de, 1 adaera.com, 1 adaeze-wolf.com, 1 +adagemedia.agency, 1 +adagia.eu, 1 adaircomo.gov, 1 adaircosomo.gov, 1 adalis.org, 1 @@ -7285,7 +7259,6 @@ adamgian.com, 1 adamh.us, 1 adamj.eu, 1 -adamjeelukmanjee.com, 1 adamjoycegames.co.uk, 1 adamkissee.com, 1 adamkostecki.de, 1 @@ -7348,6 +7321,7 @@ adblockextreme.org, 1 adbpub.com, 1 adbw.xyz, 1 +adc-dentalcare.com, 1 adc64.com, 1 adceuta.tk, 1 adcnvs.com, 1 @@ -7476,7 +7450,6 @@ adhigamindia.com, 1 adhockery.ga, 1 adhocracy.plus, 1 -adhs.fyi, 1 adi.com.au, 1 adi.net.au, 1 adiaf.com, 1 @@ -7639,6 +7612,7 @@ adreaminsteel.tk, 1 adregain.com, 1 adregain.ru, 1 +adrenajump.com.br, 1 adrenalin.is, 1 adrenalin.od.ua, 0 adrenalinbeach.com, 1 @@ -7647,7 +7621,6 @@ adressendata.nl, 1 adresults.com, 1 adresults.nl, 1 -adria.tv, 1 adrian-riemer.tk, 1 adrian.web.id, 1 adrian2023.com, 1 @@ -7657,7 +7630,6 @@ adrianajewelry.my, 1 adrianasantos.me, 0 adrianbechtold.de, 1 -adrianbotes.com, 1 adrianbrad.com, 1 adriancitu.com, 1 adriancostin.ro, 1 @@ -7744,6 +7716,7 @@ adultwebcams1.com, 1 aduro.com.tr, 1 adurra.com, 1 +adutoras.com.br, 1 adv-geosci.net, 1 adv-radio-sci.net, 1 adv-stat-clim-meteorol-oceanogr.net, 1 @@ -7841,7 +7814,7 @@ adventurecreators.com, 1 adventuredental.com, 1 adventuredogranch.net, 1 -adventuredrives.com, 0 +adventuredrives.com, 1 adventureforest.nz, 1 adventuregamers.com, 1 adventureprooutdoors.com, 1 @@ -7869,7 +7842,7 @@ advery.tk, 1 advgrow.com, 1 advice24.tk, 1 -advicepay.com, 1 +advicepay.com, 0 advicepharma.com, 1 adviceprime.tk, 1 advicted.com, 1 @@ -7880,7 +7853,6 @@ advinans.se, 1 advinix.fr, 1 advirk.tk, 1 -adviserplus.com, 1 advisertula.ru, 1 advisorperspectives.com, 1 advmaster.cf, 1 @@ -7996,7 +7968,7 @@ aehe.us, 1 aeht.eu, 1 aei.ie, 1 -aeicommercial.ie, 1 +aeicommercial.ie, 0 aeis-api-stg.azurewebsites.net, 1 aeis-api.azurewebsites.net, 1 aeksantcugat.tk, 1 @@ -8042,7 +8014,7 @@ aerobasegroup.com, 1 aerobiconline.tk, 1 aerobiomasa.com, 1 -aerobotz.com, 1 +aerobotz.com, 0 aeroclub-tolhuin.tk, 1 aeroelectronics.net, 1 aeroequity.com, 1 @@ -8059,6 +8031,7 @@ aeron.aero, 1 aeronautix.com, 1 aeronote.net, 1 +aeropetz.com.br, 1 aeroplan.tk, 1 aeropole.de, 1 aeropole.eu, 1 @@ -8128,7 +8101,7 @@ afadvantage.gov, 1 afaf.or.jp, 1 afanasev.tk, 1 -afanias.org, 1 +afanias.org, 0 afas-apps.nl, 1 afasim.tk, 1 afasstatus.nl, 1 @@ -8283,7 +8256,6 @@ africanheritage.tk, 1 africanhosting.ml, 1 africankingsclothing.com, 1 -africankitchen.gallery, 1 africanlatitude.com, 1 africanmangoforum.ga, 1 africanmangoforum.gq, 1 @@ -8305,10 +8277,10 @@ afroditehotel.tk, 1 afrogospel.tk, 1 afroludi.tk, 1 +afropages.fr, 1 afroto.com, 0 afs-ag.com, 1 afse.fr, 1 -afseguros.com, 1 afslankstudiovelserbroek.nl, 0 afsys.com.br, 1 aftamurae.com, 1 @@ -8345,7 +8317,7 @@ ag158.cc, 0 ag1604.com, 1 ag1607.com, 1 -ag3232g.com, 1 +ag3232g.com, 0 ag388.vip, 1 ag399.vip, 1 ag4.app, 0 @@ -8402,6 +8374,7 @@ aga.gov.au, 1 agabucheros.tk, 1 agad.tk, 1 +agafayoasissky.com, 1 agagent.vip, 1 against.tk, 1 againstgynexams.tk, 1 @@ -8471,6 +8444,7 @@ agencetourismemali.ml, 1 agenciacanina.tk, 1 agenciacolors.com.br, 1 +agenciacorujadesign.com.br, 1 agenciacrown.es, 1 agenciadeperformanceembh.com, 1 agenciahaven.com.br, 1 @@ -8516,7 +8490,6 @@ agentur-publik.de, 1 agentz.ga, 1 agenux.org, 1 -agenziaimmobiliarezeta.it, 1 agenziapubblicitaria.roma.it, 1 agenziefunebri.it, 1 ageofreason.tk, 1 @@ -8665,7 +8638,6 @@ agricult.tk, 1 agricultural-technology.tk, 1 agriculture-schools.com, 1 -agriculture.vic.gov.au, 1 agriculturejournals.cz, 1 agrifoodtoday.it, 1 agrifutures.com.au, 1 @@ -8674,7 +8646,6 @@ agrinous.com, 1 agrinous.com.au, 1 agrinstands.com, 1 -agripartner.fr, 0 agripick.com, 1 agriportal.online, 1 agrippa.tk, 1 @@ -8817,6 +8788,7 @@ ahmetcadirci.com.tr, 0 ahmetshina.tk, 1 ahmu.com, 1 +ahmud.net, 1 ahoeheng.com, 1 ahoj.email, 1 ahoj.hu, 1 @@ -8846,7 +8818,6 @@ ai-genit.com, 1 ai-kyousei.com, 1 ai-practitioners.com, 1 -ai-rub.de, 1 ai-soft.co.jp, 1 ai.gov, 1 ai.gov.ae, 1 @@ -8856,11 +8827,9 @@ ai00.vip, 1 ai1989.com, 1 ai2-jp.com, 1 -ai4belgium.be, 1 ai5.me, 1 aiaccinu.eu.org, 1 aiag.org, 1 -aiaidaxue.com, 1 aiaidou.com, 1 aiainiu.com, 1 aianetwork.net, 1 @@ -8895,6 +8864,7 @@ aicta.ro, 1 aicv.io, 1 aid-web.ch, 1 +aid91.fr, 1 aida.org.au, 1 aidablanco.tk, 1 aidaccess.org, 1 @@ -9134,7 +9104,6 @@ airborneexperience.com, 1 airbossofamerica.com, 1 airburners.com, 1 -airburners.com.au, 1 airburners.net, 1 aircareair.tk, 1 aircheapfare.com, 1 @@ -9142,7 +9111,6 @@ aircomet.tk, 1 airconditioning.tk, 1 airconditioningcondensers.tk, 1 -airconditioningreplacementservice.com, 1 airconditioningservicejohannesburg.co.za, 1 airconsboksburg.co.za, 1 airconservicingcapetown.co.za, 1 @@ -9647,7 +9615,6 @@ akdusekbudil.cz, 1 akeeba.com, 1 akeenext.com, 1 -akefestival.org, 1 akeldam.tk, 1 akelius.com, 1 akemineko.tk, 1 @@ -9710,6 +9677,7 @@ akmatrix.org, 1 akmens.id, 1 ako-world.com, 1 +akoben.cloud, 1 akoch.net, 1 akoestischafbouwen.nl, 1 akonlineworks.tk, 1 @@ -9722,6 +9690,7 @@ akoyabio.com, 1 akp.photos, 1 akplates.org, 1 +akpp1.com.ua, 1 akr.io, 1 akr.services, 1 akracing.se, 1 @@ -9755,7 +9724,6 @@ akt.health, 1 aktaspompa.com, 1 aktelectric.com.co, 1 -aktia.fi, 0 aktin.cz, 1 aktin.sk, 1 aktion-vielfalt.ch, 1 @@ -9768,7 +9736,6 @@ aktivierungscenter.de, 1 aktivitetatil.com, 1 aktivpark-lumdatal.de, 1 -aktransmission.com, 1 aktuel-urunler.com, 1 aktuelfirsat.com, 1 aktuelleprospekte.at, 1 @@ -9798,6 +9765,8 @@ al-bahrain.tk, 1 al-capone.ga, 1 al-capone.tk, 1 +al-craft.info, 1 +al-hekka.com.ua, 1 al-monitor.com, 1 al-salam.tk, 1 al-wood.it, 1 @@ -9805,7 +9774,6 @@ al2schaos.tk, 1 al3abmizo.com, 1 al3ilm.com, 1 -al3ilm.net, 1 al3xpro.com, 1 al911.net, 1 alaattinkaraca.tk, 1 @@ -9831,7 +9799,6 @@ alachuacountyfl.gov, 1 alachuacountyfla.gov, 1 alachuacountyflorida.gov, 1 -alacriti.com, 1 aladdin.ie, 1 aladdinschools.appspot.com, 1 aladintechnologies.tk, 1 @@ -9851,7 +9818,6 @@ alamalsahara.co, 1 alamanceconstruction.com, 1 alamancecountync.gov, 1 -alamanceinsulationllc.com, 1 alamancetv.com, 1 alamani.tk, 1 alamarcosmeticdentistry.com, 1 @@ -9875,7 +9841,6 @@ aland.co.uk, 1 alandoyle.com, 1 alandoyle.link, 1 -alanet.org, 0 alanhua.ng, 1 alanhuang.name, 1 alanina.com, 1 @@ -9892,8 +9857,8 @@ alanyaescmagazin.tk, 1 alanyatur.tk, 1 alaoui.eu.org, 1 -alapa-tatsuno.com, 1 alapetite.fr, 1 +alarab.chat, 1 alarbnet.tk, 1 alargarlavida.com, 1 alarm.net.tr, 1 @@ -9930,6 +9895,7 @@ alb-flirt.de, 1 alb-media.tk, 1 alba.ovh, 1 +albaadani.com, 1 albadon.tk, 1 albaform.com, 1 albagold.tk, 1 @@ -10322,6 +10288,7 @@ alfa-tech.su, 1 alfaair.aero, 1 alfabetajuega.com, 1 +alfabuster.com, 1 alfacentrum.com.pl, 1 alfacharlie.co, 1 alfadecor.ml, 1 @@ -10331,12 +10298,15 @@ alfadoc.se, 1 alfafile.net, 1 alfahir.hu, 1 +alfaiptv.shop, 1 alfalasteenyia.cf, 1 alfambra.tk, 1 alfapack-shop.com, 1 alfaproweb.fr, 1 alfardanexchange.com, 1 alfastone.com.ua, 1 +alfateks.com.ua, 1 +alfatvshop.com, 1 alfavit.cf, 1 alfawedding.com, 1 alfithrah.ac.id, 1 @@ -10421,6 +10391,7 @@ alibamu.com, 1 alibamu.org, 1 alibangash.com, 1 +alibi-ua.com.ua, 1 alibiloungelv.com, 0 alibip.de, 1 alicante-spain.tk, 1 @@ -10450,7 +10421,6 @@ alieninternet.be, 1 alieninternet.eu, 1 alieninvasion.fun, 1 -alienmag.io, 1 alienresidence.tk, 1 alienslab.net, 1 alienstat.com, 1 @@ -10461,7 +10431,6 @@ alifeadjacent.com, 1 alifeinbinary.com, 1 alifnasiya.uz, 1 -alighierirescaldina.it, 1 alight.ge, 1 alightwell.com, 1 align27.com, 1 @@ -10595,12 +10564,10 @@ all4running.nl, 1 all4web.tk, 1 all878.com, 1 -alla-famiglia-p-otto.de, 1 alla.tk, 1 allaboutcovers.co.za, 1 allabouteyesvet.com, 1 allaboutfunuk.com, 1 -allaboutgoats.com, 1 allaboutgreg.net, 1 allabouthome.ml, 1 allabouthtml.com, 1 @@ -10615,7 +10582,6 @@ allaboutthekink.org, 1 allaboutyouspa.co.uk, 1 allaccessglobal.tech, 1 -allactioneventhire.co.uk, 1 allactionsecurity.com, 1 allahabadhighcourt.in, 1 allamakee.k12.ia.us, 1 @@ -10783,7 +10749,6 @@ alliancebank.com, 1 allianceblock.io, 1 allianceborderservices.com, 1 -allianceexperts.com, 1 allianceforafreesociety.com, 1 allianceforafreesociety.net, 1 allianceforafreesociety.org, 1 @@ -10811,7 +10776,6 @@ allintovote.org, 1 allis.co.jp, 1 allis.jp, 1 -allis.studio, 1 allisonsite.tk, 1 allisonsklar.com, 1 allitcrm.sytes.net, 1 @@ -10866,7 +10830,6 @@ allprints.tk, 1 allproformation.com, 1 allproptonline.com, 1 -allpussynow.com, 1 allrad-buck.de, 1 allram.info, 1 allreptiles.tk, 1 @@ -10903,7 +10866,6 @@ allsurpl.us, 1 allsurplus.com, 1 allsync.com, 0 -allsync.nl, 0 allterrainfence.com, 1 alltest.net.au, 1 alltestantigentest.com.au, 1 @@ -11025,7 +10987,7 @@ almworks.com, 1 almx.net, 1 alnaharnews.net, 1 -alng.me, 1 +alng.me, 0 alnilam.co.uk, 1 alnitech.com, 0 alnoorintl.com, 1 @@ -11059,7 +11021,6 @@ aloomic.com.au, 1 aloop.cloud, 1 alopezlawfirm.com, 1 -alorica.com, 0 alorimusic.es, 1 aloris-controle.fr, 1 aloro.io, 1 @@ -11069,6 +11030,7 @@ alp-eastlink-portal-model.azurewebsites.net, 1 alp-samsungca-portal-model.azurewebsites.net, 1 alp-spectrum-portal-model.azurewebsites.net, 1 +alp.od.ua, 1 alpa.is, 1 alpaca.haus, 1 alpahandling.com, 1 @@ -11102,6 +11064,7 @@ alpha-ag.ru, 1 alpha-assistant.com, 1 alpha-associates.ch, 1 +alpha-bet.com.ua, 1 alpha-centauri.tk, 1 alpha-force.net, 0 alpha-ink.de, 1 @@ -11146,6 +11109,7 @@ alphasall.com, 1 alphasoft-i.net, 1 alphassl.de, 1 +alphastrip.com, 1 alphat.net, 1 alphatam.com, 1 alphatrading.tk, 1 @@ -11185,7 +11149,6 @@ alr-photography.com, 0 alrahman.ch, 1 alrahman.de, 1 -alrawdhawaterproofing.com, 1 alrdc.com, 1 alre-outillage.fr, 1 alredho.com, 1 @@ -11198,6 +11161,7 @@ alsace-informatique.shop, 1 alsetat.com, 1 alshabab.tk, 1 +alshaheenest.com, 1 alshamil.tk, 1 alsharkest.net, 1 alskar.co, 0 @@ -11240,6 +11204,7 @@ altaizemlya.ga, 1 altaizemlya.ml, 1 altaizemlya.tk, 1 +altaleo.com, 1 altametrics.com, 1 altana.com, 1 altana.de, 1 @@ -11287,7 +11252,6 @@ alternative-energy-tutorials.com, 1 alternative-kultur.tk, 1 alternative-reussite.org, 1 -alternative.hosting, 1 alternativebit.fr, 1 alternativedev.ca, 1 alternativeenergy.tk, 1 @@ -11371,7 +11335,7 @@ alttrackr.com, 1 altunbas.info, 1 altur.tk, 1 -altura.io, 1 +altura.io, 0 alturiak.net, 1 altusbiologics.com, 1 altusgroup.com, 0 @@ -11404,7 +11368,6 @@ alushta.tk, 1 alusib.ga, 1 alusim.ga, 1 -aluta.de, 1 alvarez.tk, 1 alvarezandmarsal-crg.com, 1 alvarezjoseph.com, 1 @@ -11506,7 +11469,6 @@ amalgamma.ml, 1 amalou-photografie.de, 1 amambebe.com, 1 -amandablain.com, 1 amandadamsphotography.com, 1 amandahamilton.tk, 1 amandamachado.nl, 1 @@ -11830,6 +11792,7 @@ amigosgranada4050.tk, 1 amihousebuyers.com, 1 amikton.ru, 1 +amilaresort.com, 1 amilcalcados.com.br, 1 amilesportes.com.br, 1 amilum.org, 1 @@ -11864,7 +11827,6 @@ amisoft.co.jp, 1 amisoft.tk, 1 amissing.link, 1 -amisun.com, 1 amitopia.tk, 1 amitriptyline-hydrochloride.ga, 1 amitriptyline25mg.cf, 1 @@ -11962,6 +11924,7 @@ amp-pd.org, 1 amp-wp.org, 1 amp.chat, 1 +amp.pt, 1 ampact.co, 1 amper.kharkov.ua, 0 ampersandnbspsemicolon.com, 1 @@ -11998,8 +11961,8 @@ amrctraining.co.uk, 1 amrealtypr.com, 1 amref.org, 1 +amrita.club, 1 amritps.com, 1 -amrix.com, 1 amroelkhatib.fi, 1 amroz.xyz, 1 amrun-verlag.de, 1 @@ -12014,7 +11977,6 @@ amsmart.hu, 1 amsochile.cl, 1 amst.io, 1 -amstat.org, 0 amstelradio.tk, 1 amstelveentje.nl, 1 amsterdam.nl, 1 @@ -12054,7 +12016,6 @@ amvisor.com, 1 amvisualgraphics.com, 1 amwager.com, 1 -amwake.com, 1 amwine.ru, 1 amxm.aero, 1 amxpj888.com, 0 @@ -12062,6 +12023,7 @@ amyapets.tk, 1 amyfoundhermann.com, 1 amymabel.com, 1 +amymargolislcsw.com, 1 amymartiraphotography.com, 1 amyred.net, 1 amyria.jp, 1 @@ -12107,7 +12069,6 @@ anacondasc.co.uk, 1 anacondaswimmingclub.org.uk, 1 anacron.pl, 1 -anacruz.es, 1 anadiuvo.fi, 1 anadlelkheir.com, 1 anaelog.com.au, 1 @@ -12141,7 +12102,6 @@ analisiambientale.it, 1 analitik.ml, 1 analizator.tk, 1 -analizufa.ru, 1 analogfreeers.ga, 1 analogical.ga, 1 analogist.net, 1 @@ -12262,7 +12222,6 @@ ancientnorth.nl, 1 anclarma.fr, 1 ancolies-andre.com, 0 -anconaswine.com, 1 anconatoday.it, 1 ancroma.ro, 1 ancuong.com, 1 @@ -12361,7 +12320,6 @@ andreasolsson.se, 1 andreasr.com, 1 andreaswirth.com, 1 -andreasxp.me, 1 andreatedeschi.it, 1 andreazphotography.com, 1 andrecanuto.com.br, 1 @@ -12424,7 +12382,6 @@ andrewreaganm.com, 1 andrewrgoss.com, 1 andrewryno.com, 1 -andrewsandford.es, 1 andrewsfasteners.uk, 1 andrewsfss.marketing, 1 andrewsnc.gov, 1 @@ -12462,7 +12419,6 @@ android.com.pl, 1 android.re, 1 androidcrunch.com, 1 -androide.com, 1 androidfactory.io, 1 androidgaming.tk, 1 androidhack.tk, 1 @@ -12565,6 +12521,7 @@ anextraordinaryday.net, 1 anfadern.com, 1 anfalas.ddnss.de, 1 +anfarabic.com, 1 anfieldbc.co.uk, 1 anfilada.info, 1 anfloors.ru, 1 @@ -12591,7 +12548,6 @@ angelesydemonios.es, 1 angelfood.org, 1 angelhammer.tk, 1 -angelic.icu, 1 angelic47.com, 1 angelicapanganibansite.tk, 1 angelicare.co.uk, 1 @@ -12636,7 +12592,6 @@ angielynx.net, 1 angiesite.tk, 1 angiewickes.com, 1 -anginf.de, 1 angiolinikids.it, 1 angione.ca, 1 angione.se, 1 @@ -12697,7 +12652,6 @@ anihilated.tk, 1 anihonetwallpaper.com, 1 anikabyaabi.com, 1 -anikajulie.com, 1 anikaras.ga, 1 anikschwall.com, 1 anilom.tk, 1 @@ -12857,7 +12811,6 @@ anjocerdena.com, 1 anjoola.com, 1 anjtransportsolutions.com.au, 1 -ankaecza.com, 1 ankane.org, 1 ankanetworks.net, 1 ankaraarabakiralama.com.tr, 1 @@ -12893,7 +12846,6 @@ ankastremerkezi.com, 1 anker-wladyslawowo.pl, 1 anketlekazan.net, 1 -ankitha.in, 1 ankitpati.in, 1 ankiuser.net, 1 ankiweb.net, 1 @@ -12975,6 +12927,7 @@ anniegagnonphotographie.com, 1 anniekheffache.com, 1 anniesdollhouse.com, 1 +annieshighteas.com, 1 annihilation-squad.tk, 1 annikarose-porn.com, 1 annitrinity.com, 1 @@ -13182,7 +13135,6 @@ anthrocon.org, 1 anthroper.com, 1 anthropoid.ca, 1 -anti-aginggames.com, 1 anti-akw-ac.de, 1 anti-civilisation.tk, 1 anti-ddos.group, 1 @@ -13352,8 +13304,6 @@ antsa.duckdns.org, 1 antstoolbox.com, 1 antti.codes, 1 -antts.uk, 1 -antts.xyz, 1 anturis.com, 1 antwire.net, 1 antyblokada.pl, 1 @@ -13499,7 +13449,6 @@ aotopo.com, 1 aova.loan, 1 aovup.com, 1 -aovvt.nl, 1 aoxinstudy.com, 1 aoyagi-farm.jp, 1 aoyama-azabu-dc.com, 1 @@ -13509,6 +13458,7 @@ ap-auto.pl, 1 ap-bg.eu, 1 ap.icu, 1 +ap.nic.in, 1 ap314.com, 1 apa-canal.ro, 1 apac-fxcm.com, 1 @@ -13608,7 +13558,6 @@ apexweb.ru, 1 apfhaiti.org, 1 apfm.fr, 1 -apfnxg.com, 1 apfulfilment.com, 1 apgw.jp, 1 aphantasiac.com, 1 @@ -13660,6 +13609,7 @@ apiris.fr, 1 apis.google.com, 1 apit-kovrov.ru, 1 +apitodemestre.com.br, 1 apiu.me, 1 apix-drive.com, 1 apix.se, 1 @@ -13680,7 +13630,6 @@ apkmody.io, 1 apkmoj.com, 1 apknut.com, 1 -apkoc.com, 1 apkod.com, 1 apkpokemongo.ga, 1 apkpokemongo.gq, 1 @@ -13696,14 +13645,12 @@ aplibrary.org, 1 aplicaciones.ai, 1 aplis-online.de, 0 -aplpackaging.co.uk, 1 aplteam.tk, 1 aplu.fr, 1 aplus.mn, 1 aplusdownload.com, 1 aplusteachingresources.com.au, 1 aplusz.nl, 1 -apmassie.com, 1 apmdd.org, 1 apmhealth.com, 1 apmlpak.com, 1 @@ -13739,7 +13686,7 @@ apollocare.com, 1 apollodiet.com, 1 apollogames.cz, 1 -apolloheatingandair.com, 1 +apolloheatingandair.com, 0 apollointeractive.com, 1 apollomobile.ga, 1 apollomobile.gq, 1 @@ -13875,6 +13822,7 @@ applecare.cz, 1 appledroid.ru, 1 appleexterminating.com, 1 +applefix.it, 1 appleglasscompany.com, 1 applegun.com, 1 appleii-box.de, 1 @@ -13935,6 +13883,7 @@ appmobile.io, 1 appninjas.com, 1 appo.nl, 1 +appodeal.com, 1 appoggiature.fr, 1 appointible.com, 1 appointment.ga, 1 @@ -14028,7 +13977,7 @@ aprimatic.msk.ru, 1 apriorit.com, 1 aprofunda.art.br, 1 -apropotv.ro, 1 +apropotv.ro, 0 apropotv.tk, 1 aprovatotal.com.br, 1 aprpullmanportermuseum.org, 0 @@ -14085,6 +14034,7 @@ aqdlt.tv, 1 aqdun.com, 0 aqihub.info, 1 +aqlivia.com, 1 aqmetrics.com, 1 aqqrate.com, 1 aqsiq.net, 1 @@ -14108,6 +14058,7 @@ aquabyte.co.uk, 1 aquacapsule.cf, 1 aquacitylands.com, 1 +aquacomms.com, 1 aquaconcepts.be, 1 aquadarts.tk, 1 aquadecor.cf, 1 @@ -14154,6 +14105,7 @@ aquasaur.tk, 1 aquascaping.tk, 1 aquaselect.eu, 1 +aquasplash.ae, 1 aquastudios.games, 1 aquatherm72.ru, 1 aquatiq.com, 1 @@ -14241,7 +14193,6 @@ aramido.de, 1 aramloebmd.com, 1 aramsco.com, 1 -aramya.in, 1 aramyayinevi.com, 1 aranchhomes.com, 1 arandadeduero.es, 1 @@ -14293,6 +14244,7 @@ arbolesdenavidad.site, 1 arbologic.nl, 1 arboreall.com, 1 +arborio.com.ua, 1 arboristadvice.com, 1 arboristic.de, 1 arbortechtreeservice.com, 1 @@ -14305,7 +14257,6 @@ arc.int, 1 arc.net, 1 arc.run, 1 -arca.am, 1 arca.info.ro, 1 arca.live, 1 arcada-company.com, 1 @@ -14333,6 +14284,7 @@ archambault.paris, 1 archangelbio.com, 1 archbishop.ga, 1 +archdetal.com.ua, 1 archeologiatoscana.it, 1 archeologicatoscana.it, 1 archeologiegorinchem.com, 1 @@ -14373,7 +14325,6 @@ archivi.ddns.net, 1 archivistas.tk, 1 archivium.biz, 1 -archivosmercury.com, 1 archivosstl.com, 1 archiweb.pl, 0 archlinux.de, 1 @@ -14433,7 +14384,6 @@ arda.nl, 1 ardabil.tk, 1 ardacar.com, 1 -ardadanal.com, 1 ardakannews.tk, 1 ardania.de, 1 ardaninmutfagi.com, 1 @@ -14526,8 +14476,6 @@ arfycat.com, 1 arg.zone, 1 argama-nature.com, 1 -arganaddict.com, 1 -arganaddict.net, 1 arganaderm.ch, 0 arganwinkel.nl, 1 argax.it, 1 @@ -14562,7 +14510,7 @@ argyrouminas.digital, 1 argyrouminas.eu, 1 arhan.sh, 1 -arheh.com, 0 +arheh.com, 1 arhgrille.com, 1 arhipka.tk, 1 arhitectura.ru, 1 @@ -14580,12 +14528,10 @@ ariadermspa.com, 1 ariadnext.com, 1 ariag.tk, 1 -ariajourney.com, 0 ariamag.com, 0 ariaman.tk, 1 arian.io, 1 ariana.wtf, 1 -arianaspas.com, 1 ariashii.tk, 1 aribicara.tk, 1 aric-assurances.fr, 1 @@ -14638,7 +14584,6 @@ arinahashimoto.com, 1 arinde.ee, 1 arinflatablefun.co.uk, 1 -arionkoder.com, 1 arionta.com, 1 arious.uk, 1 aripiprazolee.gq, 1 @@ -14741,7 +14686,6 @@ armandmusic.nl, 1 armando.info, 1 armandocorazones.tk, 1 -armandsdiscount.com, 0 armanozak.com, 1 armansazehradis.com, 1 armaplatform.com, 1 @@ -14858,7 +14802,6 @@ aromacoffee.bg, 1 aromacos.ch, 1 aromacraft.uk, 1 -aromaduft.at, 1 aromaecocandles.ca, 1 aromaimportado.com.br, 1 aromaonlinestore-korat.com, 1 @@ -15002,6 +14945,7 @@ artdeco-photo.com, 0 artdecoration.tk, 1 artdigital.tk, 1 +artdigitalmedia.co.uk, 1 arte-actual.tk, 1 artea.ga, 1 arteaga.co.uk, 1 @@ -15018,6 +14962,7 @@ artedona.com, 1 arteescuela.com, 1 arteinstudio.it, 1 +artel.od.ua, 1 artelignum.tk, 1 artelista.com, 1 artem.se, 1 @@ -15026,6 +14971,7 @@ artemis-fowl.tk, 1 artemisgroup.ga, 1 artemislena.eu, 1 +artemiy-plus.com.ua, 1 artemiz.tk, 1 artemoon.ml, 1 artemweb.tk, 1 @@ -15121,17 +15067,14 @@ artisanhd.com, 1 artisanity.io, 1 artisanportrait.com, 1 -artisansofstone.com, 1 artisansoftaste.com, 1 artishevski.com, 1 -artismist.com, 1 artiso.pl, 1 artistagenda.com, 1 artistcorporation.com, 1 artistedeparis.fr, 1 artistiquementvotre.tk, 1 artistiqueweddingphotography.com.au, 1 -artistmanagement.id, 0 artistmovieers.ga, 1 artistree.io, 1 artistreplugged.com, 1 @@ -15149,11 +15092,13 @@ artlogo.cz, 1 artlogo.sk, 1 artlurker.com, 1 +artmaker.kiev.ua, 1 artmark.ro, 1 artmarketingnews.com, 1 artmaterials.com.ua, 1 artmaxi.eu, 1 artmo.com, 1 +artnazar.org.ua, 1 arto.group, 1 artofbong.com, 1 artofcode.co.uk, 1 @@ -15241,12 +15186,12 @@ arvadaco.gov, 1 arvadafireco.gov, 1 arveex.eu, 1 -arviamedspa.com, 1 arviksa.co.uk, 1 arvindhariharan.com, 1 arvindhariharan.me, 1 arvinovoyage.com, 1 arvostettu.fi, 1 +arvutiladu.ee, 1 arvyncerezo.com, 1 arw-bw.de, 1 arw.me, 1 @@ -15338,6 +15283,7 @@ asastra.ovh, 1 asatahvieh.com, 1 asato-jewelry.com, 1 +asatys-partners.com, 1 asb.edu.my, 0 asbaces.com, 1 asbazar.com, 1 @@ -15356,7 +15302,6 @@ ascamo.tk, 1 ascannes-non-officiel.tk, 1 ascar.us, 1 -ascard.net, 1 ascc.sg, 1 ascend.com.sa, 1 ascendedguidance.com, 1 @@ -15524,7 +15469,7 @@ asianlifestyledesign.com, 1 asianmain.com, 1 asianmoney.biz, 1 -asianshop.com.pe, 1 +asianshop.com.pe, 0 asiansnus.com, 1 asiansongs.tk, 1 asianspa.co.uk, 1 @@ -15600,9 +15545,8 @@ askvg.com, 1 askwhy.cz, 1 askwhy.eu, 1 -asla.info, 0 +asla.info, 1 aslanadam.com, 1 -aslanbilit.ir, 1 aslansigorta.net, 1 aslanzone.shop, 1 aslia.no, 1 @@ -15616,6 +15560,7 @@ asmdz.com, 1 asmeets.nl, 1 asmess.com, 1 +asmetales.com, 1 asmgroup.rs, 1 asminternational.org, 1 asmlmarathoneindhoven.nl, 1 @@ -15647,7 +15592,6 @@ asp-progress.tk, 1 asp.net, 1 aspaceib.org, 1 -aspec-md.de, 1 aspec-mdl.de, 1 aspectcontext.com, 1 aspen.gov, 1 @@ -15662,7 +15606,6 @@ asperatechnology.de, 1 aspernallee.at, 1 asperti.com, 1 -aspews.org, 1 asphaltfruehling.de, 1 asphaltsolutionsnc.com, 1 asphyxia.su, 1 @@ -15709,7 +15652,6 @@ asrtechnology.tk, 1 assaabloy-partnerportal.com, 1 assaabloygaragedoors.ca, 1 -assafashowroom.com, 1 assai.com.br, 1 assamtenders.gov.in, 1 assamtodayexpress.com, 1 @@ -15717,6 +15659,7 @@ assassinasian.tk, 1 assault1892.boats, 1 assdecoeur.org, 1 +assecuro.com.ua, 1 assedo.tk, 1 asselin.fr, 1 assemblage.gq, 1 @@ -15732,7 +15675,6 @@ assentis.net, 1 assentooriginal.com.br, 1 assertion.de, 1 -assertstack.com, 1 assessmentpractitioner.co.za, 1 assessments.careers, 1 assessorindie.tk, 1 @@ -15775,6 +15717,7 @@ assistouest.shop, 1 assmb.ly, 1 assmgp.com, 1 +asso.com.ua, 1 associationguillaume.com, 1 associationhorizon.tk, 1 associationvision.com, 1 @@ -15839,7 +15782,6 @@ astiamministrazioni.it, 1 asticon.de, 1 asticonnectedservices.com, 1 -astifan.online, 1 astigmatic.gq, 1 astilesphotography.com, 1 astilla.com.ar, 1 @@ -15871,6 +15813,7 @@ astral.com.ar, 1 astral.gq, 1 astral.org.pl, 1 +astralrank.com, 1 astralriders.tk, 1 astralus.com, 1 astralus.de, 1 @@ -15879,7 +15822,6 @@ astratech.ph, 1 astrath.net, 1 astrati.com.br, 1 -astrawebhost.com, 1 astrea-voetbal-groningen.nl, 1 astrid-stolz.de, 1 astrill.com, 1 @@ -15959,7 +15901,6 @@ asuransiperjalanan.co.id, 1 asurbernardo.com, 1 asurgiant.ca, 1 -asuro.de, 1 asustor.com, 1 asustreiber.de, 1 asvsa.ch, 0 @@ -16056,6 +15997,7 @@ atelierverbeelding.nl, 1 atenasconservadora.com.br, 1 atencionbimbo.com, 0 +atendadoencontro.com, 1 ateneumontbui.tk, 1 ateneupalafrugell.tk, 1 atenolol25mg.ga, 1 @@ -16104,9 +16046,11 @@ athleticstore.bg, 1 athlin.de, 1 athome-nextcloud.ddns.net, 1 +athomedeco.fr, 1 athoris.net, 1 athritisexplained.com, 1 atide.cf, 1 +atidict.top, 1 atigerseye.com, 1 atik.kr, 0 atiku2007.tk, 1 @@ -16216,6 +16160,7 @@ atleticocearense.com.br, 1 atletika.hu, 1 atletismomacotera.tk, 1 +atlucknow.com, 1 atm-bur.ru, 1 atm-erasmus.com, 1 atm.net, 1 @@ -16252,12 +16197,11 @@ atombase.org, 1 atomeus.nl, 1 atomic-bounce.com, 1 -atomic-corals.de, 1 atomic.radio, 1 atomicanet.tk, 1 atomicbounce.co.uk, 1 atomicheart.tk, 1 -atomichomehealth.com, 1 +atomichomehealth.com, 0 atomickitteninternational.tk, 1 atomicmusicgroup.com, 1 atomictag.com, 1 @@ -16321,6 +16265,7 @@ attic-design.com, 1 atticinsulation-houston.com, 1 atticinsulationexpertshouston.com, 1 +atticlightstudio.net, 1 atticusblog.com, 1 attilavandervelde.nl, 1 attiliospagnolo.it, 1 @@ -16388,7 +16333,6 @@ aubcon.com, 1 aubepine-restaurant.com, 1 aubergegilly.ch, 0 -aubgroup.com.au, 1 aubi-plus.de, 1 aubio.org, 1 aubry.org, 1 @@ -16413,7 +16357,6 @@ auction.com, 1 auctionbv.tk, 1 audacityland.com, 1 -aude-mdb-hypnose.fr, 1 audencia.com, 0 audetlaw.com, 1 audian.com, 1 @@ -16452,7 +16395,6 @@ audiomind.tk, 1 audiomir.tk, 1 audion.cc, 1 -audionamix.com, 1 audionpack.de, 1 audioonly.stream, 1 audioplugin.deals, 1 @@ -16462,6 +16404,7 @@ audioscenic.uk, 1 audioschoolonline.com, 1 audiosciencereview.com, 1 +audiosite.net, 1 audioslave.tk, 1 audiotrace.tk, 1 audioturret.com, 1 @@ -16585,7 +16528,6 @@ aurelvoica.ro, 1 aureshotels.com, 1 aureusinvest.eu, 1 -auribus.io, 1 auricblue.com, 1 auricom.tk, 1 auriculo360.com, 1 @@ -16717,6 +16659,7 @@ authanet.ga, 1 authcom.ca, 1 authcom.com, 1 +authelia.com, 1 authenteak.com, 1 authenticate.be, 1 authenticate.computer, 1 @@ -16758,6 +16701,7 @@ auto-none.com, 1 auto-parts-store.tk, 1 auto-plus.tn, 1 +auto-profy.com.ua, 1 auto-quote.ga, 1 auto-rahbari.de, 1 auto-reklame.tk, 1 @@ -17119,7 +17063,6 @@ autosecurityfinance.com, 1 autoshopsolutions.com, 0 autosiero.nl, 1 -autosneed.com, 1 autosoftdms.com, 1 autosolution.tk, 1 autospadetail.sk, 1 @@ -17263,6 +17206,7 @@ avangard-tovar.tk, 1 avangard.tk, 1 avangardgold.com, 1 +avangardmobile.ru, 1 avanguardia.tk, 1 avangvpn.ga, 1 avanovum.de, 1 @@ -17281,7 +17225,6 @@ avarcom.tk, 1 avarie.ru, 1 avariya.tk, 1 -avarom.ir, 1 avarty.com, 1 avastantivirus.ro, 1 avasu.com, 1 @@ -17471,7 +17414,7 @@ avontuurlijk-natuurlijk.be, 1 avonvets.co.uk, 1 avoonix.com, 1 -avounossoupes.be, 1 +avounossoupes.be, 0 avp-emobility.de, 1 avpres.net, 0 avptp.org, 1 @@ -17480,9 +17423,11 @@ avrilshine.tk, 1 avrora-nov.ru, 1 avroramine.tk, 1 +avrrom.com, 1 avs.be, 1 avsd01.com, 1 avstack.io, 1 +avt-ukraine.com, 1 avtechno.ru, 1 avtecmedia.com, 0 avtek.pl, 1 @@ -17555,7 +17500,6 @@ awarify.io, 1 awarify.me, 1 awarity.be, 1 -awarner.co.uk, 1 awaro.net, 1 awaua.nl, 0 awawa.cf, 1 @@ -17563,6 +17507,7 @@ awaybot.com, 1 awaygroundguide.com, 1 awayword.cf, 1 +awconsulting.com.sg, 1 awebsome.fr, 1 awei.pub, 1 awena.me, 1 @@ -17661,10 +17606,8 @@ axis-of-evil.tk, 1 axis-stralis.co.uk, 1 axis.kiev.ua, 1 -axiscapital.com, 0 axisdesignarchitects.co.uk, 1 axisdesignarchitects.com, 1 -axishw.com, 1 axisinteriors.net, 1 axislinx.com, 1 axisortho.com.sg, 1 @@ -17824,11 +17767,9 @@ ayresyorbalinda.com, 1 ayrohq.com, 1 ayrom.io, 1 -ayrshirebouncycastlehire.co.uk, 1 ayruu.com, 1 ayselonia.onl, 1 ayshaflix.com.br, 1 -aysima.com, 1 aytuntegelzetbedrijf.nl, 1 ayubesportes.com.br, 1 ayudacloud.com, 1 @@ -17877,7 +17818,9 @@ azarus.ch, 1 azarweb.tk, 1 azauditor.gov, 1 +azbuka-bp.com.ua, 1 azbuka-bp.ru, 0 +azbuka-kharkov.com.ua, 1 azcensus2020.gov, 1 azcontech.com, 1 azdailysun.com, 1 @@ -17919,7 +17862,7 @@ azithromycine.gq, 1 azitromicina.gq, 1 azizfirat.com, 0 -azizidevelopments.com, 1 +azizidevelopments.com, 0 azjlbc.gov, 1 azkunazentroa.eus, 1 azl.ink, 1 @@ -17990,6 +17933,8 @@ azuxul.fr, 1 azvirtualschool.com, 0 azvpn.tk, 1 +azzorti.co, 1 +azzorti.com, 1 azzurrapelletterie.it, 1 b-angel.info, 1 b-b-law.com, 1 @@ -18036,7 +17981,7 @@ b2b-nestle.com.br, 1 b2bchiemihara.com, 1 b2bhint.com, 1 -b2binpay.com, 1 +b2binpay.com, 0 b2bmail.ga, 1 b2bmuzikbank.com, 1 b2bpartner.de, 1 @@ -18117,7 +18062,6 @@ b88vip7.com, 1 b88vip8.com, 1 b88vip9.com, 1 -b89hh.com, 1 b8a.me, 1 b9168.com, 0 b9297.co, 1 @@ -18133,7 +18077,6 @@ b9883.net, 1 b9884.net, 1 b9885.net, 1 -b9886.com, 1 b9886.net, 1 b9887.net, 1 b9888.net, 0 @@ -18146,18 +18089,14 @@ b99066.com, 1 b99077.com, 1 b99088.com, 1 -b99118.com, 0 b9912.com, 1 -b99218.com, 1 b9930.com, 1 b99318.com, 1 b99418.com, 1 b9951.com, 1 -b99518.com, 1 b9954.com, 1 b9957.com, 1 b9961.com, 1 -b99618.com, 1 b9962.com, 1 b9970.com, 1 b99718.com, 1 @@ -18165,11 +18104,9 @@ b9976.com, 1 b99818.com, 1 b99881.com, 1 -b99882.com, 1 b99883.com, 1 b99885.com, 1 b99886.com, 1 -b99918.com, 1 b9999oo.com, 1 b9999pp.com, 1 b9999tt.com, 1 @@ -18301,7 +18238,6 @@ babyzen.tk, 1 babyzoet.com, 1 bac-fiches.tk, 1 -bacamanga.id, 1 bacanal-intruder.tk, 1 bacanaskincare.com, 1 bacaneriahlg.com, 1 @@ -18343,6 +18279,7 @@ back-streets.tk, 1 back-yard.tk, 1 backd00red.org, 1 +backdigit.com, 1 backedbycanadians.ca, 1 backenmachtgluecklich.de, 0 backflip.com, 1 @@ -18371,9 +18308,9 @@ backpacken.org, 1 backpackinglight.com, 0 backpackingtours.com, 1 +backpacktour.ru, 1 backpagegals.com, 1 backpageseek.com, 1 -backpaindoctordubai.com, 1 backporchartists.com, 1 backrestored.gq, 1 backrip.tk, 1 @@ -18410,8 +18347,6 @@ backzoneterapi.dk, 1 baclofen.ga, 1 baclofen.gq, 1 -bacom1.com, 1 -bacon-monitoring.org, 1 baconismagic.ca, 0 baconsultores.co, 1 bacoux.com, 1 @@ -18537,7 +18472,6 @@ baframedya.tk, 1 bafus.ru, 1 bag.bg, 1 -bag2bag.in, 1 bagdagul.tk, 1 bagelbrands.com, 1 bagelsbakery.com, 0 @@ -18611,6 +18545,7 @@ baileystrailsystem.org, 1 bailleux.be, 1 bailodromo.tk, 1 +bailong.kr.ua, 1 bailonga.com, 1 bain-savon.co.uk, 1 baindayman.com, 1 @@ -18625,6 +18560,7 @@ bait55.ru, 0 baitable.ml, 1 baitapsgk.com, 1 +baitfinesseempire.com, 0 baithuti.com, 1 baitnaservices.com, 1 baitona-joshi.jp, 1 @@ -18782,6 +18718,7 @@ balkanpharmstore.com, 1 balkoni.gq, 1 balkonien.org, 1 +balkonov.com.ua, 1 ball-bizarr.com, 1 ball-bizarr.de, 1 ball3d.es, 1 @@ -18893,6 +18830,7 @@ bancosdominicanos.net, 1 bancoserfinanza.com, 1 bancosol.com.bo, 1 +banda-car-service.com, 1 bandaancha.eu, 1 bandademusicacarrion.tk, 1 bandadestino.tk, 1 @@ -18948,7 +18886,6 @@ banfun.org, 1 bang.com.au, 1 bangabandhu.tk, 1 -bangaichi.no-ip.org, 0 bangandscrew.com, 1 bangbangboys.tk, 1 bangberlin.tk, 1 @@ -18966,7 +18903,6 @@ banglahotstory.tk, 1 banglargolpo.tk, 1 banglatec.tk, 1 -banglatypography.com, 1 banglets.com, 1 bangsparks.com, 1 bangujero.tk, 1 @@ -18976,12 +18912,13 @@ banhphongtomquangtran.com, 1 bani-hashem.tk, 1 banijay.com, 1 -banimarket.by, 0 +banimarket.by, 1 baniuliuukis.lt, 1 banja-kulasi.ga, 1 banjonelson.tk, 1 bank, 1 bank-abc.com, 1 +bank-credit.org, 1 bank-laan.dk, 1 bank-yahav.co.il, 1 bank1stnational.com, 1 @@ -19096,7 +19033,6 @@ baogiathicongnoithat.com, 1 baokhangfood.com, 1 baokhanhhoa.vn, 1 -baoquangninh.vn, 1 baoxue5.com, 0 bapeel.tk, 1 bapha.be, 1 @@ -19124,6 +19060,7 @@ baravalle.com, 1 baraxolka.ga, 1 baraxolka.ml, 1 +barbara-bertagnolli.co.uk, 1 barbara-fuchs-gruene-fuerth.de, 1 barbarabryce.com, 1 barbaraedanielsantos.ga, 1 @@ -19135,7 +19072,7 @@ barbarians.com, 0 barbaros.info, 1 barbate.fr, 1 -barbatulsuperior.ro, 1 +barbatulsuperior.ro, 0 barberscorner.tk, 1 barbershop-harmony.org, 0 barbershopbabo.com, 1 @@ -19206,6 +19143,7 @@ barinov.tk, 1 baripedia.org, 0 baris-sagdic.com, 1 +barisdayak.com, 1 bariseau-mottrie.be, 1 barisi.me, 1 baristador.com, 1 @@ -19269,6 +19207,7 @@ barrankest.ga, 1 barranquillero.tk, 1 barraqueirotransportes.pt, 1 +barrasaccess.com, 1 barrebody.com.au, 1 barreiroappraisals.com, 1 barrelfish.org, 1 @@ -19278,7 +19217,7 @@ barrierefreie-medien.info, 1 barrierpestservices.com, 1 barrikade.tk, 1 -barristerconnect.com, 1 +barristerconnect.com, 0 barro.ga, 1 barruntos.tk, 1 barrybulakites.co, 1 @@ -19488,7 +19427,9 @@ batailleros.tk, 1 bataindustrials.ca, 1 bataindustrials.cl, 1 +bataindustrials.co.id, 1 bataindustrials.co.in, 1 +bataindustrials.co.nz, 1 bataindustrials.co.th, 1 bataindustrials.co.za, 1 bataindustrials.com, 1 @@ -19498,6 +19439,8 @@ bataindustrials.com.my, 1 bataindustrials.cz, 1 bataindustrials.de, 1 +bataindustrials.nl, 1 +bataindustrials.pe, 1 bataindustrials.pl, 1 bataindustrials.sk, 1 bataminnovationhub.com, 1 @@ -19528,7 +19471,6 @@ bathok.tk, 1 bathost.net, 1 bathrobes.tk, 1 -bathroomgurureview.com, 1 bathroomremodelinggeorgia.com, 1 bathroomrenovationswollongong.com, 1 bathroomsinkcabinet.tk, 1 @@ -19540,7 +19482,6 @@ batipresta.ch, 0 batista.g12.br, 1 batistasbakery.com, 1 -batitleagent.com, 1 batitrakya.org, 1 batiweb.tv, 1 batiwebgroup.com, 0 @@ -19591,7 +19532,6 @@ batwatt.com, 1 bau.ua, 1 baubau.bg, 1 -bauchredner-zauberer.de, 1 bauchtanz.tk, 1 baudimultimedia.com, 1 bauer-plus.de, 1 @@ -19816,7 +19756,6 @@ bbwaddict.com, 1 bbwanalsex.com, 1 bbwauthority.com, 1 -bbwhale.org, 1 bbwmovies.com, 1 bbwmusic.com, 1 bbwpictures.com, 1 @@ -19973,6 +19912,7 @@ beachlife4life.cf, 1 beachmonster.tk, 1 beachpoint.tk, 1 +beachsmile.com, 1 beachsoccer.tk, 1 beachvolley.tk, 1 beachvolleyball.tk, 1 @@ -20013,6 +19953,7 @@ beambdi.com, 1 beamitaly.tk, 1 beamitapp.com, 1 +bean-jam.jp, 1 beanbot.party, 1 beanboygames.com, 1 beancount.io, 1 @@ -20029,7 +19970,6 @@ beard.se, 1 bearded.sexy, 1 bearden.io, 1 -beardic.cn, 0 beardsome.me, 1 bearfactory.tk, 1 bearfarm.tk, 1 @@ -20141,6 +20081,7 @@ beautylodge.ro, 1 beautyoverture.com, 1 beautyqlick.com, 1 +beautyschool.od.ua, 1 beautyspaceshop.com, 1 beautyspot.tk, 1 beautytechpro.ro, 1 @@ -20162,8 +20103,6 @@ bebeautiful.business, 1 bebebebra.bid, 1 bebecar.com, 1 -bebechegou.com, 1 -bebechegou.com.br, 1 bebef.de, 1 bebefofuxo.com.br, 1 bebemamae.com, 1 @@ -20195,7 +20134,6 @@ because.co.il, 1 becausecapitalism.org, 1 becausewematterlv.org, 1 -becca-argenbright.com, 1 beccaanne.photography, 1 beccajoshwedding.com, 1 bech32.net, 1 @@ -20272,6 +20210,7 @@ beebeads.ga, 1 beebom.com, 1 beebruh.bid, 1 +beebuy.online, 1 beebuycoin.com, 1 beecambio.com.br, 1 beecare.ch, 1 @@ -20374,11 +20313,9 @@ begethost.cf, 1 begin-motorcycling.co.uk, 1 begleitung-zuhause.at, 1 -beglobalshops.com, 1 begonias.tk, 1 begoth.boutique, 1 begovel.shop, 1 -begravningsbyranhumana.se, 1 begundal.tk, 1 behamepresrdce.sk, 1 behamzdarma.cz, 1 @@ -20448,7 +20385,6 @@ beko.ie, 1 bekolite.com, 1 bekoplc.com, 1 -bel-assainissement-service.fr, 1 bel-snegirek.ru, 0 belacapa.com.br, 1 belacine.com, 1 @@ -20537,7 +20473,6 @@ belk.io, 1 belki.tk, 1 belknapcounty.gov, 1 -belkomedia.com, 1 belkys.net, 0 bell-meet.de, 1 bell.id.au, 1 @@ -20647,7 +20582,6 @@ bempensadoconsul.com.br, 1 bemsa-gent.be, 1 bemsoft.pl, 1 -bemvindoaolar.com.br, 1 ben-deneme.gq, 1 ben-energy.com, 0 ben-escort-hh.com, 1 @@ -20684,7 +20618,6 @@ benden.us, 1 bender.ga, 1 benderssportsandspirits.com, 0 -bendhvacpros.com, 1 bendingtheending.com, 1 bendjadid.com, 1 bendminding.com, 1 @@ -21025,6 +20958,7 @@ bernhofer.at, 1 bernie.lol, 1 bernie.pics, 1 +bernieh.net, 1 bernieware.de, 1 bernius.eu, 1 bernius.xyz, 1 @@ -21102,6 +21036,7 @@ besnard.me, 1 besnik.de, 0 besnik.tk, 1 +besola.de, 1 besole.ch, 1 besolov.tk, 1 besox.be, 1 @@ -21109,12 +21044,12 @@ bespaarenergie.click, 1 bespaarnu.click, 1 bespoiled.nl, 1 +bespokecypher.com, 1 bespokespeaker.uk, 1 bespredel.tk, 1 bessels.tk, 1 bessems.com, 1 bessems.eu, 1 -besser-beissen.de, 1 besser-golfen.tk, 1 besslavnye-ublyudki.tk, 1 bessmertie.ml, 1 @@ -21186,7 +21121,6 @@ bestcavapoos.com, 1 bestchoicehomeinspections.com, 1 bestchoicetrans.com, 1 -bestclassifiedsusa.com, 1 bestclix.ml, 1 bestcms.tk, 1 bestcockalierpups.com, 1 @@ -21235,7 +21169,6 @@ bestfriendsequality.org, 1 bestgoldendoodles.com, 1 bestgolftrips.ca, 1 -bestgriefbooks.com, 1 besthemes.tk, 1 besthomeandgardenstuff.com, 1 besthost.cz, 1 @@ -21442,7 +21375,6 @@ bestratedtransport.com.au, 1 bestreleases.tk, 1 bestremote.io, 1 -bestresumeobjectiveexamples.com, 1 bestrongandhomosexual.top, 1 bestroofinginkansascity.com, 1 bestroutes.net, 1 @@ -21453,6 +21385,7 @@ bestsheepdog.ru, 1 bestshopping.ga, 1 bestshops.ga, 1 +bestsingaporelawyer.com, 1 bestsingingbowls.com, 1 bestsiteporn.com, 1 bestsolution.at, 1 @@ -21512,7 +21445,6 @@ bet333m.com, 1 bet333n.com, 1 bet333o.com, 1 -bet333p.com, 0 bet333q.com, 1 bet333r.com, 0 bet333w.com, 0 @@ -21632,6 +21564,7 @@ betanoapp.com, 1 betanocn.com, 1 betaoptimize.com, 1 +betaprofiles.com, 1 betasozluk.com, 1 betata.tk, 1 betatester.ml, 1 @@ -22012,7 +21945,6 @@ bharatbillpay.com, 1 bharatcall.com, 1 bharath-g.in, 1 -bharatraftar.com, 1 bharatskills.gov.in, 1 bhasha.lk, 1 bhat.vn, 1 @@ -22025,6 +21957,7 @@ bhiglu.com, 1 bhitnews.tk, 1 bhitti.in, 1 +bhnnews.com, 1 bhodisoft.com, 1 bhogavati.tk, 1 bhosted.nl, 1 @@ -22047,7 +21980,6 @@ bi-medien.de, 1 bi.search.yahoo.com, 0 bi1gif.radio, 1 -bi3e.ma, 1 bi4sb.com, 1 bi8cku.club, 1 bi8cku.tech, 1 @@ -22097,7 +22029,7 @@ bibleforchildren.ru, 1 biblegen.com, 1 bibleinsiderest.ga, 1 -biblemesh.com, 1 +biblemesh.com, 0 biblereadlist.com, 1 biblesearch.tw, 1 biblesignposts.com, 1 @@ -22148,7 +22080,6 @@ bichl.de, 1 bichonfrise.com.br, 1 bichonmaltes.com.br, 1 -bicicletassym.com, 1 bicignet.ga, 1 bicommarketing.com, 1 bicranial.io, 0 @@ -22174,7 +22105,6 @@ bidonline.tk, 1 bidswitch.com, 1 bidtraffic.net, 1 -bidviewmarketing.com, 1 bie.edu, 1 bieg.tk, 1 biegal.ski, 1 @@ -22233,6 +22163,7 @@ big-file.tk, 1 big-music.tk, 1 big-office.lviv.ua, 1 +big-orange.com.ua, 1 big-papa.tk, 1 big-tits-video.ru, 1 big-travel.tk, 1 @@ -22274,7 +22205,6 @@ bigboyhub.com, 1 bigbrassblog.com, 1 bigbroeyes.com, 1 -bigbuild.vic.gov.au, 1 bigbunce.ru, 0 bigbyte.com.np, 1 bigcakes.dk, 1 @@ -22310,7 +22240,6 @@ biggsconstruction.com, 1 biggy.kiev.ua, 1 bighams.co.uk, 0 -bighams.com, 0 bighome.ml, 1 bighorn.co.jp, 1 bighugbotanicals.com, 1 @@ -22429,7 +22358,6 @@ bikesandbits.tk, 1 bikesdirect.com, 1 bikeshopitalia.com, 1 -bikesquadron.com, 1 bikestream.tk, 1 bikesupermarket.it, 1 biketalk.ga, 1 @@ -22555,6 +22483,7 @@ billy.pictures, 1 billybluerecords.com, 1 billybob.tk, 1 +billycroan.com, 1 billyjamrecords.com, 1 billykwok.me, 1 billyoh.com, 1 @@ -22587,7 +22516,6 @@ bimibrocoli.es, 1 bimibrocoli.fr, 1 bimibrokkoli.de, 1 -bimmerguide.de, 1 bimmerlabs.com, 1 bimoge.tk, 1 bimsynergistics.com, 1 @@ -22595,6 +22523,7 @@ bin-laden.org, 1 bin95.com, 1 bina.az, 1 +binaa.co.il, 1 binafarma.com.br, 1 binairy.com, 1 binairy.nl, 1 @@ -22706,7 +22635,6 @@ bioclaudia.it, 1 biocomputingunit.es, 1 bioconnect.com, 1 -bioconus.com, 1 biocorpsys.com, 1 biocrafting.net, 0 biodaan.com, 1 @@ -22725,7 +22653,6 @@ bioenergy-solutions.eco, 1 bioequivalence.design, 1 bioetco.ch, 1 -bioethicsanddisability.org, 1 bioexistencialismo.tk, 1 bioexploratorium.pl, 1 biofabio.info, 1 @@ -22791,6 +22718,7 @@ biomed-hospital.ch, 1 biomed-sparepart.com, 1 biomed.ch, 1 +biomedisysinc.com, 1 biomedsciinstrum.org, 1 biometriccoe.gov, 1 biometrics.gov, 1 @@ -22804,6 +22732,7 @@ biontech24.pl, 1 biontechworld.com, 1 biopreferred.gov, 1 +biopro-st.com, 1 biopsychiatry.com, 1 bioreference.com, 1 biorender.com, 1 @@ -22856,7 +22785,6 @@ bir3yk.net, 1 birahugo.tk, 1 birchbarkfurniture.ch, 1 -birchbarkfurniture.com, 0 birchbarkfurniture.fr, 0 birchtree.me, 1 bird.engineer, 1 @@ -22872,7 +22800,7 @@ birdsnow.com, 1 birdwatchireland.ie, 1 birebirvilla.com, 1 -birenbaum.se, 1 +birenbaum.se, 0 birgit-rydlewski.de, 1 birgitandmerlin.com, 1 birjdid.tk, 1 @@ -22883,7 +22811,6 @@ birkilise.com, 1 birkilise.net, 1 birkilise.org, 1 -birkman.com, 0 birman.tk, 1 birminghamairportparking24.co.uk, 1 birminghamal911.gov, 1 @@ -22960,7 +22887,6 @@ bisq.wiki, 1 bisrockloverclan.tk, 1 bisrockonline.tk, 1 -biss-hcai.ca, 1 bissalama.org, 1 bisschopssteeg.nl, 1 bissingen.de, 1 @@ -22970,7 +22896,6 @@ bistrodeminas.com, 1 bistrozaim.ml, 1 bit-cloud.de, 1 -bit-flex.com, 1 bit-rapid.com, 0 bit-saar.de, 1 bit-sentinel.com, 1 @@ -23125,7 +23050,6 @@ bitmainwarranty.com.ua, 1 bitmainwarranty.ru, 1 bitmart.com, 1 -bitmart.cool, 1 bitmessage.ch, 1 bitmexin.com, 1 bitmidi.com, 1 @@ -23174,7 +23098,6 @@ bitten.pw, 1 bitteraf.com, 1 bitterley.org.uk, 1 -bitterspringscabins.com.au, 1 bittersweetcandybowl.com, 1 bittervault.xyz, 1 bitti.africa, 1 @@ -23284,6 +23207,7 @@ bjbybbs.com, 1 bjc.hu, 1 bjecard.buzz, 1 +bjelimici.com, 1 bjerregaard.me, 1 bjfuli.com, 1 bjjmississauga.com, 1 @@ -23509,7 +23433,6 @@ blackbean.tk, 1 blackbirdproperties.tk, 1 blackbirdsigns.com.au, 1 -blackboiler.com, 1 blackbox.earth, 1 blackboxcity.tk, 1 blackbrookwi.gov, 1 @@ -23641,14 +23564,13 @@ blackvinegarcollection.com, 0 blackwaterlounge.com, 1 blackwaterutilities.tk, 1 -blackwellsupport.com, 1 blackwidow.tk, 1 blackwire.tk, 1 blackwoodrugby.tk, 1 blackwoodseventcenter.com, 1 blackwoodsprotector.co.nz, 1 blackworld.ga, 1 -blackwot.ru, 0 +blackwot.ru, 1 blackyau.cc, 0 blackys-chamber.de, 0 blackzebra.audio, 1 @@ -23707,8 +23629,8 @@ blantr.com, 1 blanx.de, 1 blanzastore.com.br, 1 -blasdelamo.com, 1 -blasdelamo.es, 1 +blasdelamo.com, 0 +blasdelamo.es, 0 blaser.com, 1 blasflittchen.net, 1 blasorchester-runkel.de, 1 @@ -23749,6 +23671,7 @@ blayneallan.com, 0 blazebd.com, 1 blazebit.com, 1 +blazed.pl, 1 blazeeria.com, 1 blazefire.tk, 1 blazeweb.ml, 1 @@ -23767,7 +23690,6 @@ bleatingsheep.org, 1 bleche-onlineshop.at, 1 bleche-onlineshop.de, 1 -blechschmidt.saarland, 1 bledina.com, 1 bleedingcool.com, 1 bleedmoneyest.ga, 1 @@ -23914,7 +23836,6 @@ blockchain.info, 1 blockchain.poker, 1 blockchainbulteni.com.tr, 1 -blockchainmagazine.com, 1 blockchaintech.ga, 1 blockcheck.network, 1 blockcreams.com, 1 @@ -23946,7 +23867,6 @@ bloemenbesteld.nl, 1 bloemendaalsamen.nl, 1 bloemendal.me, 1 -blog-club.org, 1 blog-investimenti.it, 1 blog-ludmily.ml, 1 blog-page.tk, 1 @@ -23987,6 +23907,7 @@ blogdimotori.it, 1 blogdiva.org, 1 blogdolcevita.com, 1 +blogdosimoveis.com.br, 1 blogexpress.org, 1 blogext.com, 1 blogfeng.tk, 1 @@ -24004,7 +23925,6 @@ bloggingfusion.com, 1 bloggingkits.org, 1 bloggingqna.com, 1 -bloggingtriggers.com, 1 bloggingwithchildren.com, 1 bloggs.xyz, 1 blogguitar.tk, 1 @@ -24120,7 +24040,6 @@ blue-gmbh-erfahrungen.de, 1 blue-gmbh.de, 1 blue-olive.co.za, 1 -blue-pool.de, 1 blue-python.tk, 1 blue-sky.capital, 1 blue1.com, 1 @@ -24246,6 +24165,7 @@ bluetape.tk, 1 bluetenfraeulein.de, 1 bluetexservice.com, 1 +bluetile.biz, 1 bluetoothlasersers.ga, 1 bluetoothspecialist.ga, 1 bluetrout.nl, 0 @@ -24264,7 +24184,6 @@ bluffdale.gov, 1 bluffplumber.co.za, 1 bluffsbyowner.com, 1 -bluheron.ca, 1 blui.co, 1 blui.ml, 0 bluiandaj.ml, 1 @@ -24295,6 +24214,7 @@ blushbymounika.com, 0 blushingweb.tk, 1 blutooth.ga, 1 +blutopia.cc, 1 blutspende.de, 1 blutspendedienst.com, 1 bluware.com, 1 @@ -24322,7 +24242,6 @@ bmak.xyz, 1 bmbfiltration.com, 1 bmblawfirm.com, 1 -bme.com, 1 bmelecevolution.com, 1 bmgc.edu.bd, 1 bmhglobal.com.au, 1 @@ -24354,11 +24273,11 @@ bmwpartsdeal.com, 1 bmyjacks.cn, 0 bmzm.nl, 0 +bn9.com.br, 1 bnb-buddy.nl, 1 bnbhome.com, 1 bnboy.cn, 1 bnbsinflatablehire.co.uk, 1 -bnbtravelandtours.com, 1 bnc.sh, 1 bncollege.com, 1 bnct.us, 1 @@ -24421,7 +24340,7 @@ boardspot.com, 1 boardusersers.ga, 1 boat-engines.eu, 1 -boat-systems.pl, 1 +boat-systems.pl, 0 boatandsailboat.com, 1 boathut.com.au, 1 boatlyfe.com, 1 @@ -24497,7 +24416,6 @@ bodas.net, 1 bodascartagena.com, 1 bodclansite.tk, 1 -bodegademuebles.com, 1 bodegagarces.tk, 1 bodegastemporales.com.mx, 1 bodemplaten4x4.nl, 1 @@ -24527,7 +24445,6 @@ bodusod.bg, 1 body-demo.tk, 1 bodyandfit.com, 1 -bodyandhealthmatters.com, 0 bodyblockarcade.com, 1 bodyblog.nl, 1 bodybuilding.events, 1 @@ -24557,7 +24474,6 @@ boeing747.tk, 1 boeleo.ru, 1 boelsen.net, 1 -boem.gov, 1 boenderoutdoor.nl, 1 boengefissaofnoh.nl, 1 boensite.tk, 1 @@ -24622,7 +24538,6 @@ bokf.com, 1 bokhaldari.is, 1 bokhylle.eu, 1 -bokkeriders.com, 1 bokkun.jp, 1 bokmassan.se, 1 bokov.gq, 1 @@ -24723,11 +24638,11 @@ bomboniere.roma.it, 1 bombshelled.com, 1 bomenzoeker.nl, 1 +bomgar.com, 1 bomhard.de, 1 bomhard.net, 1 bomhard.org, 1 bomheroes.com, 1 -bomlibrary.org, 1 bomnegocioveiculosrs.com.br, 1 bomnet.tk, 1 bompus.com, 1 @@ -24865,13 +24780,13 @@ boogiedown.tk, 1 boogschutters-perk.tk, 1 boojiboysbasement.tk, 1 +book-excursion.com, 1 book-in-hotel.com, 1 book-online.tk, 1 book-sites.cf, 1 book24.ru, 1 bookameeting.se, 1 bookbazar.co.in, 1 -bookbuzzfoundation.org, 1 bookcheapairline.com, 1 bookchums.com, 1 bookcreator.com, 1 @@ -24881,7 +24796,6 @@ bookinghealth.com, 1 bookingkoala.com, 1 bookinglane.com, 1 -bookingplacecostarica.com, 1 bookingpressplugin.com, 1 bookingready.com, 1 bookingslog.com, 1 @@ -24952,7 +24866,6 @@ boomtownevents.com, 1 boomtowntrail.com, 1 boomvm.pw, 1 -boone-schulz.de, 1 boonecountyar.com, 1 boonecountyfpdmo.gov, 1 boonecountyil.gov, 1 @@ -24969,14 +24882,13 @@ booox.pw, 1 boop.gq, 1 boop.icu, 1 -booq.org, 1 booquiz.com, 1 booshka.ga, 1 boosinflatablegames.co.uk, 1 boosman.nu, 1 boosmanpoolservice.com, 1 boost-collective.com, 0 -boost-it-consultancy.nl, 1 +boost.ink, 1 boostdesign.tk, 1 boostermachine.com, 1 boostertonbusiness.com, 1 @@ -25020,6 +24932,7 @@ borderfever.cf, 1 borderfever.ga, 1 borderfever.ml, 1 +borderlens.com, 1 borderless.ro, 1 borderless360.com, 0 borderline-selbsthilfe.org, 1 @@ -25032,7 +24945,6 @@ bordoeurope.com, 1 borduurcadeau.tk, 1 borduurpatronen.tk, 1 -borduurshophengelo.nl, 1 bore.lt, 1 borealcapital.com.br, 1 borealis.gg, 1 @@ -25118,7 +25030,6 @@ bosekarmelitky.cz, 1 bosengineering.be, 1 bosfood.de, 1 -bosiquanao.vn, 1 boskant.tk, 1 bosnia-online.tk, 1 bosonogka.tk, 1 @@ -25165,7 +25076,6 @@ botealis.ch, 0 botelegram.tk, 1 botguard.net, 1 -bothive.io, 1 boticadiservicio.com, 1 botija.tk, 1 botika.online, 1 @@ -25293,7 +25203,6 @@ bouncycastlesin.co.uk, 1 bouncycastlesinderby.co.uk, 1 bouncycastlesisleofwight.co.uk, 1 -bouncycastlesmonaghan.com, 1 bouncycastlesperth.net, 1 bouncycastlessheerness.co.uk, 1 bouncydays.co.uk, 1 @@ -25341,8 +25250,8 @@ boutique-box-internet.fr, 1 boutique-opinioes.pt, 1 boutique-pcland.fr, 1 -boutique.be, 1 boutiquecarerecovery.com, 1 +boutiquecoureurdesbois.ca, 1 boutiquedecanetas.com.br, 1 boutiquedelhogar.cl, 1 boutiquedoartista.com.br, 1 @@ -25352,7 +25261,6 @@ boutoncoupdepoing.fr, 1 bouvier-des-flanders.com, 1 bouville.fr, 0 -bouw.live, 1 bouwbedrijfdesmet.be, 1 bouwbedrijfjstam.nl, 1 bouwbedrijfkorstanje.nl, 1 @@ -25430,7 +25338,7 @@ boyceville.gov, 1 boycewire.com, 1 boydcorp.com, 1 -boydstree.com, 1 +boydstree.com, 0 boydwi.gov, 1 boyfriendtvpremium.com, 1 boygirl.tk, 1 @@ -25554,7 +25462,6 @@ brainbashers.com, 1 brainboxai.com, 1 brainburger101.tk, 1 -braincandy.com, 1 brainchasm.com, 1 braincorebismarck.com, 1 braineet.com, 0 @@ -25627,8 +25534,8 @@ branchplant.com, 1 branchtobox.com, 1 branchtrack.com, 1 +brand-design.studio, 1 brandabaski.tk, 1 -brandathon.be, 1 brandbags.gr, 1 brandbastion.com, 1 brandbook.io, 1 @@ -25675,7 +25582,6 @@ brandsclub.tk, 1 brandstead.com, 1 brandstof-prijzen.nl, 1 -brandt.tech, 1 brandtechdesign.co.uk, 1 brandtrapselfie.nl, 1 brandweer-almelo.tk, 1 @@ -25706,6 +25612,7 @@ brantleycounty-ga.gov, 1 branw.xyz, 0 brard.it, 1 +brasas.ec, 1 brascast.com, 1 brasco.tk, 1 brasdir.com, 1 @@ -25756,6 +25663,7 @@ brave.com, 1 bravebaby.com.au, 1 bravebiz-news.tk, 1 +bravegk.com.ua, 1 bravelittlesquirrel.com, 1 bravelocation.com, 1 bravelychoc.com, 1 @@ -25764,7 +25672,6 @@ bravica.tk, 1 bravo.bi, 1 bravoasociados.com, 1 -bravobet.et, 1 bravodeal.com, 1 bravodescuento.es, 1 bravogutschein.at, 1 @@ -25822,10 +25729,10 @@ breakeven.tk, 1 breakfastcafe.tk, 1 breakfree.tk, 1 +breakingbreadwiththebryants.com, 1 breakingdeal.fr, 1 breakingnewskenya.tk, 1 breakingthesilence.org.il, 1 -breakingvap.fr, 1 breakinoutpr.com, 1 breakmaps.net, 1 breakofdawn.tk, 1 @@ -25845,7 +25752,6 @@ breathlesssheranda.tk, 1 brebnerprint.co.nz, 1 brechadigital.tk, 1 -brechinvillagers.ca, 1 breckle.com.ua, 1 brecknell.biz, 1 brecknell.com, 1 @@ -25902,6 +25808,7 @@ brentasresort.com, 1 brentfieldschools.cf, 1 brentnewbury.com, 1 +brenton.uk, 1 brentsoslibraries.org.uk, 1 brentsvillehall.com, 1 brentwoodpa.gov, 1 @@ -25941,7 +25848,6 @@ brew.fi, 1 brew.sh, 1 brewcentralny.com, 1 -breweinstein.com, 1 brewerybarbotley.com, 1 brewin.ml, 1 brewit.online, 1 @@ -26121,7 +26027,6 @@ brighttax.com, 1 brighttomorrowproductions.com, 1 brightvalley.com.au, 1 -brightview.net.cn, 1 brightwakeintranet.co.uk, 1 brightwebsitedesign.co.uk, 1 brightzonecleaning.com.au, 1 @@ -26324,7 +26229,6 @@ broker.vn, 1 brokerdecredite.ro, 1 brokerlink.ca, 1 -brokernew.com, 1 brokernews.com.au, 1 brokernotes.co, 1 brokeronline.net, 1 @@ -26349,6 +26253,7 @@ brontech.com, 1 bronwynlewis.com, 1 bronx-ny-dentist.com, 1 +bronya.moe, 1 broochwithme.com, 1 broodbesteld.nl, 1 broodingblogger.com, 1 @@ -26426,7 +26331,6 @@ browntiger.tk, 1 browntowncountryclub.com, 0 brownvillenebraska.gov, 1 -brownwolfstudio.com, 0 brownwoodnews.cf, 1 browsbybecca.ca, 1 browse-china.com, 1 @@ -26504,7 +26408,6 @@ brunoramos.com, 0 brunoreno.be, 1 brunoriguzzi.io, 1 -brunorogerioadvocacia.com.br, 1 brunroom.tk, 1 brunswick.com, 0 brunswickcove.com, 1 @@ -26601,6 +26504,7 @@ bsdly.net, 1 bsdracing.ca, 1 bsdug.org, 1 +bsebresult.in, 1 bsee.gov, 1 bserved.de, 0 bseuc.eu, 1 @@ -26665,8 +26569,6 @@ btc-doge.ga, 1 btc-wallet.tk, 1 btcanalyse.com, 1 -btcarg.com.ar, 1 -btcarmory.com, 1 btclients.tk, 1 btcp.space, 1 btcpool.co.uk, 1 @@ -26674,6 +26576,7 @@ btcrit.com, 1 btcwip.com, 1 btcx.com, 1 +btddd.com, 1 btdirect.uk, 1 btdproductions.tk, 1 btec.ae, 1 @@ -26742,7 +26645,6 @@ bubblin.io, 1 bubcs.com, 1 bubhub.io, 1 -bubilir.com, 1 bublup.com, 1 bubnovsky.org, 1 bubok.com.ar, 1 @@ -26822,7 +26724,6 @@ budeanu.com, 1 budejce.cz, 1 budejovickakarta.cz, 1 -budelivery.com, 1 budenn.com, 1 buderus-family.be, 1 budget-box.com, 1 @@ -26850,6 +26751,7 @@ budpolimer.com, 0 budpop.com, 1 budra.date, 1 +budronconstruction.com, 1 budscope.com, 1 budtraffic.net, 1 budulanradu.ro, 1 @@ -26929,7 +26831,6 @@ build.chromium.org, 1 build.gov, 1 build.stream, 0 -buildamericaluxuryhomes.com, 1 buildbackbetter.gov, 1 buildbytes.com, 1 buildconcierge.ga, 1 @@ -26984,7 +26885,6 @@ buirey.com, 1 buirey.fr, 1 buissonchardin.fr, 1 -buitenbeter.nl, 1 buitenposter.nl, 1 buitex.lt, 1 buitrong.net, 1 @@ -27113,6 +27013,7 @@ bungalowseljardin.com, 1 bungeeireland.tk, 1 bungotai.ga, 1 +buniq.com.br, 1 bunix.de, 0 bunker307.tk, 1 bunkerhilltx.gov, 1 @@ -27129,7 +27030,6 @@ bunova.com, 1 bunova.nl, 1 bunq.love, 1 -buns.cc, 1 bunsnbagels.com, 1 bunto-import.tk, 1 buongiornolatina.it, 1 @@ -27206,6 +27106,7 @@ burlesontx.gov, 1 burlingameparentsclub.org, 1 burlingtoncentre.ca, 1 +burlingtoncoatfactory.com, 1 burma-we-care.tk, 1 burmalin.ml, 1 burmania.tk, 1 @@ -27228,7 +27129,6 @@ burningbooks.org, 1 burningflame.tk, 1 burningflipside.com, 0 -burningseries.co, 1 burnit.tk, 1 burnsfunding.com, 1 burnsland.com, 1 @@ -27568,6 +27468,7 @@ busiteyiengelle.com, 1 buskompass.de, 1 busmanagement.com, 1 +busmaster.com.ua, 1 busned.tk, 1 busnews.tk, 1 buspark.com, 1 @@ -27585,7 +27486,6 @@ bussnang.ch, 1 bussoclean.com.au, 1 busstation.tk, 1 -bustany.org, 1 bustaura.lt, 1 bustepaga.it, 1 buster.me.uk, 1 @@ -27643,10 +27543,10 @@ buttertea.shop, 1 buttertrick.com, 1 buttonline.ch, 1 +buttonshelf.com, 1 buttonsmashers.tk, 1 butts-are.cool, 1 butttexters.ga, 1 -butunoyunlar.net, 1 butz.cloud, 1 butzies.ddnss.org, 1 buuba.bid, 1 @@ -27659,7 +27559,6 @@ buvik.gov.in, 1 buviva.com, 1 buvocastings.nl, 1 -buxoro.uz, 1 buxru.tk, 1 buxum-communication.ch, 0 buy-aleve.gq, 1 @@ -27787,6 +27686,7 @@ buytramadol.ga, 1 buytramadol.ml, 1 buyucoin.com, 1 +buyukdriverslicense.co.uk, 1 buyup.jp, 1 buyusa.gov, 1 buyventolin.cf, 1 @@ -27903,10 +27803,12 @@ byadamhr.com, 1 byalexia.gr, 1 byange.pro, 1 -byanjushka.com, 0 +byanjushka.com, 1 byar.pt, 1 byatte.com, 1 +byaurahair.com, 1 byblog.tk, 1 +bybrutus.com, 1 bybym.ml, 1 bycafeonline.com, 1 bycialis.com, 1 @@ -27986,6 +27888,9 @@ bytenews.org, 1 byteofdev.com, 1 bytepen.com, 1 +bytepoint-software.nl, 1 +bytepoint.nl, 1 +bytepoint.software, 1 bytes.co, 1 bytes.fyi, 1 bytesec.net, 1 @@ -28006,6 +27911,7 @@ bytheglass.gr, 1 bythen.cn, 0 bytheswordinc.com, 1 +bytrain.net, 1 byuro.org, 1 byzhihuo.com, 1 bzbet365.com, 1 @@ -28086,7 +27992,6 @@ c19vitamind.com, 1 c19zinc.com, 1 c1n.top, 1 -c1performanceparts.com, 1 c21first.co.il, 1 c2athletics.com, 1 c2cdn.xyz, 1 @@ -28202,6 +28107,7 @@ caburntechnologies.com, 1 cabvertising.it, 1 cac-hc.org, 1 +cac-ua.com, 1 cacao-besos.com, 1 cacao-chocolate.com, 1 cacao-gang.ml, 1 @@ -28258,7 +28164,6 @@ cadeauxfolies.fr, 1 cadecobots.com, 1 cadeengineering.com, 1 -cadeirasparaescritorio.ind.br, 1 cadenadereferidos.tk, 1 cadervaulters.co.uk, 1 cadetsge.ch, 0 @@ -28324,7 +28229,6 @@ cafedupont.co.uk, 1 cafedupont.de, 1 cafedupont.nl, 1 -cafefacil.com.br, 1 cafehaventje.tk, 1 cafeimsueden.de, 1 cafeitalia.tk, 1 @@ -28382,7 +28286,6 @@ caibi.io, 1 caic.com.sg, 1 caijunyi.net, 0 -caileb.com, 1 cailoli.com, 1 cainesjannif.com, 1 cainhoyathletic.com, 1 @@ -28427,10 +28330,10 @@ cakes.tk, 1 cakesbyzoey.com, 1 cakeshop.xyz, 1 -cakesoverseas.com, 1 cakessl.com, 1 cakestandscarriers.tk, 1 caketoindia.com, 1 +cakeup.in.ua, 1 cakir.info.tr, 1 cakko.ml, 1 caknowledge.com, 1 @@ -28669,7 +28572,6 @@ cambiowatch.ch, 0 cambodiainfo.tk, 1 cambopost.tk, 1 -cambramanresa.cat, 1 cambridge-security.com, 1 cambridgeanalytica.cz, 1 cambridgeanalytica.net, 1 @@ -28693,7 +28595,6 @@ camelia.bg, 1 camelion.tk, 1 camella.com.ph, 0 -camelotestatehomes.com, 1 camelservers.com, 1 camenisch.ws, 1 cameo-membership.uk, 1 @@ -28701,8 +28602,8 @@ cameos.bo, 1 camera-podvod.tk, 1 camerahire.com.au, 1 -camerajabber.com, 1 -cameralabs.org, 1 +camerajabber.com, 0 +cameralabs.org, 0 cameraman.tk, 1 cameramark.nl, 1 cameramemoryspeed.com, 1 @@ -28739,15 +28640,13 @@ camilia.io, 1 caminomaltes.mt, 1 caminoneocatecumenal.tk, 1 -caminosalavida.com, 1 +caminosalavida.com, 0 caminosdelcesar.com, 0 caminreal.tk, 1 camionerosdecoslada.tk, 1 camipress.ga, 1 camisado.tk, 1 camisantiago.tk, 1 -camisetas4fun.com.br, 1 -camisetasbichopreguica.com.br, 1 camisetasmalwee.com.br, 1 camisetasparatodos.tk, 1 camit.tk, 1 @@ -28786,7 +28685,6 @@ camperverzekerd.nl, 1 campfire.moe, 1 campfiretails.org, 1 -campfourpaws.com, 0 campguaikinima.com, 1 camping-aupigeonnier.fr, 1 camping-chantemerle.com, 1 @@ -28826,10 +28724,10 @@ camptonnh.gov, 1 camptuk.org, 1 campula.cz, 1 -campus-finance.com, 1 campuscom.jp, 1 campuscore.eu, 1 campusdrugprevention.gov, 1 +campusidzmx.com, 1 campuskota.com, 1 campusmedop.es, 1 campuspodsers.ga, 1 @@ -28862,6 +28760,7 @@ can-amchains.com, 1 can-fleet.com, 1 can-tran.com, 1 +canabeinternacional.com, 1 canacreative.asia, 1 canada-tourisme.ch, 0 canada2030agenda.ca, 1 @@ -28872,7 +28771,6 @@ canadafactcheck.ca, 0 canadafrancais.com, 1 canadagoosejacketscanada.ca, 1 -canadahustle.com, 0 canadajournal.com, 1 canadalife.de, 1 canadamails.tk, 1 @@ -28926,7 +28824,6 @@ canarymod.net, 1 canarypower.tk, 1 canarys.cf, 1 -canastasderegalointernacionales.com, 1 canavilage.com, 1 canavillage.net, 1 canavillagepuntacana.com, 1 @@ -29103,7 +29000,6 @@ cantosdisidentes.tk, 1 cantrack.com, 1 cantstopart.com, 1 -canukseeds.com, 1 canuluduz.tk, 1 canv4s.com, 1 canva-dev.com, 1 @@ -29143,6 +29039,7 @@ capacityproject.org, 1 capari.co, 1 caparicasurfing.com, 1 +caparicasurflessons.com, 1 caparua.com, 1 capchien.com, 1 capeannpediatrics.com, 1 @@ -29188,7 +29085,6 @@ capitalise.ai, 1 capitalism.com, 1 capitalism.party, 1 -capitalism.rip, 1 capitalist.cf, 1 capitalmarkets.online, 1 capitalmatters.cf, 1 @@ -29238,7 +29134,7 @@ cappediatrics.com, 1 capper.de, 1 cappp.cz, 1 -capradip.in, 0 +caprell.com, 1 capretraite.fr, 1 caprichosdevicky.com, 1 caprigo.ru, 1 @@ -29353,7 +29249,6 @@ carboncountywy.gov, 1 carbondaleil.gov, 1 carbondix.com, 1 -carboneventsupport.be, 1 carboneventsupport.lu, 1 carbonholic.org, 1 carbonkiller.org, 1 @@ -29446,7 +29341,6 @@ care-q.net, 1 care.com, 1 care4all.com, 1 -care4homecare.nl, 1 care4today.com, 1 careapp.com.au, 1 careapptest.dk, 1 @@ -29496,7 +29390,7 @@ caret.be, 1 caretaker.com, 1 caretogether.coop, 1 -carevan.org, 1 +carevan.org, 0 carevic.eu, 1 carey.cl, 1 careyohio.gov, 1 @@ -29513,6 +29407,7 @@ cargobay.net, 1 cargoio.com, 1 cargomaps.com, 1 +cargomovingcompany.com.ua, 1 cargorestraintsystems.com.au, 1 cargosapiens.com.br, 1 cargotariff.ml, 1 @@ -29544,7 +29439,6 @@ carisenda.com, 1 carissa.de, 1 carium.com, 1 -carjake.com, 1 carkeysanantonio.com, 1 carkeysystem.com, 1 carl-blum-haus.tk, 1 @@ -29623,7 +29517,6 @@ carltonelitetravel.ga, 1 carltonmanufacturing.co.uk, 1 carltontownfc.tk, 1 -carlvanderlaan.com, 1 carlysgarden.net, 1 carmageddon.tk, 1 carmarthenradiocontrolledcarclub.tk, 1 @@ -29704,7 +29597,6 @@ carpeleo.se, 1 carpenters.org, 1 carpentersvilleil.gov, 1 -carpet24.gr, 1 carpetandhardwoodflooringpros.com, 1 carpetcleanerreviewshq.com, 1 carpetcleanerswilmington.com, 1 @@ -29712,7 +29604,6 @@ carpetcleaningtomball.com, 1 carpetcobblers.ga, 1 carpio.tk, 1 -carplus.es, 1 carplus.net, 1 carportscanberra.com, 1 carportus.com, 1 @@ -29800,7 +29691,6 @@ cartaisapre.com, 1 cartazodiacal.com, 1 cartcardoso.pt, 1 -carte-resident.ci, 1 cartegrise.com, 1 cartegrise.xyz, 1 carteles.tk, 1 @@ -29838,7 +29728,6 @@ cartoonvibe.com, 1 cartoonwap.tk, 1 cartoradio.fr, 1 -cartorio4oficiojuazeiro.com.br, 1 cartorios.tk, 1 cartoservice.tk, 1 cartouche24.eu, 1 @@ -29863,7 +29752,6 @@ carvercountymn.gov, 1 carvoeiro-car-hire.com, 1 carvykti.com, 1 -carwashdruten.nl, 1 carwashkampen.nl, 1 carwashlogin.com, 1 carwashon5th.com, 1 @@ -29971,6 +29859,7 @@ caseificio.roma.it, 1 caselemnbarat.ro, 1 casemaka.com, 1 +casemoose.com, 1 caseof.fr, 1 casepariurionline.ro, 1 caseplus-daem.de, 1 @@ -30287,7 +30176,6 @@ casualclubdating.ml, 1 casualiswebs.com, 1 casuallyblue.xyz, 1 -casualpolarbear.com, 1 casualtime.ga, 1 casusgrillcaribbean.com, 1 cat-encyclopedia.ml, 1 @@ -30432,6 +30320,7 @@ catmoose.ca, 1 catmoz.fr, 1 catnetworks.co.jp, 1 +catniphaven.com, 1 catnippery.com, 1 catnmeow.com, 1 catphysics.com, 1 @@ -30520,7 +30409,6 @@ cbcembalagens.com.br, 1 cbcentelles.tk, 1 cbcexeter.org, 1 -cbcf.info, 1 cbcnet.co.za, 1 cbcnet.info, 1 cbd-natural.de, 1 @@ -30538,6 +30426,7 @@ cbdlinks.xyz, 1 cbdnational.com, 1 cbdoilcures.co, 1 +cbdtelegram.com, 1 cbeal-fumeirodetrancoso.pt, 1 cbeal.pt, 1 cbecrft.net, 1 @@ -30545,7 +30434,7 @@ cbflleida.cat, 1 cbh.org, 1 cbhcfl.gov, 1 -cbhf.ca, 0 +cbhf.ca, 1 cbhq.net, 1 cbi-epa.gov, 1 cbideal.com.au, 1 @@ -30557,6 +30446,7 @@ cbmc.store, 1 cbmconnect.com, 1 cbmusa.com, 1 +cbnegocial.com.br, 1 cboard.ml, 1 cboard.net, 1 cboss.xyz, 1 @@ -30657,7 +30547,6 @@ ccnbikes.com, 1 ccnda.net, 1 ccnda.org, 0 -ccnexus.global, 1 ccnm.cc, 1 cco.or.jp, 1 ccoo.cat, 1 @@ -30700,6 +30589,7 @@ ccwebdevelopment.com, 1 ccxperience.com, 1 cd-ed.com, 1 +cd-n.org, 1 cd-shopware.de, 1 cd-sport.com, 1 cd.net.tr, 1 @@ -30784,14 +30674,12 @@ ce-agentur.de, 0 ce-design.eu, 1 ce-na.ru, 1 -ce-tuifrance.com, 1 ce-webdesign.de, 1 cea.ru, 1 ceafinney.com, 1 ceakumal.org, 1 ceannard.net, 1 cearaagora.com.br, 1 -cearaleste.com.br, 1 cearl.cc, 1 ceatheneum.com, 1 ceba-cuec.ca, 0 @@ -30848,6 +30736,7 @@ ceiba.com.co, 1 ceicer.eu, 1 ceidf-vie-cooperative.fr, 1 +ceiexam.sg, 1 ceifx.com, 1 ceilidhstockholm.se, 1 ceilimoss.tk, 1 @@ -30861,7 +30750,6 @@ celadas.tk, 1 celarsports.fr, 1 celayix.com, 1 -celcelulares.com, 1 celcomhomefibre.com.my, 1 cele.bi, 1 celebavirus.com, 1 @@ -30877,7 +30765,6 @@ celebrex.ga, 1 celebrex100mg.cf, 1 celebritiesblog.tk, 1 -celebritiesforcharity.org, 1 celebritydailynews.ml, 1 celebrityfakes.tk, 1 celebrityguard.co, 1 @@ -30891,7 +30778,6 @@ celebrow.com, 1 celebxx.com, 1 celectro-pro.com, 1 -celegritty.com, 0 celendo.ga, 1 celeraindustries.tk, 1 celero.ca, 1 @@ -30946,7 +30832,6 @@ celulares.com, 1 celulas-estaminais.info, 1 celuliteonline.com, 1 -cemac.int, 1 cemada.cz, 1 cembra.ch, 1 cemcerkez.com, 1 @@ -31002,7 +30887,6 @@ centr.dn.ua, 1 central-apartman.tk, 1 central4.me, 1 -centralbank.ie, 0 centralbetsers.ga, 1 centralbetsest.ga, 1 centralcityjuniorkindergarten.com, 1 @@ -31033,6 +30917,7 @@ centralnic.com, 1 centralnicregistry.com, 1 centralpaellera.com, 1 +centralpay.eu, 1 centralpinesnc.gov, 1 centralsite.tk, 1 centralsoft.tk, 1 @@ -31046,7 +30931,6 @@ centrationgame.com, 1 centre-commercial.fr, 1 centre-equestre.net, 1 -centre-hospitalier-ruffec.fr, 1 centre-maiakovski.fr, 1 centreagree.com, 1 centreal.gov, 1 @@ -31096,7 +30980,6 @@ centsiwallet.com, 1 centura.de, 1 centuria.co.nz, 1 -centuria.com.au, 0 centurialeonina.com, 1 centurion-consulting-cie.eu, 1 centurion-consulting.eu, 1 @@ -31166,7 +31049,6 @@ ceremonybydesign.com.au, 0 cerena-silver.ru, 0 ceres-corp.org, 0 -cerevel.com, 1 cerezacomunicacion.com, 1 cerfid.com.pe, 1 cernac.cz, 1 @@ -31195,11 +31077,11 @@ certaintelligence.com, 1 certaireland.ie, 1 certasenergy.co.uk, 1 -certbus.com, 1 certcenter.com, 0 certfa.com, 1 certi.photo, 1 certidao-nascimento-pt.org, 1 +certificadodigitalpari.com.br, 1 certificados.edu.do, 1 certificatedetails.com, 1 certificateoflogistics.ga, 1 @@ -31269,7 +31151,6 @@ cesobaly.cz, 1 cesonia.io, 1 cespedes.fr, 1 -cestasdepresente.com.br, 1 cestasedelicias.com.br, 1 cestasencantopresentes.com.br, 1 cestaswmonline.com.br, 1 @@ -31302,11 +31183,9 @@ cewek.ml, 1 cewood.xyz, 1 cexplorer.io, 1 -ceyhanmolla.com, 1 ceyizlikelisleri.com, 1 ceylondigital.co.uk, 1 ceylonnomadtours.com, 1 -ceylontea.org, 1 cezannehr.com, 1 cezdent.com, 1 cf-connect.nl, 1 @@ -31318,6 +31197,7 @@ cfaimpact.com, 1 cfan.space, 1 cfany.org, 1 +cfar.org, 0 cfasync.ga, 1 cfbenchmarks.com, 1 cfc-swc.gc.ca, 1 @@ -31368,7 +31248,6 @@ cgan.pw, 1 cgarchives.com, 1 cgbassurances.ch, 0 -cgbf.org, 0 cgbh3.gq, 1 cgbproduction.tk, 1 cgbunch.com, 1 @@ -31457,7 +31336,6 @@ chainex.io, 1 chaingame.pro, 1 chainge-re.com, 1 -chaingpt.org, 1 chainlinkfencestlouis.com, 1 chainmail.cc, 1 chainsawprofessional.com, 1 @@ -31506,7 +31384,6 @@ chamberlinfoundation.org, 1 chambers.org.uk, 1 chamberscountytx.gov, 1 -chameleon-ents.co.uk, 1 chameleon.io, 1 chameth.com, 1 chamicro.com, 1 @@ -31514,7 +31391,6 @@ chamonixcamera.cn, 1 champagne-guilleminot.fr, 1 champagneandcoconuts.com, 1 -champagneandcoffeestains.com, 0 champaigncountyclerkil.gov, 1 champaigncountyil.gov, 1 champdogs.co.uk, 1 @@ -31566,7 +31442,6 @@ channalinflatables.com, 1 channel, 1 channel-7.net, 1 -channel-iptv.com, 1 channelingranny.com, 1 channelist.tk, 1 channellife.asia, 1 @@ -31609,7 +31484,7 @@ chapelhillnc.gov, 1 chapelhillobgyn.com, 1 chapelhousevet.co.uk, 1 -chapelle.co.uk, 1 +chapelle.co.uk, 0 chapellerie-traclet.com, 1 chapiteauxduleman.fr, 1 chapleau.ca, 1 @@ -31638,14 +31513,13 @@ charityvest.org, 1 chariz.com, 1 charket.com.cn, 1 -charl.eu, 1 charlageneral.tk, 1 charleliphile.tk, 1 charlenevondell.com, 1 charleroi-duty-free.com, 1 charles-darwin.com, 1 -charles-migaud.fr, 1 charles-pozzi.fr, 1 +charlesbank.com, 1 charlesbordet.com, 1 charlesbwise.com, 1 charlescwcooke.com, 1 @@ -31725,6 +31599,7 @@ chartkick.com, 1 chartlands.org, 1 chartmogul.com, 1 +chartpixel.com, 1 chartreuse.fr, 1 chartsy.de, 1 charuga.com.au, 1 @@ -31748,7 +31623,6 @@ chastitybelts.tk, 1 chat-cam.tk, 1 chat-edu.org.uk, 1 -chat-libera.com, 1 chat-porc.eu, 1 chat.cz, 1 chat2.cf, 1 @@ -31785,22 +31659,20 @@ chateaulabrede.com, 1 chateaulacordeliere.fr, 1 chatedit.org.uk, 1 +chatelaine.com, 1 chateroids.com, 1 chatforskning.no, 1 chatfreespeech.com, 1 -chatgayitalia.it, 1 chatgen.ai, 1 chatgpt.com, 1 chatgptv.net, 1 chatgptwith.me, 1 -chatgratis40.it, 1 chatgtd.net, 1 chathamcountync.gov, 1 chathameducationfoundation.org, 1 chathamil.gov, 1 chathund.de, 1 chatify.com, 1 -chatinsieme.it, 1 chatkisskiss.tk, 1 chatkitty.com, 1 chatline.cf, 1 @@ -31818,7 +31690,6 @@ chatplanet.com, 1 chatpoint.tk, 1 chatreplay.stream, 1 -chatrium.com, 1 chatroomfans.tk, 1 chatshort.com, 1 chatstat.com, 1 @@ -32027,7 +31898,6 @@ chefcuisto.com, 1 chefdehome.com, 1 chefforaday.it, 1 -chefkoch.de, 1 cheflindseyfarr.com, 1 chefnardulli.com, 1 chefpablito.tk, 1 @@ -32144,8 +32014,6 @@ cherryjimbo.sucks, 1 cherrynova.live, 1 cherryonit.com, 0 -cherrypixel.com, 1 -cherryq.com.my, 1 cherubicsoft.com, 1 cheryforum.net, 1 cheryls.com, 1 @@ -32158,7 +32026,6 @@ cheshirex.com, 0 chesolar.cz, 1 chess-mentor.com, 1 -chessiefcu.org, 1 chesslovin.com, 1 chesspoint.ch, 1 chesstempo.com, 1 @@ -32196,6 +32063,7 @@ chgaleriatomaszow.pl, 1 chhlayban.tk, 1 chhy.at, 1 +chi-new-energy.com.ua, 1 chialab.eu, 1 chialab.info, 1 chialab.io, 1 @@ -32253,7 +32121,7 @@ chicofc.tk, 1 chicorec.gov, 1 chicospanico.tk, 1 -chicparfums.ca, 0 +chicparfums.ca, 1 chicurrichi.com, 1 chief.tools, 1 chieffamilyofficer.info, 1 @@ -32342,6 +32210,7 @@ chimaeraconsulting.eu, 1 chimaira.tk, 1 chimcanhcut.tk, 1 +chime.com, 1 chimebank.com, 1 chimera.sh, 1 chimeratool.com, 1 @@ -32482,7 +32351,6 @@ chnbilling.com, 1 chndrb.in, 1 chnj.gov, 1 -chobble.com, 1 chobitool.com, 1 chobotsonline.com, 1 choccychox.com, 1 @@ -32517,6 +32385,7 @@ choice-design.com.tw, 1 choiceautoloan.com, 1 choiceroofingsolutions.com, 1 +choicespalliative.org, 1 choiceuniontown.org, 1 choirofbeirut.cf, 1 choisirmoneau.blog, 1 @@ -32612,6 +32481,7 @@ chrismiller.xyz, 1 chrismorgan.info, 1 chrismurray.co.uk, 1 +chrisnov.com, 1 chrispaul.ml, 1 chrispontius.tk, 1 chrisrude.com, 1 @@ -32679,6 +32549,7 @@ christianmorales.tk, 1 christianmuseumtours.com, 1 christianoliff.com, 1 +christianotero.co, 1 christianplumbingservices.com, 1 christianr.me, 1 christianrasch.de, 1 @@ -32725,7 +32596,6 @@ christopherd.me, 1 christopherfuhrmann.com, 1 christophergowerjohnson.com, 1 -christopherjdoyle.com, 1 christopherjferguson.com, 1 christopherjohnphotography.com, 1 christopherkennelly.com, 1 @@ -32740,7 +32610,6 @@ christophkranebitter.at, 1 christophkreileder.com, 1 christophsackl.de, 1 -christreformedchurchdfw.org, 1 christthegoodshepherd.org, 1 christthekingparish.net, 1 christtheredeemer.us, 1 @@ -32861,7 +32730,6 @@ chunkeat.cyou, 1 chunkeat.me, 1 chunkeat.ml, 1 -chuongle.com, 1 chuou-labo.com, 1 chupacabra-drift.pl, 1 chupadelfrasco.com, 1 @@ -33062,7 +32930,6 @@ cinemaclub.co, 1 cinemadoma.tk, 1 cinemafrix.cf, 1 -cinemaholics.ru, 1 cinemaperto.tk, 1 cinemaschool.by, 1 cinemasetfree.com, 1 @@ -33116,7 +32983,6 @@ cioxhealth.com, 1 cip.md, 1 cipartyhire.co.uk, 1 -cipf.ca, 0 cipher.team, 1 cipherboy.com, 1 cipherfunk.com, 1 @@ -33253,7 +33119,6 @@ citizenside.fr, 0 citizensleague.org, 1 citizentruth.org, 1 -citoday.com, 1 citos.ga, 1 citoyen.eu, 1 citromail.hu, 1 @@ -33293,7 +33158,9 @@ cityhide.tk, 1 cityhotel.tk, 1 cityjam.tk, 1 +citylift.com.ua, 1 citylocal.cf, 1 +citymeats.com, 1 cityofabbotsfordwi.gov, 1 cityofadelga.gov, 1 cityofallisonia.gov, 1 @@ -33453,9 +33320,7 @@ citypress.ga, 1 citypress.gq, 1 citypro.tk, 1 -cityprotowing.com, 1 cityprotowingdallas.com, 1 -cityradiusmaps.com, 1 cityscapeinsurance.com, 1 cityseeker.com, 1 citysmartdmc.com, 1 @@ -33571,7 +33436,6 @@ cklie.de, 1 ckliemann.com, 1 ckliemann.net, 1 -ckna.ca, 1 ckostecki.de, 1 ckp.ie, 1 ckpl.io, 1 @@ -33587,6 +33451,7 @@ cl0ud.space, 0 claarycherry.com, 1 clacetandil.com.ar, 1 +clackyfest.com, 1 clactonfencingsupplies.co.uk, 1 clad.cf, 1 clague.moe, 1 @@ -33764,7 +33629,6 @@ classicpraha.com, 1 classics.io, 1 classicstories.tk, 1 -classictheatrecumbria.co.uk, 0 classificacaogeral.com.br, 1 classificadostodaoferta.tk, 1 classifiedsgulf.com, 1 @@ -33873,14 +33737,13 @@ cleanuri.com, 1 cleanway.dk, 1 cleanweb.solutions, 1 -cleanzer.id, 1 +cleanwithspot.com, 1 clear-eyes.se, 1 clearbit.com, 1 clearbodyclearmind.com, 1 clearbooks.co.uk, 1 clearbookscdn.uk, 1 clearbrand.com, 1 -clearbreezesecuritydoors.com.au, 1 clearbridgebranding.com, 1 clearchatsandbox.com, 1 clearcreekcountyco.gov, 1 @@ -34091,11 +33954,12 @@ clik.ga, 1 clim-past-discuss.net, 1 clim-past.net, 1 +clima-techservices.co.uk, 1 clima.vip, 1 climaencusco.com, 1 climaffaires.com, 1 climarte.org, 1 -climate.biz, 1 +climate-film.com, 1 climatebrick.com, 1 climatechangedmit.com, 1 climatecore.gov, 1 @@ -34196,7 +34060,6 @@ clipsalcortex.com, 1 cliqit.com.au, 1 cliquetis.ddns.net, 1 -cliqz.com, 1 clirnet.com, 1 clive.io, 1 cliveptr.cc, 1 @@ -34215,13 +34078,13 @@ clockify.me, 1 clockka.com, 1 clockka.it, 1 +clocklab.design, 1 clocklink.com, 1 clockster.com, 0 clodeartgallery.eu, 1 clodeartgallery.it, 1 clodo.it, 1 clodoteam.ga, 1 -cloeri.com, 1 clog.rocks, 1 clojurefactory.io, 1 clokdways.com, 1 @@ -34315,13 +34178,13 @@ cloudchart.site, 1 cloudcloudcloud.cloud, 1 cloudcraftmc.de, 1 -cloudcybersecure.com, 1 clouddark.xyz, 1 clouddaten.de, 1 clouddesk.co.uk, 1 clouddog.com.br, 1 clouddomain.tk, 1 clouddownloader.net, 1 +cloudeezy.com, 1 cloudengage.com, 1 cloudera.com, 0 cloudevolutionforum.com.br, 1 @@ -34400,7 +34263,6 @@ cloudsecuritycongress.org, 1 cloudseptam.fr, 1 cloudsharp.io, 1 -cloudshiftgroup.co.uk, 1 cloudsib.ddns.net, 1 cloudsign.jp, 1 cloudskill.in, 1 @@ -34543,7 +34405,6 @@ clubgls.com, 1 clubhouseohio.org, 1 clubhousetownhomes.com, 0 -clubhush.ro, 1 clubic.com, 1 clubinhodobaby.com.br, 1 clubkalinka.tk, 1 @@ -34715,9 +34576,7 @@ cngvp.org, 1 cni-certing.it, 1 cni.net.id, 1 -cnil.fr, 1 cnitdog.com, 1 -cnlic.com, 1 cnlongtex.com, 1 cnmi.gov, 1 cnmilaw.gov, 1 @@ -34746,6 +34605,7 @@ co2eco.cn, 0 co2fr.ee, 0 co3app.com, 1 +co50.com, 0 coa.gov.ph, 1 coach-dortef.dk, 1 coach-enligne.fr, 1 @@ -34760,7 +34620,6 @@ coaching-impulse.ch, 0 coaching-in-veenendaal.nl, 1 coaching-oberhavel.de, 1 -coachingausbildungde.com, 1 coachingforleaders.com, 1 coachingmillenium.com, 1 coachingsantcugat.cat, 1 @@ -34923,7 +34782,6 @@ codecool.com, 1 codecrew.us, 1 codecs.com, 1 -codectron.com, 1 codedbyjim.nl, 1 codedo.info, 0 codedump.net, 1 @@ -35003,7 +34861,7 @@ codesport.io, 0 codessale.com, 1 codestudies.net, 1 -codesync.sa, 0 +codesync.sa, 1 codetahiche.com, 1 codetheweb.blog, 1 codetheworld.com, 1 @@ -35013,7 +34871,6 @@ codeupstudios.com, 1 codeux.com, 1 codeux.info, 1 -codeux.net, 1 codev.com.tr, 1 codevat.com, 1 codewaifu.com, 1 @@ -35022,7 +34879,6 @@ codewing.de, 1 codewitchbella.com, 0 codewithalisha.ga, 1 -codewithlove.blog, 1 codewizards.co.za, 1 codewrecks.com, 1 codex.online, 1 @@ -35099,12 +34955,15 @@ coffeeciel.com, 1 coffeeciel.com.tr, 1 coffeeholic.tk, 1 +coffeehousewriters.com, 1 coffeehype.co.uk, 1 coffeehype.store, 1 coffeemoment.nl, 1 coffeeplazahamburg.com, 1 coffeestain.ltd, 1 +coffeestory.in.ua, 1 coffeetom.de, 1 +coffeetori.com, 1 coffeewithsvein.com, 1 coffeist.com, 1 coffer.fi, 1 @@ -35181,7 +35040,6 @@ coinliq.com, 1 coinloan.io, 1 coinmama.com, 1 -coinmarketturkiye.com, 1 coinmotion.com, 1 coinnector.com, 1 coinnewspulse.com, 1 @@ -35335,7 +35193,6 @@ collective-incubator.de, 1 collectivecorruption.com, 1 collectivedg.com, 1 -collectivesupply.com, 1 collector.cf, 1 collectorknives.net, 1 collectorscorner.com, 1 @@ -35343,7 +35200,6 @@ college-chagall.tk, 1 college-ic.ca, 1 collegeeducation.ml, 1 -collegegirlhd.com, 1 collegeinlouisiana.com, 1 collegeinoklahoma.com, 1 collegeinoregon.com, 1 @@ -35358,7 +35214,6 @@ collegerover.com, 1 collegesecretary.cn, 1 collegesecretary.com, 1 -collegesexvid.com, 1 collegesidekick.com, 1 collegesrit.tk, 1 collegestationhomes.com, 0 @@ -35416,7 +35271,6 @@ colombiahistorica.com, 1 colombiajobstoday.com, 1 colombian.cam, 1 -colombianbride.net, 1 colombians.webcam, 1 colombo-plan.org, 1 colombyinai.ga, 1 @@ -35501,8 +35355,6 @@ columbiatwpmi.gov, 1 columbuscoffeefest.com, 1 columbuscomedyfest.com, 1 -columbushydroxide.com, 1 -columbushydroxide.org, 1 columbusks.gov, 1 columbustaxprep.com, 1 columbustelegram.com, 1 @@ -35529,6 +35381,7 @@ comanchenationpolice.gov, 1 comanchetexas.gov, 1 comanis.fr, 1 +comaporter.com, 1 comarcadelaranda.tk, 1 comarch.com, 1 comarch.es, 1 @@ -35561,7 +35414,6 @@ comebookmark.cf, 1 comebookmark.ga, 1 comebookmark.ml, 1 -comediant.de, 1 comedimagrire.it, 1 comedonchisciotte.org, 1 comedybox.ro, 1 @@ -35609,7 +35461,6 @@ comfortsolutionsair.com, 0 comfortveranda.nl, 1 comfriesland.tk, 1 -comfun.net, 1 comfuzztible.tk, 1 comfy-court.com, 1 comfy.cafe, 0 @@ -35620,7 +35471,6 @@ comical.ml, 1 comicbooktreasury.com, 0 comicborgs.com, 1 -comiccrusaders.com, 1 comiciade.de, 1 comicsans.tk, 0 comicsanshouse.ddns.net, 1 @@ -35822,6 +35672,7 @@ compassfinance.com, 1 compassionate-biology.com, 1 compassionatehlt.com, 1 +compassionaterelease.com, 1 compasslos.com, 1 compassregroup.com, 1 compattatori.it, 1 @@ -35904,6 +35755,7 @@ comprehensiveihc.com, 1 compress.cafe, 1 compressor.io, 1 +comprocanal.com, 1 comprofacil.es, 1 compromis-promesse-vente.fr, 1 compservice.in.ua, 1 @@ -35948,7 +35800,6 @@ computerhilfe-feucht.de, 1 computerinfobits.com, 1 computerjet.ru, 1 -computernerd.es, 1 computernetwerkwestland.nl, 1 computernetwork.be, 1 computerpackages.com, 1 @@ -36013,7 +35864,6 @@ conalpedis.tk, 1 conbida.co, 1 conbrio.tk, 1 -concealoutfitters.com, 1 concellodoparamo.tk, 1 concellopoio.gal, 1 concepcion-futbol-club.tk, 1 @@ -36047,7 +35897,6 @@ conclusion.nl, 0 conclusive.co.za, 1 concor.ne.jp, 1 -concord.edu, 1 concord.sh, 1 concordance.bible, 1 concretedreamsoftexas.com, 1 @@ -36066,7 +35915,6 @@ concursosabertos.com.br, 1 concursuri.biz, 0 concursurionline.ro, 1 -condecom.com.br, 1 condemnity.net, 1 condenast.co.uk, 1 condictor.pl, 1 @@ -36198,6 +36046,7 @@ connectall.tk, 1 connectandsell.com, 1 connectavid.com, 1 +connectcablenet.com, 1 connectedbynexus.com, 1 connectedmind.me, 1 connectfss.com, 1 @@ -36212,9 +36061,9 @@ connectingup.org, 1 connection-sggz.nl, 1 connectionplanet.nl, 1 +connections.je, 1 connectionstrings.com, 1 connective.com.au, 0 -connectivia.it, 0 connectivityinnovationnetwork.com, 1 connectivityparty.tk, 1 connectmath.com, 1 @@ -36331,7 +36180,6 @@ constcorrect.com, 1 constellatio.com, 1 constellationinternational.ml, 1 -constellationpharma.com, 1 constellations.ga, 1 constellatory.net, 1 constellis.com, 1 @@ -36379,8 +36227,8 @@ consultinghouse.tk, 1 consultinghousenet.tk, 1 consultingnurseest.ga, 1 -consultor.marketing, 1 consultoresrey.cl, 1 +consultoriaandrade.com.br, 1 consultoriadelactancia.com, 1 consultoriadeseguranca.com.br, 1 consultoriosodontologicos.com.br, 1 @@ -36397,7 +36245,6 @@ consumerattorneys.com, 1 consumerbureau.gov, 1 consumercal.org, 1 -consumerdatastandards.gov.au, 1 consumerfiles.com, 1 consumerfinance.gov, 1 consumerfinancial.gov, 1 @@ -36417,6 +36264,7 @@ consyltec.de, 1 contabilidadebhpampulha.com.br, 1 contabilidadebrooklin.com.br, 1 +contabilidademassarelli.com.br, 1 contabipro.io, 1 contact-checker.tk, 1 contact.inc, 1 @@ -36439,14 +36287,13 @@ contango.xyz, 1 contato.vip, 1 contecgmbh.com, 1 +contempfleury.com, 1 contemplativeeducation.org, 1 contemptevoke.com, 1 contenedoresdereciclaje.online, 1 contenized.com, 0 -contentcreatorsource.com, 1 contentmaaksters.nl, 1 contentmarathon.com, 1 -contentq.nl, 1 contents.ga, 1 contermis.com, 1 contessa32experience.com, 0 @@ -36486,7 +36333,6 @@ contrastecolombia.com, 1 contrastly.com, 1 contrastsecurity.com, 1 -contratderatisation.com, 1 contratderatisation.net, 1 contratti.it, 1 contrattipubblici.org, 1 @@ -36508,6 +36354,7 @@ controleert.nl, 1 controlewiki.be, 1 controlit.eu, 1 +controllertech.com, 1 controllingchemsex.com, 1 controlpad.com, 1 controlpro.mx, 1 @@ -36534,7 +36381,6 @@ conversationexchange.com, 1 conversatis.cf, 1 converser.tk, 1 -conversiepartners.nl, 1 conversionsciences.com, 1 conversive.nl, 1 convert.im, 1 @@ -36545,7 +36391,7 @@ convertire-documenti.it, 1 convertr.io, 1 convexic.com, 1 -conveyance.pro, 1 +conveyance.pro, 0 conveyinc.com, 1 conveyo.io, 1 convicted-driver-insurance.com, 1 @@ -36558,7 +36404,6 @@ conwaymedicalcenter.com, 1 conwaymi.gov, 1 conwaypdnh.gov, 1 -conwayregional.org, 0 conwaysc.gov, 1 conwood.best, 1 conwood.my.id, 1 @@ -36646,7 +36491,6 @@ coolweirdfacts.ga, 1 coolwinefix.com, 1 coombsinc.com, 1 -coomer.su, 1 coomonte.tk, 1 coonelnel.net, 1 coop-land.ru, 0 @@ -36799,7 +36643,6 @@ coredrive.com, 1 corefy.com, 1 coreg.tk, 1 -corehealthberks.com, 1 corelationinc.com, 1 coreless-initiative.net, 1 coremcnetwork.ml, 1 @@ -36849,6 +36692,7 @@ corisu.net, 1 corkcityfc.tk, 1 corkedwinebar.com, 1 +corker.biz, 1 corky.tk, 1 corleoncatering.com, 1 corlija.com, 1 @@ -36903,7 +36747,6 @@ coronersconnect.co.uk, 1 cororocierodebelen.tk, 1 corovan.com, 1 -corp-smart.com, 1 corp.goog, 1 corpfin.net, 1 corpheuss.ga, 1 @@ -36914,6 +36757,7 @@ corpora.ga, 1 corpora.tk, 1 corporacionamerica.com, 1 +corporacionbi.com, 1 corporate-advisory.com, 1 corporate-electric.ky, 1 corporate-university.org, 1 @@ -36949,6 +36793,7 @@ correcthorse.pw, 1 correctiv.org, 1 correctlydesign.com, 1 +corrector.com.ua, 1 corredorampr.com, 1 corredordefondo.com, 1 correncon-en-vercors.fr, 1 @@ -37029,8 +36874,6 @@ cosasdemadrid.es, 1 cosasnuevas.tk, 1 cosasque.com, 1 -cosavederein1giorno.it, 1 -cosavederein5giorni.it, 1 coschedule.com, 1 cosec.cn, 0 coshima.cf, 1 @@ -37096,7 +36939,6 @@ cospol.ch, 0 cosset.com.tw, 1 costa-ballena.tk, 1 -costablancavoorjou.com, 1 costalinux.tk, 1 costaneranorte.cl, 1 costaricadreamers.com, 1 @@ -37119,7 +36961,6 @@ costi.eu, 1 costinesti.tk, 1 costoflipitor.gq, 1 -costplusdrugs.com, 1 costravel.ru, 1 costreportdata.com, 0 costruzioni.milano.it, 1 @@ -37137,6 +36978,7 @@ coteax.nl, 1 cotejardin.gent, 1 cotennis.net, 1 +coteouestmedia.com, 1 cotevame.info, 1 coth.ml, 1 cotherstoneschool.org.uk, 1 @@ -37152,7 +36994,7 @@ cottagegroveor.gov, 1 cottagelife.com, 1 cottagessw.co.uk, 1 -cottier-angeli.swiss, 0 +cottier-angeli.swiss, 1 cottonage.tk, 1 cottonwoodcountymn.gov, 1 cottonwoodimprovement.gov, 1 @@ -37164,7 +37006,6 @@ couetteduvet.fr, 1 cougar-bordeaux.fr, 1 cougargrades.io, 1 -cougarlyon.fr, 1 coughlan.de, 1 could.jp, 1 couleur-lavande.com, 1 @@ -37214,7 +37055,6 @@ countrystylemeats.co.uk, 1 county10.com, 1 countybankdel.com, 1 -countyjailinmatesearch.com, 1 countyofbarton.gov, 1 countyofcolusaca.gov, 1 countyofkingsca.gov, 1 @@ -37240,7 +37080,6 @@ couriergrey.com, 1 couriersrs.com, 1 coursables.com, 1 -coursdejaponais.com, 1 courseconfidence.com, 1 coursehero.com, 1 coursehero.ph, 1 @@ -37336,7 +37175,6 @@ covisian.com, 0 covoiturage.fr, 1 covybrat.cz, 1 -cow-ims.herokuapp.com, 1 cowbird.org, 1 cowcreek-nsn.gov, 1 coweasy.com, 1 @@ -37372,6 +37210,7 @@ cozumelisparadise.com, 1 cozyeggdesigns.com, 1 cozynergy.com, 1 +cozzack.com, 1 cp-st-martin.be, 1 cp061.com, 0 cpacharge.com, 1 @@ -37434,7 +37273,6 @@ cpsc.gov, 1 cpsecureapp.com, 1 cpsilvicultural.com.br, 1 -cpsnl.ca, 1 cpsq.fr, 1 cpstest.live, 1 cpstest.org, 1 @@ -37543,7 +37381,7 @@ craftwmcp.xyz, 1 craftychameleonbar.com, 1 craftydev.design, 1 -craftyguy.net, 0 +craftyguy.net, 1 craftyphotons.net, 1 craftyun.cn, 1 craig-mullins.com, 1 @@ -37629,7 +37467,9 @@ crazycube.fr, 1 crazycube.tk, 1 crazydomains.ae, 1 +crazydomains.co.uk, 1 crazydomains.com.au, 1 +crazydomains.in, 1 crazydrivers.tk, 1 crazydude.tk, 1 crazyfly.tk, 1 @@ -37664,6 +37504,7 @@ crcdatatech.com, 1 crcmc.com.tw, 1 crcncc.org, 1 +crcprojects.in, 1 crcr.pw, 0 cre8iveco.com, 1 cre8ivedeals.com, 1 @@ -37683,7 +37524,6 @@ creamcastles.co.uk, 1 creamfields.com, 1 creamosweb.co, 1 -creampiepornvids.com, 1 creampiepussytube.com, 1 creamsoft.com, 1 creamyfox.com, 1 @@ -37718,6 +37558,7 @@ createuniforms.co.za, 1 createwithcynthia.com, 1 creati.me, 1 +creatiefcoaching.nl, 1 creatieven.com, 1 creatioag.com, 1 creationfox.gq, 1 @@ -37889,7 +37730,6 @@ crg-pi.com, 1 crgalvin.com, 1 crgm.net, 1 -crh.org, 0 cri-paris.org, 1 cria.jp, 1 criandosites.com.br, 1 @@ -37900,7 +37740,6 @@ cribcore.com, 1 cric-grenoble.info, 1 cricheroes.in, 1 -cricket-betting-online.in, 1 cricketarena.ml, 1 cricketnmore.com, 1 cricketwatch.org, 1 @@ -37942,11 +37781,12 @@ criminallawyerjobdescription.ga, 1 criminallawyerjobdescription.gq, 1 criminallawyerjobdescription.ml, 1 +criminallawyersingapore.com, 1 criminalminds.tk, 1 criminalnote.tk, 1 criminalskin.tk, 1 criminologia.or.cr, 1 -crimsh.com, 0 +crimsh.com, 1 crimson.no, 0 crimsonconnect.co.uk, 1 crimsoncoward.com, 1 @@ -38059,7 +37899,6 @@ croatia.hr, 1 crobeauty.com, 1 croceverdevb.it, 1 -crocheclube.com, 1 crocheteursdefrance.fr, 1 crochetkim.com, 1 crocia.com, 1 @@ -38100,7 +37939,7 @@ crookedtower.com, 1 crooklibraryor.gov, 1 crookpublichealthor.gov, 1 -croonix.tech, 1 +croonix.tech, 0 crop-alert.com, 1 cropdiagnosis.com, 1 croplife.org, 1 @@ -38131,7 +37970,6 @@ crossfitalvalade.com, 1 crossformer.com, 1 crossfox.red, 1 -crossfunctional.com, 1 crosslaketech.com, 1 crosslifenutrition.co.uk, 0 crosslimit.ga, 1 @@ -38143,7 +37981,6 @@ crosspeakoms.com, 1 crossplainstn.gov, 1 crosspointmn.org, 1 -crossriver.com, 0 crossroads-gmbh.ch, 1 crossroadsartscouncil.org, 1 crosstitch.com, 1 @@ -38209,6 +38046,7 @@ crt.cloud, 1 crt.sh, 1 crt2014-2024review.gov, 1 +crtalleres.com, 1 crtevents.co.uk, 1 crti.dz, 1 crti.tech, 1 @@ -38306,7 +38144,6 @@ cryptoarabsolar.tk, 1 cryptobal.info, 1 cryptobells.com, 0 -cryptobet.guru, 1 cryptobin.co, 1 cryptobonus.ga, 1 cryptobonus.tk, 1 @@ -38315,7 +38152,6 @@ cryptocoinbenchmark.com, 1 cryptocon.org, 1 cryptocurrency.guru, 1 -cryptocurrencylatestnews.today, 1 cryptocurrencynews.today, 1 cryptocurrencyservices.com, 1 cryptocutioner.com, 1 @@ -38330,7 +38166,6 @@ cryptofinance.ai, 1 cryptofomo.capital, 1 cryptofomocapital.com, 1 -cryptoforo.com, 1 cryptofox.nl, 1 cryptogazette.com, 1 cryptography.blue, 1 @@ -38338,7 +38173,6 @@ cryptography.io, 1 cryptogroups.xyz, 1 cryptoguidemap.com, 1 -cryptohinge.com, 1 cryptoisnotacrime.org, 1 cryptojacks.io, 1 cryptokeystack.com, 1 @@ -38374,10 +38208,8 @@ cryptophobia.nl, 1 cryptopuppers.co, 1 cryptorival.com, 1 -cryptoruay.com, 1 cryptoscamdb.org, 1 cryptoscope.io, 1 -cryptoseb.pw, 1 cryptosender.io, 1 cryptoshot.pw, 1 cryptosolicitations.com, 1 @@ -38431,6 +38263,7 @@ cs-lite.tk, 1 cs-mania.tk, 1 cs-master.tk, 1 +cs-nri.com, 1 cs-powa.tk, 1 cs-top.tk, 1 cs-tops.tk, 1 @@ -38497,7 +38330,6 @@ csffa.ca, 1 csfm.com, 1 csforstudents.nl, 1 -csfs.org.uk, 1 csgbusiness.co.uk, 1 csghomedesignbuild.com, 1 csgo-roulette.ru, 1 @@ -38650,7 +38482,6 @@ ctyrisinkneri.cz, 1 cu247secure.ie, 1 cua911.gov, 1 -cuadrosblangar.es, 1 cuarentagrados.tk, 1 cuaresmaysemanasanta.tk, 1 cuartaraiz.com, 1 @@ -38682,6 +38513,7 @@ cubefreak.tk, 1 cubegame.tk, 1 cubeinfo.tk, 1 +cubeinstallations.co.uk, 1 cubekrowd.net, 1 cubela.tech, 1 cubelify.com, 1 @@ -38718,7 +38550,6 @@ cucabot.tk, 1 cucaracha.tk, 1 cuchichi.es, 1 -cuckoo.ee, 1 cuckoohallacademy.org.uk, 1 cucumber.io, 1 cuddlecat.io, 1 @@ -38755,7 +38586,6 @@ cuir-lipari.fr, 1 cuisine-centrale17.fr, 1 cuisine-ultime.fr, 1 -cuisinezleshautsdefrance.fr, 1 cuisiniste-974.re, 1 cuitrau.tk, 1 cujanovic.com, 1 @@ -38781,6 +38611,7 @@ culturaanarquista.tk, 1 culturaarabe.tk, 1 culturabrasilia.tk, 1 +culturaelejido.com, 1 culturaeuropea.tk, 1 culturagenial.com, 1 culturahack.tk, 1 @@ -38894,7 +38725,6 @@ curiosity-driven.org, 1 curiositytrained.com, 1 curiosmos.com, 1 -curiosoando.com, 1 curious-today.com, 1 curious.host, 1 curiouscast.ca, 1 @@ -38995,6 +38825,7 @@ customcircuitsltd.co.uk, 1 customcraft.tk, 1 customdissertation.com, 1 +customer2you.com, 1 customerfocus.co.za, 1 customerinfra.com, 1 customerinfra.net, 1 @@ -39151,7 +38982,8 @@ cwmcarpentry.com, 1 cwmcpe.tk, 1 cwo.fi, 1 -cwpark.co, 1 +cwp.com.sg, 1 +cwpark.co, 0 cwr.gov, 1 cwrau.com, 1 cwrau.de, 1 @@ -39298,7 +39130,6 @@ cyberproducciones.tk, 1 cyberprogramming.tk, 1 cyberpuerta.mx, 1 -cyberpunk.guru, 1 cyberquest.cf, 1 cyberregister.nl, 1 cyberregister.org, 1 @@ -39357,7 +39188,6 @@ cybertu.be, 1 cyberuni.ir, 1 cyberwandelendetakjes.tk, 1 -cyberwarhq.com, 1 cyberwars.dk, 1 cyberwebeyeos.com, 1 cyberweightloss.com, 1 @@ -39465,6 +39295,7 @@ cytophil.com, 1 cytosorbents.com, 1 cytovet.ru, 1 +cyumus.com, 1 cyvault.io, 1 cyware.com, 0 cz.ma, 1 @@ -39564,6 +39395,7 @@ d3scene.org, 1 d3x.pw, 1 d3xt3r01.tk, 1 +d42.no, 1 d4done.com, 1 d4fx.de, 1 d4h.live, 1 @@ -39604,7 +39436,6 @@ d887vip.com, 1 d88818.com, 1 d8886.net, 1 -d88869.com, 1 d8891.net, 1 d88agent.com, 1 d898.app, 1 @@ -39839,7 +39670,6 @@ dal.net.sa, 1 dalagore.com, 1 dalailamafoundation.org, 1 -dalaran.city, 1 dalb.in, 1 dalbar.com, 1 dalbarsqm.com, 1 @@ -39878,7 +39708,6 @@ dallinbryce.com, 1 dallincooper.com, 1 dalliope.com, 1 -dallisonlee.com, 1 dallmeier.net, 0 dallydushigrill.com, 0 dalmatians.tk, 1 @@ -39889,14 +39718,13 @@ daltonmi.gov, 1 daltonohio.gov, 1 daltons.tk, 1 -daltronx.com, 1 +daltronx.com, 0 dalux.com, 1 dalycity.gov, 1 damadam.pk, 1 damades.com, 1 damag.net, 1 damarsarkilar.tk, 1 -damasgonzalezabogados.com, 1 damassimo.bg, 1 dambachpeacebuilderfellowships.org, 1 dambo.tk, 1 @@ -39952,6 +39780,7 @@ danalpay.com, 1 danalytics.com.pe, 1 danamica.dk, 1 +danandkatiegetmarried.com, 1 danandrum.com, 1 danangcitytours.com, 1 danarozmarin.com, 1 @@ -40229,7 +40058,6 @@ daotaoantoan.org, 1 daoudi.it, 1 dap-systems.de, 1 -dapasten.com, 1 daphne.informatik.uni-freiburg.de, 1 daphnedietz.com, 1 dapmalaysia.org, 1 @@ -40237,12 +40065,10 @@ dapoxetine.gq, 1 dapperdom.net, 1 dappgambl.com, 1 -dappui.com, 1 daprint.tk, 1 dapss-ut.gov, 1 dapursolo.tk, 1 daracokorilo.com, 1 -darador.net, 0 darah.info, 1 darajambili.com, 1 daralfajr.site, 1 @@ -40309,7 +40135,7 @@ darkengine.net, 1 darkenluster.space, 1 darkerlystormy.com, 0 -darkersideofmusic.com, 1 +darkersideofmusic.com, 0 darkerstormy.com, 0 darkestproductions.net, 1 darkfeeling.tk, 1 @@ -40332,7 +40158,6 @@ darkmanthra.tk, 1 darkmattertechnology.com, 1 darkmattertechnology.net, 1 -darkmemo.com, 1 darkmilknyeremeny.hu, 1 darkness-and-light.tk, 1 darkness.sk, 1 @@ -40368,7 +40193,7 @@ darktechnology.tk, 1 darktide.tk, 1 darktime.ru, 1 -darkwater.info, 1 +darkwater.info, 0 darkwater.tk, 1 darkweb.wtf, 1 darkwebkittens.xyz, 0 @@ -40378,7 +40203,6 @@ darlehen-ratgeber.de, 1 darlene.hu, 1 darlenenbocek.com, 1 -darlingdownscoffee.com.au, 1 darlington.tk, 1 darlingtonia.nl, 1 darlingtonwi.gov, 1 @@ -40387,7 +40211,6 @@ darom.jp, 1 darosen.de, 1 darosen.eu, 1 -darpa.mil, 1 darrellsmarket.com, 1 darrenflemingphotography.co.uk, 1 darrenlines.uk, 1 @@ -40423,7 +40246,6 @@ darylcumbo.net, 1 darylkoop.com, 1 darylwilcher.tk, 1 -darysvet.ru, 1 darzalex.com, 1 das-clanpage.tk, 1 das-e-rezept-fuer-deutschland.de, 1 @@ -40468,7 +40290,6 @@ dassettpottery.com, 1 dastchin.live, 1 dastchin.shop, 1 -dasteichwerk.at, 1 dastelefonbuch.de, 1 dastihawkary.org, 1 dastomize.com, 1 @@ -40493,7 +40314,7 @@ data.govt.nz, 1 data.haus, 1 data.world, 1 -data18.com, 1 +data18.com, 0 data3w.nl, 1 data4.nl, 1 dataadvantage.se, 1 @@ -40567,6 +40388,7 @@ datalinx.fr, 1 dataloft.tk, 1 datalogistics.lt, 1 +datalok.de, 1 datalysis.ch, 0 dataman.ml, 1 datamark.net, 1 @@ -40594,7 +40416,7 @@ datasciencedojo.com, 1 datasciocean.tech, 1 datascope.io, 1 -datasite.com, 0 +datasite.com, 1 dataskydd.net, 1 datasourcenj.org, 1 dataspace.pl, 1 @@ -40655,6 +40477,7 @@ datenrettung360.de, 1 datensalat.info, 1 datenschutz-berlin.de, 1 +datenschutz-consult.de, 1 datenschutz-gruenwald.de, 1 datenschutz-individuell.de, 1 datenschutz-isny.de, 1 @@ -40697,7 +40520,6 @@ datn-x.de, 1 datnenhamiltongarden.com, 1 datorb.com, 1 -datorhjalp-stockholm.se, 1 datorhjalpen.link, 1 datorhjalptaby.se, 1 datos-quimsaitw.es, 1 @@ -40724,7 +40546,6 @@ daubehosting.de, 1 dauenhauer.de, 1 daughertyplasticsurgery.com, 1 -daughtridgeenergy.com, 1 daugoitot.com, 1 daum-group.de, 1 daunatotala.ro, 1 @@ -40764,6 +40585,7 @@ davetempleton.com, 1 davewallerphotography.com, 1 davewardle.com, 1 +davewut.ca, 1 daveyconstructions.com, 1 davichete.me, 1 david-almeida.co.uk, 1 @@ -40806,7 +40628,6 @@ davidereinato.tk, 1 davidetmagali.fr, 1 davidfarland.com, 1 -davidfindlay.org, 1 davidforward.net, 1 davidg.cc, 1 davidgarymorrison.com, 1 @@ -40879,7 +40700,6 @@ davidtiffany.com, 1 davidtorres4congress.com, 1 davidvilla.tk, 1 -davidweis.eu, 1 davidzarza.tk, 1 davidzeegers.nl, 1 davidzimmerman3.com, 1 @@ -40944,6 +40764,7 @@ daxrunbase.com, 1 day, 1 day.marketing, 1 +dayachts.com, 1 dayagainstdrm.org, 1 daybreaklearning.com.au, 1 daybuy.tw, 1 @@ -41158,11 +40979,11 @@ ddays2008.org, 1 ddcakedeliveryservice.co.uk, 1 dddd.loan, 1 -dddmelbourne.com, 1 ddeaejwa.ml, 1 ddel.de, 1 dden.ca, 0 dden.website, 1 +dderyce.com, 1 ddf.net, 1 ddhlawyers.com, 1 ddhosted.com, 0 @@ -41187,7 +41008,6 @@ ddosolitary.org, 1 ddproxy.cf, 1 ddracepro.net, 1 -ddraum.de, 1 ddsdiscounts.com, 1 ddy.tw, 1 de-basiliek.tk, 1 @@ -41271,6 +41091,7 @@ dealsoncart.com, 1 dealspotr.com, 1 dealstreet.fr, 1 +dealzme.com, 1 deamonmail.tk, 1 deamsterdam.ml, 1 deanandnatalia.co.za, 1 @@ -41329,7 +41150,6 @@ debattinnlegg.no, 1 debatyun.jp, 0 debauchery.ml, 1 -debbeesbuzz.com, 1 debbiesblog.nl, 1 debbiessieraden.tk, 1 debedstedanskecasinoer.dk, 1 @@ -41456,7 +41276,7 @@ decor-anna.com, 1 decor-live.ru, 1 decor-prazdnik.ru, 1 -decora.pl, 1 +decora.pl, 0 decorahia.gov, 1 decoral.org, 1 decorarei.com, 1 @@ -41543,7 +41363,6 @@ deepbox.swiss, 1 deepbuy.tech, 1 deepchirp.com, 1 -deepchirp.top, 1 deepcloud.swiss, 1 deepgame.tk, 1 deephill.com, 1 @@ -41605,7 +41424,7 @@ defenseweapon.tk, 1 defensie.tk, 1 defensivedriving.com, 1 -defensivefirearmsinstruction.org, 1 +defensivefirearmsinstruction.org, 0 defensoresunidos.tk, 1 defero.io, 1 defesa.gov.br, 1 @@ -41630,7 +41449,7 @@ definitions360.com, 1 definitivepressurewashing.com, 1 defiscalisation.ml, 1 -defiscan.live, 0 +defiscan.live, 1 defisolutions.ch, 0 defispot.com, 1 defkey.com, 1 @@ -41768,6 +41587,7 @@ delartouducocon.com, 1 delasamericas.tk, 1 delaunay.org, 1 +delavega.ua, 1 delavska.si, 1 delawarehealth.tk, 1 delawarenation-nsn.gov, 1 @@ -41804,7 +41624,6 @@ delhitownshipmi.gov, 1 deli-fuzoku.jp, 1 deliacreates.com, 1 -deliandiver.org, 1 deliberateaf.com, 1 deliberatelyclassy.com, 1 delicaclubphils.tk, 1 @@ -41813,6 +41632,7 @@ delicatewonders.com, 1 delici.art.br, 1 deliciascomercial.com, 1 +deliciaskitchen.com, 1 delicious-audio.com, 1 delicious.gq, 1 deliciousmedia.co.uk, 1 @@ -41850,6 +41670,7 @@ deloretta.com, 1 delosgaia.nl, 1 delpark.de, 1 +delphia.com, 1 delphibasics.tk, 1 delphiday.it, 1 delphij.net, 1 @@ -41939,6 +41760,7 @@ dementievriendelijkgent.be, 1 demes.tk, 1 demesos.tk, 1 +demetra-site.com.ua, 1 demeubelmakelaar.nl, 1 demeyere-usedcars.be, 1 demfloro.ru, 1 @@ -42000,6 +41822,7 @@ demotivatorbi.ru, 1 demotour.cz, 1 demotrjct.online, 1 +demoussage-drone.fr, 1 dempe.tk, 1 demsh.org, 1 demuzere.be, 1 @@ -42018,7 +41841,7 @@ denali.net, 1 denalisculpture.com, 1 denarium.com, 1 -denationaleomgevingsvisie.nl, 1 +denationaleomgevingsvisie.nl, 0 denatured.tk, 1 denbar.org, 1 dencel.lv, 1 @@ -42076,7 +41899,6 @@ denk-it.be, 1 denker.tk, 1 denkerstube.net, 1 -denkinger-logistik.de, 1 denkit.com, 1 denkmalagentur.ch, 1 denkmalsetzung.at, 1 @@ -42117,12 +41939,14 @@ dent-yamamoto.com, 1 dent.uy, 1 denta-ua.com, 1 +dentad.com.ua, 1 dental-cloud.eu, 1 dental-colleges.com, 1 dental.gq, 1 dentalcareerfinder.com, 1 dentalcolleges.tk, 1 dentalhealth.jp, 1 +dentalib.mx, 1 dentalimplantscost.com.au, 1 dentalmonitoring.com, 1 dentalnakamura.com, 1 @@ -42155,6 +41979,7 @@ dentonolab.lt, 1 dentox.com, 1 dentrassi.de, 1 +dentrecovery.com, 1 dentsugrantgroup.com, 1 dentystabirmingham.co.uk, 1 denuevestore.com, 1 @@ -42226,7 +42051,6 @@ depicus.com, 1 depijp.tk, 1 depilazione.roma.it, 1 -depilestil.es, 1 depistage-bejune.ch, 0 depleteduranium.tk, 1 deplorablesdaily.com, 1 @@ -42272,7 +42096,6 @@ deratisation-furet.net, 1 deratisation-paris-idf.com, 1 deratisation-restaurant.fr, 1 -deratisation.maison, 1 deratisation.paris, 1 deratisationidf.com, 1 deratisationparis-75.com, 1 @@ -42307,7 +42130,7 @@ derf.fr, 1 dergon.club, 1 derguns.town, 1 -derhaeuptling.de, 1 +derhaeuptling.de, 0 derhil.de, 1 derinsular.tk, 1 derivative-calculator.net, 1 @@ -42357,6 +42180,7 @@ dersoundhunter.de, 1 derssonu.com, 1 derstulle.de, 1 +dert.online, 1 dertouristik.com, 1 derventzis.gr, 1 derw.pw, 1 @@ -42406,6 +42230,7 @@ desertsounds.org, 1 desetmilionu.cz, 1 desgenst.ch, 1 +desguacesbarcelonacat.com, 1 desguacesdecamiones.es, 1 deshalb.de, 1 deshevle-net.com, 1 @@ -42497,7 +42322,6 @@ deskture.com, 1 deslamco.com, 1 desmo.gg, 1 -desmon.blog, 1 desmondfishlibrary.org, 1 desmu.fr, 1 desna.tk, 1 @@ -42570,7 +42394,6 @@ detaildrivenpnw.com, 1 detailedimage.com, 1 detalika.ru, 1 -detallesunicos.shop, 1 detao.org, 1 detc.tk, 1 detceptam.com, 1 @@ -42744,7 +42567,6 @@ devilshakerz.com, 1 devilsophie.net, 1 devin.gay, 1 -devindavid.com, 0 devinfo.net, 0 devinite.com, 1 devinity.ai, 1 @@ -42797,6 +42619,7 @@ devries.frl, 1 devries.one, 1 devrijejansenist.nl, 1 +devs-from.asia, 1 devs.men, 1 devs4.com, 1 devsectools.com, 1 @@ -42825,7 +42648,6 @@ dew4vetoto.org, 1 dewalch.net, 1 dewalt.com, 1 -dewapress.com, 1 dewberry.com, 0 dewblog.ml, 1 dewereldvankina.be, 1 @@ -42866,7 +42688,6 @@ dezea.net, 1 dezeregio.nl, 1 dezet-ev.de, 1 -dezevenster.com, 1 dezinsekcija.online, 1 dezshop.com.ua, 1 df-clan.tk, 1 @@ -42893,7 +42714,6 @@ dfctaiwan.org, 1 dfg.re, 1 dfiik.com, 1 -dfilucky.com, 1 dfm.ae, 0 dfmn.berlin, 1 dfmvf.org, 1 @@ -42932,7 +42752,7 @@ dgap.org, 1 dgcoks.gov, 1 dgdongwd.com, 1 -dgeum.com, 0 +dgeum.com, 1 dghuat.net, 1 dghyp-immobrief.de, 1 dghyp-info.de, 1 @@ -43038,6 +42858,7 @@ diablos-obon.tk, 1 diabolic.chat, 1 diabolique.pt, 1 +diacritical.net, 1 diad.mx, 1 diadiemdangsong.com, 1 diadorafitness.es, 1 @@ -43049,6 +42870,7 @@ diagnoseo.com, 1 diagnoseo.se, 1 diagnosingfiction.com, 1 +diagnost-auto.com, 1 diagnostics.stream, 1 diagnostix.org, 1 diai.cf, 1 @@ -43084,7 +42906,6 @@ diamondforms.net, 1 diamondgoldmarkcity.cf, 1 diamondgrid.ga, 1 -diamondhedge.com, 1 diamondit.com.au, 1 diamondsystem.ro, 1 diamondtechnician.com, 1 @@ -43137,6 +42958,7 @@ diasporan.ga, 1 diasporan.gq, 1 diasporan.ml, 1 +diaspordc.com, 1 diaszporaprojekt.org, 1 diatechusa.com, 1 diatomenterprises.com, 1 @@ -43176,7 +42998,6 @@ dicionariofinanceiro.com, 1 dicionariopopular.com, 1 dicionarios.cc, 1 -dicipa.com.mx, 1 dick.red, 1 dickord.cloud, 1 dickp.it, 1 @@ -43295,7 +43116,6 @@ diengiolachoa.com, 1 dienkenijboer.nl, 1 dienmattroichonthanh.com, 1 -dienna.nl, 1 diennhienshop.com, 1 diennobi.com, 1 dienstlister.de, 1 @@ -43400,7 +43220,6 @@ digifitio.info, 1 digifloat.io, 1 digig.es, 1 -digihaler.com, 1 digiischolarships.com, 1 digilabs.fr, 1 digiland.tk, 1 @@ -43414,7 +43233,6 @@ digimen.love, 1 digimen.store, 1 digimen.top, 1 -digimen.xyz, 1 digimethods.com, 1 digimind-evolution.com, 1 digimobee.info, 1 @@ -43505,6 +43323,7 @@ digitalcompudev.com, 1 digitalconcrete.co.uk, 1 digitalcourage.de, 1 +digitalcrafter.eu, 1 digitalcraftmarketing.co.uk, 1 digitalcrisis.com, 1 digitalcrisis.us, 1 @@ -43530,7 +43349,6 @@ digitalehandtekeningen.nl, 1 digitaleplus.fr, 1 digitalerror.net, 1 -digitaletanker.com, 1 digitaletelevisie.tk, 1 digitalewelten.de, 1 digitalexpertsdirectory.com.au, 1 @@ -43581,6 +43399,7 @@ digitalmove.co.uk, 1 digitalmove.com, 1 digitalninja.tk, 1 +digitalnomadgirls.com, 1 digitalnomadsunderground.com, 1 digitalo.cz, 1 digitaloutlet.com.br, 1 @@ -43649,7 +43468,6 @@ digityp.fi, 1 digitypa.fi, 1 digivan.ml, 1 -digivideoz.com, 1 digiyatrafoundation.com, 1 diglloyd.com, 1 digminecraft.com, 1 @@ -43705,7 +43523,6 @@ dilmahtea.com, 1 dilmahtea.me, 1 dilmarames.com, 0 -dima.pm, 0 dimagrimentoincorso.it, 1 dimamergel.com, 1 dimanss47.net, 1 @@ -43808,7 +43625,7 @@ dionmirrors.nl, 1 dionysos-ios.gr, 1 diopbox.fr, 1 -dior.si, 1 +dior.si, 0 dioris.net, 1 dios.ga, 1 diospersonal.tk, 1 @@ -43882,6 +43699,7 @@ directsupplyinc.com, 1 directtwo.solutions, 1 directtwosolutions.org, 0 +directvacations.com, 1 directverify.in, 1 directview.ddns.net, 1 direitonovo.com, 0 @@ -43906,8 +43724,10 @@ dirsyncpro.org, 1 dirt-street.tk, 1 dirtcraft.ca, 1 +dirtdoggyproductions.com, 1 dirtinmyshoes.com, 1 dirty-tina.net, 1 +dirtyboyreviews.com, 1 dirtycat.ru, 1 dirtycode.tk, 1 dirtycosplay.com, 1 @@ -43931,7 +43751,6 @@ dirunreddy.tk, 1 disaana.jp, 0 disability.gov, 1 -disabilitydischarge.com, 1 disabilityscoop.com, 1 disabled-world.com, 1 disabledpersons-railcard.co.uk, 1 @@ -44016,6 +43835,7 @@ discovermodus.com, 1 discoverradiance.com, 1 discoverthehawkesbury.com.au, 1 +discoverthetech.com, 1 discoverthreejs.com, 1 discoverucg.co.uk, 1 discoveryaima.com, 1 @@ -44119,7 +43939,6 @@ disketteetikette.tk, 1 diskgem.info, 1 disking.co.uk, 1 -diskonkuota.com, 1 diskonsepatu.ga, 1 diskursmonitor.de, 1 diskuse-seznam.cz, 1 @@ -44184,6 +44003,7 @@ distraction.tk, 1 distractors.tk, 1 distratus.com, 1 +distri.com.ua, 1 distribucionmayorista.online, 1 distribucionstunel.es, 1 distribuidora-online.com, 1 @@ -44246,6 +44066,7 @@ diveidc.com, 1 diveleasia.tk, 1 divelement.ro, 1 +divelyon.fr, 1 diveplan.org, 1 divergences.eu.org, 1 divernet.com, 1 @@ -44335,7 +44156,6 @@ diygods.com, 1 diymediahome.org, 1 diysec.tk, 1 -diysonline.com, 1 diyzealot.com, 1 dizainkyhni.ml, 1 dizalty-cloud.com, 1 @@ -44433,7 +44253,6 @@ djfede.tk, 1 djfelix.tk, 1 djfilms.tk, 1 -djfrenchy.com, 1 djfunkyju.de, 1 djgarcia.tk, 1 djh-nordmark.de, 1 @@ -44620,7 +44439,6 @@ dlslab.org, 1 dlsmdportal.com, 1 dlsolutions-inc.com, 1 -dlt.green, 1 dluxelab.com, 1 dlv-registry.com, 1 dlv-registry.net, 1 @@ -44661,7 +44479,7 @@ dm4productions.com, 1 dm6.co, 1 dm7ds.de, 1 -dm8.link, 1 +dm8.link, 0 dmaglobal.com, 1 dmarc-hd.org, 1 dmarc.dk, 1 @@ -44690,7 +44508,6 @@ dmesg.sk, 1 dmfd.net, 1 dmfj.io, 1 -dmforcesupport.com, 1 dmforcesupport.marketing, 1 dmfss.com, 1 dmfss.tv, 1 @@ -44700,7 +44517,6 @@ dmi.es, 1 dmi.gov.lb, 1 dmiapis.id, 1 -dmihome.net, 0 dmilb.org, 1 dmillerlaw.com, 1 dmitaxapp.ca, 1 @@ -44864,6 +44680,7 @@ do67.de, 1 do67.net, 1 doanhai.tk, 1 +dob.com.bd, 1 dob46.mazowsze.pl, 1 dobavki.club, 1 dobbshvac.com, 1 @@ -44889,6 +44706,7 @@ dobrorok.cz, 1 dobrynyastyle.ru, 1 dobryprezident.sk, 1 +dobskateshop.com, 1 dobusinessonline.com, 1 doc-baza.tk, 1 doc-sign.fr, 1 @@ -44927,8 +44745,10 @@ docline.gov, 1 docloudu.info, 1 doclures.com, 1 +docmatter.com, 1 docmode.org, 1 docogo.ga, 1 +docortho.de, 1 docplexus.com, 1 docpost.ml, 1 docquity.com, 1 @@ -44999,18 +44819,18 @@ docupaymentuat.xyz, 1 docupub.com, 1 docusend.biz, 1 -docusign.ca, 1 -docusign.co.uk, 1 -docusign.com, 1 -docusign.com.au, 1 -docusign.com.br, 1 -docusign.com.es, 1 -docusign.de, 1 -docusign.fr, 1 -docusign.in, 1 -docusign.jp, 1 -docusign.mx, 1 -docusign.nl, 1 +docusign.ca, 0 +docusign.co.uk, 0 +docusign.com, 0 +docusign.com.au, 0 +docusign.com.br, 0 +docusign.com.es, 0 +docusign.de, 0 +docusign.fr, 0 +docusign.in, 0 +docusign.jp, 0 +docusign.mx, 0 +docusign.nl, 0 docutayho.com, 1 docutek.com.tw, 1 docxtemplater.com, 1 @@ -45035,14 +44855,13 @@ dodi-repacks.site, 1 dodiedods.fr, 1 dodikod.tk, 1 +dodlerconsulting.de, 0 dodmou.com, 1 dodolle.co.uk, 1 dodotool.com, 1 dodotool.ru, 1 -dodylesmana.com, 1 doedelzakken-jsh.tk, 1 doegirls.com, 1 -doehle-group.com, 1 doelbeleggen.nl, 1 doeleman.nl, 1 doelhypotheek.nl, 1 @@ -45054,6 +44873,7 @@ doenjoylife.com, 1 doeprojects.com, 1 doesburg-comp.nl, 1 +doesinfotech.com, 1 doesmycodehavebugs.today, 1 doetwat.nl, 1 dofashion.tk, 1 @@ -45122,7 +44942,6 @@ dogtrainingnaples.com, 1 dogualp.com, 1 dogvolution.com, 1 -dogwithblog.in, 1 dogwoodceramics.com, 1 dogworld.com.br, 1 doh.pub, 1 @@ -45200,6 +45019,7 @@ dollarprofit.tk, 1 dollarrp.pl, 1 dollarweb.cf, 1 +dolle-shop.com.ua, 1 dolledout.co.ke, 1 dollemore.com, 1 dollestieren.tk, 1 @@ -45210,7 +45030,6 @@ dollz-world.tk, 1 dollz.tk, 1 dolmencleanroom.com, 1 -dolmenejecutores.com, 1 dolmeningenieria.com, 1 dolmentree.tk, 1 dolnolinevo.tk, 1 @@ -45294,7 +45113,6 @@ domaza.ml, 1 domcc.tel, 1 domeconseil.fr, 1 -domein-direct.com, 1 domein-direct.nl, 1 domeindns.nl, 1 domeinhub.nl, 1 @@ -45306,13 +45124,13 @@ domenick-lieneweg.de, 1 domenico.lviv.ua, 1 domenicods.tk, 1 -domesticshorthaircat.com, 1 domhaase.me, 1 domharmonia.bg, 1 domhos.tk, 1 domialt.de, 1 domian.cz, 1 dominabridget.com, 1 +dominanta-law.com, 1 dominateyourmarket247.com, 1 dominationgame.co.uk, 1 dominatorauckland.co.nz, 1 @@ -45335,7 +45153,6 @@ dominik-bergmann.de, 1 dominik-steiner.at, 1 dominik.st, 1 -dominikaner-vechta.de, 1 dominikconrads.de, 1 dominikriedig.de, 1 dominikzen.com, 1 @@ -45423,7 +45240,6 @@ donalblaney.ga, 1 donalblaney.gq, 1 donaldduck.nl, 1 -donaldrussell.com, 1 donaldtrump.ga, 1 donaldwarner.com, 1 donamflor.com, 1 @@ -45446,9 +45262,9 @@ donec.tk, 1 donedeal.co.uk, 1 donedeal.ie, 1 +donegalhistory.ie, 1 doneinteriorerp.com, 1 donera.tk, 1 -donerightcorporation.com, 1 donerite.us, 1 donesenxarxa.cat, 1 donewhen.email, 1 @@ -45548,7 +45364,6 @@ doo.is, 1 dooby.fr, 1 doodle.com, 1 -doodlecorn.com, 1 doodlegames.tk, 1 doodletips.com, 1 doogej.nl, 1 @@ -45610,7 +45425,6 @@ doremy.be, 1 dorfbrunnen.eu, 0 dorfkultur.net, 1 -dorfpark-falkenburg.de, 1 dorfzittig.de, 1 doriangardes.fr, 1 dorianharmans.nl, 1 @@ -45635,12 +45449,10 @@ dorogaminina.tk, 1 dorotaorlowska.pl, 1 dorotheahilti.com, 1 -dorpshuis-dwarsgracht.nl, 1 dorpsoverlegboskoop.nl, 1 dorpsparade.tk, 1 dorquelle.com, 1 dorrtownshipmi.gov, 1 -dorsaycreative.com, 1 dorth.nl, 1 dortmund.de, 1 dortmund.directory, 1 @@ -45765,7 +45577,6 @@ doubleh2go.co.nz, 1 doublejack.online, 1 doubleness.gq, 1 -doublespeak.chat, 1 doublestat.me, 1 doubletex.de, 1 doubleup.com.au, 1 @@ -45844,7 +45655,6 @@ dowling.nz, 1 dowling.tk, 1 down-load.dynu.net, 1 -down.pm, 1 downalarm.cz, 1 downalarm.sk, 1 downandouts.tk, 1 @@ -45957,7 +45767,7 @@ dpmr446.fr, 1 dpoairport.au, 1 dpoairport.com.au, 1 -dpobjetivo.com.br, 0 +dpobjetivo.com.br, 1 dpomax.com.br, 1 dpos.info, 1 dpower.tk, 1 @@ -45968,9 +45778,9 @@ dpsengineers.com.au, 1 dpsg-hohenlinden.de, 1 dpsmassage.nl, 1 -dpsource.ir, 1 dpucarriersma.gov, 1 dqfilesonline.com, 1 +dr-aldebert-orthopaedie.com, 1 dr-amar.tk, 1 dr-beyer.de, 1 dr-dedet.com, 1 @@ -46027,9 +45837,6 @@ dragon-ballz.tk, 1 dragon-chem.eu, 1 dragon-craft.tk, 1 -dragon-hearts.co.uk, 1 -dragon-hearts.com, 1 -dragon-hearts.net, 1 dragon-team.tk, 1 dragon.nu, 1 dragon26.com, 1 @@ -46057,6 +45864,7 @@ dragonqueen.fi, 1 dragonradar.tk, 1 dragonraja.tk, 1 +dragonreal.estate, 1 dragonroost.tk, 1 dragonscale.tk, 1 dragonsgate.ml, 1 @@ -46091,7 +45899,6 @@ drakiada.tk, 1 drakkarbilbao.com, 1 draliabadi.com, 0 -draljarallah.com, 1 dralucilavolasco.com.br, 1 drama.tk, 1 dramakorea.tk, 1 @@ -46118,11 +45925,12 @@ drarman.com, 1 dras.hu, 1 drasocalzado.com, 0 -drasoclothes.com, 1 +drasoclothes.com, 0 drastic-ds.com, 1 drastik.cz, 1 drasyl.org, 0 drata.com, 1 +drathaisdentista.com.br, 1 dratini0.hu, 1 draughts64.org, 1 draugr.de, 1 @@ -46140,11 +45948,9 @@ drawvesly.ovh, 1 drawxp.com, 1 drawzit.com, 1 -drazkowski.eu, 1 drbadnick.tk, 1 drbanerjeecures.in, 1 drbarnabus.com, 0 -drbaxter.com, 1 drbet.it, 1 drbinsusclinic.com, 1 drblend.com, 1 @@ -46159,7 +45965,7 @@ drchapin.com, 1 drchrislivingston.com, 1 drchristaengelbrecht.com, 1 -drchrono.com, 1 +drchrono.com, 0 drclub.tk, 1 drcomfortair.com, 1 drcommodore.it, 1 @@ -46205,7 +46011,7 @@ dreamfm.gr, 1 dreamhostremixer.com, 1 dreamhotels.com, 1 -dreamimd.com, 1 +dreamimd.com, 0 dreaminds.de, 1 dreaminformatique.tk, 1 dreaming.solutions, 1 @@ -46214,6 +46020,7 @@ dreamlab.co.jp, 1 dreamland.sh, 1 dreamlandmagic.com, 1 +dreamlandsdesign.com, 1 dreamlifeproperty.cf, 1 dreamlight.cloud, 1 dreamlinks.tk, 1 @@ -46309,7 +46116,7 @@ drexelwood.com, 1 dreyfussplasticsurgery.com, 1 drezzy.it, 1 -drfirst.com, 1 +drfirst.com, 0 drfranciscofonseca.com.br, 1 drfrey.ch, 0 drfuhrman.com, 1 @@ -46380,7 +46187,6 @@ drilster.nl, 1 dring.tf, 1 drink-team.tk, 1 -drinkablegifts.com, 1 drinkaware.ie, 1 drinkbigeasy.com, 1 drinkcontrolapp.com, 1 @@ -46469,6 +46275,8 @@ drkazim.com, 1 drkbri.ru, 1 drkhsh.at, 1 +drkolacz.com, 1 +drks.de, 1 drksachsen.de, 1 drlandis.com, 1 drlarakiortho.com, 1 @@ -46491,6 +46299,7 @@ drmvl.org, 1 drnatura.fr, 1 drnjewels.com, 1 +droasiaperu.com, 0 drobina.top, 1 drogaleste.com.br, 1 drogariasnovafarma.com.br, 1 @@ -46706,6 +46515,7 @@ dschwarzachtaler.de, 1 dscribedata.com, 1 dscsigncert.com, 1 +dsdesign.lt, 1 dsdlove.com, 1 dsdomains.com, 1 dsds-ltd.com, 0 @@ -46765,7 +46575,6 @@ dsv-salesmanager.de, 1 dsy4567.cf, 1 dsysav.com, 1 -dsysav01.com, 1 dsysav02.com, 1 dsyunmall.com, 1 dt-privacyportal-ui.azurewebsites.net, 1 @@ -46812,7 +46621,6 @@ dtuaarsfest.dk, 1 dtune.me, 1 dtvizlab.lt, 1 -dtx.sk, 1 du.co, 1 dual-aspect.com, 1 dual-universe.ga, 1 @@ -46837,7 +46645,7 @@ dubaifitnesschallenge.com, 1 dubaigrandsale.com, 0 dubailuxuryinvestors.com, 1 -dubaimegadeals.com, 0 +dubaimegadeals.com, 1 dubaimonsters.com, 1 dubaipremiuminvest.com, 1 dubairanking.com, 1 @@ -46913,7 +46721,6 @@ dudesunderwear.com.br, 0 dudleypolicema.gov, 1 due-diligence-security.com, 1 -dueback.com, 1 duediligencedataroom.com, 1 duelhost.dk, 1 duelingaces.com, 1 @@ -47036,7 +46843,6 @@ dunkelmann.eu, 1 dunkerhosting.nl, 1 dunkirkin.gov, 1 -dunklau.fr, 1 dunkle-seite.org, 1 dunlaptn.gov, 1 dunmanelectric.com, 1 @@ -47073,6 +46879,7 @@ dura.si, 1 durabletravailler.tk, 1 duracell.com, 1 +durad.in.rs, 1 durad.xyz, 1 duraes.pt, 0 durakinesis.tk, 1 @@ -47277,6 +47084,7 @@ dxgl.info, 1 dxgl.org, 1 dxm.no-ip.biz, 1 +dxmedio.com, 1 dxrating.net, 1 dxsigner.com, 1 dxzl.org, 1 @@ -47337,7 +47145,6 @@ dyn-nserve.net, 1 dyn.net, 1 dynabob.tk, 1 -dynacast.com, 1 dynacrop.space, 1 dynadns.de, 1 dynah.net, 1 @@ -47508,12 +47315,12 @@ e-bodybuilding.tk, 1 e-boekhouden.nl, 1 e-bookshelf.de, 1 -e-borghi.com, 1 e-borneoshop.com, 1 e-boss.tk, 1 e-branchekoden.dk, 1 e-buro.tk, 1 e-census2021.bg, 1 +e-cheapsolutions.com, 1 e-classroom.tk, 1 e-coduct.eu, 1 e-coexist.com, 1 @@ -47530,7 +47337,6 @@ e-diasporan.gq, 1 e-diasporan.ml, 1 e-dnevnik.hr, 1 -e-driver.fr, 1 e-dv.eu, 1 e-emploi.be, 1 e-enterprise.gov, 1 @@ -47579,7 +47385,6 @@ e-lamp.tk, 1 e-latvenergo.lv, 1 e-launch.nl, 1 -e-learningbs.com, 1 e-lexia.com, 1 e-lifetechnology.com, 1 e-loshadka.tk, 1 @@ -47621,7 +47426,6 @@ e-receta.cl, 1 e-rechnung.digital, 1 e-recruitment.tk, 1 -e-redes.pt, 1 e-referendum.cz, 1 e-repairs.tk, 1 e-resident.gov.ee, 1 @@ -47741,7 +47545,6 @@ eaglecountyco.gov, 1 eaglecrest.us, 1 eagleeye.news, 1 -eagleeyetrip.ru, 1 eaglefireid.gov, 1 eaglegrove.gov, 1 eaglehaslended.com, 1 @@ -47764,6 +47567,8 @@ eaimty.com, 1 eaip.aero, 1 eajglobal.co.uk, 1 +eajglobal.com, 1 +eajglobal.net, 1 eajglobal.uk, 1 eajmail.com, 1 eakes.com, 0 @@ -47826,7 +47631,6 @@ earthcore.com, 1 earthcorporation.cf, 1 eartheld.tk, 1 -earthiq.news, 1 earthjustice.org, 1 earthlink.net, 1 earthpixz.com, 1 @@ -47886,6 +47690,7 @@ eastlothianbouncycastles.co.uk, 1 eastmaintech.com, 1 eastman.com, 1 +eastmedia.se, 1 eastmedo.pl, 1 eastnorschool.co.uk, 1 easton.fun, 1 @@ -47929,7 +47734,6 @@ easy-immo.info, 1 easy-immo.org, 1 easy-katka.ga, 1 -easy-m.de, 1 easy-pornvideos.com, 1 easy-rpg.org, 1 easy2bathe.co.uk, 1 @@ -48043,7 +47847,6 @@ eaton-works.com, 1 eatonbrowncountywi.gov, 1 eatouteatwell.com, 1 -eatpolkadot.su, 1 eats.soy, 1 eatsleeprepeat.net, 1 eatson.com, 1 @@ -48071,7 +47874,6 @@ eb-net.de, 1 eb7.jp, 1 eba.com.au, 1 -eba.com.ua, 1 ebag-solar.com.tr, 1 ebagroup.tk, 1 ebakery.de, 1 @@ -48240,7 +48042,6 @@ echidnalock.com.au, 1 echinus.solutions, 1 echo-in.info, 1 -echo-inc.org, 1 echo-n.nz, 0 echo-online.de, 1 echo.cc, 1 @@ -48341,6 +48142,7 @@ ecodepur.fr, 1 ecodesign-labo.jp, 1 ecodesigns.nl, 1 +ecodrive.in.ua, 1 ecoelectricsandiego.com, 1 ecoeuropa.cf, 1 ecofinancing.com, 1 @@ -48376,7 +48178,6 @@ ecolenotredame.tk, 1 ecoles-conde.com, 1 ecolint.ch, 1 -ecolive.pl, 1 ecolodgedebosuil.nl, 1 ecologeek.tk, 1 ecologiahoy.com, 1 @@ -48401,8 +48202,9 @@ ecommerceuropa.eu, 1 ecomovers.com, 1 ecompen.co.za, 1 -ecomsight.com, 0 +ecomsight.com, 1 ecomuuu.com, 1 +ecomvivid.com, 1 ecomweb.ro, 0 econativa.pt, 1 econclubny.org, 1 @@ -48519,6 +48321,7 @@ ed.gs, 1 ed.nl, 1 ed394jed.fr, 1 +eda-az.com, 1 eda-records.com, 1 eda.cooking, 0 eda.gov, 1 @@ -48576,12 +48379,13 @@ edepola.com, 1 eder-steiner.at, 1 edeseschoolvereniging.nl, 1 -edesk.com, 1 +edesk.com, 0 edevletkapisi.org, 1 edfdentalcenter.tk, 1 edfoc.org.uk, 1 edg.nl, 1 edgar.mx, 1 +edgarbollow.com, 1 edgarcountyillinois.gov, 1 edgarphotography.net, 1 edgarpierre.fr, 1 @@ -48692,7 +48496,6 @@ edopomoga.gov.ua, 1 edoss.co.za, 0 edotplus.ch, 1 -edp.com, 1 edpgassu.pt, 1 edpr.com, 1 edprnadg.com, 1 @@ -48707,7 +48510,6 @@ edrost.tk, 1 edrtravel.com, 1 edsby.com, 0 -edscha.com, 1 edscolors.com, 1 edservicing.com, 1 edshogg.co.uk, 1 @@ -48808,7 +48610,6 @@ edumaritime.net, 1 edumerson.com, 1 edumint.lt, 1 -edumovlive.com, 1 edunaut.com.au, 1 edunet.gq, 1 edunian.com, 1 @@ -48835,6 +48636,7 @@ edutechspot.com, 1 edutour.ml, 1 edutrum.com, 1 +eduxon.in, 1 eduxpro.com, 1 eduzaurus.com, 1 edv-biela.de, 1 @@ -49117,7 +48919,6 @@ egrojsoft.info, 1 egrouen.net, 1 egroupware.org, 1 -egrow.io, 1 egt-bg.com, 1 egt-digital.com, 1 egt.ee, 0 @@ -49128,6 +48929,7 @@ egypt-museum.com, 1 egypt-tourism.ga, 1 egypt-tours.tk, 1 +egyptcrops.com, 1 egypte.tk, 1 egyptenet.tk, 1 egypteweb.tk, 1 @@ -49202,7 +49004,6 @@ eickhof.co, 1 eickhof.us, 1 eickhofcolumbaria.com, 1 -eidec.edu.co, 1 eidelpes.info, 1 eifach.top, 1 eifel.website, 1 @@ -49258,7 +49059,6 @@ einreiseanmeldung.de, 1 einrichtenonline.com, 1 einsatzstiefel.info, 1 -einscube.com, 1 einstein-themanandhismind.net, 1 einsteinathome.org, 1 einsteinbros.com, 1 @@ -49271,7 +49071,6 @@ eintracht-rodde.de, 1 einvestment.com, 1 einwie.com, 1 -eipione.com, 1 eipp99.com, 1 eirastudios.co.uk, 1 eirb.fr, 1 @@ -49309,7 +49108,6 @@ eje.cz, 1 ejelectrical-qld.com.au, 1 ejerciciosmemoria.com, 1 -ejit.eu, 1 ejkathome.nl, 1 ejkatwork.nl, 1 ejkenergie.nl, 1 @@ -49351,7 +49149,6 @@ ekcrags.ru, 1 ekd.de, 1 ekdoseis.gr, 1 -ekeblock.com, 1 ekedc.com, 1 ekedp.com, 1 ekf.ee, 1 @@ -49364,7 +49161,6 @@ ekimaeseitai.com, 1 ekimma.com, 1 ekimturkgurme.com, 1 -ekinyalincak.com, 1 ekiphost.com, 1 ekivita.eu, 1 eklepka.com, 1 @@ -49532,7 +49328,6 @@ eldorado-casino-zerkalo.beauty, 1 eldorado-casino.beauty, 1 eldorado-casino.skin, 1 -eldoradocasino-zerkalo.site, 1 eldoradocylinders.com, 1 eldoradoil.gov, 1 eldoradotechnical.com, 1 @@ -49611,6 +49406,7 @@ electricwestlakevillage.com, 1 electricwokstore.com, 1 electriczone.tk, 1 +electrochef.es, 1 electrocomplect.com.ua, 1 electrocuted.com, 1 electrodomesticos.tk, 1 @@ -49728,6 +49524,7 @@ elektroprom.tk, 1 elektror.com, 1 elektror.de, 1 +elektrosety.com.ua, 1 elektrotango.tk, 1 elektrotechnik-heisel.de, 1 elektrotechnik-kaetzel.de, 1 @@ -49755,7 +49552,7 @@ elementarewatson.it, 1 elementarium.cf, 1 elementarium.ga, 1 -elementarywave.com, 1 +elementarywave.com, 0 elementblend.com, 1 elementbookings.com, 1 elementedigitale.ro, 1 @@ -49784,7 +49581,6 @@ elenaristeska.tk, 1 elenaristeskaweb.tk, 1 elenashilko.ga, 1 -elenaskincarespa.com, 1 elenatroncone.tk, 1 elenavoce.cf, 1 elenayulkina.ru, 1 @@ -49992,7 +49788,6 @@ elitechz.pro, 1 elitecleaningservices.com.cy, 1 eliteco.tk, 1 -elitecontentmarketer.com, 1 elitedns.info, 1 elitedns.org, 1 elitefintechglobal.com, 1 @@ -50039,6 +49834,7 @@ eljef.me, 1 elka-piter.ga, 1 elkampeuzo-musique.tk, 1 +elkarec.com, 1 elkem.com, 1 elkgroveil.gov, 1 elkhaus.de, 1 @@ -50058,6 +49854,7 @@ ellas-haarshop.nl, 1 ellasbubbles.com, 1 ellatotal.com, 1 +elle-fanning.info, 1 elle-weine.de, 1 elle.se, 1 elledecor.tk, 1 @@ -50128,6 +49925,7 @@ elnan.do, 1 elnegocioperfecto.tk, 1 elnodiacademy.com, 1 +elnoorandelmohanad.com, 1 elo-forum.org, 1 elo-rocket.com, 1 elobservador.tk, 1 @@ -50148,7 +49946,6 @@ elontime.de, 1 elorbe.com, 1 elorrieta.eus, 1 -elos.ro, 1 elosoavila.tk, 1 elosrah.com, 0 elovip.com.br, 1 @@ -50203,6 +50000,7 @@ elsg.co.uk, 1 elshop1eu.com, 1 elshou.com, 1 +elsoundspeakers.com, 1 elstravato.com, 1 elsuccionador.com, 1 elsvanderlugt.nl, 1 @@ -50258,7 +50056,6 @@ elweronete.tk, 1 elwix.com, 1 elyazmusic.com, 1 -elycoin.io, 0 elyland.net, 1 elysiandigital.co, 1 elysiria.fr, 1 @@ -50408,7 +50205,6 @@ emergency-federal-register.gov, 1 emergencycommand.us, 1 emergencydispatch.org, 1 -emergencyhvacservices.com, 1 emergencynewcastle.com.au, 1 emergencyportal.tk, 1 emergenzaduepuntozero.it, 1 @@ -50432,7 +50228,7 @@ emil.click, 0 emileon.gr, 1 emilianomaccaferri.com, 1 -emiliaperkkola.fi, 1 +emiliaperkkola.fi, 0 emiliaromagnaeconomy.it, 1 emiliederavinspain.tk, 1 emiliehouse.net, 1 @@ -50478,7 +50274,6 @@ emita.ee, 1 emiten.com, 1 emivauthey.com, 0 -emkan-furniture.com, 1 emkanrecords.com, 0 emkode.pl, 1 emlakforum.com.tr, 1 @@ -50518,6 +50313,7 @@ emo-poris.com, 1 emo.ie, 1 emocionestlp.com, 1 +emocionypensamiento.com, 1 emoforum.tk, 1 emoji-meaning.org, 1 emoji-symbols.org, 1 @@ -50587,7 +50383,7 @@ employer.gov, 1 employer411.com, 1 employeradmin.com, 1 -employersolutionsgroup.com, 1 +employersolutionsgroup.com, 0 employersupport.co.uk, 1 employflorida.com, 1 employmax.co.za, 1 @@ -50688,7 +50484,6 @@ emuser.tk, 1 emusicuz.tk, 1 emvoiceapp.com, 1 -emw3.com, 1 emwa.org, 1 emxvn.co.za, 1 emyr.net, 1 @@ -50707,7 +50502,6 @@ en4rab.co.uk, 1 enaah.de, 1 enable-javascript.com, 1 -enableyourlife.com, 1 enabling.ga, 1 enablingcommunities.com.au, 1 enablingguide.sg, 1 @@ -50717,7 +50511,6 @@ enalean.com, 1 enam.gov.in, 1 enamae.net, 1 -enamelpin.club, 1 enaminestore.com, 1 enamonada.com, 1 enasher.com, 1 @@ -50732,9 +50525,11 @@ encausate.com, 1 encd.life, 1 ence.es, 1 +encenna.com.br, 0 encfs.win, 1 enchantedcode.co.uk, 1 enchantedcottage.tk, 1 +encherosolhos.com.br, 1 encinitastrainer.com, 1 encirca.com, 1 encircleapp.com, 1 @@ -50796,7 +50591,6 @@ enderhost.tk, 1 enderle.cloud, 1 enderman.eu, 1 -enderszone.com, 0 endiana.cf, 1 endiana.ga, 1 endiana.gq, 1 @@ -50820,7 +50614,7 @@ endometriosis.net, 1 endometriu.ml, 1 endometriumkarzinom-app.de, 1 -endondehay.com, 1 +endondehay.com, 0 endpipe.com, 1 endplasticwaste.org, 1 endpointclinical.com, 1 @@ -50860,6 +50654,7 @@ enefitvolt.lv, 1 enefitvolt.pl, 1 enefitvolt.se, 1 +enefix.eu, 1 eneko.com, 1 enel.com, 1 enelgreenpower.com, 1 @@ -50869,8 +50664,6 @@ enelxway.it, 1 enemybase.tk, 1 enemyterritory.tk, 1 -enercon.co.il, 1 -enercontechltd.com, 1 energaia.de, 1 energetic-root-medicine.net, 1 energetic.cc, 1 @@ -50975,7 +50768,6 @@ engageminty.com, 1 engagewarnerrobinsga.gov, 1 engagewell.com, 1 -engagingmuscles.com, 1 engagio.com, 1 engalego.tk, 1 enganchesevilla.es, 1 @@ -50994,7 +50786,7 @@ engg.ca, 1 enggar.tk, 1 enghero.com, 1 -engie-laadpalen.nl, 1 +engie-laadpalen.nl, 0 engima.nl, 1 engineer-kobe.ga, 1 engineer-route.com, 1 @@ -51025,7 +50817,6 @@ englandlearn.com, 1 englandschool.tk, 1 englesh.org, 1 -english-e-reader.net, 1 english-saudia.com, 1 english-to-russian-translation.tk, 1 english-training.tk, 1 @@ -51049,6 +50840,7 @@ englishprovence.com, 1 englishtofrench.eu, 1 englishvaultingsquad.co.uk, 1 +englishvip.com.br, 1 englishvit.com, 1 englishwaves.fr, 1 engraffo.com, 1 @@ -51084,6 +50876,7 @@ enizioshop.com, 1 enji-sendai.com, 1 enjieding.com, 1 +enjin.io, 1 enjin.zone, 1 enjoy-drive.com, 1 enjoyangels.com, 1 @@ -51160,7 +50953,6 @@ enrollwcc.org, 1 enroo-tech.com, 1 enrouleur-bache.fr, 1 -enroutedeliveryservice.com, 1 ensage.io, 1 ensaladasvinagreta.com, 1 ensap.gouv.fr, 1 @@ -51179,7 +50971,7 @@ ensobrands.com, 1 ensons.de, 1 ensonyan.com, 1 -enstavideo.com, 1 +enstavideo.com, 0 ensured.com, 1 ensured.nl, 1 ensurtec.com, 1 @@ -51190,6 +50982,7 @@ entactogen.com, 1 entactogens.com, 1 entasyonline.com, 1 +entbastel.de, 1 entdeckertouren.com, 1 enteente.com, 1 entegrations.io, 1 @@ -51228,9 +51021,9 @@ entomologia.it, 1 entouchgo.com, 1 entpe.fr, 1 +entradacaminitorey.com, 1 entradascorrida.com, 1 entradasfutbol.online, 1 -entrainchat.it, 1 entrainr.com, 1 entranceinfo.tk, 1 entranz.nl, 0 @@ -51257,7 +51050,6 @@ entrezdansladanse.fr, 1 entropy.su, 1 entropyofdelicatewonders.com, 1 -entropytcg.com, 1 entruempelung-berlin.de, 1 entrup.io, 1 entryboss.cc, 1 @@ -51370,7 +51162,6 @@ eohu.ca, 1 eol-team.tk, 1 eola.co, 1 -eolasinnovation.com, 1 eoliennedetoit.com, 1 eomnneo.cz, 1 eon.tech, 1 @@ -51395,7 +51186,6 @@ ep-cortex.com, 1 ep-plus.jp, 1 epa.com.es, 1 -epa.lt, 1 epagos.com.ar, 1 epal.pt, 1 epaoig.gov, 1 @@ -51407,6 +51197,7 @@ epawnatl.com, 1 epay.bg, 1 epaygateway.net, 1 +epcomputacion.com.ar, 1 epcos.com, 1 epcos.de, 1 epcwd-ca.gov, 1 @@ -51464,6 +51255,7 @@ epilepsy-channelopathy.org, 1 epilis.gr, 1 epinesdeparadis.com, 1 +epiphaniusmacar.com, 1 episails.com, 1 episkevh-plaketas.gr, 1 episode.tk, 1 @@ -51523,7 +51315,7 @@ eprzydasie.pl, 1 epsamsg.com, 1 epsi.io, 1 -epsilogix.com, 1 +epsilon.dk, 0 epsilon.photography, 1 epsilontel.com, 1 epsmil.it, 1 @@ -51531,6 +51323,7 @@ epson.ru, 1 epspolymer.com, 1 eptirgotajs.lv, 1 +epublibre.org, 1 epubreader.net, 1 epubreader.org, 1 epvd.tk, 1 @@ -51590,7 +51383,6 @@ equitablehealthycities.org, 1 equitazionepertutti.it, 1 equititleagent.com, 1 -equiton.com, 1 equity.today, 1 equitybank.com, 1 equityelevate.com, 1 @@ -51654,7 +51446,7 @@ ergaomnes.cz, 1 ergaran.tk, 1 ergela-djakovo.hr, 1 -ergobaby.com, 1 +ergobaby.com, 0 ergobyte.eu, 1 ergobyte.gr, 1 ergodark.com, 1 @@ -51816,6 +51608,7 @@ erpollo.com, 1 erpsolutionsmart.com, 1 erraen.org.ua, 1 +erreguete.gal, 1 errekaweb.tk, 1 errietta.me, 1 errlytics.com, 1 @@ -51842,6 +51635,7 @@ erstehypo.de, 1 erstiwiki.de, 1 ert.ovh, 1 +ertebatatjelve.ir, 1 ertekmakina.com.tr, 1 ertel.xyz, 0 erthisa.tk, 1 @@ -51889,6 +51683,7 @@ es.ax, 1 es.search.yahoo.com, 0 es888999.com, 1 +esa.org, 1 esaborit.ddns.net, 0 esadnext.cloud, 1 esagente.com, 1 @@ -51925,7 +51720,6 @@ escala24x7.com, 1 escalando.tk, 1 escale-communication.bzh, 0 -escale33bienetre.fr, 1 escalesensorielle.com, 1 escambiacountyal.gov, 1 escanabatownshipmi.gov, 1 @@ -52005,7 +51799,6 @@ esds.com.br, 1 eseances.ch, 1 esecuredata.com, 1 -esemtia.com, 1 esenaskincare.com, 1 eservices-greece.com, 1 eservices-mccat.gov.bf, 1 @@ -52020,7 +51813,6 @@ esgforum.com.br, 1 esginside.com.br, 1 esgr.in, 1 -esgresearch.pro, 1 esh.ink, 1 esher.ac.uk, 1 eshoeft.com, 1 @@ -52087,6 +51879,7 @@ esopticallabs.com, 1 esormestt.fr, 1 esote.net, 1 +esoteriaweb.com, 1 esoteric.website, 1 esoterik.link, 1 esoterikerforum.de, 1 @@ -52094,7 +51887,7 @@ espace-caen.fr, 0 espace-gestion.fr, 1 espace-habitat-francais.fr, 1 -espace-orenda.ch, 0 +espace-orenda.ch, 1 espace-vet.fr, 1 espace.network, 1 espacefragil.be, 1 @@ -52149,6 +51942,7 @@ esporters.today, 1 esportsbattles.ga, 1 espower.com.sg, 1 +espresine.lt, 1 espressoapp.com.br, 1 espressonews.gr, 1 esprihealth.com, 1 @@ -52252,7 +52046,6 @@ este-services.de, 1 esteban-abadahs.tk, 1 estebanborges.com, 1 -estebanoria.net, 1 esteladigital.com, 1 estelarix.com, 1 estellaequipment.com, 1 @@ -52276,6 +52069,7 @@ esthergoh.com, 1 estherlew.is, 1 esthesoleil.jp, 1 +esthetiqueboissiere.fr, 1 estila.co, 1 estiloelevadores.com.br, 1 estilopack-loja.com.br, 1 @@ -52283,7 +52077,6 @@ estintori.roma.it, 1 estiv-ales.fr, 1 estlat.eu, 0 -estoaresearch.com, 1 estoense.com, 1 estomp.de, 1 estonia.ee, 0 @@ -52437,7 +52230,6 @@ ethicalconsumer.org, 1 ethicaldata.co.uk, 1 ethicalescorts.com, 1 -ethicalhacker.agency, 0 ethicallogistics.com, 1 ethicalpolitics.org, 1 ethicaltek.com, 0 @@ -52554,7 +52346,6 @@ eugenics.org, 1 eugeniocorso.com, 1 eugenioperez.tk, 1 -eugenioruberto.it, 1 eugostodefilmesbrasileiros.tk, 1 eugster.se, 1 eujobs.hu, 1 @@ -52632,6 +52423,7 @@ eurocity.mt, 1 eurocitymalta.com, 1 eurocleanfrance.fr, 1 +eurococos.com.ua, 1 eurocomcompany.cz, 1 eurocontrol.aero, 1 eurocontrol.eu, 1 @@ -52682,6 +52474,7 @@ eurookna.tk, 1 europa-passage.de, 1 europabio.org, 1 +europack.kiev.ua, 1 europadonna.fr, 1 europainchemnitz.de, 1 europapier.net, 1 @@ -52791,6 +52584,7 @@ evaks.az, 1 evakuator-kharkov.kh.ua, 1 evakuator-tut.by, 1 +evakuator.ltd, 1 evalar-apteka.ru, 1 evalarapteka.ru, 1 evalarmarket.ru, 1 @@ -52848,7 +52642,6 @@ eveaz.com, 1 eveco-mebel.ga, 1 evedanjailbreak.com, 1 -eveetcie.com, 1 evehryday.com, 1 eveil-et-savoirs.com, 1 evelethpd.gov, 1 @@ -52964,7 +52757,6 @@ evergreendirect.org, 1 evergreenilder.tk, 1 evergreenlangladewi.gov, 1 -evergreenpeo.com, 1 evergreenproclean.com, 1 evergrowthdc.com, 1 everhome.cloud, 1 @@ -53007,7 +52799,6 @@ everyday.eu.org, 1 everydaycaitfitness.com, 1 everydaydishes.com, 0 -everydayextradimensions.com, 1 everydaygary.com, 1 everydaylifeinsurance.com, 1 everydaypower.com, 1 @@ -53122,7 +52913,6 @@ evolve.com, 1 evolveagency.gr, 1 evolvedevlabs.de, 1 -evolvedhairindia.com, 1 evolvetechnologies.co.uk, 1 evolvicity.org, 1 evolvingseo.com, 1 @@ -53151,7 +52941,6 @@ evstatus.com, 1 evt.com, 1 evtasima.name.tr, 1 -evtoday.com, 1 evu-pe.tk, 1 evv.ee, 1 evxp.it, 1 @@ -53173,7 +52962,7 @@ ewboo.com, 1 ewddlacity.com, 1 eweb.org, 1 -ewebcreative.com, 1 +ewebcreative.com, 0 ewen-bara.com, 1 ewesparky.com, 1 ewg-garching.de, 1 @@ -53208,6 +52997,7 @@ exact-distribution.com, 1 exact-online-apps-by-invantive.com, 1 exact.realty, 1 +exactlibris.com, 0 exactlyinfinite.com, 1 exactphilosophy.net, 1 exactprint.co.uk, 1 @@ -53234,7 +53024,6 @@ examity.com, 1 examone.com, 1 exampaperarchive.com, 1 -example.li, 1 example.ng, 1 exampleessays.com, 1 examroll.fr, 1 @@ -53326,6 +53115,7 @@ excoffierleonard.com, 1 excontinuum.de, 1 excursiones.tk, 1 +exdomo.com, 1 exe-boss.tech, 1 exebois.fr, 1 execbar.com, 1 @@ -53369,7 +53159,6 @@ exiletattoo.net, 1 exiletower.tk, 1 exip.ga, 1 -exipure.com, 1 exira.com, 1 exist.ru, 1 exitooutdoor.com, 1 @@ -53424,7 +53213,6 @@ expatriate.pl, 0 expe.voyage, 1 expectful.com, 0 -expecting.com.br, 1 expediteplus-asia.com, 1 expediteplus.biz, 1 expediteplus.ca, 1 @@ -53605,7 +53393,6 @@ expressinfo.cz, 1 expressinfo.sk, 1 expressional.social, 1 -expressionexpress.net, 1 expressionfunerals.co.nz, 1 expressivee.com, 1 expressmarket.ru, 1 @@ -53679,6 +53466,7 @@ extrafrei.at, 1 extrafuerdich.tk, 1 extrainsiderest.ga, 1 +extrakora.com, 1 extraligamasters.cz, 1 extraloud.tk, 1 extranetusermanager.com, 1 @@ -53704,7 +53492,7 @@ extremeprojects.tk, 1 extremeservicesandrestoration.com, 1 extremesports.tk, 1 -extremetreeandlandscape.com, 1 +extremetreeandlandscape.com, 0 extremetubepremium.com, 1 extremetunedcars.tk, 1 extremfrank.tk, 1 @@ -53766,10 +53554,10 @@ eyktasarim.tk, 1 eylea.us, 1 eylog.co.uk, 1 -eylulsohbet.net, 1 eynio.com, 1 eyodin.com, 1 eyona.com, 1 +eyoo.link, 1 eyps.net, 1 eytosh.net, 1 eyy.co, 1 @@ -53806,7 +53594,6 @@ ezpb.com, 1 ezprints.com, 1 ezpublish-france.fr, 1 -ezpzai.com, 1 ezrent.tk, 1 ezsavers.ga, 1 ezsaversers.ga, 1 @@ -53814,6 +53601,7 @@ ezscrapbooksest.ga, 1 ezshopper.co.uk, 1 ezsun.co, 1 +eztempmail.com, 1 ezvolt.com.br, 1 ezwebsearch.com, 1 ezyfitdoors.com.au, 1 @@ -53824,7 +53612,6 @@ f-401.com, 1 f-centre.ru, 1 f-droid.org, 0 -f-hd.net, 1 f-mall.jp, 1 f-mebel-na-zakaz.ru, 1 f-sato-jcp.jp, 1 @@ -53836,7 +53623,6 @@ f00f.org, 1 f0x.es, 1 f1-onlineliga.com, 1 -f1318.net, 1 f1bigpicture.com, 1 f1classement.com, 0 f1collection.com, 1 @@ -53977,7 +53763,6 @@ fabriano.com, 1 fabricacultural.org.br, 1 fabricademonstros.com.br, 1 -fabricalaser.com.br, 1 fabricandoclientes.com.br, 1 fabriceleroux.com, 0 fabricemannuelphotography.fr, 1 @@ -54092,6 +53877,7 @@ fackovec.sk, 1 facorne.com, 1 fact.cat, 1 +factaboutgirls.com, 1 factbros.com, 0 factbusterers.ga, 1 factbusterest.ga, 1 @@ -54109,6 +53895,7 @@ factorit.fr, 1 factorway.com, 1 factory-f.net, 1 +factory-fan.com, 1 factoryalimentos.com.br, 1 factorypartsdirect.com, 1 factozia.tk, 1 @@ -54263,6 +54050,7 @@ faithfulroad.org, 1 faithleaks.org, 0 faithnc.gov, 1 +faithriders.com, 1 faixaazul.com, 1 faizan.net, 1 faizanullah.com, 1 @@ -54316,7 +54104,6 @@ falck.dk, 1 falcn.io, 1 falcon.io, 1 -falconcrest-lippert.com, 1 falconerny.gov, 1 falconfrag.com, 1 falconi.com, 1 @@ -54460,12 +54247,10 @@ fan.gov, 1 fan.li, 1 fan4all.de, 1 -fanat.ua, 1 fanaticamandafans.tk, 1 fanaticosdehectorlavoeenperu.tk, 1 fanatka.tk, 1 fanbike.de, 1 -fanboi.ch, 1 fancentro.com, 1 fanclubblackhills.tk, 1 fanclubmariaciobanu.tk, 1 @@ -54490,12 +54275,12 @@ fangbing.me, 1 fangchengshang.com, 1 fangkehou.tk, 1 +fangs.ink, 1 fanidrakopoulou.tk, 1 fanjingbo.com, 1 fanniemaeloans.tk, 1 fanning.tk, 1 fannyips.tk, 1 -fanohus.de, 1 fanohus.dk, 1 fanorama.tk, 1 fanosak.tk, 1 @@ -54504,8 +54289,6 @@ fans-lily-allen.tk, 1 fansale.de, 1 fansdefoot.fr, 1 -fanshenzhiyi.com, 1 -fansmoking.com, 1 fansniper.com, 1 fansport.space, 1 fansta.jp, 1 @@ -54532,7 +54315,6 @@ fantasybet.co, 1 fantasycastles.co.uk, 1 fantasycdn.com, 1 -fantasychronicleonline.com, 1 fantasydreams.tk, 1 fantasyempires.net, 1 fantasyempires.nl, 1 @@ -54571,11 +54353,11 @@ faq.ie, 1 faqbite.com, 1 faqexchangeest.ga, 1 +faqin-hr.info, 1 faqiteam.tk, 1 far-east.tk, 1 far3link.tk, 1 fara.gov, 1 -faradji.nu, 1 faradome.ws, 1 faradrive.ir, 1 farafaratodonuevoleon.com, 1 @@ -54648,10 +54430,8 @@ farmers.gov, 1 farmersfridge.com, 0 farmersgirlkitchen.co.uk, 1 -farmforte.com, 1 farming.co.uk, 1 farmingtonlaxwi.gov, 1 -farmkazuto.com, 1 farmmaximizer.com, 1 farmocracy.in, 1 farmqa.com, 1 @@ -54855,7 +54635,6 @@ fastlaneimportautorepair.com, 1 fastme.co, 1 fastmeet.tk, 1 -fastmetrics.com, 1 fastonline.ro, 1 fastopen.ml, 1 fastos.com, 1 @@ -54958,7 +54737,7 @@ favoritestudentest.ga, 1 favoritetechers.ga, 1 favouritequotations.ca, 1 -favourperfect.com.au, 1 +favourperfect.com.au, 0 favro.com, 1 favrotest.com, 1 favtik.com, 1 @@ -55208,7 +54987,6 @@ fedsfeedfamilies.gov, 1 fedshat.space, 1 fedshirevets.gov, 1 -feeblebridges.nl, 0 feecotec.com, 1 feed-back.com, 1 feedback-project.eu, 1 @@ -55225,7 +55003,6 @@ feedingmynewbaby.com, 1 feedkovacs.hu, 1 feedmail.org, 1 -feedough.com, 1 feedstringer.com, 1 feedthefood.com, 1 feedthefuture.gov, 1 @@ -55264,7 +55041,6 @@ feetek.net, 1 feetnesclub.tk, 1 feetpa.ws, 1 -feezlinkz.com.ng, 1 feezmodo.com, 1 fef.moe, 1 fefacaram.com.br, 1 @@ -55310,7 +55086,6 @@ felcraperak.com.my, 1 feld.saarland, 1 feldbogenclub-hamburg.de, 1 -feldgut.de, 1 feldkirchen.tk, 1 feldmangallery.com, 1 feldmaraesthetics.com, 1 @@ -55323,10 +55098,8 @@ feline.ro, 1 felinefriend.co.uk, 1 felinepc.com, 1 -felipemichel.com.br, 1 felipesexto.tk, 1 felipesuri.com, 0 -felippettoassociates.com, 1 feliratok.eu, 1 felis.com.mx, 1 feliscatus.tk, 1 @@ -55374,8 +55147,6 @@ femalehumorers.ga, 1 femalehumorest.ga, 1 femaleteamest.ga, 1 -femastudios.com, 1 -femboy.clothing, 1 femboy.fan, 1 femboys.pics, 1 femcompany.nl, 1 @@ -55398,6 +55169,7 @@ femmes.gc.ca, 1 femmesaupluriel.com, 1 femmora.com, 1 +femncafe.com, 1 femtomind.com, 1 femundo.de, 1 fena.jp, 1 @@ -55561,7 +55333,6 @@ fertilitytreatmentcenter.com, 1 fertilizer.org, 1 fertilizers.tk, 1 -ferwor.studio, 1 ferydoonzandi.tk, 1 fescuesodsouthernindiana.com, 1 feseev.ml, 1 @@ -55589,7 +55360,6 @@ festivalsrit.tk, 1 festivaltower.au, 1 festivaltower.com.au, 1 -festmaniastore.com.br, 1 festo.net, 1 festo.online, 1 festrentcar.pl, 1 @@ -55869,7 +55639,6 @@ ffzellamsee.at, 1 ffzeven.de, 1 fgalegaciclismo.es, 1 -fgcarservices.com, 1 fgdc.gov, 1 fgeiger.dnshome.de, 1 fggpay.com, 1 @@ -55957,7 +55726,6 @@ fiberoptikz.tk, 1 fiberxl.com, 1 fibery.io, 1 -fibo-forex.org, 1 fibogroup.com, 1 fibrasynormasdecolombia.com, 1 fibrefly.co.uk, 1 @@ -55986,6 +55754,7 @@ fiddlestickstoys.com.au, 1 fidelis-it.ch, 1 fidelis-it.net, 1 +fidelitybank.com.gh, 1 fidelityhomestead.com, 1 fidelitysound.es, 1 fidell.com.ua, 1 @@ -56067,7 +55836,6 @@ fighter-planes.tk, 1 fighting-turtle.tk, 1 fightingshit.tk, 1 -fightingtigerbet888.com, 1 fightsupplies.co.uk, 1 fightsupplies.eu, 1 fightsupplies.net, 1 @@ -56212,7 +55980,6 @@ filmwallpapers.ml, 1 filmweltverleih.de, 1 filmyfocus.com, 1 -filmyporno.net, 1 filmzwesela.online, 1 filobot.xyz, 1 filokiralama.name.tr, 1 @@ -56220,6 +55987,7 @@ filosofia.tk, 1 filosofiafit.com, 1 filosofiskaeleonora.se, 1 +filter-kiev.com, 1 filterboxx.com, 1 filterlists.com, 1 filtershekanha.com, 1 @@ -56227,7 +55995,6 @@ filthyapartmentest.ga, 1 filtr.me, 1 filwebasia.com, 1 -fimc-biodiversityportal.org, 1 fimfiction.net, 1 fimmcyte.com, 1 fimozin.ga, 1 @@ -56253,6 +56020,7 @@ finalmenteazul.pt, 1 finalonline.tk, 1 finalrewind.org, 1 +finaltouchmusic.net, 1 finalweapon.net, 1 finalworkdriesstef.tk, 1 finalx.nl, 1 @@ -56337,6 +56105,7 @@ findcep.com, 0 finddecisionsest.ga, 1 findedeinencoach.net, 1 +findelahistoria.com, 1 finder.bike, 1 findete.tk, 1 findeth.io, 1 @@ -56413,7 +56182,7 @@ finfocus.today, 1 finform.ch, 1 finfowe.com, 1 -fingerlakesgaming.com, 1 +fingerlakesgaming.com, 0 fingerprint.com, 0 fingerprintjs.com, 1 fingerscrossed.style, 1 @@ -56464,7 +56233,6 @@ fins.money, 1 finsecurity.eu, 1 finsight.com, 1 -finsprings.org, 1 finst.com, 1 finstart.co, 1 finstererlebnis.de, 1 @@ -56690,6 +56458,7 @@ fischer-wasels-medizin.de, 1 fischerfutureheat.de, 1 fischerp.net, 1 +fischers.cc, 0 fischers.srv.br, 1 fischersports.com, 0 fisciences.com, 1 @@ -56758,7 +56527,6 @@ fitasdobonfim.com, 1 fitawakening.co.uk, 0 fitbase.cf, 1 -fitbase.fitness, 1 fitbizcpa.org, 1 fitbylo.com, 1 fitcamp.fitness, 1 @@ -56852,6 +56620,7 @@ fixcyprus.cy, 1 fixedfeeplacements.co.uk, 1 fixedgear.tk, 1 +fixedmatch.bet, 1 fixedpricemovers.com, 0 fixedtoday.com.au, 1 fixfd.com, 1 @@ -56945,6 +56714,7 @@ flaeskeklubben.dk, 1 flaeskeklubben.eu, 1 flagcdn.com, 1 +flagfox.net, 1 flaggorvarlden.se, 1 flaggrimsby.co.uk, 1 flagi-panstw.pl, 1 @@ -57027,6 +56797,7 @@ flashbackband.tk, 1 flashbeat.tk, 1 flashcardsmobile.com, 1 +flashcover.com.br, 1 flasheschile.tk, 1 flashgamedev.tk, 1 flashgamesplayer.com, 1 @@ -57062,6 +56833,7 @@ flatpackmates.co.uk, 1 flatplanet.tk, 1 flatrate.com, 0 +flatreviews.co.nz, 1 flatrooms-chiemgau.de, 1 flatsomestudio.ir, 1 flatsurfers.eu, 1 @@ -57152,7 +56924,7 @@ flevoland.nl, 1 flex-one.fr, 1 flex1solutions.com, 1 -flexalert.org, 1 +flexalert.org, 0 flexapplications.se, 0 flexartsocial.com, 1 flexbpo.com.br, 1 @@ -57240,7 +57012,6 @@ fling.dating, 1 flinny.org, 1 flintavenue.com, 1 -flintregistry.org, 1 flintstones.tk, 1 flip-flop.tk, 1 flip.kim, 1 @@ -57377,6 +57148,7 @@ floriantanner.ch, 1 florianysantiago.com, 1 floricultura24h.com.br, 1 +florida-estetica.com, 1 florida-online.tk, 1 florida-prep.org, 1 floridaagriculture.gov, 1 @@ -57434,7 +57206,6 @@ flowalyzer.com, 1 flowauditor.com, 1 flowbuk.me, 1 -flowbyjonascaldeira.com, 1 flowcount.xyz, 1 flowcrypt.com, 1 flowdise.com, 1 @@ -57449,15 +57220,11 @@ flowermound.gov, 1 flowerpassword.com, 1 flowerpictures.tk, 1 -flowers-city.com.ua, 0 flowers-shops.tk, 1 flowers.sumy.ua, 1 -flowers2moscow.com, 1 flowersbylegacy.com, 1 flowersquito.com, 1 flowerstateest.ga, 1 -flowerstopetersburg.com, 1 -flowerstoukraine.com, 1 flowerstver.ru, 1 flowerwholesale.com, 1 flowgate.net, 1 @@ -57570,7 +57337,6 @@ flybis.net, 1 flyboarder.tk, 1 flyboyfpv.com, 1 -flybyjunkhaulers.com, 0 flycolumbus.com, 1 flyer-homes.com, 1 flyer.tools, 1 @@ -57728,10 +57494,10 @@ focusmall-zielonagora.pl, 1 focusministries1.org, 1 focusoptimization.com, 1 -focusphotobooths.com, 1 focusphotography.net, 1 focusproductions.tk, 1 focustec.tk, 1 +focusti.com.br, 1 focustuningclub.tk, 1 focuswales.com, 1 fodder.ga, 1 @@ -57804,7 +57570,6 @@ follygardens.com, 1 folszyb.pl, 1 foluomeng.net, 1 -folwia.pl, 1 folxhealth.com, 1 foma.ru, 1 foma.tk, 1 @@ -57824,7 +57589,6 @@ fondbaikal.ml, 1 fonds-dieter.be, 1 fondsnieuws.nl, 1 -fonduri-structurale.ro, 1 fondy.ua, 1 fondzee.cz, 1 foneapk.com, 1 @@ -57939,7 +57703,6 @@ foodless.ga, 1 foodlicious.ml, 1 foodlightning.ga, 1 -foodlikes.com, 1 foodlimited.ga, 1 foodlist.net, 1 foodloader.net, 1 @@ -57984,6 +57747,7 @@ foodrhino.ga, 1 foodrings.ga, 1 foodrips.com, 1 +foods.pe, 1 foodsafety.gov, 1 foodsafetyjobs.gov, 1 foodsafetyworkinggroup.gov, 1 @@ -58062,7 +57826,6 @@ footloose.co.uk, 1 footmercato.net, 1 footparisien.com, 1 -footstepsinthegambia.com, 1 footstepsontheglobe.com, 1 foottube.com, 1 footvillewi.gov, 1 @@ -58210,7 +57973,6 @@ forgottenrealms.tk, 1 forgottenroadales.com, 1 forgottenworld.it, 1 -forhealth.org, 1 forhims.co.uk, 1 foriskmilldata.com, 1 forix.agency, 1 @@ -58323,7 +58085,6 @@ forstbetrieb-hennecke.de, 1 forstprodukte.de, 1 forsure.tk, 1 -forsvarsmakten.se, 0 forsyth.cc, 1 forsythco.com, 1 forsythcountync.gov, 1 @@ -58352,7 +58113,6 @@ fortipartner.dk, 1 fortipartner.net, 1 fortipartner.nl, 1 -fortipartner.pl, 1 fortipartner.se, 1 fortipartner.uk, 1 fortis174.ru, 1 @@ -58396,7 +58156,6 @@ forty.sh, 1 forty8creates.com, 1 fortycreekwhisky.com, 1 -fortygordy.com, 1 fortytwo.tk, 1 forum-4.de, 1 forum-batteries.com, 1 @@ -58467,7 +58226,6 @@ foscamcanada.com, 1 fosdem.org, 1 foselectro.ru, 1 -fosgreece.com, 1 foshanshequ.com, 0 foss-rec.net, 1 fossagarrafoni.tk, 1 @@ -58531,6 +58289,7 @@ fotografija.tk, 1 fotografoivanalmeida.com.br, 1 fotografy-help.de, 1 +fotogruppe-phos.de, 1 fotohiking.com, 1 fotohome.dk, 1 fotokorner.com, 1 @@ -58557,12 +58316,12 @@ fotostudiobasic.tk, 1 fotosubmarina.tk, 1 fotosyeventos.es, 1 +fototaniej.pl, 1 fototjansterkalmar.se, 1 fototutorial.tk, 1 fotov60.com, 1 fotovsibiri.ml, 1 fotowand.ml, 1 -fotowettbewerb.co, 0 fotowolfy.com, 1 fotozakazka.cz, 1 fotozone.tk, 1 @@ -58610,7 +58369,6 @@ fourmies.fr, 1 fournaise.info, 1 fournarisopenday.com, 1 -fournisseur-des-collectivites.com, 1 fournisseur-energie.com, 1 fourpeaks.com, 1 fourscore.ga, 1 @@ -58647,7 +58405,6 @@ foxdirectory.tk, 1 foxes.no, 1 foxeworks.net, 1 -foxghoul.com, 1 foxholehq.net, 1 foxing.club, 1 foxite.me, 1 @@ -58671,6 +58428,7 @@ foxtrotfm.tk, 1 foxus.lt, 1 foxxylove.net, 1 +foxy-it.com.ua, 1 foxycredit.com, 1 foxygf.com, 1 foxytubes.com, 1 @@ -58699,6 +58457,7 @@ fpnet.tk, 1 fpnpmcdn.net, 1 fpoe.eu, 1 +fppq.org.br, 1 fprinnovaciones.es, 1 fprojects.lv, 1 fps.ac.cn, 1 @@ -58708,6 +58467,7 @@ fpsclassico.com, 1 fpsjp.org, 1 fpstest.org, 1 +fpsturk.net, 1 fpsv.de, 1 fpt.icu, 1 fptbb.com, 1 @@ -58829,7 +58589,6 @@ francabellarsi.tk, 1 francaispornofilm.com, 1 france-cartouches.fr, 1 -france-hotellerie-restauration.com, 1 france-news.cf, 1 france-orchidees.org, 1 france-serres.com, 1 @@ -58870,9 +58629,8 @@ franciscadelasllagasvirtual.com, 1 franciscoeduardocruz.tk, 1 franciscolapa.eu, 1 -franciscoperezyoma.com, 1 +franciscoperezyoma.com, 0 francisfazzini.com, 1 -francisgoethals.be, 1 francishouserecovery.org, 1 francisplaza.com, 1 franckgirard.net, 1 @@ -59016,7 +58774,6 @@ fraudpoders.ga, 1 fraudpodest.ga, 1 fraudswatch.tk, 1 -fraudtoken.com, 1 frauen-etappenrennen.de, 1 frauenaerztin-wedel.de, 1 frauenarztin-wedel.de, 1 @@ -59159,7 +58916,6 @@ freebitcoinfaucet.org, 1 freebookdomain.tk, 1 freebookslibrary.gq, 1 -freebornfinancial.ca, 1 freeboson.org, 1 freebsd.la, 1 freebsd.me, 1 @@ -59191,6 +58947,7 @@ freedom24.com, 1 freedom35.org, 0 freedomains4all.tk, 1 +freedombits.org, 1 freedomdiver.org, 1 freedomdujour.com, 1 freedomfinance.eu, 1 @@ -59216,6 +58973,7 @@ freefallproductions.tk, 1 freefilesync.org, 1 freefincal.com, 1 +freefiregarenaff.com, 1 freeflightstoitaly.ngo, 1 freefonts.ga, 1 freeform4u.de, 1 @@ -59227,9 +58985,9 @@ freehqporno.com, 1 freeiconspng.com, 0 freeimage.host, 1 -freeimageclub.com, 1 freeinet.cf, 1 freeinet.tk, 1 +freeinfos.fr, 1 freeinoutboard.com, 1 freekdevries.nl, 1 freelance-webdesign.co.uk, 1 @@ -59268,7 +59026,6 @@ freenetflow.com, 1 freenetproject.org, 1 freenft.com, 1 -freenome.com, 1 freenome.net, 1 freenomyoulilb.tk, 1 freeo.cf, 1 @@ -59306,7 +59063,6 @@ freeprintsphotobooks.ie, 1 freepro.com, 1 freepro.fr, 1 -freepron.xyz, 1 freeradical.zone, 1 freereal.ml, 1 freerealincest.com, 1 @@ -59390,6 +59146,7 @@ freifunk-myk.de, 1 freifunk-remscheid.de, 1 freightcenter.com, 1 +freightinsightservice.com, 1 freinetmiddenschool.gent, 1 freitas.org, 1 freitasbastos.com.br, 1 @@ -59420,7 +59177,6 @@ frenchcreekroofing.com, 0 frenchculture.org, 1 frenchdays.fr, 1 -frenchieskingdom.com, 1 frenchmac.com, 1 frenchmorningspreschool.com, 1 frenchtonpups.com, 1 @@ -59477,6 +59233,8 @@ freshporno.net, 1 freshpounds.com, 1 freshproducemusic.tk, 1 +freshremote.work, 1 +freshroots.ca, 1 freshsexpics.com, 1 freshsheetmusic.com, 1 freshsnap.org.au, 1 @@ -59493,7 +59251,6 @@ fretscha.com, 1 frettboard.com, 1 frettennet.tk, 1 -freund-cie.com, 1 freundeskreis-tarjan.de, 1 freundferreteria.com, 1 freundinnen-ausflug.de, 0 @@ -59544,7 +59301,6 @@ friendly.pe, 1 friendlybearlabs.com, 1 friendlydabs.com, 1 -friendofpaws.com, 1 friendofthehoneybee.co.uk, 1 friendofthehoneybee.org, 1 friendofthehoneybee.org.uk, 1 @@ -59598,6 +59354,7 @@ friller.com.au, 1 frillip.com, 0 fringeintravel.com, 1 +fringraphics.com, 1 frinkiac.com, 1 frino.de, 1 frioelectrica.com, 1 @@ -59646,6 +59403,7 @@ frogos.net, 1 frogplay.net, 1 frogsonamission.de, 1 +frogstar.com, 1 frogtest.co.uk, 1 frogtown.capital, 1 froh-s.com, 1 @@ -59705,7 +59463,7 @@ frontlinepolicies.com, 1 frontofthehouse.com, 1 frontrouge.fr, 1 -frontrunneragency.com, 1 +frontstory.pl, 1 froogo.co.uk, 1 frosinonetoday.it, 1 frost.com, 1 @@ -59741,7 +59499,6 @@ frpg.gov, 1 frprn.com, 1 frprn.es, 1 -frprn.xxx, 1 frrfb.org.au, 1 frsecure.com, 1 frshminds.com, 1 @@ -59834,7 +59591,6 @@ fspk.cfd, 1 fspk.pro, 1 fspk.tech, 1 -fsps.ch, 1 fsrs.gov, 1 fssai.gov.in, 1 fssc.com, 1 @@ -59875,6 +59631,7 @@ ftcollinswindows.com, 1 ftcscout.org, 1 fte-automotive.com, 1 +ftek.com, 1 ftfgroup.us, 1 ftg-ru.ga, 1 ftgeufyihreufheriofeuozirgrgd.tk, 1 @@ -59908,6 +59665,7 @@ fuas.cl, 1 fucajz.cz, 1 fuchs-informatik.de, 1 +fuchsnet.ch, 1 fuchsy.com, 1 fuciam.com.co, 1 fuck-your-false-positive.de, 1 @@ -59956,7 +59714,6 @@ fuenferrada.tk, 1 fuentesdeenergia.org, 1 fuentesdeleon.tk, 1 -fuer-gerechte-steuern.at, 1 fuerzaazul.tk, 1 fufu.dance, 1 fugaku.cloud, 1 @@ -60104,7 +59861,6 @@ funadvisorfrance.com, 1 funandfriends.tk, 1 funandlearning.es, 1 -funatic.nl, 1 funatic.tk, 1 funboards.cz, 1 funboat.tk, 1 @@ -60118,12 +59874,14 @@ functori.com, 1 funcustomshirts.com, 1 fund-melden.de, 1 +fundacaoedp.pt, 1 fundacaoeveris.com.br, 1 fundacion.in, 1 fundacionfade.org, 1 fundacionfranciscofiasco.org, 1 fundacionindigo.tk, 1 fundacionlaboral.org, 1 +fundacionminutodigital.org, 1 fundacionsiempreadelante.org, 1 fundacionsilverina.org, 1 fundacjamatkiewy.pl, 1 @@ -60227,7 +59985,6 @@ funio.com, 1 funkazoid-radio.com, 1 funken-networks.de, 1 -funketing.es, 1 funkfernbedienung-industrie.de, 1 funkimforst.de, 1 funknotaus.de, 1 @@ -60392,7 +60149,6 @@ furusawadental.com, 1 furuse-shika.com, 1 furuyadc.com, 1 -furworks.de, 1 furyalexmichaelides.com, 1 fusacity.tk, 1 fusacovi.cf, 1 @@ -60412,6 +60168,7 @@ fusionas.tk, 1 fusionauth.io, 1 fusionbd.net, 1 +fusiondiagnostics.in, 1 fusionespeluqueria.es, 1 fusionfacades.co.uk, 0 fusionfactory.tk, 1 @@ -60490,6 +60247,7 @@ futureimmigration.net, 1 futureisdata.lu, 1 futurenda.com, 1 +futurenode.dk, 1 futureofchildren.net, 1 futureofyoucdc.sg, 1 futureplan.de, 1 @@ -60614,7 +60372,6 @@ fxstock.eu, 1 fxstrategics.com, 1 fxtalk.cn, 0 -fxtrade-lab.com, 1 fxtwitter.com, 1 fxvdigital.com, 1 fxwebstudio.com.au, 0 @@ -60666,6 +60423,7 @@ g-rom.net, 1 g-sp.azurewebsites.net, 1 g-tea.ml, 1 +g-watch.org, 1 g.box, 1 g.co, 0 g.wtf, 1 @@ -60812,7 +60570,6 @@ gadgets-mall.com, 1 gadgets4all.pt, 1 gadgetsandwearables.com, 1 -gadgetsbiz.com, 1 gadgetsgigabytesandgoodwill.com, 1 gadgetshome.ml, 1 gadgetslab.tk, 1 @@ -60845,7 +60602,6 @@ gagygnole.ch, 0 gaiafood.co, 1 gaiamiacola.it, 1 -gaianutri.fr, 1 gaijin.network, 1 gailfellowsphotography.com, 1 gailingen.de, 1 @@ -60989,7 +60745,6 @@ gallest.cf, 1 gallest.ga, 1 galleyfoods.com, 1 -gallifordtry.co.uk, 1 gallifreyan-koala.tech, 1 gallifreyapp.co.uk, 1 gallifreypermaculture.com.au, 1 @@ -61186,7 +60941,6 @@ gamestand.net, 1 gamester.tv, 1 gamesunited.tk, 1 -gamesweek.melbourne, 1 gametainment.net, 1 gametilt.com, 1 gametium.com, 1 @@ -61283,6 +61037,7 @@ ganodermatiendaonline.com, 1 gansevoorthotelgroup.com, 1 gant.tk, 1 +gantlaborde.com, 1 gantt-chart.com, 1 ganyouxuan.com, 1 gao.rocks, 1 @@ -61333,7 +61088,6 @@ garciaconstruction.com, 1 garcialeplus.com, 1 garciam.gt, 1 -garciaortiz.com, 1 garcity.com, 1 garco.co, 1 garda-see.mobi, 1 @@ -61353,13 +61107,14 @@ gardenplantslife.com, 1 gardenroomsdirect.co.uk, 1 gardenstatecakes.com, 1 +gardensuperstore.com.au, 1 gardentenmile.com, 1 +gardentotable.org, 1 garder.me, 1 gardinenzubehoer.tk, 1 gardinia.ae, 1 gardinpets.com, 1 gardnerbender.com, 1 -gardnerlawyers.com, 1 garduri-electrice-animale.ro, 1 gardurialuminiuiasi.ro, 1 garethbowker.com, 1 @@ -61473,7 +61228,6 @@ gasthausbauernhof.ch, 1 gasthaustalacher.ch, 1 gastonvietto.tk, 1 -gastouderbureausnoesje.nl, 1 gastoudererenda.nl, 1 gastro-dino.de, 1 gastroalianza.es, 1 @@ -61503,6 +61257,7 @@ gatemotorskyalami.co.za, 1 gatemoves.com, 1 gatenz-panel.com, 0 +gates-of-olympus-app.com, 1 gatesfoundation.org, 1 gatesmri.org, 1 gatesphilanthropypartners.org, 1 @@ -61523,8 +61278,10 @@ gatherup.com, 1 gathu.co.ke, 1 gatilagata.com.br, 1 -gatilhoarmas.com.br, 1 +gatilhoarmas.com.br, 0 +gatitlesearch.com, 1 gatlink.tk, 1 +gatolovers.es, 1 gatomix.net, 1 gator34.com, 1 gatoslivres.org, 1 @@ -61561,13 +61318,11 @@ gavlix.se, 1 gavr.space, 1 gaw.sh, 1 -gay-chat.it, 1 gay-jays.com, 1 gay-personal-ads.com, 1 gay.systems, 1 gayanalysing.co.uk, 1 gayauthors.org, 1 -gaycafe.lt, 1 gaychatrooms.tk, 1 gaycock4u.com, 1 gayest.gay, 1 @@ -61584,7 +61339,6 @@ gayhotmovies.com, 1 gaylaktika.com, 1 gaymen.pictures, 1 -gaymer.network, 1 gaymerx.org, 1 gaynight.tk, 1 gayonly.ch, 1 @@ -61640,6 +61394,7 @@ gbk-teamplan.de, 1 gbkom.de, 1 gbl.selfip.net, 0 +gbm.net, 1 gboys.net, 0 gbp.com.ph, 1 gbpayments.io, 1 @@ -61648,6 +61403,7 @@ gbrand.com.au, 1 gbronka.com, 1 gbrx.com, 0 +gbs.com.ua, 1 gbsapri.it, 1 gbscience.com, 1 gbsvelasco.com, 1 @@ -61661,8 +61417,7 @@ gcaccountants.co.nz, 1 gcaresolutions.com, 1 gcautodeals.com, 1 -gcb.com.my, 1 -gcbit.dk, 1 +gcbit.dk, 0 gcc-globalclimatechange.com, 1 gcdamp.gov, 1 gcfadvisors.com, 1 @@ -61680,6 +61435,7 @@ gconcept.tk, 1 gconstruction.org, 1 gcoption.pro, 1 +gcorevape.ca, 1 gcqd.fr, 1 gcrabtreespaces.com, 1 gcrcollectif.ca, 1 @@ -61773,7 +61529,8 @@ gechr.io, 1 geckler-ee.de, 0 geckoroutes.com, 0 -geckos-geocaching.de, 1 +geckos-geocaching.de, 0 +geckosurfschool.com, 1 gecosan.com, 1 gedachtekaarsje.nl, 1 geder.at, 1 @@ -61926,7 +61683,6 @@ gemawardian.com, 1 gemax-online.de, 1 gembet99.com, 1 -gemeentedevesting.nl, 1 gemeentegeschiedenis.nl, 1 gemeentehub.nl, 1 gemeentehulst.nl, 1 @@ -61981,7 +61737,7 @@ genealogieonline.nl, 1 genealogiewerkbalk.nl, 1 genealogy-beyers.tk, 1 -genealorand.com, 1 +genealorand.com, 0 geneanet.org, 1 geneastar.org, 1 geneau.net, 1 @@ -62081,8 +61837,10 @@ genesisgrade.com, 1 genesismachina.ca, 1 genesisplay.tk, 1 +genesisprize.org, 1 genesistoday.org, 1 genetargetsolutions.com.au, 1 +geneticrescue.science, 1 genetidyne.com, 1 geneuse.ai, 1 genevaal.gov, 1 @@ -62116,7 +61874,6 @@ genkihub.com, 1 genkisushi.com.hk, 1 genlack.com, 0 -genmab.co.jp, 1 gennaroabete.duckdns.org, 1 gennerator.com, 1 gennet.com, 1 @@ -62152,6 +61909,7 @@ genotix.nl, 1 genovatoday.it, 1 genoveve.de, 1 +genpathdiagnostics.com, 1 genroe.com, 1 gensenwedding.jp, 1 genshiken-itb.org, 1 @@ -62194,7 +61952,6 @@ gentledance.net, 1 gentledentalcaregroup.co.uk, 1 gentleentuit.be, 1 -gentlemansguru.com, 1 gentlent.blog, 1 gentlent.cn, 1 gentlent.co, 1 @@ -62237,7 +61994,6 @@ genusbag.com, 1 genutax.ca, 1 genuxtsg.com, 1 -genxbeats.com, 0 genxreviewest.ga, 1 genz.co.nz, 1 genzia.ga, 1 @@ -62306,7 +62062,6 @@ geometrie-rechner.de, 1 geometriya-dash.online, 1 geometry-calculators.com, 1 -geometryenjoychallenge.com, 1 geon.nl, 1 geoned.bg, 1 geonice.ga, 1 @@ -62432,7 +62187,6 @@ gerda.nl, 1 gereedschapmuseumdehobbyzolder.tk, 1 gerenciaconsultor.com, 1 -gerencial.com.br, 1 gerer-mon-foyer.fr, 1 geret.cl, 1 gergoladi.me, 1 @@ -62442,6 +62196,7 @@ gerkevangarderen.nl, 1 germain.cc, 1 germaintechnologies.com, 1 +germanaudiobooks.com, 1 germanclarkoh.gov, 1 germancoding.com, 1 germancoding.de, 1 @@ -62454,7 +62209,6 @@ germanophobia.tk, 1 germanrhymes.de, 1 germanrojas.ga, 1 -germansoldiers.net, 1 germantolobis.lt, 1 germantownpolicewi.gov, 1 germantownwi.gov, 1 @@ -62483,7 +62237,6 @@ gesamenvat.nl, 1 gesath.co, 1 gesath.com, 1 -geschenkkoerbeversand.de, 1 geschenkkorb-ideen.de, 1 geschenkly.de, 1 geschenkzauber.de, 1 @@ -62528,7 +62281,6 @@ get-refer.com, 1 get-x-web-link2.com, 1 get-your-business.tk, 1 -get.design, 1 get.gov, 1 get.how, 1 getabear.com, 1 @@ -62553,6 +62305,7 @@ getbrain.tk, 1 getbreadcrumbs.com, 1 getbreinify.ai, 1 +getbridge.com, 1 getbrowink.com, 1 getbutterfly.com, 1 getbuya.com, 1 @@ -62578,7 +62331,6 @@ getdoc.com.br, 1 getdoges.tk, 1 getdownon.it, 1 -getdumpsterdash.com, 1 geteducation.tk, 1 geteduroam.no, 1 getelectronics.tk, 1 @@ -62624,9 +62376,7 @@ getintra.org, 1 getirelandactive.ie, 1 getitpeople.com, 1 -getjerry.com, 1 getjms.com, 1 -getkisx.com, 1 getlaminas.org, 1 getlantern.org, 0 getlawnbuddy.com, 1 @@ -62646,6 +62396,7 @@ getmovingco.com, 1 getmybosslife.com, 1 getmylink.online, 1 +getmywellness.com, 1 getnetset.com, 1 getnetworkvisibility.com, 1 getnew.tk, 1 @@ -62676,7 +62427,6 @@ getready2dance.tk, 1 getreadyforever.tk, 1 getrelish.com, 1 -getrenewedtech.com, 0 getresilience.org, 1 getresults.co.za, 1 getriebeservice-gse.de, 1 @@ -62694,6 +62444,7 @@ getsmartcue.com, 1 getsmartlife.in, 1 getsmileapi.com, 1 +getsomemaction.com, 1 getspaces.com, 1 getsprout.co, 1 getstark.co, 1 @@ -62774,7 +62525,6 @@ gezinnenhilton.com, 1 gezondetips.nl, 0 gezondheidscentrumkoolhoven.nl, 1 -gezondheidsfondsenvoorrookvrij.nl, 1 gezondheidszorg-ict.nl, 1 gezondheidszorg-it.nl, 1 gf-franken.de, 1 @@ -62817,7 +62567,6 @@ gfycat.com, 1 gg.ax, 1 gg.co.uk, 1 -gg.world, 1 gg5197.co, 1 gg6729.co, 1 gg6957.co, 1 @@ -62825,12 +62574,11 @@ gg9397.com, 1 gg9728.co, 1 ggb.world, 1 -ggbl3.com, 1 -ggbl4.com, 1 -ggbl5.com, 1 +ggbl3.com, 0 +ggbl4.com, 0 +ggbl5.com, 0 ggchamber.com, 1 ggddrenthe.nl, 1 -ggdghorkennisnet.nl, 1 ggdrop.com, 1 ggdrop.top, 1 ggg.re, 1 @@ -62856,6 +62604,7 @@ ghada.blog, 1 ghafatzayed.com, 1 ghanaculture.tk, 1 +ghanamotion.com, 1 ghanapremiumconsultant.com, 1 gharbala.com, 1 ghayegh.org, 1 @@ -62907,6 +62656,7 @@ ghosthost.site, 1 ghosthunting.dk, 1 ghostinbox.pl, 1 +ghostinfluence.com, 1 ghostlight.tk, 1 ghostly.studio, 0 ghostmarket.io, 1 @@ -62934,10 +62684,10 @@ ghui.de, 1 ghwconline.org, 1 ghyvelde.fr, 0 -gi-plant.shop, 1 gi.de, 1 giac.net, 1 giac.org, 1 +giacintofacchetti.org, 1 giacomodebidda.com, 1 giacomomaniaci.it, 1 giacomopelagatti.it, 1 @@ -63012,8 +62762,6 @@ giffard.com, 1 gifsonline.tk, 1 gift4ever.tk, 1 -giftbaskets.ru, 1 -giftbasketsoverseas.com, 1 giftbit.com, 1 giftcard.net, 1 giftedconsortium.com, 1 @@ -63033,7 +62781,6 @@ giftprinted.com, 1 gifts.best, 1 giftscop.com, 1 -giftsenda.com, 1 giftsforaspecialoccasion.com, 1 giftsholidays.tk, 1 giftsofsquare.com, 1 @@ -63107,7 +62854,6 @@ gillesmorelle.com, 0 gillespetrotey.com, 1 gillettepromociones.com, 1 -gillettewholesale.com, 1 gillfamily.de, 1 gillmanandsoame.co.uk, 1 gilloteaux.be, 1 @@ -63144,6 +62890,7 @@ ginepolice.gov, 1 ginestasolutions.com, 1 ginev.tk, 1 +gingerichgutters.com, 1 gingersutton.com, 1 gingerxumd.com, 1 ginionusedcars.be, 0 @@ -63166,6 +62913,7 @@ giocolive.com, 1 gioiellerialucchese.it, 1 gioielleriamolena.com, 1 +giomi.com.tr, 1 gion-ent.co.jp, 1 gion.io, 1 giopiu.it, 1 @@ -63224,7 +62972,6 @@ girlsaloudcity.tk, 1 girlsfucked.com, 1 girlsgenerationgoods.com, 1 -girlsgetpied.com, 1 girlsglimpse.cf, 1 girlsglimpse.ga, 1 girlsglimpse.gq, 1 @@ -63311,7 +63058,6 @@ givedirect.org, 1 giveemhellbrigham.com, 1 givelab.com, 1 -givelifetoday.com, 1 givemeaverse.com, 1 givemebeer.tk, 1 givemeyour.cc, 1 @@ -63475,6 +63221,7 @@ glavny-yurist.ru, 1 glavred.info, 0 glazedmag.fr, 1 +glazenschuifwandenoutlet.nl, 1 glazkova.ga, 1 glbaumaulwurf.de, 1 glbins.com, 1 @@ -63511,6 +63258,7 @@ glenmorewisconsin.gov, 1 glennfitzpatrick.com, 1 glennhamers.nl, 1 +glenntrede.com, 0 glennvillega.gov, 1 glennwilson.co.uk, 1 glenoakscc.com, 1 @@ -63525,6 +63273,7 @@ glgclan.tk, 1 glginsights.com, 1 gli.sh, 1 +gliac.org, 1 gliagrumi.it, 1 glibmarket.in, 1 glickman-consulting.com, 1 @@ -63627,6 +63376,7 @@ globalisierung-fakten.de, 1 globalitac.com, 1 globalizationpedia.com, 1 +globaljusticeecology.org, 1 globalkitespots.com, 1 globalkwizz.tk, 1 globalmarketrade.com, 1 @@ -63737,7 +63487,6 @@ glont.net, 1 gloomy.tk, 1 glorenza.org, 1 -gloria-home.co.uk, 1 gloria-mundi.eu, 1 gloria.fi, 1 gloria.tv, 1 @@ -63746,7 +63495,6 @@ glorycambodia.com, 1 glorycamrealty.com, 1 gloryhealthcarellc.com, 1 -gloryholefucking.com, 1 glorynonprofit.org, 1 gloryofloveband.tk, 1 gloryofmusic.tk, 1 @@ -63766,7 +63514,6 @@ glotwpnjpd.gov, 1 gloucesterva.gov, 1 glovementor.com, 1 -gloverscast.co.uk, 1 glowfic.com, 1 glowmedspaencino.com, 1 glowskins.my.id, 1 @@ -63864,6 +63611,7 @@ gmx.net, 1 gmz.cx, 1 gn00.com, 1 +gnacsports.com, 1 gnagismen.tk, 1 gnaptracker.tk, 1 gnawa-diffusion.tk, 1 @@ -63932,8 +63680,8 @@ go2mob.tk, 1 go2sh.de, 1 go2ubl.nl, 1 -go4games.ro, 1 -go4it.ro, 1 +go4games.ro, 0 +go4it.ro, 0 go4rest.de, 1 go5.io, 1 go6.si, 1 @@ -64010,11 +63758,8 @@ goddard.id.au, 1 goddess.name, 1 goddesslena.com, 1 -gode-anal.fr, 1 gode-datingsites.dk, 1 -godes-realistes.fr, 1 godesigner.ru, 1 -godevelopment.systems, 1 godfilm.tk, 1 godfreydesign-build.com, 1 godfreyhotelchicago.com, 1 @@ -64078,7 +63823,6 @@ goetzinger-web.de, 1 gofabcnc.com, 1 gofelix.de, 1 -goffrie.com, 1 gofigure.fr, 0 gofile.link, 1 gofin.at, 1 @@ -64185,7 +63929,6 @@ goldeneggs.club, 1 goldeneyesantafe.com, 1 goldenfawz.com, 1 -goldengateministries.com, 1 goldengatexpress.org, 1 goldenglow.fans, 1 goldenhillsoftware.com, 1 @@ -64305,6 +64048,7 @@ gomasa.net, 1 gomasy.jp, 1 gomasy.net, 1 +gomaywood.org, 1 gomega.vn, 1 gomel.chat, 1 gomel.city, 1 @@ -64369,9 +64113,6 @@ goodbeast.com, 1 goodbits.tech, 1 goodbriar.com, 1 -goodcas.ca, 1 -goodcas.com, 1 -goodchoiceflowers.com, 1 gooddatingsites.ml, 1 gooddayatwork.co.uk, 1 gooddomain.co, 1 @@ -64396,6 +64137,7 @@ goodlandks.gov, 1 goodlink.ml, 1 goodlosersest.ga, 1 +goodlovelies.com, 1 goodmailing.tk, 1 goodmanwi.gov, 1 goodmood.co.uk, 1 @@ -64461,6 +64203,7 @@ goorm.io, 1 goosecreeksc.gov, 1 goosementor.com, 1 +goosepondfarm609.com, 1 goosip.tk, 1 gootax.pro, 0 gooty.ru, 1 @@ -64511,7 +64254,6 @@ gordowebdesign.com, 1 gordvorets.tk, 1 gordyf.com, 1 -gordyforty.com, 1 gorebayairport.ca, 1 gorebayairport.com, 1 gorenje-ru.ru, 1 @@ -64594,7 +64336,7 @@ gost-energo.ru, 1 gostargazer.com, 1 gostargazing.co.uk, 1 -gostartkit.com, 1 +gostartkit.com, 0 gostatera.com, 1 gosti-dom.ga, 1 gostica.com, 1 @@ -64653,7 +64395,6 @@ gotoxy.at, 1 gotpainarizona.com, 1 gotrail.fr, 1 -gotravel.blog, 1 gotravel.us, 1 gotravelmexico.com.mx, 1 gotreaux.com, 1 @@ -64688,7 +64429,6 @@ gourgouli.com, 1 gourmet-safran.de, 1 gourmetfestival.de, 1 -gourmetsditalie.com, 1 gourmetspalencia.com, 1 gourmetstars.cz, 1 gourmetvitamins.ga, 1 @@ -64722,7 +64462,6 @@ govquarter.gq, 1 govsales.gov, 1 govtjobs.blog, 1 -govtnaukrinews.com, 1 govtrack.us, 1 govvacationrewards.com, 1 govype.com, 1 @@ -64738,7 +64477,6 @@ gowikings.dk, 1 gowildrodeo.co.uk, 1 gowin.ae, 1 -gowinit.de, 1 gowithflo.de, 1 gowlingwlg.com, 0 goworld.gq, 1 @@ -64774,7 +64512,6 @@ gplintegratedit.com, 1 gpltimes.club, 1 gpltimes.com, 0 -gpltimes.org, 0 gplvilla.com, 1 gpmedicalgroup.com, 1 gpnotebook.com, 1 @@ -64928,7 +64665,6 @@ grain.com, 0 graine-de-cafe.com, 1 graingert.co.uk, 1 -grajlandia.com.pl, 1 graliv.net, 0 grallersdegegants.tk, 1 gramati.com.br, 1 @@ -64947,7 +64683,6 @@ granaturov.mk.ua, 1 granby404.eu, 1 grancargo.com.br, 0 -grancellconsulting.com, 1 grancordobahoy.com.ar, 1 grand-assistance.co.jp, 1 grand-books.cf, 1 @@ -64957,6 +64692,7 @@ grand-hotel-de-france.com, 1 grand-house.gq, 1 grand-knighki.gq, 1 +grand-roissy-tourisme.com, 1 grand-sity.ru, 1 grandalfa.co.nz, 1 grandblanctwpmi.gov, 1 @@ -64973,7 +64709,6 @@ grandcountydronepilot.com, 1 grande-rock.tk, 1 grande.coffee, 1 -grande.wiki, 1 grandepresion.com, 1 grandesign.pt, 1 grandesmaisons.fr, 1 @@ -65117,7 +64852,6 @@ gratis-hosting.cf, 1 gratis.market, 1 gratis4u.tk, 1 -gratisfotos.nl, 1 gratisfullalbum.tk, 1 gratisgokken.nl, 1 gratishandy.tk, 1 @@ -65132,6 +64866,7 @@ grattecenne.com, 1 gratuitweb.tk, 1 graumeier.de, 1 +grauwasser-blog.de, 0 gravatar.com, 1 gravedad-zero.tk, 1 gravedigger.tk, 1 @@ -65154,6 +64889,7 @@ gravitechthai.com, 1 gravitlauncher.ml, 1 graviton.work, 1 +gravity-bonanza.org, 1 gravity-inc.net, 1 gravityformspdfextended.com, 1 gravityinvestments.com, 1 @@ -65227,7 +64963,6 @@ greatlifeinsurancegroup.com, 1 greatlms.com, 1 greatlook.com, 1 -greatnetsolutions.com, 1 greatnews.ro, 1 greatoceanroadbrewhouse.com.au, 1 greatplains.io, 1 @@ -65299,7 +65034,7 @@ greencbd.com, 1 greencircleplantnursery.com.au, 1 greencircleplantnursery.net.au, 1 -greenclouddefense.com, 0 +greenclouddefense.com, 1 greencocktail.ga, 1 greencoconutresort.cf, 1 greencoconutresort.ga, 1 @@ -65467,7 +65202,7 @@ gregorymade.com, 1 gregoryrealestategroup.com, 1 gregorywiest.com, 1 -gregpierson.com, 1 +gregpierson.com, 0 gregproffit.com, 1 gregscloud.com, 1 gregtutors.com, 1 @@ -65547,7 +65282,6 @@ gridgames.tk, 1 gridgroup.com.tr, 1 gridlab.de, 1 -gridly.nl, 1 gridspace.ca, 1 gridtennis.net, 1 gridvis.cloud, 1 @@ -65581,7 +65315,6 @@ grillfocused.com, 1 grillidellostretto.tk, 1 grilllness.com, 1 -grimdarkterrain.com, 1 grimetoshinecleaners.co.uk, 1 grimm.cz, 1 grimmhome.com, 1 @@ -65603,6 +65336,7 @@ gripencrossfit.gq, 1 gripnijmegen.rip, 1 gripopit.nl, 1 +gripsealwaterproofing.com.au, 1 gripvol.nl, 1 gripwenab.cf, 1 grishavirus.cf, 1 @@ -65639,7 +65373,6 @@ grog.pw, 1 grokiskis.lt, 1 grokker.com, 1 -groklearning.com, 1 grolimur.ch, 0 grolleau.fr, 1 gromasikov.tk, 1 @@ -65683,7 +65416,6 @@ grothem.cf, 1 grothem.gq, 1 grothoff.org, 1 -grottalchemica.it, 1 grottenthaler.eu, 1 grouchysysadmin.com, 1 ground-control.de, 1 @@ -65699,6 +65431,7 @@ groundthumpinmotors.com, 1 groundthumpinmotors.net, 1 group-digitcom.com, 1 +group-galore.com, 0 group4layers.net, 1 groupama.hu, 1 groupama.sk, 1 @@ -65734,6 +65467,7 @@ groupouts.com, 1 grouppassers.ga, 1 groups.google.com, 1 +groupsgyani.com, 0 groupsite.blue, 1 groupx.tk, 1 groutandseal.co.nz, 1 @@ -65753,7 +65487,7 @@ grovelandflpd.gov, 1 grovelandmi.gov, 1 growatiopex.com, 1 -growblocks.com, 1 +growblocks.com, 0 growbydata.com, 1 growbyrabbit.com, 1 growebmarketing.com, 0 @@ -65761,6 +65495,7 @@ growery.com, 1 growery.net, 1 growery.org, 1 +growidentity.com, 1 growingallthings.co.uk, 1 growinghumankindness.com, 1 growingsearch.com, 1 @@ -65780,7 +65515,6 @@ growthsimulationest.ga, 1 growthtoysers.ga, 1 growthtoysest.ga, 1 -growwithdaylight.co.uk, 1 growy.ch, 0 grozdanov.tk, 1 grozter.se, 1 @@ -65789,13 +65523,11 @@ grpmail.jp, 1 grsau.com, 1 grsecurity.net, 1 -grsglaciere13.asso.fr, 1 grtc.today, 1 grthomes.com, 1 grtmmail.com, 1 gruaskmsa.cl, 1 gruasllanos.cl, 1 -gruber-software.com, 0 gruble.de, 1 gruca.com.br, 1 grucha-sound.pl, 1 @@ -65845,6 +65577,7 @@ grupo-rbd.com, 1 grupo-zoom.com, 1 grupoalv.com, 1 +grupoandrey.com.mx, 1 grupoauxteclic.com, 1 grupobit.net, 1 grupocata.com, 1 @@ -65856,12 +65589,10 @@ grupoeitb.eus, 1 grupoellatu.tk, 1 grupoenelcolombia.com, 1 -grupoenergiabogota.com, 1 grupoentregas.com, 1 grupoeuro17.com.br, 1 grupoeurodesign.com, 1 grupofarmavip.pt, 1 -grupoferraresi.com, 1 grupoharbour.com, 1 grupoice.com, 1 grupoimb.pt, 1 @@ -65890,7 +65621,7 @@ gruppakolibri.ml, 1 gruppe-casablanca.tk, 1 gruppe.schwarz, 1 -grupposanmarco.eu, 1 +grupposanmarco.eu, 0 grupposiciliaviola.tk, 1 gruppotac.com, 1 gruppouna.it, 1 @@ -65974,6 +65705,7 @@ gtalenders.ca, 1 gtanalytics.com, 1 gtapg.net, 1 +gtarestoration.com, 1 gtb-nsn.gov, 1 gtbeyes.com, 1 gtbgames.com, 1 @@ -65987,6 +65719,7 @@ gtlaun.ch, 0 gtld.fyi, 1 gtm-server.com, 1 +gtmetrix.com, 1 gtmotive.com, 1 gtn-pravda.ru, 1 gtonline.ml, 1 @@ -66040,7 +65773,6 @@ guardianerm.net, 1 guardiansiot.ddns.net, 1 guardiapretoriana.tk, 1 -guardknox.com, 1 guarever.tk, 1 guarrato.tk, 1 guategmala.ga, 1 @@ -66140,7 +65872,7 @@ guidebook.co.tz, 1 guidecbd.fr, 1 guidechecking.com, 1 -guidedchoice.com, 1 +guidedchoice.com, 0 guidedesventes.fr, 1 guidedogs.org.uk, 1 guidedselling.net, 1 @@ -66206,6 +65938,7 @@ guitarristaluisquintero.com, 1 guitarristas.info, 1 guitartrader.international, 1 +guj.nic.in, 1 gujarat.tk, 1 gujun-sky.com, 1 guki.me, 1 @@ -66242,9 +65975,7 @@ gumlet.com, 1 gummibande.noip.me, 0 gummientchen.net, 1 -gumtree.com.au, 1 gumtree.ie, 1 -gun-room.com, 1 gunarchive.com, 1 gunauc.net, 1 gunbot.com, 1 @@ -66362,7 +66093,6 @@ gutscheingeiz.de, 1 gutscheinpony.de, 1 gutstein.ch, 1 -gutsyhr.com, 1 gutterbus.com, 1 guttercleaningcardiff.co.uk, 1 gutterdogs.com, 1 @@ -66371,9 +66101,9 @@ gutterjunkies.com, 1 guttermaster.co.uk, 1 gutterpupper.com, 1 -guttershutter.biz, 1 guttertex.com, 1 gutuia.blue, 1 +gutzfit.com, 1 guug.ml, 1 guus-thijssen.nl, 1 guvernalternativa.ro, 1 @@ -66433,14 +66163,12 @@ gwennyeeckels.com, 1 gwenolakaigre.tk, 1 gwerder.net, 1 -gwfischer.com, 1 gwg-march.ch, 1 gwhatchet.com, 1 gwiazdowapark.pl, 1 gwinnettcounty.gov, 1 gwinteriors.com.au, 1 gwmean.tk, 1 -gwmjordan.com, 1 gwnmarketing.com, 1 gworld.cf, 1 gwrr.com, 1 @@ -66461,6 +66189,7 @@ gyas.nl, 1 gybagardlin.tk, 1 gycis.me, 1 +gyedco.com, 1 gyefund.com, 1 gyefund.org, 1 gyertyalang.hu, 1 @@ -66478,6 +66207,7 @@ gymagine.ch, 1 gymbase.ml, 1 gymbunny.de, 1 +gymedin.com, 1 gymguyzclearwater.com, 1 gymguyzstpete.com, 1 gymguyztampa.com, 1 @@ -66500,7 +66230,6 @@ gymone.co.za, 1 gymonlondon.com, 1 gympap.de, 1 -gympart.com, 1 gymvilla.nl, 1 gynaecology.co, 1 gynaeinfertility.com.sg, 1 @@ -66552,7 +66281,6 @@ h10s.net, 1 h11.io, 1 h11.moe, 1 -h1b.tech, 1 h1ctf.com, 1 h1z1swap.com, 1 h2.com.sg, 1 @@ -66641,6 +66369,7 @@ habermatik.tk, 1 habernet.tk, 1 habersitesikur.tk, 1 +haberton.com, 1 habesha.bet, 1 habibbank.com, 1 habibifit.com, 1 @@ -66699,7 +66428,6 @@ hackedaf.com, 1 hackendoz.com, 1 hackengine.ga, 1 -hackenkunjeleren.nl, 1 hackenturet.dk, 1 hacker.deals, 1 hacker.holiday, 1 @@ -66740,7 +66468,6 @@ hackfwd.com, 1 hackgunny.tk, 1 hackhouse.sh, 1 -hackingand.coffee, 0 hackingdh.com, 1 hackingdumpdrive.org, 1 hackingfever.tk, 1 @@ -66758,7 +66485,6 @@ hackrigs.com, 1 hackrisk.io, 1 hacksecu.re, 1 -hacksnation.com, 1 hacksoc.co.uk, 1 hacksouth.africa, 1 hackthat.tk, 1 @@ -66819,7 +66545,6 @@ hafniatimes.com, 1 hag27.com, 1 hagalaz-design.de, 1 -hagasucita.com, 1 hagbergmedia.se, 1 hagen-bauer.de, 0 hagenkleinert.de, 1 @@ -66834,7 +66559,6 @@ hagstofa.is, 1 hagtingius.nl, 1 haguichi.net, 1 -haha-raku.com, 1 haha.moe, 1 haha.nl, 0 hahahahaha.cf, 1 @@ -67038,7 +66762,6 @@ halterner-tc.de, 1 halteverbot-beantragen-berlin.de, 1 halteverbot-wesel.de, 1 -halukaka.net, 1 halv.me, 1 halvalla.tk, 1 halyul.com, 1 @@ -67103,7 +66826,6 @@ hamminga.nl, 1 hammondwi.gov, 1 hamoominim.tk, 1 -hamoup.com, 1 hampelmd.com, 1 hampl.tv, 1 hampshiretechservices.co.uk, 1 @@ -67185,13 +66907,11 @@ handmadetutorials.ro, 1 handphones.tk, 1 handpresso.com, 1 -hands.net, 1 handsaccounting.com, 1 handsender-express.com, 1 handsome-samurai.jp, 1 handsomeabel.tk, 1 handsonscience.com.au, 1 -handsontheheart.eu, 1 handstandstudio.ga, 1 handsup.dance, 1 handtales.com, 1 @@ -67339,7 +67059,6 @@ happy-family.tk, 1 happy-finance.tk, 1 happy-space.tk, 1 -happy-wans.com, 1 happy-watches.com, 1 happy.academy, 1 happy2hub.eu, 1 @@ -67575,6 +67294,7 @@ harpia.tech, 1 harplingemark.se, 1 harpoonlarsen.tk, 1 +harpreetrakhra.ca, 1 harputlugil.com, 1 harrachovskyapartman.cz, 1 harray.tk, 1 @@ -67583,7 +67303,6 @@ harrietjohnston.tk, 1 harrimantn.gov, 1 harringtonca.com, 1 -harris.com, 1 harrisburgnc.gov, 1 harrisconsulting.ie, 1 harriscountyesd11.gov, 1 @@ -67788,7 +67507,6 @@ hatterjiang.org, 1 hattori-hanzo.tk, 1 hattricksites.tk, 1 -hatul.info, 1 haucke.xyz, 1 haughtonla.gov, 1 haugr.net, 1 @@ -67840,7 +67558,6 @@ havasformula.com, 1 havasuinsurance.com, 1 havasutacohacienda.com, 1 -havator.fi, 1 have-it.tk, 1 have.jp, 1 haveabounce.co.uk, 1 @@ -67862,7 +67579,7 @@ havetherelationshipyouwant.com, 1 havi-engel.de, 1 havivdriver.co.il, 1 -havohravo.com, 1 +havo.co.id, 1 havredegracepolicemd.gov, 1 havuzkapinda.com, 1 hawaiiafro.tk, 1 @@ -67923,7 +67640,7 @@ hayl.me.uk, 1 haylerivas.com, 1 hayleywestenra.tk, 1 -hayobethlehem.nl, 1 +hayobethlehem.nl, 0 hayonik.com, 1 hayrivertownship.gov, 1 haysc.tech, 1 @@ -68056,6 +67773,7 @@ hdfreex.com, 1 hdgrannytube.com, 1 hdhoang.space, 1 +hdhomelift.com, 1 hdlooks.tk, 1 hdm-bogensport.at, 1 hdmatureporn.com, 1 @@ -68529,7 +68247,6 @@ heartbound.wiki, 1 heartcard.tk, 1 heartchating.tk, 1 -heartcomms.com.au, 1 heartgames.pl, 1 hearthealing.ca, 1 hearthstonehungary.hu, 1 @@ -68571,6 +68288,7 @@ heartyapp.com, 1 heartyapp.tw, 1 heartymail.com, 1 +hearusa.com, 1 heaslip-aluminium-smelter-engineering.com, 1 heat-press.com.au, 1 heat-ua.pt, 1 @@ -68832,7 +68550,6 @@ heli-iq.com, 0 heli-iq.cz, 0 heli-iq.de, 0 -heli-iq.dk, 0 heli-iq.es, 0 heli-iq.eu, 0 heli-iq.fi, 0 @@ -68959,7 +68676,6 @@ helminger-lrs.at, 1 helmsbriscoe.com, 1 helmscapital.co.uk, 1 -helochic.com, 1 heloisamarra.com, 1 helorobo.com, 1 help-en-ontwikkel-jezelf.nl, 1 @@ -68981,6 +68697,7 @@ helpinghandspartners.org, 1 helpkoil.com, 1 helplightning.com, 1 +helpline.com.ua, 1 helplisted.com, 1 helpmainstreet.com, 1 helpmecovid.com, 1 @@ -69034,6 +68751,7 @@ hemorroi.ga, 1 hemp.com, 1 hemphopper.eu, 1 +hempoffset.com, 1 hempsteadcitytx.gov, 1 hemrin.com, 1 hems.si, 1 @@ -69048,7 +68766,6 @@ henderz.tk, 1 hendrickx.be, 1 hendrik.li, 1 -hendrinortier.nl, 1 hendrix.com.ng, 1 hendrix.tk, 1 hendryelections.gov, 1 @@ -69117,12 +68834,9 @@ henrymintzberg.nl, 1 henryocallaghan.com, 1 henrys.glass, 1 -henryveraonline.com, 1 hentai-paradise.fr, 1 hentai.it, 1 hentaigirls.net, 1 -hentaimaster.net, 1 -hentaipornography.com, 1 hentaipros.com, 1 hentaiprosnetwork.com, 1 hentaiprospremium.com, 1 @@ -69168,6 +68882,7 @@ herbalifereport.tk, 1 herbalist-alchemist.com, 1 herbalkanker.tk, 1 +herbalmusings.net, 1 herbalproducts.com, 1 herbarex.bg, 1 herbarium.cf, 1 @@ -69182,6 +68897,7 @@ herbivorization.com, 1 herblaysurseine.fr, 1 herbnal.com, 1 +herboristerie-dufayel.fr, 1 herbreathonglass.tk, 1 herbsociety.org, 1 herbsupplements.co.uk, 1 @@ -69286,7 +69002,6 @@ herrald-skeeleren.tk, 1 herramientasbazarot.com, 1 herrderzeit.de, 1 -herregruppa.no, 1 herrenblut.tk, 1 herrenchiemsee.de, 1 herrenmuehle-wein.de, 1 @@ -69346,6 +69061,7 @@ hessenheim.tk, 1 hessentoday.de, 1 hessherrera.com, 1 +hessis.eu, 1 hessis.xyz, 1 hessischer-landtag.de, 1 hesslag.com, 1 @@ -69484,15 +69200,12 @@ hfxtwppa.gov, 1 hg.eu, 1 hg.fo, 1 -hg.python.org, 1 hg0086.la, 0 hg71839.com, 1 hgb.club, 1 hgc369.com, 1 hgcityca.gov, 1 -hgdlawfirm.com, 1 hgfa.fi, 1 -hghanbarimd.com, 1 hghsells.com, 1 hgmaranatha.nl, 1 hgpowerglue.nl, 1 @@ -69583,7 +69296,6 @@ hideallip.com, 1 hideandseek.org, 1 hidedd.com, 1 -hidelinkz.com, 1 hideo54.com, 1 hideouswebsite.com, 1 hidetagu2021.net, 1 @@ -69669,6 +69381,7 @@ highlightsfootball.net, 1 highnation.ml, 1 highperfection.com, 1 +highperformance.ie, 0 highpressuretech.com, 1 highproxies.com, 1 highqappliance.com, 1 @@ -69732,6 +69445,7 @@ hilarymundial.tk, 1 hilbertwi.gov, 1 hilde.link, 1 +hiledge.com, 1 hilfikers.com, 1 hilinecreators.tk, 1 hilite.org, 1 @@ -69779,7 +69493,6 @@ himcy.ga, 1 himeji-kanbee.jp, 1 himens.com, 0 -himg.eu, 1 himic.ru, 0 himiku.com, 1 himj.de, 1 @@ -70021,7 +69734,6 @@ hive101.info, 1 hivebariatrics.com, 1 hivekey.eu, 1 -hivekey.io, 1 hivelocity.net, 1 hivemind.org, 1 hivemindsystems.com, 1 @@ -70052,6 +69764,7 @@ hj9379.com, 1 hj99111.com, 1 hj99333.com, 0 +hjagda.com, 1 hjallboscoutkar.se, 1 hjartajonkoping.se, 1 hjartasmarta.se, 1 @@ -70114,7 +69827,6 @@ hlavi.hu, 1 hlebopekarna.com, 1 hledejlevne.cz, 1 -hledejpravnika.cz, 1 hlfh.space, 1 hlg88.cc, 1 hlidani-tornado.cz, 1 @@ -70155,7 +69867,6 @@ hmnd.io, 1 hmodapk.com, 1 hmp.sc, 1 -hms-networks.com, 0 hms-zentrum.de, 1 hmshost.com, 1 hmsotel.com, 1 @@ -70204,7 +69915,6 @@ hobiliga.mk, 1 hobindesign.com, 1 hobo.video, 1 -hobocentral.net, 1 hoboken.tk, 1 hobokencarwash.com, 1 hobokenpdnj.gov, 1 @@ -70677,7 +70387,6 @@ homeer.com, 1 homeexperience.tk, 1 homefacialpro.com, 0 -homefarmhealesville.com.au, 1 homeflag.ga, 1 homefolder.ga, 1 homeforeveryone.tk, 1 @@ -70809,7 +70518,6 @@ homesuite.tk, 1 homesweethomemaker.com, 1 homesweethouse.tk, 1 -hometeenorgy.com, 1 hometown.ml, 1 hometownpigglywiggly.net, 1 hometownticketing.com, 1 @@ -70847,7 +70555,7 @@ homophones.ml, 1 homowank.com, 1 hompimpaa.id, 1 -hompus.nl, 0 +hompus.nl, 1 homs.design, 1 homyak.gq, 1 homyhomee.com, 1 @@ -70934,7 +70642,6 @@ hoo.lt, 1 hooapp.lt, 1 hood-epc.xyz, 1 -hoodiessouthafrica.com, 1 hoodrivercounty.gov, 1 hoodsite.com, 1 hoofdredacteuren.nl, 1 @@ -71050,7 +70757,6 @@ horizonveterinaryservices.com, 1 horkel.cf, 1 horkel.tk, 1 -horlogenumerique.fr, 1 hormel.com, 1 hormet.tk, 1 hormigonimpreso.biz, 1 @@ -71102,7 +70808,6 @@ horsellscouts.org.uk, 1 horsellscoutsandguides.com, 1 horsemanshipdentistry.com, 1 -horsemanshipdentistryschool.com, 1 horseplanet.tk, 1 horseridingdurban.com, 1 horsewithnoname.com, 1 @@ -71240,7 +70945,6 @@ hostinkos.com, 1 hostinvest.tk, 1 hostix.de, 1 -hostixo.com, 1 hostker.com, 1 hostker.net, 1 hostlev.com, 1 @@ -71340,7 +71044,6 @@ hotelbiz.ga, 1 hotelbiz.gq, 1 hotelbretagne.dk, 1 -hotelcasadelmar.com, 1 hotelcharlestonsantateresa.com, 1 hotelconsulado.com.br, 1 hotelcorporate.codes, 1 @@ -71367,7 +71070,6 @@ hotelkeihan.co.jp, 1 hotellalucciola.net, 1 hotellamm.it, 1 -hotellaserenella.it, 1 hotelmap.com, 1 hotelmariasas.it, 1 hotelmelograno.eu, 1 @@ -71458,7 +71160,7 @@ hotshotsleeves.com, 1 hotsmi.cf, 1 hotsoft.com.br, 1 -hotsolarsolutions.com, 1 +hotsolarsolutions.com, 0 hotspot.cl, 1 hotspotshield.com, 1 hotspringcountysoar.gov, 1 @@ -71488,7 +71190,6 @@ hourlyringtonesers.ga, 1 hourlyringtonesest.ga, 1 hoursofoperation.biz, 1 -hourspent.com, 1 house-sparrow.com, 1 houseandgarden.co.uk, 1 houseareacanada.tk, 1 @@ -71512,7 +71213,6 @@ housemouse.tk, 1 houseofaceonline.com, 1 houseofhipsters.com, 1 -houseofpertijs.com, 1 houseofpheromones.com, 1 houseofrepresentatives.nl, 1 houseofshades.com, 1 @@ -71525,6 +71225,7 @@ houseroxrecords.com, 1 housese.at, 1 housesmartdecore.tk, 1 +housesumo.com, 1 housevertising.nl, 1 housia.cz, 1 housing.com, 1 @@ -71553,7 +71254,6 @@ houthandelbunskoek.nl, 1 houthandeljacobs.nl, 1 houtinee.com, 1 -houtpellets.shop, 1 houwelinginterieur.nl, 1 hovala.tk, 1 hovelaar.nl, 1 @@ -71651,7 +71351,9 @@ hoxo.fr, 1 hoychivilcoy.tk, 1 hoyenapple.com, 1 +hoyerfamilysaffron.com, 1 hoyosdelespino.tk, 1 +hoz-pack.com.ua, 1 hozana.si, 0 hozinga.de, 1 hozio.com, 1 @@ -71683,7 +71385,6 @@ hpsdigital.hu, 1 hpsldc.com, 1 hpsq.io, 1 -hpv-info.ee, 1 hpvtimmerwerken.nl, 1 hq77.ru, 1 hqblog.cn, 0 @@ -71771,7 +71472,6 @@ hrwsba.gov, 1 hrxkauppa.fi, 1 hry.cz, 1 -hryniewski.net, 1 hrzblt.eu, 1 hs-flensburg.de, 1 hs-group.net, 1 @@ -71785,7 +71485,6 @@ hsbs.com.sg, 1 hsbte.com, 1 hsbuild.com, 1 -hsc.gd.cn, 1 hschen.top, 0 hscomposites.co.nz, 1 hse-dev.com, 1 @@ -71797,7 +71496,6 @@ hsgms.de, 1 hshnetwork.net, 1 hsi.gov, 1 -hsi.health, 1 hsiot.com.au, 1 hsivonen.com, 1 hsivonen.fi, 1 @@ -72075,6 +71773,7 @@ hugotech.vn, 1 hugovr.nl, 1 hugoyugou.com, 1 +hugs.ua, 1 huguesaufray.com, 1 huhao.tk, 1 huhu.cf, 1 @@ -72094,7 +71793,6 @@ huisartsenpraktijkzonnehoed.nl, 1 huisartsenpraktijkzwalm.be, 1 huisdierinfopunt.tk, 1 -huisdiervoordeelshop.nl, 1 huiser.nl, 1 huisfind.nl, 1 huisjeboompje-baby.nl, 1 @@ -72299,6 +71997,7 @@ huntsvillealtransit.gov, 1 huntsvillecottage.ca, 1 huntvac.com, 1 +huntventuregear.com, 1 huny.eu.org, 1 hunzai.tk, 1 huoduan.com, 1 @@ -72307,7 +72006,6 @@ huohuo.ml, 1 huon.fyi, 1 huonit.com.au, 0 -huoqibaike.club, 1 huoyankan.com, 1 hup.hu, 0 hupoyunlar.com, 1 @@ -72315,6 +72013,7 @@ hurdaphysio.fi, 1 hurinkazan2020.com, 1 hurling.net, 1 +hurom.ba, 1 huron.tk, 1 huronsd.gov, 1 hurra-blog.tk, 1 @@ -72360,6 +72059,7 @@ huwjones.me, 1 huwshepheard.com, 1 huxcoconstruction.com, 1 +huxixs.com, 1 huxley.net, 1 huynhviet.com, 1 huyvu.nl, 1 @@ -72588,6 +72288,7 @@ hypofixx.de, 1 hypofox.de, 1 hypofux.de, 1 +hypogeal.com, 1 hypokalkulacka.sk, 1 hypolife.de, 1 hypolineweb.de, 1 @@ -72652,7 +72353,6 @@ i-am-cjc.tech, 1 i-am-seo.co.uk, 1 i-buy-caravans.net, 1 -i-cite.es, 1 i-click.com, 1 i-connect.ie, 0 i-cyber.gov.ua, 1 @@ -72735,7 +72435,6 @@ i9728.co, 1 i9s.in, 1 ia-tools.com, 1 -ia.ca, 1 ia.net, 1 ia1000.com, 1 iaa.ee, 1 @@ -72761,7 +72460,6 @@ iaforum.com.br, 1 iafss2023.com, 1 iageengineering.net, 1 -iain.tech, 1 iainsimms.co.uk, 1 iainsimms.com, 1 iainsimms.me, 1 @@ -72940,7 +72638,6 @@ ibwc.gov, 1 ibz.be, 1 ic3.gov, 1 -ic975.com, 1 ica.coop, 1 ica.org, 1 icade.fr, 1 @@ -73071,7 +72768,6 @@ icnagenda.fr, 1 icnc.ga, 1 icnsoft.org, 1 -icocoon.ch, 1 icojapan.tokyo, 1 icolc.net, 1 icollezionisti.com, 1 @@ -73212,6 +72908,7 @@ ideahubnepal.org, 1 ideaktiv.com, 1 ideal-social.com, 1 +ideal.ee, 1 ideal.shop, 1 idealabs.tk, 1 idealadvogadosbh.com.br, 1 @@ -73360,7 +73057,6 @@ idrissi.eu, 1 idrix.com.ec, 1 idroot.us, 1 -idropulsoredentale.shop, 1 idsafe.co.za, 1 idsc.com.tw, 1 idscomm.ca, 1 @@ -73443,7 +73139,6 @@ ifgcdn.com, 1 ifh.cc, 1 ifia.com, 1 -ifindapple.com, 1 ifisher.xyz, 1 ifleurs.com, 1 iflis.de, 1 @@ -73551,7 +73246,6 @@ ignet.gov, 1 ignite-reading.com, 1 ignite.cz, 1 -igniteautomotive.co.uk, 1 ignitedmindz.in, 1 igniteenergy.co.uk, 1 igniteheatcool.com.au, 1 @@ -73600,7 +73294,6 @@ igsmgmt.com, 1 igsoc.org, 1 igt.com, 1 -iguacumaquinas.com.br, 1 igualdaton.org, 1 iguanacruda.tk, 1 iguru.gr, 1 @@ -73609,11 +73302,9 @@ ih8sn0w.com, 1 iha6.com, 1 ihacares.com, 1 -ihackear.com, 1 ihacker.ai, 1 ihakkitekin.com, 1 ihatethissh.it, 1 -ihazurip.com, 1 ihc.im, 1 ihcprofile.com, 1 ihda.org, 1 @@ -73761,6 +73452,7 @@ iknowthatgirl.com, 1 iknowthatgirlpremium.com, 1 ikoreg.nl, 1 +ikra24.in.ua, 1 ikrab.club, 1 iks.moe, 1 iksi.cc, 1 @@ -73820,7 +73512,6 @@ ilektronika-farmakeia-online.gr, 1 ilemonrain.com, 1 ileonidze.tk, 1 -ilericikadinlar.org, 1 iletisimmakinesi.com, 1 iletiyonetimi.com, 1 iletmen.com, 1 @@ -73964,7 +73655,6 @@ ilustradanuvem.pt, 1 iluvbooks.org, 1 ilya-potemin-domain.tk, 1 -ilya.pp.ua, 1 ilyabakhlin.com, 1 im-a.cricket, 1 im-alter-daheim.ch, 0 @@ -73984,7 +73674,6 @@ imadalin.ro, 1 image-cdn.co.uk, 1 image-drive.de, 1 -image-to-video.ir, 1 image.hosting, 1 image.tf, 1 image4arab.tk, 1 @@ -73994,6 +73683,7 @@ imagefu.com, 1 imagen891.tk, 1 imagenesdedibujosalapizfacilesdehacer.com, 1 +imagensdemarca.pt, 1 imagenyletra.com, 1 imageproductions.ga, 1 imagequix.com, 1 @@ -74014,7 +73704,6 @@ imagindairy.com, 1 imagine-programming.com, 1 imagineata.ro, 1 -imaginebelfast.com, 1 imaginefamilychiropractic.com, 1 imaginelab.club, 1 imagineokla.gov, 1 @@ -74071,7 +73760,6 @@ imdb.pro, 1 imdbpro.com, 1 imdbresume.com, 1 -imdcc.net, 1 ime-a-tolerancia-eredmenye.club, 1 ime.moe, 1 imed.com.pt, 1 @@ -74086,9 +73774,7 @@ imeria.tk, 1 imerys-mineraux-decoratifs.com, 1 imesh-light.tk, 1 -imetro.in, 1 imex-dtp.com, 1 -imexm.mx, 1 imexmed.com.gt, 1 imfacademy.com, 1 imfblog.com, 1 @@ -74195,7 +73881,6 @@ immobilien-schrammek.de, 1 immobilien-uster.ch, 1 immobilien-wallat.de, 1 -immobilien-zirm.de, 1 immobiliengutachter-holland.de, 1 immobilienkredit.de, 1 immobilienmakler-berlin-biesdorf.de, 1 @@ -74233,6 +73918,7 @@ immoponteq.net, 1 immoraldoctors.tk, 1 immortal-it.tk, 1 +immortal-pc.info, 1 immortal.org.in, 1 immortal.run, 1 immortalcorporation.tech, 1 @@ -74302,6 +73988,7 @@ impakho.com, 1 impalaparts.com, 1 imparat.de, 0 +imparostobene.it, 1 impartner.com, 1 impas.se, 1 impaya.online, 1 @@ -74377,6 +74064,7 @@ imprenta.bg, 1 imprentamanonelles.com, 1 impresa-di-pulizie.milano.it, 1 +impresa-di-pulizie.org, 1 impresa-pulizie.it, 1 impresadipulizia.milano.it, 1 impresadipulizia.roma.it, 1 @@ -74431,7 +74119,6 @@ imrozrum.k12.tr, 1 imrunner.com, 1 imrunner.ru, 1 -ims-dc.com, 1 ims-retail-agility.com, 1 ims-sargans.ch, 1 imsace.tk, 1 @@ -74463,6 +74150,8 @@ in-line.ru, 1 in-love.tk, 1 in-nova-re.com, 1 +in-star.com.ua, 1 +in-ua.com, 1 in.search.yahoo.com, 0 in.xero.com, 0 in10tion.com, 0 @@ -74503,7 +74192,6 @@ inboxxme.com, 1 inbudejovice.cz, 1 inc.studio, 1 -incabrescia.com, 1 incarceratedwombats.com, 1 incarter.ga, 1 incaweb10.es, 1 @@ -74553,6 +74241,7 @@ income-earnings.tk, 1 incomeaccess.com, 1 incomeplus.tk, 1 +incometaxindia.gov.in, 1 incometricks.tk, 1 incomewithdraw.tk, 1 incomfinance.tk, 1 @@ -74611,7 +74300,6 @@ independenttribune.com, 1 independenza.tk, 1 indertat.de, 1 -indesfuggerhaus.de, 1 indevelopment.tk, 1 index-education.com, 1 index-education.net, 1 @@ -74646,7 +74334,6 @@ indianapolisnews.ml, 1 indianapolispsychologistsers.ga, 1 indianapolispsychologistsest.ga, 1 -indianapolisrestorations.com, 1 indianareflux.com, 1 indianatitlesearch.com, 1 indianawaterdamagerepairpros.com, 1 @@ -74725,7 +74412,6 @@ indivicloud.me, 0 individualobligation.com, 1 individuals.tk, 1 -individuel.mx, 1 indiwebawards.tk, 1 indiwtf.com, 1 indiya-kino.gq, 1 @@ -74754,6 +74440,7 @@ indospot.ml, 1 indospot.tk, 1 indotravels.tk, 1 +indovinabank.com.vn, 1 indovision.tk, 1 indramas.tk, 1 indramdhani.net, 0 @@ -74799,7 +74486,6 @@ ineight.com, 1 inentertainment.com, 1 inertianetworks.com, 1 -inesfinc.es, 1 inesnutricion.com, 1 inessoftsec.be, 1 inet.se, 1 @@ -74845,13 +74531,13 @@ inferiousbypasser.cf, 1 infermiere.roma.it, 1 inferno.co.uk, 1 +inferse.com, 1 infertilitycure.tk, 1 inffin-portal.de, 1 infhosting.com.au, 1 infi.ch, 1 inficom.org, 1 infidel.org, 1 -infidels.me, 1 infidels.org, 1 infidia.tk, 1 infiernoalgecireno.tk, 1 @@ -74879,6 +74565,7 @@ infinito.tk, 1 infinitomarca.com, 1 infinitoporciento.tk, 1 +infinityandbeyond.in, 1 infinitybc.se, 1 infinitybooksindia.in, 1 infinitybots.gg, 1 @@ -74948,7 +74635,6 @@ infobalkans.com, 1 infobanglanet.tk, 1 infobasquet.tk, 1 -infobiografi.com, 1 infobiznes.cf, 1 infobiznes.ga, 1 infobiznes.tk, 1 @@ -74973,8 +74659,8 @@ infodesk.at, 1 infodis.com, 1 infoduv.fr, 1 +infoeccos.com, 1 infofactory.it, 1 -infofamouspeople.com, 1 infoflora.ch, 1 infofp.tk, 1 infogai.tk, 1 @@ -74986,8 +74672,6 @@ infogroups.ml, 1 infogym.com, 1 infogym.net, 1 -infohas.ma, 1 -infohunter.education, 1 infoiinfo.tk, 1 infoindia.tk, 1 infoiptv.tk, 1 @@ -75004,7 +74688,6 @@ infomate360.com, 1 infomatricula.pt, 1 infomax.gr, 1 -infomeddnews.com, 1 infomega.fr, 1 infomexico.tk, 1 infomikulcice.cz, 1 @@ -75071,7 +74754,6 @@ inforver.com, 1 infosactu.com, 1 infoschool.ml, 1 -infosec-handbook.eu, 0 infosec.exchange, 0 infosec.md, 1 infosec.mv, 1 @@ -75226,7 +74908,6 @@ ingfreelancer.com, 1 ingfss.ru, 1 inghamcountymi.gov, 1 -ingilizceturkce.gen.tr, 1 ingjobs.ch, 1 ingkprf.ru, 1 inglebycakes.co.uk, 1 @@ -75380,6 +75061,7 @@ inncoaching.nl, 1 innectsphere.ca, 1 innenstadtkirche.de, 1 +inner-change-mastery.com, 1 inner-vision.tk, 1 innerdarkside.tk, 1 innerfence.com, 1 @@ -75407,8 +75089,6 @@ innogames.de, 1 innohb.com, 1 innoloop.com, 0 -innopharmaeducation.com, 1 -innopharmatechnology.com, 1 innosoftfusiongo.com, 1 innosysdelft.com, 1 innot.net, 1 @@ -75520,9 +75200,7 @@ insanedevs.com, 1 insanepyro.tk, 1 insanity.zone, 1 -insarag.org, 1 insblauehinein.nl, 1 -insbright.com, 1 inscape.tv, 1 inschrijfformulier.com, 1 inscom.events, 1 @@ -75574,6 +75252,7 @@ insidetheigloo.com, 1 insideuniversal.net, 1 insideview.com, 1 +insightfulpsychics.com, 1 insighti.com, 1 insights.plus, 1 insightsoftware.com, 1 @@ -75581,7 +75260,6 @@ insighttv.com, 1 insinuator.net, 1 insistel.com, 1 -insites-consulting.com, 1 insitusales.com, 1 insolent.ch, 1 insomnia-isterica.tk, 1 @@ -75615,7 +75293,6 @@ inspireplanner.com, 1 inspiresurgery.com, 1 inspirez-vous-sophro.com, 1 -inspiringhandsmassage.com, 1 inspiringtips.com, 1 inspirithealth.ca, 1 insportline.bg, 1 @@ -75678,6 +75355,7 @@ instantreplay.tk, 1 instantsiteaudit.com, 1 instar.org, 1 +instareeldownload.com, 0 instatune.pro, 1 instava.cz, 1 instavisa.org, 1 @@ -75716,7 +75394,6 @@ instytut.tk, 1 instytutwellsense.pl, 1 insulationchicagoil.com, 1 -insulationmachinestore.com, 1 insulations.ga, 1 insulectro.com, 1 insult.es, 1 @@ -75790,7 +75467,7 @@ integral-calculator.ru, 1 integralblue.com, 1 integralcare.org, 1 -integralinmobiliario.com, 1 +integralinmobiliario.com, 0 integralkk.com, 1 integralrechner.de, 1 integralschool.ru, 1 @@ -75806,7 +75483,6 @@ integrisaviation.com, 1 integritet.com.se, 1 integrity.gov, 1 -integritydetail.com, 1 integrityfirstloans.com, 1 integrityglobal.com, 1 integrityhomecontractors.com, 1 @@ -75849,7 +75525,6 @@ intelligentrics.com, 1 intelligentwaves.com, 1 intelligista.tk, 1 -intelligroup360.com, 1 intellihr.io, 1 intellimatica.se, 1 intellimax.ir, 1 @@ -75929,6 +75604,7 @@ interdc.com, 1 interdc.nl, 1 interdescargas.tk, 1 +interdez.com.ua, 1 interessengemeinschaft-pregelstrasse.tk, 1 interesting.ac.cn, 1 interestingfacts.gq, 1 @@ -76025,7 +75701,6 @@ internetbloger.tk, 1 internetbugbounty.com, 1 internetbugbounty.org, 1 -internetbusiness-howto.com, 1 internetcom.jp, 1 internetdagarna.se, 1 internetface.tk, 1 @@ -76111,7 +75786,6 @@ interviewstarsers.ga, 1 interviewstarsest.ga, 1 intervista-rh.fr, 1 -interways.de, 1 interwebz-cheats.com, 1 interwebz.cloud, 1 interwebz.nz, 1 @@ -76244,6 +75918,7 @@ inversegravity.net, 1 inverselink-user-content.com, 1 inverselink.com, 1 +inversion.travel, 1 inversion6.com, 1 inversionesenvivo.com, 1 inversionesgalindo.com, 1 @@ -76392,7 +76067,6 @@ ioanamateas.ro, 1 ioanavisan.tk, 1 iobint.com, 1 -iocbc.com, 1 iochen.com, 1 iochicago.net, 1 iocorp.jp, 1 @@ -76407,14 +76081,12 @@ ioia.at, 1 iolabs.io, 1 ioliver.co.uk, 1 -iololi.com, 1 iolpodcast.com, 1 iombank.com, 1 iomedia.ch, 0 iompost.com, 1 iomstamps.com, 1 ionc.ca, 1 -ioncalator.ro, 1 ionchannel.io, 1 ioncubedecode.xyz, 1 iondrey.cf, 1 @@ -76464,6 +76136,7 @@ iotjenik.eu, 1 iotmu.com, 1 iotportal.tk, 1 +iotsec.site, 1 iotsms.io, 1 ioville.com, 1 iovo.consulting, 1 @@ -76552,6 +76225,7 @@ iphoned.nl, 1 iphonekaitori.tokyo, 0 iphonemobile.ro, 1 +iphonerepairbolton.co.uk, 1 iphonesoft.fr, 1 iphoneunlock.nu, 1 ipicolorissa.com, 1 @@ -76568,7 +76242,6 @@ iplayradio.net, 0 ipleak.net, 1 ipledgeonline.org, 0 -iplog.info, 0 iplookup.tk, 1 ipmatic.ga, 1 ipmotion.ca, 1 @@ -76676,7 +76349,6 @@ iqreview.ru, 1 iqsecurity.eu, 1 iqtechportal.com, 1 -iqtek.solutions, 1 ir.to, 1 iraanswersers.ga, 1 iraanswersest.ga, 1 @@ -76689,7 +76361,6 @@ iran-oil.tk, 1 iran-speedex.tk, 1 iranactua.tk, 1 -iranbrands.review, 1 irancenter.tk, 1 iranconnect.tk, 1 irandex.ga, 1 @@ -76720,7 +76391,6 @@ iraqmartialarts.tk, 1 iraqtop.tk, 1 irareturners.ga, 1 -irasandi.com, 1 irasingh.tk, 1 irasuto.eu.org, 1 iratechwatch.com, 1 @@ -76768,15 +76438,12 @@ irf2.pl, 1 irfanweb.cf, 1 irfs.org, 1 -irgendwiejuedisch.com, 1 irgit.pl, 1 iridescentsun.com, 1 iriemag.com, 1 irina-beauty.de, 1 irinaf.tk, 1 -irinar.co, 1 irioka.be, 1 -irion-edm.com, 1 iris-design.info, 1 iris-elements-development.co.uk, 1 iris-elements-development.com, 1 @@ -76922,14 +76589,11 @@ isaackabel.tk, 1 isaackhor.com, 1 isaacman.tech, 1 -isaacmorneau.com, 1 isaacperez.tk, 1 isaacphysics.org, 1 isaaczais.com, 1 isaaya.com, 1 isab.run, 1 -isabelcaviedes.com, 1 -isabellahoopsentertainment.com, 0 isabellainlove.com, 1 isabellamelodia.com, 1 isabellas.dk, 1 @@ -76952,7 +76616,6 @@ isan.eu.org, 1 isanticountymn.gov, 1 isantv.com, 1 -isapplesiliconready.com, 1 isara.com, 1 isaret.com, 1 isaropiping.fr, 1 @@ -77053,6 +76716,7 @@ islam4all.tk, 1 islam4congo.tk, 1 islamabadcourt.tk, 1 +islamadel.com, 1 islamantarih.tk, 1 islambolivia.tk, 1 islamdersi.tk, 1 @@ -77072,7 +76736,6 @@ islamo.tk, 1 islamparafriendsclub.ml, 1 islamqa.info, 1 -islamreligion.com, 1 islamspread.tk, 1 islamvictory.com, 1 islamvictory.net, 1 @@ -77105,7 +76768,7 @@ isliada.org, 1 islief.com, 1 islightdown.today, 1 -islipny.gov, 1 +islikimas.lt, 1 islykaithecutest.cf, 1 islykaithecutest.ml, 1 ismaeltech.com, 1 @@ -77149,7 +76812,7 @@ isolvedhcm.com, 1 isongrp.com, 1 isonhealth.com, 1 -isonsecure.com, 1 +isonsecure.com, 0 isontechnologies.com, 1 isopres.de, 1 isopro.info, 1 @@ -77190,7 +76853,6 @@ israelbiblicalstudies.com, 1 israelcareersers.ga, 1 israelcareersest.ga, 1 -israelflorist.com, 1 israelitas.tk, 1 israelitopbox.ga, 1 israelmesianico.tk, 1 @@ -77318,7 +76980,6 @@ it-expert.tk, 1 it-house.com.ua, 1 it-inside.ch, 1 -it-ip-rudnick.de, 1 it-jobbank.dk, 1 it-maker.eu, 1 it-ngo.com, 1 @@ -77329,7 +76990,6 @@ it-service24.com, 1 it-stack.de, 1 it-stek.ru, 1 -it-support-stockholm.se, 1 it-tainment.de, 1 it-tekniker.nu, 1 it-ti.me, 1 @@ -77355,7 +77015,6 @@ itaja.com, 1 itakunai-shika.com, 1 italbavaro.com, 1 -italdesign.it, 1 italentado.ml, 1 italgold.it, 1 italia-facile.ru, 1 @@ -77401,7 +77060,6 @@ itascacountymn.gov, 1 itasis.com.br, 1 itasolution.it, 1 -itb-online.co.uk, 1 itbn.hu, 1 itbog.org, 1 itbolagmedipv6.se, 1 @@ -77566,10 +77224,12 @@ its5oclock.eu, 1 itsabouncything.com, 1 itsacheckmate.com, 0 +itsadog.co.uk, 0 itsakerhetspodden.se, 1 itsalan.tk, 1 itsallmath.org, 1 itsanicedoor.co.uk, 1 +itsapetthang.com, 1 itsaw.de, 1 itsayardlife.com, 1 itsayorki.de, 1 @@ -77820,7 +77480,6 @@ ixit.cz, 1 ixn.com, 1 ixon.cloud, 1 -ixoso.com, 1 ixplayer.com, 1 ixquick-proxy.com, 1 ixquick.co.uk, 1 @@ -77857,10 +77516,10 @@ izanagi52.ddns.net, 1 izapi4.fr, 1 izavel.com, 1 -izb.se, 1 izbansaatleri.com, 1 izbirateli.com, 1 izecubz.me, 1 +izemporium.com, 1 izeno.com, 1 izi-agency.com, 1 izidream.bg, 1 @@ -77929,7 +77588,6 @@ j32b.com, 1 j365.me, 1 j36533.com, 1 -j3dpd.com, 1 j3e.de, 1 j4m.xyz, 1 j5197.co, 1 @@ -77958,7 +77616,6 @@ j95zz.com, 0 j9728.co, 1 ja-jirei-ienohikari.com, 1 -ja-no-me.ru, 1 ja-sobstvennik.tk, 1 ja-tay.sr, 1 ja-youth.jp, 1 @@ -78108,7 +77765,6 @@ jadara.info, 1 jadchaar.me, 1 jadedmonkey.tk, 1 -jadeglobal.com, 1 jadehairstyle.nl, 1 jadelsbach.de, 1 jademathre.com, 1 @@ -78233,6 +77889,7 @@ jamaicabeachtx.gov, 1 jamally.co.za, 1 jambapp.org, 1 +jambb.nu, 1 jamberry.com.mx, 1 jambihackerlink.tk, 1 jambing.cn, 1 @@ -78311,8 +77968,8 @@ jamie.wales, 1 jamieb.org, 1 jamiebamberfan.com, 1 +jamiecreates3d.com.au, 1 jamiehansonyoga.com, 1 -jamiehenrybrown.co.uk, 1 jamiejones.cymru, 1 jamiejones.wales, 1 jamielinux.com, 1 @@ -78374,7 +78031,6 @@ janellequintana.tk, 1 janenwouter.tk, 1 janersm.net, 1 -janes.com, 0 janesaddiction.org, 1 janetandjohns.tk, 1 janetedkins.com, 1 @@ -78449,7 +78105,6 @@ japancarts.ru, 1 japanchiropractic.com.br, 1 japandigest.de, 1 -japanduhoc.com, 1 japanese-cuisine.com, 1 japanese-dominatrix.com, 1 japanese-imperialism971.tk, 1 @@ -78560,6 +78215,7 @@ jason-isaacs.tk, 1 jason.red, 1 jasonamorrow.com, 0 +jasonchampagne.fr, 1 jasoncoopermd.com, 1 jasoncosper.com, 1 jasoncs.eu.org, 1 @@ -78676,7 +78332,7 @@ jayrl.com, 1 jaysanart.com, 0 jaysaw.me, 1 -jayschulman.com, 1 +jayschulman.com, 0 jayspage.tk, 1 jayspov.net, 1 jaytauron.xyz, 1 @@ -78737,7 +78393,6 @@ jc.org, 1 jc0b.computer, 1 jc6.xyz, 1 -jc666.xyz, 1 jcadg.com, 1 jcaicedo.com, 1 jcaicedo.tk, 1 @@ -78860,7 +78515,6 @@ jdtangney.com, 1 jdtcc-llc.com, 1 jdtic.com, 1 -jdtrust.net, 1 jdtrust.one, 1 jdwebprogrammer.com, 1 jdxgfty.me, 1 @@ -78910,7 +78564,6 @@ jecjacshop.com, 1 jecnetwork.gq, 1 jed.site, 1 -jeda.im, 1 jedatw.com, 1 jedayoshi.me, 1 jedayoshi.tk, 1 @@ -79025,6 +78678,7 @@ jemezsprings-nm.gov, 1 jemnezymy.com, 1 jemoreng.tk, 1 +jemputan-karyawan.site, 1 jems-il.gov, 1 jemshoes.com, 1 jemyzdrowo.pl, 1 @@ -79034,7 +78688,6 @@ jenaab.ir, 1 jenadamsphoto.com, 1 jenakultur.de, 1 -jenas-web.com, 1 jenascarpetcleaning.com.au, 1 jencshiny-org.tk, 1 jendela360.com, 1 @@ -79100,8 +78753,8 @@ jeremy-gautier.com, 1 jeremy.hu, 1 jeremybentham.com, 1 -jeremyberman.co, 1 -jeremybermanput-in-bay.com, 1 +jeremyberman.co, 0 +jeremybermanput-in-bay.com, 0 jeremybloomfield.co.uk, 1 jeremyc.ca, 0 jeremycrews.com, 1 @@ -79173,6 +78826,7 @@ jessecharlie.net, 1 jessecharlie.org, 1 jessecharlienaser.com, 1 +jesseerbach.com, 1 jessekaufman.com, 1 jesseklaver.nl, 1 jessem.fr, 1 @@ -79224,7 +78878,6 @@ jetauj2022.com, 1 jetcard.co.uk, 1 jetcharterbozeman.com, 1 -jetcost.com, 1 jetcraft.tk, 1 jetdrywallinteriors.com, 1 jetfirenetworks.com, 1 @@ -79243,9 +78896,7 @@ jetsome.co, 0 jetson.tk, 1 jetstudio.ch, 0 -jettenbommelaer.nl, 1 jettenjachtbouw.eu, 1 -jettlarue.com, 1 jettshome.org, 1 jetular.com, 1 jetular.net, 1 @@ -79275,8 +78926,6 @@ jewelry-directories.tk, 1 jewelrycoverers.ga, 1 jewishboston.com, 1 -jewishfed.org, 1 -jewishinseattle.org, 1 jewishjourneys.org, 1 jewishmusic.tk, 1 jewishphilanthropies.org, 1 @@ -79448,7 +79097,6 @@ jijiapp.net, 1 jijistatic.com, 1 jijistatic.net, 1 -jikc.nl, 1 jikei-reha.com, 1 jikken.de, 0 jilaninteraktif.tk, 1 @@ -79503,7 +79151,6 @@ jin-ai-kai.com, 1 jin-design.si, 1 jinancy.fr, 1 -jinanshen.com, 1 jinaron.com, 1 jinbbq.com, 1 jinbijin.nl, 1 @@ -79636,7 +79283,6 @@ jlwagner.net, 1 jm73umh.pw, 1 jm9.co, 1 -jmanalansan.com, 1 jmango360.com, 1 jmap.support, 1 jmarciniak.it, 1 @@ -79712,6 +79358,7 @@ joa.fr, 1 joalheriamaya.com.br, 1 joanmoreira.tk, 1 +joannadziekan.com, 1 joannasphotography.fr, 1 joannechtler.com, 1 joannekemarchal.nl, 1 @@ -79737,16 +79384,14 @@ jobbnorge.no, 1 jobbs.se, 1 jobbsafari.no, 0 -jobbsafari.se, 1 +jobbsafari.se, 0 jobcenter.tk, 1 -jobcheck.com, 1 jobcie.com, 1 jobcorps.gov, 1 jobcorpsy2y.com, 0 jobdataapi.com, 1 jobers.co.zw, 1 jobflyapp.com, 0 -jobformore.com, 1 jobfresh.ga, 1 jobfury.com, 1 jobgenic.com, 1 @@ -79782,7 +79427,6 @@ jobsineachstate.com, 1 jobsingulf.com, 1 jobsisbrown.com, 1 -jobsjj.com, 1 jobskilled.co.za, 1 jobsknowlgee.tk, 1 jobsmali.ml, 1 @@ -79868,11 +79512,8 @@ joeskup.com, 1 joesmotorpool.fr, 1 joesniderman.com, 1 -joesniderman.net, 1 -joesniderman.org, 1 joespaintingpgh.com, 1 joetyson.io, 1 -joetyson.me, 1 joeyfelix.com, 1 joeyhoer.com, 1 joeysglassbaytown.com, 1 @@ -79926,7 +79567,7 @@ johnbaldry.com, 1 johnball.co, 1 johnbeil.com, 1 -johnberberian.net, 1 +johnberberian.net, 0 johnblackbourn.com, 0 johnblotsky.tk, 1 johncam.tk, 1 @@ -79950,7 +79591,6 @@ johninwood.com, 1 johnjayro.com, 1 johnjohnsons.tk, 1 -johnkastler.net, 1 johnkraal.com, 1 johnlecarre.com, 1 johnlewis.com, 1 @@ -80047,7 +79687,6 @@ jolicode.com, 1 jolienoir.net, 1 joliet.gov, 1 -jolihi.de, 1 jolina.pl, 1 joline.me, 1 jollausers.de, 1 @@ -80093,8 +79732,7 @@ jonaswitmer.ch, 1 jonatan.gq, 1 jonathan-apps.com, 1 -jonathan-himmelreich.de, 1 -jonathanamoia.co, 1 +jonathanamoia.co, 0 jonathancarter.org, 1 jonathandaleswindle.com, 1 jonathandowning.uk, 0 @@ -80170,7 +79808,6 @@ joogle.at, 1 jooksuratas.ee, 1 jooli.tk, 1 -joom.com, 1 joomag.com, 1 joomanji.fr, 1 joomearaweb.tk, 1 @@ -80178,6 +79815,7 @@ joomla-spezialist.de, 1 joomla-ua.org, 1 joomladeveloper.ru, 1 +joompress.biz, 1 joona.pw, 1 joonstudios.com, 1 joopzy.com, 1 @@ -80210,7 +79848,6 @@ jordansfiles.tk, 1 jordansmovies.tk, 1 jordansrequests.tk, 1 -jordanstrustcompany.com, 1 jordhy.com, 1 jordibelgraver.email, 1 jordibelgraver.eu, 1 @@ -80256,6 +79893,7 @@ joseguerra.es, 1 josejorques.tk, 1 joseluisberrocal.tk, 1 +josemariavazquez.com, 1 josenastrid.tk, 1 josepbel.com, 1 josephalexander.media, 1 @@ -80267,12 +79905,10 @@ josephmarino.net, 1 josephpinder.com, 1 josephsniderman.com, 1 -josephsniderman.net, 1 josephsniderman.org, 1 josephv.website, 1 josephziegler.com, 0 joserafaelsosa.tk, 1 -josericaurte.com, 1 josestiller.de, 1 joseventos.com, 1 josh-disbrow.com, 1 @@ -80292,7 +79928,6 @@ joshparker.blog, 1 joshparker.uk, 1 joshrickert.com, 1 -joshruppe.com, 1 joshs.domains, 1 joshs.guide, 1 joshs.photos, 1 @@ -80339,6 +79974,7 @@ jouetspetitechanson.com, 1 jouleperformance.ch, 0 jouleperformance.de, 0 +jounress.com, 0 jouonline.nl, 1 jouons-aux-echecs.be, 1 jourbook.cf, 1 @@ -80397,6 +80033,7 @@ joycosmetics.ch, 1 joydivision.tk, 1 joydream.tk, 1 +joyfay.com, 1 joyfulbikeshedding.com, 1 joyfulevents.tk, 1 joyfulhealthyeats.com, 1 @@ -80412,6 +80049,7 @@ joyousisle.com, 1 joysinventingblog.com, 1 joystickblog.tk, 1 +joyteacake.com, 1 jozefkvasnica.tk, 1 jozefmichalmintal.com, 1 jozefmutis.com, 1 @@ -80422,7 +80060,6 @@ jpan007.com, 1 jpanetta.tk, 1 jparts.su, 1 -jpaudio.org, 1 jpbe-network.de, 1 jpberlin.de, 1 jpc-design.com, 1 @@ -80460,7 +80097,6 @@ jpsinflatables.co.uk, 1 jpst.it, 1 jpvermogensregie.com, 1 -jpvfinanceira.net, 1 jpvisual.com, 1 jqlin.com, 1 jqlsql.com, 1 @@ -80497,7 +80133,6 @@ jrtapsell.co.uk, 1 jrtransportedemotos.com.br, 1 jrucomsoc.tk, 1 -jrulka.ru, 1 jrwebb.co.nz, 1 jrwu.win, 1 jrxpress.com, 1 @@ -80613,14 +80248,12 @@ ju-rex.eu, 1 juabcounty.gov, 1 jualkambing.tk, 1 -juancadc.es, 1 juancamos.com, 1 juancarlosflores.tk, 1 juancarlosgalvez.tk, 1 juancarlosllaque.com, 1 juancatalangomez.es, 1 juanfrancisco.tech, 1 -juanherranz.com, 1 juanitia.com, 1 juanitofatas.com, 1 juanjomontecinos.tk, 1 @@ -80681,7 +80314,6 @@ juffalow.com, 1 jugendhackt.de, 1 jugendhackt.org, 1 -jugendpresse-hessen.de, 1 jugh.de, 1 juhakoho.com, 1 juhanihakala.fi, 1 @@ -80698,6 +80330,7 @@ juicyforum.com, 1 jujineo.com, 1 jujutsuoulu.fi, 1 +jujuygrafico.com.ar, 1 jukebox-manuals.tk, 1 jukkakivi.fi, 1 jukkakivimaki.fi, 1 @@ -80706,7 +80339,7 @@ julb.de, 1 julditec.com, 1 jule-spil.dk, 1 -julenetxaniz.eus, 1 +julenetxaniz.eus, 0 julenlanda.com, 0 julesfrans.be, 1 julesroovers.nl, 1 @@ -80780,7 +80413,7 @@ julietta-sanchez.org, 1 juliettejones.co.uk, 1 juliettesinteriors.co.uk, 1 -julimazi.com, 1 +julimazi.com, 0 julio.jamil.nom.br, 1 juliofreitas.com, 0 juliohernandezgt.com, 1 @@ -80877,6 +80510,7 @@ juniorsplanet.in, 1 juniperroots.ca, 1 junipervalley.com, 1 +junis.nl, 1 junix.systems, 1 junjie.pro, 1 junjun-web.net, 0 @@ -80902,7 +80536,7 @@ junyangz.com, 1 junyu33.me, 1 juozasveza.lt, 1 -jupiteram.com, 1 +jupiteram.com, 0 jupiterfy.com, 1 juppy.tk, 1 jura-reiseschutz.de, 1 @@ -80963,7 +80597,6 @@ just-webdesign-berlin.de, 1 just.nl, 1 just3preety.com, 1 -just6f.com, 1 justacoupleofclarkes.co.uk, 1 justacrazygirl.com, 1 justanorganizedhome.com, 1 @@ -80972,7 +80605,6 @@ justasdelish.com, 1 justbelieverecoverypa.com, 1 justbid.nl, 1 -justbooktransfers.com, 0 justboom.co, 1 justbraces.com.sg, 1 justbydesign.com, 1 @@ -80984,7 +80616,6 @@ justchek.com.au, 1 justchekrapid.au, 1 justdashes.com, 1 -justdev.studio, 1 justement.ch, 1 justf.tk, 1 justfencingcheshire.co.uk, 1 @@ -81061,6 +80692,7 @@ justsfa.net, 1 justsfa.org, 1 justshare.tk, 1 +juststone.net.au, 1 justthepill.com, 1 justupdate.me, 1 justwannalearn.com, 1 @@ -81235,7 +80867,6 @@ k873.co, 0 k875.co, 0 k88107.com, 1 -k88110.com, 0 k88116.com, 0 k88127.com, 0 k88172.com, 1 @@ -81285,7 +80916,6 @@ kaasbesteld.nl, 1 kaatha-kamrater.se, 0 kaatsen.tk, 1 -kaayaluxuryayurveda.com, 1 kab-s.de, 1 kabachok.tk, 1 kabal.tk, 1 @@ -81348,8 +80978,7 @@ kadhal-kirukkan.tk, 1 kadidak.com, 0 kadifeli.com, 1 -kadinbonesulsel.id, 1 -kadinfutbolu.com, 1 +kadinfutbolu.com, 0 kadinhaber.tk, 1 kadinhayati.com, 1 kadinisci.org, 1 @@ -81433,12 +81062,10 @@ kaioken.bar, 1 kaion.vn, 1 kaipel.de, 1 -kairion.de, 0 +kairion.de, 1 kairuitan.com, 0 kais08.com, 1 kaisanord.org, 1 -kaiser.ga, 1 -kaiser.wf, 1 kaiseraerospace.tk, 1 kaiserburg-nuernberg.de, 1 kaiserinformativo.com, 1 @@ -81527,7 +81154,6 @@ kalender.com, 1 kalender.goip.de, 1 kalerne.tk, 1 -kalevi.es, 1 kalfeher.com, 1 kalhotkomat.cz, 1 kalhufvudet.se, 1 @@ -81560,6 +81186,7 @@ kallosmedicalaesthetics.com, 1 kalmar.com, 0 kalmarbilder.se, 1 +kalmbach.com, 1 kalmservices.ca, 1 kalmykia.cf, 1 kalmykia.tk, 1 @@ -81568,6 +81195,7 @@ kaloix.de, 1 kalolina.com, 1 kalombo.ru, 1 +kalompaturi.com, 1 kalpavriksh.org, 1 kalsa.ga, 1 kalsbouncies.com, 1 @@ -81585,7 +81213,6 @@ kalyancity.in.ua, 1 kalyandevelopers.com, 1 kalyangupta.ml, 1 -kalyanmatka.guru, 1 kalyazin-online.tk, 1 kalypsoapp.com, 1 kam-serwis.pl, 1 @@ -81676,7 +81303,6 @@ kanava.tk, 1 kanbanblog.com, 1 kancelarblanik.cz, 1 -kancelaria-prawna.pl, 1 kancelyaria.com.ua, 1 kancolle.me, 1 kanctovary.tk, 1 @@ -81767,6 +81393,7 @@ kanvasbaski.tk, 1 kanz.jp, 1 kanzashi.com, 1 +kanzlei-sixt.de, 1 kanzshop.com, 1 kaodata.com, 1 kaohongshu.blog, 1 @@ -81829,6 +81456,7 @@ karanjthakkar.com, 1 karanlyons.com, 1 karantyn.pro, 1 +karaodesign.fr, 1 karaoglanis-info.tk, 1 karaoglanis.tk, 1 karaokerentalcalgary.com, 1 @@ -81987,7 +81615,6 @@ kasei.im, 1 kasepuhan.com, 1 kaserne-basel.ch, 1 -kasettilamerit.fi, 1 kaseyhopkins.com, 1 kashbet.net, 1 kashbontravels.com, 1 @@ -82067,7 +81694,6 @@ katapult.tk, 1 katarios.tk, 1 katarpilar.com, 1 -katarsis.lt, 1 katartika.tk, 1 kataumi-shika.jp, 1 katavagroup.com, 1 @@ -82170,7 +81796,7 @@ kaustubhk.com, 1 kava.io, 1 kavalasite.gr, 1 -kavanaghfamily.com, 1 +kavaplius.lt, 1 kavatasygarety.tk, 1 kaveh24.com, 1 kavelruilonline.nl, 1 @@ -82182,6 +81808,7 @@ kavithai.tk, 1 kavkaz-info.tk, 1 kavkaz.cf, 1 +kavli-express.gr, 1 kavovary-kava.cz, 1 kavshipping.com, 1 kavya-arora.in, 1 @@ -82293,7 +81920,6 @@ kbst.se, 0 kbtairmont.com, 1 kbtit.jp, 1 -kbwshowroom.com, 1 kbz.fr, 1 kc-holzfaeller.de, 1 kc-leeuwarden.tk, 1 @@ -82324,6 +81950,7 @@ kcsonline.biz, 1 kcsordparticipation.org, 1 kcsprayfoam.com, 1 +kcucs.com, 1 kd-23.ru, 1 kd-event.de, 1 kd.net.nz, 1 @@ -82550,7 +82177,7 @@ kelvinchung.tk, 1 kelvindecosta.com, 1 kelvinfichter.com, 0 -kelyan.fr, 1 +kelyan.fr, 0 kelyon.info, 1 kemahtx.gov, 1 kemanai.akita.jp, 1 @@ -82569,7 +82196,6 @@ kemifilani.ng, 1 kemnacarwash.com, 1 kemono.in.th, 1 -kemono.su, 1 kempercountyms.gov, 1 kempercountysheriff.com, 1 kempkens.io, 1 @@ -82577,7 +82203,6 @@ kempportraits.com, 1 kemptechnologies.com, 0 kemptonparkplumbing.co.za, 1 -kemptonparkrubbleremovals.co.za, 1 kemptown.co.uk, 1 kemptown.com, 1 kemptown.net, 1 @@ -82627,7 +82252,6 @@ kennethlim.me, 1 kennethsentillas.com, 1 kennewell.tk, 1 -kennfixx.com, 1 kennis.ga, 1 kennisknooppuntparticipatie.nl, 1 kennisnetwerkparkeren.nl, 1 @@ -82769,7 +82393,6 @@ ketoconazole.gq, 1 ketoliv.dk, 1 ketotadka.com, 1 -ketquaso.net, 1 kets.ru, 1 ketsafaris.com, 1 kett.email, 1 @@ -82802,7 +82425,6 @@ kevin-ta.com, 1 kevin.eu, 1 kevin.tw, 0 -kevinackford.uk, 1 kevinapease.com, 1 kevinaud.io, 1 kevinbardot.alwaysdata.net, 1 @@ -82822,7 +82444,7 @@ kevinji.com, 1 kevinkla.es, 1 kevinlocke.name, 1 -kevinloganelectrical.co.nz, 1 +kevinloganelectrical.co.nz, 0 kevinmathiesen.tk, 1 kevinmcphotograph.com, 1 kevinmeijer.nl, 1 @@ -82879,6 +82501,7 @@ keyphotojs.cf, 1 keypoint.edu.au, 1 keyrana.com, 1 +keyroot.tech, 1 keys.fedoraproject.org, 1 keyscore.me, 1 keyserver.sexy, 0 @@ -82903,7 +82526,6 @@ kf-slot.com, 0 kf2525.com, 1 kf66888.com, 0 -kf6820.com, 1 kf688.com, 1 kf7676.com, 0 kf88666.com, 1 @@ -82939,7 +82561,6 @@ kgk.gov.tr, 1 kgky.cc, 1 kgm-irm.be, 1 -kgmediafactory.com, 1 kgnk.ru, 0 kgs-neviges.de, 1 kgt10.ru, 1 @@ -82970,7 +82591,6 @@ khaliinfo.tk, 1 khalilicollections.org, 1 khalti.com, 1 -khanacademy.org, 1 khankandi.tk, 1 khanovaskola.cz, 1 khaolak-house.com, 1 @@ -83134,6 +82754,7 @@ kidswithguns.tk, 1 kidtoyshop.ru, 1 kidwater4ut.gov, 1 +kidzncrew.com, 1 kidzonet.io, 1 kidzpartiesllp.co.uk, 1 kidzsmile.co.uk, 1 @@ -83152,7 +82773,7 @@ kiepe-hannover.de, 1 kieran-mcguire.uk, 1 kieran.de, 1 -kieranjones.uk, 1 +kieranjones.uk, 0 kieranpotts.com, 1 kieranweightman.me, 1 kierlandgolf.com, 0 @@ -83160,8 +82781,10 @@ kiesuwarbeidsrechtadvocaat.nl, 1 kiesuwkerstkaart.nl, 1 kietblog.tk, 1 +kieutruong.com, 1 kiev-live.tk, 1 kievanrus.tk, 1 +kievholod.in.ua, 1 kievkiralikotel.com, 1 kievlove.tk, 1 kiewit.com, 1 @@ -83195,12 +82818,11 @@ kikchat.co.il, 0 kiki.ee, 1 kikikanri.biz, 1 -kikipartyshop.com, 1 kikivega.net, 1 kikki.io, 1 kikoskia.com, 1 kiku.pw, 1 -kileybedwell.com, 1 +kileybedwell.com, 0 kilian-sommer.de, 1 kilian.gallery, 1 kiliansommer.de, 1 @@ -83342,7 +82964,6 @@ kinderbasar-luhe.de, 1 kinderbuecher-kostenlos.de, 1 kinderchirurgie-muenchen.de, 1 -kinderchor-bayreuth.de, 1 kinderevents-sehnde.de, 1 kindergarten.vic.gov.au, 1 kindergartenprintables.com, 1 @@ -83512,6 +83133,7 @@ kinto.pro, 1 kintone.com, 1 kintore.tv, 1 +kintsu.com.br, 1 kintsugispace.com, 1 kinualive.com, 1 kinugasa.or.jp, 1 @@ -83573,13 +83195,12 @@ kiripost.com, 1 kirka.ga, 1 kirkae.com, 1 -kirkcompany.com, 1 +kirkcompany.com, 0 kirkforcongress.com, 1 kirkforsenate.com, 1 kirkify.com, 1 kirkintillochbc.co.uk, 1 kirkkonummenavhkerho.net, 1 -kirkovsky.com, 1 kirksville.gov, 1 kirkwood-smith.com, 1 kirkwoodfencing.com, 1 @@ -83631,7 +83252,6 @@ kissmateszabolcs.hu, 1 kissmycreative.com, 1 kissoft.ro, 1 -kisspeptin.com, 1 kistipro.tk, 1 kisulki.tk, 1 kisumuterraceapartments.tk, 1 @@ -83666,7 +83286,6 @@ kitchenware.tk, 1 kitchenwarehouseltd.com, 1 kitchfurnit.tk, 1 -kitconcept.com, 1 kitconcept.de, 1 kitconsulting.ninja, 1 kitdealoevera.com, 1 @@ -83733,6 +83352,7 @@ kiwi.ki, 1 kiwibird.tokyo, 1 kiwideo.ro, 1 +kiwiflowershop.com.ua, 1 kiwikiwi.se, 1 kiwilove.es, 1 kiwing.ddns.net, 1 @@ -83937,7 +83557,6 @@ kliki.tk, 1 klikket.dk, 1 kliklinks.tk, 1 -klikmanga.id, 1 klikmarket.tk, 1 klikweb.id, 1 klima.com, 1 @@ -83947,7 +83566,6 @@ klimaatstad.gent, 1 klimacamp-sterkraderwald.de, 1 klimafakten.de, 1 -klimakamp.nu, 1 klimakomplekt.com, 1 klimalaan.no, 1 klimalan.no, 1 @@ -84075,7 +83693,6 @@ knapp.servehttp.com, 1 knarcraft.net, 1 knarkkorven.tk, 1 -knarzkopf.de, 1 knashaug.com, 1 knauf.com, 1 knautiluz.net, 0 @@ -84124,7 +83741,6 @@ knirps.de, 1 knirps.fr, 1 knirps.nl, 1 -knispel-online.de, 1 knispelonline.de, 1 knitted-hats.tk, 1 knitted-things.tk, 1 @@ -84162,7 +83778,6 @@ knowledge-base.info, 0 knowledgeforce.com, 1 knowledgehook.com, 1 -knowledgehut.com, 1 knowledgesuccess.org, 1 knowlevillagecc.co.uk, 1 knowmoreplatform.com, 1 @@ -84244,6 +83859,7 @@ kochcommunity.com, 1 kochdigital.dk, 1 kochen-und-design.de, 1 +kochereva.com, 1 kocheshkov.cf, 1 kochhar.net, 1 kochi-death.ml, 1 @@ -84261,7 +83877,6 @@ kodama-dorayaki.co.jp, 1 kodambroker.com, 0 kodar.tk, 1 -kodden.com.br, 1 kode-it.de, 1 kode.ch, 0 kodeholic.me, 1 @@ -84313,7 +83928,6 @@ kogi.fr, 1 kogotok.gq, 1 kogotok.ml, 1 -koha.mk, 1 kohaku.love, 1 kohama-obgy.jp, 1 kohana.fi, 1 @@ -84407,7 +84021,6 @@ kolukylaselts.ee, 1 kolyapetrov.tk, 1 kom.pe, 1 -komaba-bunka.net, 1 komalgandhi.tk, 1 komall.net, 1 komarex.pl, 1 @@ -84454,7 +84067,6 @@ komp-plus.tk, 1 komp247.pl, 1 kompaniya-vasya.tk, 1 -kompetenzkurs.de, 1 kompiwin.com, 1 komplekt.gq, 1 komplet.sk, 1 @@ -84516,6 +84128,7 @@ konf.ga, 1 konfekcjonowanie.com, 1 konference.tech, 1 +konfhub.com, 1 konfiskator.online, 1 konflikthaus.de, 1 konfliktklaerer.de, 1 @@ -84531,7 +84144,7 @@ konijnen-knaagdieren.tk, 1 konila.com, 1 koningerik.nl, 1 -konings.it, 0 +konings.it, 1 koningslust.tk, 1 koninkrijk.net, 1 konjunktion.tk, 1 @@ -84558,7 +84171,7 @@ konsol.pro, 1 konspiracnipohadky.cz, 1 konst.se, 1 -konstantinlichtenwald.com, 1 +konstantinlichtenwald.com, 0 konstanz.tk, 1 konstitucia.com, 1 konstructdigital.com, 1 @@ -84699,7 +84312,6 @@ korespondent.tk, 1 korfbal.nl, 1 korfballeague.nl, 1 -korfezemlak.com, 1 korhonen.social, 1 korikart.com, 1 korikart.net, 1 @@ -84753,7 +84365,6 @@ kosmont.com, 1 kosmopoisk-orel.tk, 1 kosmoprolet.tk, 1 -kosmos3.ru, 1 kosmosfestival.tk, 1 kosmosol.it, 1 kosmosradio.tk, 1 @@ -84797,6 +84408,7 @@ kotisivukone.fi, 1 kotka.ml, 1 kotlinfactory.io, 1 +kotly-marten.com.ua, 1 kotmale.com, 1 kotobox.net, 1 kotobuki-healing.com, 1 @@ -84833,6 +84445,7 @@ koval.io, 1 kovaldo.ru, 1 kovnsk.net, 1 +kovrik-tm.com.ua, 1 kovroedov.ru, 0 kovspace.com, 1 kovu.dog, 1 @@ -84879,12 +84492,13 @@ kpinvest.eu, 1 kpkhub.com, 1 kplante.com, 1 +kplastics.in, 1 kplasticsurgery.com, 1 kplnet.net, 1 kpmgccc.co.nz, 0 kpmgclientcollab.co.nz, 0 kpntdolive.nl, 1 -kpo.fi, 1 +kpo.fi, 0 kpop.re, 1 kpop.ro, 1 kpopsource.com, 1 @@ -84967,7 +84581,7 @@ krasotaiskusstva.com, 1 krasotkafirm.tk, 1 krasotki.ml, 1 -krastown.com, 0 +krastown.com, 1 krastyamoucha.cz, 1 kratochvilovi.net, 1 krause-outlet.de, 1 @@ -84985,6 +84599,7 @@ krd93.ru, 1 kreanoid-clientportal-aus-dev.azurewebsites.net, 1 kreanoredact-portal-aus-dev.azurewebsites.net, 1 +krearv.com, 1 kreasim32.co.id, 1 kreationnext.com, 1 kreativbande.com, 1 @@ -85048,7 +84663,6 @@ kreuzwortraetsellosungen.com, 1 kreweofneptune.org, 1 krey.is, 1 -kreyolgym.fr, 1 krezimizik.com, 1 krfoodsng.com, 1 kridtvejsplanter.dk, 1 @@ -85071,6 +84685,7 @@ krimzeta.com, 1 krinetzki.de, 0 kringla.nu, 1 +kringla.xyz, 1 kringloopwinkels.tk, 1 krinnovations.ie, 1 kripa.tk, 1 @@ -85111,7 +84726,6 @@ kristoffer.is, 1 kriston.tk, 1 kristv.com, 1 -kristymiley.com, 1 kristytroyerphotography.com, 1 kristyvonkashyyyk.net, 1 kriswauters.tk, 1 @@ -85240,6 +84854,7 @@ krystal-framework.ml, 1 krytykawszystkiego.com, 1 krytykawszystkiego.pl, 1 +kryx.de, 1 krzeslaonline.pl, 1 krzysiamrozinska.pl, 1 ks-19.com, 1 @@ -85339,11 +84954,10 @@ ks99.app, 1 ksa-lawfirm.com, 1 ksa-uk.net, 1 -ksa.mx, 1 ksabconline.gov, 1 ksamaps.com, 1 ksar.tk, 1 -ksat-stuttgart.de, 1 +ksat-stuttgart.de, 0 ksato.fr, 0 ksauhs-med.com, 1 ksbkrasnodar.ru, 1 @@ -85498,7 +85112,6 @@ kuehndel.org, 1 kuehnel-online.eu, 1 kuemmling.eu, 1 -kuenker.de, 1 kuenstler-website.de, 1 kuepper.tk, 1 kuerbis.org, 1 @@ -85691,7 +85304,6 @@ kurtschleinbeck.com, 1 kurungkurawal.id, 1 kuruppa.xyz, 1 -kurushmistry.co, 1 kurz.pw, 1 kurzly.de, 1 kurztrip-fuer-verliebte.de, 0 @@ -85728,7 +85340,6 @@ kutinsoft.com, 1 kutsankaplan.com, 1 kuttler.eu, 1 -kuttysoft.com, 1 kutvonen.net, 1 kutyamacskashop.hu, 1 kuudere.moe, 1 @@ -85796,7 +85407,6 @@ kvxr.com, 1 kw.gt, 1 kwadraadtevredenheid.nl, 1 -kwai.tv, 1 kwakkelglas.nl, 0 kwalifikacje.gov.pl, 1 kwc.gov, 1 @@ -85919,7 +85529,6 @@ kysil.org, 1 kytkintienautomaalaamo.fi, 1 kyujin-office.net, 1 -kyunyuki.com, 1 kyushu-ds.com, 1 kyusyu.org, 1 kyvosinsights.com, 1 @@ -86023,7 +85632,6 @@ labanskollermark.se, 1 labarcadelperegrino.com, 1 labassist.lt, 1 -labaugmbh.de, 1 labayru.eus, 1 labbuilders.co.uk, 1 labcenter.com, 1 @@ -86049,7 +85657,6 @@ labmakelaar.com, 1 labmakelaar.eu, 1 labms.com.au, 1 -labobooks.com, 1 labodeguitamigueltorres.cl, 1 labogue.info, 1 laboiteafred.fr, 1 @@ -86068,6 +85675,7 @@ laborbluesers.ga, 1 laborbluesest.ga, 1 labordayauction.org, 1 +labordude.com, 1 laborriquita.tk, 1 labortogether.com, 1 labostech.com, 1 @@ -86105,10 +85713,11 @@ lacahsa.gov, 1 lacalderera.tk, 1 lacallas.tk, 1 -lacamasmagazine.com, 1 lacantine.xyz, 1 +lacapsule.org, 1 lacargo.az, 1 lacarniceria.tk, 1 +lacarreradelagua.es, 1 lacarretica.cr, 1 lacasadelmaniqui.net, 1 lacasadelours.fr, 1 @@ -86116,6 +85725,7 @@ lacasseroy.com, 1 lacavedesergio.fr, 1 lacaveducinquantenaire.com, 1 +lacaverna.net, 1 lacazadora.tk, 1 lacebeauty.it, 0 laceleste.it, 1 @@ -86448,7 +86058,6 @@ lalagunachalate.tk, 1 lalaloe.be, 1 lalaog.com, 1 -lalarosas.com, 1 lalaserniagara.ca, 1 lalaya.fr, 1 laled.ch, 0 @@ -86596,7 +86205,7 @@ land.nrw, 0 landart.tk, 1 landasocial.com, 1 -landassessmentservices.com, 1 +landassessmentservices.com, 0 landbouwpowers.tk, 1 landc.com.ua, 1 landchecker.com.au, 1 @@ -86633,6 +86242,7 @@ landpotential.org, 1 landropunk.xyz, 1 landroverexpo.com.au, 1 +landroveruganda.club, 1 landscape-photography.org, 1 landscapelightingagourahills.com, 1 landscapelightingmalibu.com, 1 @@ -86664,7 +86274,7 @@ langadeduero.tk, 1 langages-programmation.tk, 1 langapi.com, 1 -langatang.com, 1 +langatang.com, 0 langauto.hu, 1 langbein.org, 1 langemensen.be, 1 @@ -86753,7 +86363,7 @@ laohei.org, 0 laolaweb.tk, 1 laoliang.ml, 1 -laomoss.com, 0 +laomoss.com, 1 laonawatersewerwi.gov, 1 laonawi.gov, 1 laorg.studio, 1 @@ -86787,7 +86397,6 @@ laperreraflamenca.tk, 1 lapesbaldai.lt, 1 lapicena.eu, 1 -lapierrecabinetry.com, 1 lapina.tk, 1 lapinas.com, 1 lapinator.net, 1 @@ -86913,7 +86522,7 @@ lars.software, 1 larsartmann.com, 1 larsberglund.tk, 1 -larsentransfer.com, 1 +larsentransfer.com, 0 larser.tk, 1 larseriksson.es, 1 larsi.org, 1 @@ -87002,6 +86611,7 @@ lastbooks.gq, 1 lastcast.bg, 1 lastenrad-gifhorn.de, 1 +lasthome.co.uk, 1 lastingcar.com, 1 lastingmarksers.ga, 1 lastingmarksest.ga, 1 @@ -87086,7 +86696,6 @@ latifitness.com, 1 latifolia.com, 1 latinacon.com, 1 -latinalternative.com, 1 latinapress.it, 1 latinatoday.it, 1 latinmusiccollection.tk, 1 @@ -87165,6 +86774,7 @@ laurelcountycorrectionsky.gov, 1 laurelcountysheriff.gov, 1 laurelmd.gov, 1 +laurelmountainministries.org, 1 lauren.gq, 1 laurenball.com, 1 laurencball.com, 1 @@ -87180,7 +86790,6 @@ laurentfinance.com, 1 laurentianlanes.com, 1 lauresta.lt, 1 -lauresta.lv, 1 lauretta.io, 1 lauriane-garcia.avocat.fr, 1 lauriemo.gov, 1 @@ -87217,6 +86826,7 @@ laventura.tk, 1 laventusdigital.co.uk, 1 lavhire.tk, 1 +laviaregia.com, 1 laviedalex.ovh, 1 lavinaec.com, 1 lavinya.net, 1 @@ -87247,7 +86857,6 @@ law-profile.com, 1 law-zur.co.il, 1 law.co.il, 1 -law.kg, 0 law22.com, 0 lawabidingcactus.com, 1 lawaccess.org.au, 1 @@ -87448,7 +87057,6 @@ lc871.com, 0 lc873.com, 0 lc875.com, 0 -lc879.com, 0 lc8812.com, 1 lc8820.com, 0 lc8839.com, 1 @@ -87456,7 +87064,6 @@ lc8881.com, 0 lc8885.com, 0 lc8887.com, 0 -lc891.com, 0 lc897.com, 1 lc8c.com, 1 lc8guidance.com, 1 @@ -87659,7 +87266,6 @@ leapandjump.co.uk, 1 leapday.us, 1 leapworks.io, 1 -leapxx.pro, 1 leapzonestrategies.com, 1 lear.com.br, 1 lear.com.ua, 1 @@ -87676,6 +87282,7 @@ learnatf.gov, 1 learnattack.de, 1 learnbin.net, 1 +learnblockchain.io, 1 learncamerarepair.com, 1 learncoding.tk, 1 learncrypto.live, 1 @@ -87790,6 +87397,7 @@ lebureau27.com, 1 lebureau27.fr, 1 lebureau27.lu, 1 +lebuys.ca, 1 lebv.org, 1 lecandide.info, 1 lecannabis.at, 1 @@ -88068,7 +87676,6 @@ legends-game.ru, 0 legendwiki.com, 1 leger-voertuigen.tk, 1 -legere.info, 1 leggings-grossesse.fr, 1 legginsypolskie.pl, 1 leggyeggy.ga, 1 @@ -88165,7 +87772,7 @@ leisurevip.com, 1 leit.kr, 1 leitz-cloud.com, 1 -leiyinan.com, 1 +leiyinan.com, 0 lejardindesmesanges.fr, 1 lejlax.com, 1 lejournaldublog.com, 0 @@ -88197,7 +87804,7 @@ lelulove.net, 1 lelux.net, 1 lelystadairport.nl, 1 -lem0n.cc, 0 +lem0n.cc, 1 lem0n.eu.org, 1 lemanbleu.ch, 1 lemarcheelagrandeguerra.it, 1 @@ -88215,6 +87822,7 @@ lemieuxproducts.com, 1 leminhduong.com, 1 lemitron.fr, 1 +lemitti.com, 1 lemler.family, 1 lemmamedia.com, 1 lemmy.cafe, 1 @@ -88232,6 +87840,7 @@ lemonpool.com.tr, 1 lemonrfx.com, 1 lemonrockbiketours.com, 1 +lemonrotools.com, 1 lemons-aid.com, 1 lemonsociety.cf, 1 lemonsoftware.eu.org, 1 @@ -88328,12 +87937,15 @@ lenyip.works, 1 leo-boutique.fr, 1 leo-music.tk, 1 +leo-rio.com, 1 +leo-translate.com.ua, 1 leo.gov, 1 leoandpeto.com, 1 leob.in, 0 leoburnett.com, 1 leocollo.com, 1 leodraxler.at, 1 +leoj.de, 1 leojweda.com, 1 leola.cz, 1 leola.sk, 1 @@ -88433,6 +88045,7 @@ lerefuge.xyz, 1 lerelaisdelareine.com, 1 lerika.tk, 1 +lerisloisdesbaquets.fr, 1 lerks.blog, 1 lerku.com, 1 lerm.nl, 1 @@ -88456,6 +88069,8 @@ les-plus.com, 1 les-pros-du-drone.com, 1 les-universalistes.be, 1 +lesa-kiev.biz.ua, 1 +lesa.biz.ua, 1 lesa.boutique, 1 lesacredescouleurs.fr, 1 lesainglisinsurance.com, 1 @@ -88475,7 +88090,6 @@ lesborgestv.cat, 1 lesbrillantsdaristide.com, 1 lescarnetsderoutedesophie.com, 1 -leschamoisduvercors.fr, 1 lescharmesdebailly.com, 1 lescommunes.com, 1 lescomptoirsdepierrot.com, 1 @@ -88582,13 +88196,12 @@ letoltes.info, 1 letopise.com, 1 letraba.com, 1 -letran.com.co, 0 +letran.com.co, 1 letranif.net, 1 letras.com, 1 letras.mus.br, 1 letras10.co, 1 letraschile.com, 1 -letrascorporeasonline.com, 1 lets-go-acoustic.de, 0 lets.nu, 0 lets.re, 1 @@ -88653,6 +88266,7 @@ leusemiamusic.tk, 1 leuthardtfamily.com, 1 leutholdgroup.com, 1 +leutransporteur.com, 1 leuvensefilmclub.tk, 1 lev103.com, 1 levabilligt.com, 1 @@ -88694,7 +88308,6 @@ levico.tk, 1 levida.ca, 1 levidromelist.com, 1 -levinus.de, 1 levis.fun, 1 levis.name, 1 levischuck.com, 1 @@ -88736,6 +88349,7 @@ lewismcyoutube.uk, 1 lewistonutah.gov, 1 lewt.me, 1 +lex-legal.com.ua, 1 lex18.com, 1 lexapro-price.ga, 1 lexautoservice.nl, 1 @@ -88767,6 +88381,8 @@ lexitthemovie.tk, 1 lexjunkie.xyz, 1 lexmedia.ro, 1 +lexmondcommunications.com, 1 +lexoh.com, 0 lexopen.dk, 1 lexpartsofac.com, 1 lexpert.ca, 1 @@ -88793,8 +88409,8 @@ lezdombliss.com, 1 lezdomsm.com, 1 lezen.tk, 1 +lezgetreal.com, 1 lezhang.top, 1 -leziblog.cn, 1 leziblog.com, 1 lezzetyurdu.com.tr, 1 lf-space.com, 1 @@ -88881,7 +88497,6 @@ lia-fox.org, 1 liaiai.com, 1 liakhova.com, 1 -liakhova.ru, 1 lialash.pro, 1 lialeone.org, 1 lialion.de, 1 @@ -89245,6 +88860,7 @@ lifestyle7788.com, 1 lifestylecalculator.com, 1 lifestyledoctor.in, 1 +lifestylefoodies.com, 1 lifestylexplocial.tk, 1 lifetech.com.my, 1 lifetecinc.com, 1 @@ -89317,7 +88933,6 @@ lights0123.com, 1 lightsfromspace.com, 0 lightsheep.no, 0 -lightsinmotion.nl, 1 lightsouts.com, 1 lightsoverlapland.com, 1 lightsproject.com, 1 @@ -89367,7 +88982,6 @@ likebot.ml, 1 likecrabwalkslowly.ml, 1 liked.hu, 1 -likedobrasil.com, 1 likefast.tk, 1 likegeeks.com, 1 likehifi.de, 1 @@ -89394,9 +89008,7 @@ lilai6677.com, 1 lilai6688.com, 0 lilai777.com, 1 -lilai8866.com, 0 lilai9966.com, 1 -lilaplus.com.tr, 1 lilawadee.tk, 1 lile.cl, 1 lilgreatwall.com, 1 @@ -89514,7 +89126,6 @@ linaklein.de, 1 linalove.net, 1 linalynn.com, 1 -linan.info, 1 linan.site, 1 linaproclinic.com, 1 linawinter.com, 1 @@ -89619,6 +89230,7 @@ lingeriebym.nl, 1 lingeriecollect.ga, 1 lingeriesilhouette.com, 1 +lingmax.ru, 1 lingolia.com, 0 lingpy.org, 1 lingros-test.tk, 1 @@ -89637,7 +89249,6 @@ lingvist.com, 1 linhaoyi.com, 0 linherest.tk, 1 -linhim.de, 1 linhua.org, 1 linjerry.tk, 1 link-group.tk, 1 @@ -89671,7 +89282,6 @@ linke-kommunalpolitik.de, 1 linkedpipes.com, 1 linkedsuperpowers.com, 1 -linkeit.com, 1 linkenheil.org, 1 linker-wenzel.com, 1 linkersconnect.com, 1 @@ -89726,6 +89336,7 @@ linky.ph, 1 linky.tk, 1 linkycat.com, 1 +linmago.com, 1 linmania.tk, 1 linnaclinic.com, 1 linnaeusgroup.co.uk, 1 @@ -89767,7 +89378,7 @@ linpx.com, 0 linqapp.com, 1 linqhost.nl, 1 -linserto.it, 0 +linserto.it, 1 linshiyouxiang.com, 1 linss.com, 1 linss.com.cn, 1 @@ -89837,6 +89448,7 @@ linuxproject.net, 1 linuxsecurity.com, 1 linuxsecurity.expert, 1 +linuxtage.at, 0 linuxwerkstatt.net, 1 linuz.it, 1 linx.net, 1 @@ -89896,6 +89508,7 @@ liqd.net, 1 liqiuyu.com, 1 liqueur.wiki, 1 +liquid-accounting.co.za, 1 liquid.cz, 1 liquid.network, 1 liquid.place, 1 @@ -89930,7 +89543,6 @@ lirui.org, 1 lirui.tech, 1 lis-na-plasty.cz, 1 -lis.koeln, 1 lisa-mainz.tk, 1 lisa.xyz, 1 lisabel.ca, 1 @@ -89999,7 +89611,6 @@ listim.com, 0 listing.gq, 1 listings.et, 1 -listisima.com, 1 listkeeper.io, 0 listminut.be, 1 listoffreeware.com, 0 @@ -90041,7 +89652,6 @@ litecloud.ml, 1 litecoinnews.club, 1 litehost24.tk, 1 -litemere.org, 1 litemind.com, 0 liteminer.cf, 1 litepay.ch, 1 @@ -90207,6 +89817,7 @@ livechads.com, 1 livechads.org, 1 liveciv.top, 1 +livecivitas.com, 1 livecommande.fr, 1 liveconcertvideo.tk, 1 livedesign.at, 1 @@ -90220,18 +89831,15 @@ liveforspeed.se, 1 livefortheviews.com, 1 livehomecams.co.uk, 1 -liveinmelbourne.vic.gov.au, 1 liveint.org, 1 liveinternet.v.ua, 1 liveita.com, 1 liveitmerck.ca, 1 livejh.tk, 1 -livekaarten.be, 1 livekaarten.nl, 1 livekey.tk, 1 livekort.com, 1 livekort.se, 1 -livekortti.fi, 1 livela.jp, 1 livelexi.com, 1 livelifewithintent.com, 1 @@ -90271,7 +89879,6 @@ livesportts.ml, 1 livestone.tk, 1 livestrana.tk, 1 -livestreamtvbox.com, 1 livesure.com, 1 liveteachers.in, 1 livetilesglobal.com, 1 @@ -90296,6 +89903,7 @@ living.video, 1 living2000.com, 1 livingafrugallife.com, 1 +livingbitsandthings.com, 1 livingdex.ca, 1 livingdocs.io, 1 livinghebrew.tk, 1 @@ -90315,14 +89923,12 @@ livingworduk.org, 1 livinkitchen.tk, 1 livive.com, 1 -livka.id, 0 livli.cz, 1 livli.pl, 1 livli.sk, 1 livnev.me, 1 livnev.xyz, 1 livogeva.dk, 1 -livoneo.de, 1 livornonellarete.tk, 1 livornotoday.it, 1 livrariacoad.com.br, 1 @@ -90336,6 +89942,7 @@ lixinnovations.com, 1 lixis.com, 1 lixx.org, 1 +lixxil.de, 1 liyin.date, 1 liying-sub.buzz, 1 liyingcloud.org, 1 @@ -90376,7 +89983,6 @@ ljsport.nl, 1 ljubescica.hr, 1 ljungabolet.se, 1 -ljusdal.se, 1 ljusfallshammar.nu, 0 ljusnarsberg.se, 1 ljw.me, 1 @@ -90406,6 +90012,7 @@ llccd.eu.org, 1 llcgeek.com, 1 llcig.com, 1 +llcigroup.com, 1 lldigital.co.il, 1 lleidanoticies.com, 1 llemoz.com, 1 @@ -90510,7 +90117,6 @@ locadoraequiloc.com.br, 1 local-insight.com, 1 local-shop.com, 1 -local.express, 1 local360.net, 1 localassocier.tk, 1 localbandz.com, 1 @@ -90520,6 +90126,7 @@ localbouncycastle.com, 1 localcdn.org, 1 localcleann.uk, 1 +localcrew.nl, 1 localcryptos.com, 1 locald.at, 1 localdating.ml, 1 @@ -90532,6 +90139,7 @@ localgrain.org, 1 localhandyman.work, 1 localhorst.duckdns.org, 0 +localisedseo.com, 1 localiza.io, 1 localize.live, 1 localized.tk, 1 @@ -90550,7 +90158,6 @@ localreporter.es, 1 localrvs.com, 1 localsearch.homes, 1 -localseo.ltd, 1 localseorepair.co, 1 localseorepair.design, 1 localseorepair.ltd, 1 @@ -90660,7 +90267,6 @@ loco-socials.nl, 1 loco.gg, 1 locomediagroep.nl, 1 -locomotionds.com, 1 locomotiv.tk, 1 locomotive.agency, 1 locomotiveworks.co.uk, 1 @@ -90726,6 +90332,7 @@ loganparkneighborhood.org, 1 loganscene.tk, 1 logart.tk, 1 +logate.com, 0 logay.com.br, 1 logbook.ch, 1 logbot.info, 1 @@ -90898,7 +90505,6 @@ lokjagruktafoundation.com, 1 lokmatnews.in, 1 lokmattimes.com, 1 -lokmon2.eu, 1 lokomotivaplzen.cz, 1 loksite.de, 1 lokys.de, 1 @@ -91024,6 +90630,7 @@ londrihost.com.br, 1 lone-gunman.be, 1 lone-wolf.tk, 1 +lonecesitope.com, 1 lonely.moe, 1 lonelyhaoss.com, 1 lonelyion.com, 1 @@ -91063,7 +90670,7 @@ long0999.com, 1 long100.vip, 1 long266.com, 1 -long68.net, 1 +long68.net, 0 long688.com, 0 long8032.com, 1 longbeachms.gov, 1 @@ -91074,7 +90681,6 @@ longcountyga.gov, 1 longcovid.academy, 1 longcovid.blog, 1 -longcovid.forum, 1 longenyc.com, 1 longest.tk, 1 longevityfaq.com, 1 @@ -91170,7 +90776,6 @@ loots.eu, 1 lootstudios.com, 1 loottitan.com, 1 -looxent.com, 1 lopata.cloud, 1 lopendvuurtje.tk, 1 lopes.at, 1 @@ -91353,8 +90958,10 @@ loteamentoabertocapivari.com.br, 1 lotekk.gq, 1 lotereiki.tk, 1 +loteriasdominicana.com.do, 1 lothai.re, 1 lothlorien.ca, 0 +lotioito.com.br, 1 lotl.ru, 1 lotn.mobi, 1 lotnonline.com, 1 @@ -91374,7 +90981,6 @@ lotto.ht, 1 lottobazar.com, 1 lottodatabase.com, 1 -lottohoy.com, 1 lottolive24.com, 1 lottologics.com, 1 lottolooting.com, 1 @@ -91550,6 +91156,7 @@ lovetablecloths.co.uk, 1 lovetarot.jp, 1 lovethatmakeup.tk, 1 +lovetheprint.co.za, 1 lovetime.co.il, 1 lovetowork.tk, 1 loveweddingphotosandfilm.co.uk, 0 @@ -91702,6 +91309,7 @@ ltailshort.tk, 1 ltba.org, 1 ltcfeds.com, 1 +ltcwaterwijk.nl, 1 ltdev.im, 1 ltecode.com, 1 ltgc.cc, 1 @@ -91742,7 +91350,6 @@ luc-nutrition.tk, 1 luc-oberson.ch, 0 luc.li, 1 -luca-app.de, 1 luca-appeals.gov, 1 luca-steeb.com, 1 lucaconrads.de, 1 @@ -91774,7 +91381,6 @@ lucasmz.eu.org, 1 lucasvieira.fr, 0 lucciolachile.com, 1 -lucdethier.be, 1 luce.life, 1 lucentioluo.space, 1 lucentt.co.nz, 1 @@ -91791,8 +91397,6 @@ lucid-reality.ch, 1 lucidea.com, 1 lucidframeworks.com, 1 -lucidinsider.com, 1 -lucidlabs.in, 1 lucidoccult.com, 1 lucidplumbing.com.au, 1 lucidya.com, 1 @@ -91800,12 +91404,12 @@ lucielavickova.com, 1 luciferblog.tk, 1 luciferianism.tk, 1 -lucifevesdaubrac.fr, 1 lucille-thomas.fr, 1 lucillewillemsen.tk, 1 luciobarcellona.it, 1 luciogelsi.com, 1 lucishere.cz, 1 +luciusweb.es, 1 luckblock.net, 1 luckblock.site, 1 luckeyproductions.com, 1 @@ -91877,6 +91481,7 @@ ludum.pl, 1 ludunwayoo.com, 1 ludwig.im, 1 +ludwiggrill.de, 1 ludwigjohnson.se, 1 ludwigpro.net, 1 ludwigsburger-brauhaus.de, 1 @@ -92208,7 +91813,6 @@ luxaterra.com, 1 luxcraft.eng.br, 0 luxden.com, 1 -luxe-in.gr, 1 luxe.digital, 1 luxebadkameraccessoires.nl, 1 luxedentalfl.com, 1 @@ -92243,7 +91847,6 @@ luxuryandexecutivetravel.co.uk, 1 luxurydress.tk, 1 luxuryfashion.hu, 1 -luxurygarage.sk, 1 luxurygifts.tk, 1 luxuryhome.co.id, 1 luxuryhomeinfo.tk, 1 @@ -92252,11 +91855,12 @@ luxuryhomerebuild.tk, 1 luxuryhomeuk.tk, 1 luxuryhomeusa.tk, 1 -luxuryhous.ru, 1 luxuryislandtrips.com, 1 +luxurymedina.com, 0 luxurynsight.net, 0 luxuryportal.net, 1 luxuryspeed.tk, 1 +luxurystays.in, 1 luxurythatlasts.com, 1 luxurywatchesworldwide.com, 1 luxuryweddingsindonesia.com, 1 @@ -92270,7 +91874,6 @@ luxvacuos.net, 1 luxvide.it, 1 luxwatch.com, 1 -luxyachtingreece.com, 1 luyckx.net, 1 luyungterd.com, 0 luzdelalma.net, 1 @@ -92460,6 +92063,7 @@ m-producties.nl, 1 m-ses.fr, 1 m-team.cc, 1 +m-teq.nl, 0 m-warrior.tk, 1 m.ac, 1 m.facebook.com, 1 @@ -92472,7 +92076,6 @@ m1-garand-rifle.com, 1 m132.eu, 1 m134.eu, 1 -m17project.org, 1 m1d1.black, 1 m1gun.tk, 1 m1hax.uk, 1 @@ -92499,13 +92102,12 @@ m4g.ru, 1 m4rcus.de, 1 m4rkos.de, 1 -m4s.com.br, 1 m5197.co, 1 m5industries.com, 1 m5wl5r.com, 1 m6729.co, 1 m6957.co, 1 -m6pub.fr, 0 +m6pub.fr, 1 m7mzo.com, 1 m7rxx.com, 1 m7worknow.com, 1 @@ -92544,7 +92146,6 @@ maarivpn.com, 1 maarja.edu.ee, 1 maartenderaedemaeker.be, 1 -maartenvandekamp.nl, 1 maasstaddinerexpres.nl, 1 maat.pt, 1 maatt.ch, 1 @@ -92578,7 +92179,6 @@ macaos.com, 1 macapflag.com, 1 macappstudio.com, 1 -macappstudioprojects.com, 1 macaque.io, 0 macarenagomezfan.tk, 1 macaroons.tk, 1 @@ -92602,7 +92202,6 @@ macehead.tk, 1 maceinturecuir.com, 1 maces-net.de, 1 -macfieclansociety.org, 1 macgasm.net, 1 macgeneral.de, 1 macgenius.com, 1 @@ -92663,7 +92262,6 @@ macnetwork.eu, 0 macnetwork.fr, 0 macnetwork.net, 0 -macnews.org, 1 macnugget.org, 1 maco.org.uk, 1 macompta.fr, 1 @@ -92764,6 +92362,7 @@ madian.tk, 1 madinahmarket.com, 1 madinatalzahra.org, 1 +madinatech360.com, 1 madinina.tk, 1 madintouch.com, 1 madison.com, 1 @@ -92894,7 +92493,6 @@ magasinsalledebains.fr, 1 magasinsenfrance.com, 1 magaso.tk, 1 -magaviva.com, 1 magazilla.ga, 1 magazin4ik.ga, 1 magazinecards.ga, 1 @@ -93017,6 +92615,7 @@ magikbyte.com, 1 magique.tk, 1 magiskmanager.com, 1 +magiskzip.com, 1 magisterjuris.com, 1 magisternegi.tk, 1 maglaw.com, 1 @@ -93270,7 +92869,6 @@ mainzer-allerlei.de, 1 maioresemelhores.com, 1 mair.best, 1 -mairamerlotto.com.br, 1 mairangiautomotive.co.nz, 1 mairie-landry.com, 1 mairie-louveciennes.fr, 1 @@ -93283,6 +92881,7 @@ maisapanama.com, 1 maiscrm.com, 1 maiscuidar.com, 1 +maiscupoes.com, 1 maisecom.com.br, 1 maisempregonet.com, 1 maisgasolina.com, 1 @@ -93339,6 +92938,7 @@ majkyto.cz, 1 majlovesreg.one, 1 majolka.com, 1 +majorcore.com, 1 majorhifi.com, 1 majorpaintingco.com, 1 majorsanat.com, 1 @@ -93414,7 +93014,6 @@ maki-it.de, 1 makilingchallenge.tk, 1 making-it.nl, 1 -makingbusinessmatter.co.uk, 1 makingmemoney.cf, 1 makingmemoney.ga, 1 makingmemoney.gq, 1 @@ -93433,6 +93032,7 @@ makromedikal.com.tr, 1 maksa.ga, 1 maksibetgiris.com, 1 +maksima.kh.ua, 1 maksimmrvica.tk, 1 maksimyugai.com, 1 maksmedia.tk, 1 @@ -93452,7 +93052,6 @@ malacat.com, 1 malachiteauth.com, 1 maladeaventuras.com, 1 -maladie-autoimmune.fr, 1 maladies.wiki, 1 malafidezoeker.nl, 1 malagabaterias.com, 1 @@ -93474,7 +93073,6 @@ malaysia.cf, 1 malaysia.search.yahoo.com, 0 malaysiabrands.com.my, 1 -malaysiakini.tv, 1 malaysianews.ga, 1 malaysianews.gq, 1 malaysianews.ml, 1 @@ -93592,8 +93190,6 @@ malura.de, 1 malvinas-falklands.tk, 1 malvy.kiev.ua, 1 -malwar.ee, 1 -malwar.eu, 1 malware.lu, 1 malware.watch, 1 malwareincidentresponse.com, 1 @@ -93602,7 +93198,6 @@ malwarewise.com, 1 malwarez.xyz, 1 malworld.me, 1 -malwr.ee, 1 malypiesekzuzi.pl, 1 mamabatataya.com, 1 mamacitaz.com, 1 @@ -93619,13 +93214,12 @@ mamaplus.net, 1 mamaquinas.com.br, 1 mamaruga.com, 1 -mamasday.org, 1 mamasguiderecipes.com, 1 mamasorganizedchaos.com, 1 mamastyle.store, 0 mamaxi.org, 1 mamaznaet.ml, 1 -mambas.cn, 1 +mambas.cn, 0 mambos.tk, 1 mamburao.tk, 1 mame.cl, 1 @@ -93653,7 +93247,6 @@ mamontov.tk, 1 mamopracuj.pl, 1 mamoris-net.jp, 1 -mamospienas.lt, 1 mamot.fr, 1 mamradost.sk, 1 mamsds.com, 1 @@ -93672,6 +93265,7 @@ manage.com, 0 manageairlinesbooking.com, 1 manageathome.co.uk, 1 +managed-it.africa, 1 managed-it.co.za, 1 managedcontractors.co.uk, 1 managedhosting.de, 0 @@ -93716,6 +93310,7 @@ mandaraequestrian.com, 1 mandarinplay.tk, 1 mandatkollen.se, 1 +mandaz.eu, 1 mandcbouncycastlehire.co.uk, 1 mandefender.tk, 1 mandela-effect-wiki.tk, 1 @@ -93808,7 +93403,6 @@ manilarecruitment.com, 1 manilatoday.net, 1 manimatter.ch, 1 -maninternational.pro, 1 maniorpedi.com, 1 maniosglass.gr, 1 manipil.ch, 0 @@ -93816,7 +93410,7 @@ manisahaberleri.tk, 1 manishsaini.co, 0 manitaggarwal.com, 0 -manitbd.com, 0 +manitbd.com, 1 manito.kr, 1 manitoba.ca, 1 manitoulinairport.ca, 1 @@ -93881,7 +93475,6 @@ manorhousecapital.com, 1 manoro.de, 1 manortx.gov, 1 -manosdelsolguild.com, 1 manova.cz, 1 manowarus.com, 1 manporn.xxx, 1 @@ -94061,6 +93654,7 @@ marabumadrid.com, 1 maracarlinicourses.com, 1 maracit.tk, 1 +maragonconstruccion.es, 1 maraichere-gourmande.org, 1 marajo.ml, 1 marajo.tk, 1 @@ -94082,6 +93676,7 @@ marbellaoptic.ro, 1 marbermedical.com, 1 marble.com, 1 +marbleceramiccorp.com.au, 1 marbleme.jp, 1 marblenexus.de, 1 marbogardenlidkoping.se, 1 @@ -94114,7 +93709,6 @@ marcellodomenis.com, 1 marcelluscoalition.org, 1 marcelmarnitz.com, 1 -marcelmende.de, 1 marceloestriga.org, 1 marcelofernandez.tk, 1 marcelovasconcelos.com.br, 1 @@ -94195,7 +93789,6 @@ mareklecian.cz, 1 marelijah.org, 1 marengomi.gov, 1 -marenostrum.pm, 1 maresencial.com, 1 maresimone.com, 1 marex.host, 1 @@ -94204,6 +93797,7 @@ margagriesser.de, 1 margan.ch, 0 margaretgel.com, 1 +margarethouse.co.uk, 1 margaridamendessilva.com, 1 margaritafries.com, 1 margatroid.com, 1 @@ -94253,7 +93847,6 @@ mariannethijssen.nl, 1 marianneveenstra.tk, 1 marianrivera.tk, 1 -mariansalzman.com, 1 mariapanina.ru, 0 mariapietropola.com, 1 mariart.studio, 1 @@ -94304,7 +93897,6 @@ marinaborregoterapeuta.pt, 1 marinadarje.com, 1 marinamontana.net, 1 -marinapetruzio.it, 1 marinapozzoli.tk, 1 marinaquip.com, 1 marinarinaldi.ml, 1 @@ -94326,6 +93918,7 @@ marinettewi.gov, 1 mario-ancic.tk, 1 mario-sarto.com, 1 +mario.com.ua, 1 mario420.ga, 1 marioabela.com, 1 mariogarcia.tk, 1 @@ -94372,7 +93965,6 @@ marjadeleeuw.nl, 1 marjanne.tk, 1 marjeta-gurtner.ch, 1 -marjoleindens.be, 1 marjon.photography, 1 marjonruns.nl, 1 marjorie-wiki.de, 1 @@ -94393,13 +93985,13 @@ markecubanos.com, 1 markedplassen.no, 1 markedwithab.com, 1 -markellos-olive.gr, 1 markenet.co, 1 markentier.tech, 1 markepps.com, 1 market-garden.tk, 1 market.android.com, 1 market.us, 1 +marketbar.ie, 1 marketbasket.tk, 1 marketcalls.in, 1 marketcavalli.it, 1 @@ -94444,7 +94036,6 @@ marketmotion.com.au, 1 marketnews.com, 1 marketone.com, 1 -marketplace.org, 1 marketplace.tf, 1 marketplacetue.nl, 1 marketresearch.biz, 1 @@ -94589,7 +94180,6 @@ marrakechairporttransfer.com, 1 marrakechauxiliaire.com, 1 marrakeche.com, 1 -marrakechtriptours.com, 1 marredesefairebaladersurlenet.com, 1 marretada.org, 1 marriage-shrine.jp, 1 @@ -94606,7 +94196,6 @@ marsafc.tk, 1 marsanvet.com, 1 marsatapp.com, 1 -marsbahis.cc, 1 marshaiargentina.com, 1 marshall-allman.tk, 1 marshallcavendish.com, 1 @@ -94639,7 +94228,7 @@ martcms.com, 1 martdev.com, 1 martec.dk, 1 -martechseries.com, 1 +martechseries.com, 0 martelange.ovh, 1 martelliyaqub.co.nz, 1 martellosecurity.com, 1 @@ -94729,6 +94318,7 @@ martnlab.com, 1 martonvaro.com, 1 martonveronika.tk, 1 +martsinovskaolga.com.ua, 1 martstop.ir, 1 martstroy.ru, 1 marturet.com, 1 @@ -94814,7 +94404,6 @@ masakanibu.ga, 1 masakigarden.com, 1 masalaband.tk, 1 -masaloku.com.tr, 1 masanteadelavenir.fr, 1 masanunciosimpresos.com, 1 masarik.sh, 1 @@ -94916,6 +94505,7 @@ massagepraktijkamyklappe.nl, 1 massagepraxis-gwerder.ch, 1 massages-du-monde-charente.fr, 1 +massagespaindia.com, 1 massagetable.shop, 1 massagetherapyschoolsinformation.com, 1 massaggi.it, 1 @@ -94923,6 +94513,7 @@ massagik.ml, 1 massana.es, 1 massanews.com, 1 +massapothecary.com, 1 massauditor.gov, 1 massazh.cf, 1 massbank.eu, 1 @@ -94938,7 +94529,6 @@ massivum.de, 1 masskick.ga, 1 massmurder.tk, 1 -massmutualascend.com, 0 masspingtool.com, 1 masstech.org, 1 masstercurssos.com, 1 @@ -95080,6 +94670,7 @@ matejkosiarcik.com, 1 matel.org, 1 matele.be, 1 +matematicaevida.com.br, 1 matematik-ozel-ders.tk, 1 matematikformulleri.com, 1 matematikkulubu.tk, 1 @@ -95309,7 +94900,6 @@ matthijsvos.com, 1 matthijsvos.org, 1 mattia98.org, 0 -mattilsynet.no, 1 mattlaks.com, 1 mattle.wtf, 1 mattmarkel.com, 1 @@ -95342,7 +94932,6 @@ matts.support, 1 matts.systems, 1 matts.world, 1 -mattsavin.me, 1 mattshi.com, 1 mattslack.me, 1 mattsmissionblog.com, 1 @@ -95412,6 +95001,7 @@ maurrikone.com, 1 maury-moteurs.com, 1 mausbike.ro, 1 +maushabitos.com, 1 mausmani.tk, 1 mausoleum.ga, 1 maut1.de, 1 @@ -95502,7 +95092,6 @@ maximanet.tk, 1 maximbaz.com, 1 maximdeboiserie.be, 1 -maximdens.be, 1 maximeferon.fr, 1 maximegagnon.io, 1 maximemalfoy.com, 1 @@ -95523,7 +95112,6 @@ maximusconstrutora.com.br, 1 maximusrose.com, 0 maxinesbydennees.com, 1 -maxionwheels.com, 1 maxipcalls.com, 0 maxipro.ru, 1 maxiservak.ml, 1 @@ -95550,6 +95138,7 @@ maxostapenko.com, 1 maxp.info, 0 maxpl0it.com, 1 +maxpoint.it, 1 maxportal.tk, 1 maxprog.com, 1 maxr1998.de, 0 @@ -95584,10 +95173,10 @@ mayaimplant.com, 1 mayamaibach.org, 1 mayamarquez.co, 1 -mayamushrooms.co.uk, 1 mayanet.tk, 1 mayangateway.com, 1 mayansandtikal.com, 1 +mayaroconstituency.org, 1 mayashoefke.tk, 1 mayavi.co.in, 0 maybankfoundation.com, 1 @@ -95634,7 +95223,6 @@ maze.com.br, 1 maze.fr, 0 maze.st, 1 -mazenitude.fr, 0 mazepa.ml, 1 mazet-machines-a-coudre.fr, 1 mazhab.tk, 1 @@ -95646,7 +95234,6 @@ mazurlabs.tk, 1 mazury-invest.pl, 1 mazyoud.com, 1 -mazzotta.me, 1 mb-amenagements.be, 1 mb-analytics.at, 1 mb-demo.net, 1 @@ -95717,6 +95304,7 @@ mc-servers.com, 1 mc-sin.ch, 1 mc-teemocraft.tk, 1 +mc-venture.net, 0 mc.ax, 1 mc007.xyz, 1 mc2.plus, 1 @@ -95793,7 +95381,6 @@ mcgavocknissanwichitaparts.com, 1 mcgillsbuses.co.uk, 1 mcgovernance.com, 1 -mcgowansac.com, 1 mcgrailvineyards.com, 1 mcgrand.shop, 1 mcgregortx.gov, 1 @@ -95915,10 +95502,12 @@ mcycbd.com.au, 1 mcyukon.com, 1 md-1xbet.com, 1 +md-clinica.com.ua, 1 md-events.tk, 1 md-mb.ro, 1 md-progressistes.fr, 1 md-service.net, 1 +md28.in, 1 mdaemon.de, 1 mdaemon.tips, 1 mdangels.org, 1 @@ -95939,6 +95528,7 @@ mdek.at, 1 mdewendt.de, 1 mdf-bis.com, 0 +mdf-nakladki.kiev.ua, 1 mdgsocialmediasecurity.com, 1 mdgx.com, 1 mdhelicopters.com, 1 @@ -95948,6 +95538,7 @@ mdirector.com, 1 mdiv.pl, 1 mdjobsite.com, 1 +mdl.co.ua, 1 mdlayher.com, 1 mdleom.com, 1 mdma.net, 1 @@ -95973,7 +95564,6 @@ mdwedding168.com, 1 mdwellness.ca, 1 mdx.no, 1 -mdxdave.de, 0 mdxhealth.com, 1 mdxn.org, 1 me-mainz.de, 1 @@ -96035,6 +95625,7 @@ mebelisk.com.br, 1 mebelizori.com, 1 mebelnik.pro, 1 +mebeloffice.com.ua, 1 mebelok.com, 1 mebelshik.tk, 1 mebinrobin.com, 1 @@ -96043,6 +95634,7 @@ mebtall.ru, 1 mec.gub.uy, 1 mec0371.com, 0 +mec0372.com, 1 mec0378.com, 1 mec0395.com, 1 mec0415.com, 1 @@ -96100,6 +95692,7 @@ mec0799.com, 1 mec0810.com, 1 mec0811.com, 1 +mec0812.com, 1 mec0813.com, 1 mec0814.com, 1 mec0816.com, 1 @@ -96206,7 +95799,7 @@ medcir.com.br, 1 medcof.com.br, 1 medcorfu.gr, 1 -medd.com.au, 0 +medd.com.au, 1 meddata.pp.ua, 1 meddatix.com, 1 meddin.com, 1 @@ -96223,6 +95816,7 @@ medfordwi.gov, 1 medguide-bg.com, 1 medhacooks.com, 1 +medhatzaki.com, 1 medhiwa.com, 1 medhy.fr, 0 medi-link.co.il, 0 @@ -96256,6 +95850,7 @@ mediabogen.net, 1 mediabooks.ml, 1 mediaboutique.nl, 1 +mediabrook.com, 1 mediabutic.ro, 1 mediacenter.dynv6.net, 1 mediacheky.es, 1 @@ -96282,7 +95877,6 @@ mediamarkt.pl, 1 mediamatic.net, 1 mediamatic.nl, 1 -mediamonitors.net, 1 mediamora.nl, 1 medianbases.ga, 1 mediantechnologies.com, 1 @@ -96379,6 +95973,7 @@ medicine.lv, 1 medicinesfast.com, 0 medicinia.com.br, 1 +medicininismetalas.lt, 1 medicinskavranje.edu.rs, 1 mediciventures.com, 1 mediclinik.tk, 1 @@ -96434,7 +96029,7 @@ medium.cz, 1 mediums.cf, 1 mediumseznam.cz, 1 -medivisionsc.com, 1 +medivetproducts.com, 0 medivox.tk, 1 mediweed.tk, 1 mediziner-goettingen.tk, 1 @@ -96460,6 +96055,7 @@ medovea.ru, 1 medovoe.ml, 1 medpeer.co.jp, 1 +medpeer.jp, 1 medportalmd.tk, 1 medpost.com, 1 medprozone.com, 1 @@ -96573,7 +96169,6 @@ megabook.ml, 1 megabouncingcastles.com, 1 megacellenerji.com, 1 -megadimensao.com.br, 1 megadrol.com, 1 megaelettrostimolatore.com, 1 megafilez.tk, 1 @@ -96622,7 +96217,6 @@ megaprofi.tk, 1 megarap.cf, 1 megaron.at, 1 -megaservicecar.com, 1 megasesso.com, 1 megasitesoficial.tk, 1 megasslstore.com, 1 @@ -96633,7 +96227,6 @@ megauction.tk, 1 megavasoc.com.ar, 1 megaviews.tk, 1 -megavoyages.ca, 1 megawebsite.tk, 1 megaxchange.cash, 1 megayachts.world, 1 @@ -96704,6 +96297,7 @@ meilleurstrucs.com, 1 meima.cc, 1 meimeistartup.com, 1 +mein-arabischkurs.de, 1 mein-betriebsrat.digital, 1 mein-domizil.at, 1 mein-es1.de, 1 @@ -96774,7 +96368,6 @@ mejofi.nl, 1 mejofi.org, 1 mejor-broker.com, 1 -mejorasuvida.com, 0 mejorator.net, 1 mejorator.org, 1 mejores-webs-citas.com, 1 @@ -96859,13 +96452,13 @@ melina-schefczyk.de, 1 melinacurves.com, 1 melinamay.net, 1 +melino.com.ua, 1 meliowebweer.nl, 1 melisica.tk, 1 melissaadkins.com, 1 melissadeluxe.com, 1 melissageorge.tk, 1 melissalb.tk, 1 -melissameuwszen.nl, 1 melissavsfibromyalgia.com, 1 meliyb.ga, 1 melkboshigh.co.za, 1 @@ -97122,6 +96715,7 @@ meraldamulder.org, 1 meran.in, 1 meransuedtirol.com, 1 +merata.net, 1 mercadobitcoin.com.br, 1 mercadohype.tk, 1 mercadoleal.com.br, 1 @@ -97160,6 +96754,7 @@ mercans.com, 1 mercatino-olomouc.cz, 1 mercatinomusicale.com, 1 +mercatoday.com, 1 mercatoitticosbt.it, 1 mercatotime.com, 1 mercazaragoza.es, 1 @@ -97167,6 +96762,7 @@ mercedelectionsca.gov, 1 mercedes-anciennes.fr, 1 mercedes-benz-arena-stuttgart.de, 1 +mercedes-benz-kiev.com, 1 mercedes-benz.art, 1 mercedes-benz.com.py, 1 mercelo.com, 1 @@ -97212,7 +96808,6 @@ meribook.com, 1 meridanas.me, 1 meridiangroup.ml, 1 -meridianoutpost.com, 1 meridianproductscorp.com, 1 meridianstore.com.br, 1 merikserver.tk, 1 @@ -97345,6 +96940,7 @@ meszlenyiattila.tk, 1 meta-bank.jp, 1 meta-cdn.net, 1 +meta-ctglobalboard.uk, 1 meta-db.com, 1 meta-word.com, 1 meta.com, 1 @@ -97374,7 +96970,6 @@ metagaming.tk, 1 metaintro.net, 1 metait.de, 1 -metaiverse.info, 1 metajive.com, 1 metakari.one, 1 metal-madness.tk, 1 @@ -97472,7 +97067,6 @@ meteohuertamur.tk, 1 meteonederbetuwe.nl, 1 meteopievedicampo.ddns.net, 1 -meteoradar.ch, 1 meteosat.tk, 1 meteoweb.eu, 1 meteowiki.tk, 1 @@ -97517,7 +97111,6 @@ metop.de, 1 metoperashop.org, 1 metprint.hu, 1 -metradar.ch, 1 metrahometheater.com, 1 metric.ai, 0 metricmutt.com, 1 @@ -97614,6 +97207,7 @@ mevrouwtjepeper.nl, 0 mevsalud.cl, 1 mew.build, 1 +mewah.my, 1 mex-it-up.com, 1 mexaliu.ml, 1 mexby.com, 1 @@ -97635,8 +97229,6 @@ meyeraviation.com, 1 meyerbeer.com, 1 meyersconstructionandconsulting.com, 1 -meypell.com, 1 -meyrawinkel.nl, 1 meys.io, 1 mezcal.amsterdam, 1 mezedokamomata.tk, 1 @@ -97681,7 +97273,6 @@ mfxer.com, 1 mfxm.fr, 1 mfyy123.com, 1 -mg-case.com, 1 mgaconsulting.org.uk, 1 mgae.com, 1 mgaroz.pro, 1 @@ -97741,7 +97332,6 @@ mhastey.com, 1 mhatlaw.com, 1 mhcdesignstudio.com, 1 -mhdeals.net, 1 mhealthspot.com, 1 mheistermann.de, 1 mhermans.nl, 1 @@ -97858,7 +97448,6 @@ michael-schilling.de, 0 michael-simon.de, 1 michael-steinhauer.eu, 1 -michael.band, 1 michael.ie.eu.org, 1 michael.zone, 1 michaelabbas.tk, 1 @@ -97867,7 +97456,6 @@ michaelasawyer.com, 1 michaelbaade.no, 1 michaelband.co, 1 -michaelband.com, 1 michaelbeer.co.uk, 1 michaelbondar.tk, 1 michaelboogerd.tk, 1 @@ -97914,10 +97502,9 @@ michaelsnoeren.nl, 0 michaelstoffer.com, 1 michaeltaboada.me, 1 -michaeltimm.co, 1 michaeltittes.de, 1 michaeltruskowski.com, 1 -michaelvaneaton.com, 1 +michaelvaneaton.com, 0 michaelvician.me, 0 michaelwermeester.com, 1 michaelwmckinney.com, 1 @@ -98048,6 +97635,7 @@ micropigpets.com, 1 microsoft, 1 microsoftedgeinsider.com, 1 +microsolve.co.za, 1 microtel2notch.tk, 1 microtube.tk, 1 microvb.com, 1 @@ -98070,7 +97658,6 @@ midcarolinaregionalairport.org, 1 midcoastproperties.com, 1 midcolumbiainsurance.com, 0 -middag.com.br, 1 middascachaca.com.br, 1 middelstaedt.com, 1 middle-way.de, 1 @@ -98126,6 +97713,7 @@ midtownattowncenter.com, 1 midtownflooring.ca, 1 midtownsmilesdentalcare.com, 1 +midtownsouthcc.org, 1 midvalleysewer.gov, 1 midville-ga.gov, 1 midwaycitysanitaryca.gov, 1 @@ -98148,6 +97736,7 @@ miegl.cz, 1 mielboreal.com, 0 mieldemexico.us, 1 +mielehybla.it, 1 mielelpinsapar.com, 0 mielenosoitukset.fi, 1 mielke-it.ch, 1 @@ -98188,7 +97777,6 @@ migliorailtuoambiente.it, 1 migliori-siti-di-incontro.com, 1 miglioricasinoonline.info, 1 -migliorisitiincontri.it, 1 mignet.io, 1 mignonne.com, 1 mignonneapi.com, 1 @@ -98328,7 +97916,7 @@ mijnwefact.nl, 1 mika.moe, 1 mikado-rybak.ru, 1 -mikadoe.nl, 1 +mikadoe.nl, 0 mikaelf.com, 1 mikaeljansson.net, 1 mikaelk.tk, 1 @@ -98357,7 +97945,6 @@ mikegao.org, 1 mikegerwitz.com, 1 mikeguy.co.uk, 1 -mikehamburg.com, 1 mikeklidjian.com, 1 mikekreuzer.com, 1 mikelpradera.tk, 1 @@ -98415,8 +98002,10 @@ mikori.sk, 1 mikorrhiza-gomba.hu, 1 mikos.tk, 1 +mikoulloa.com, 1 mikrokosmos.tk, 1 mikropixel.de, 1 +mikroskopmedia.com, 1 mikrotech.co.za, 1 mikrotike.tk, 1 mikrozajmy-na-kartu.cf, 1 @@ -98467,14 +98056,12 @@ milchplus.de, 1 milchweg.com, 1 milcrofton.gov, 1 -mile6.com, 1 milehighfcu.org, 1 milehighmedia.com, 1 mileme.com, 1 milenadunic.com, 1 milenar.biz, 1 milenaria.es, 1 -milenkojovanov.com, 1 mileonapp.com, 1 miles-and-more-kreditkarte.com, 0 miles.no, 1 @@ -98500,7 +98087,6 @@ milfordfiremi.gov, 1 milfordtwpmi.gov, 1 milfporn.tv, 1 -milfpornograph.com, 1 milfsection.com, 1 milhistwiki.tk, 1 milhoazul.com.br, 1 @@ -98523,6 +98109,7 @@ miljotankar.se, 1 milk.games, 1 milk.xyz, 1 +milka.de, 1 milka.fr, 1 milka.nl, 1 milkaalpesiutazas.hu, 1 @@ -98530,6 +98117,7 @@ milkagyengedseg.hu, 1 milkaholic.ml, 1 milkameglepetes.hu, 1 +milkeclair.com, 1 milkenroar.com, 1 milkice.me, 1 milkingit.net, 1 @@ -98541,6 +98129,7 @@ milkyperu.com, 1 milkypond.org, 1 milkywan.fr, 1 +mill-luxe.fr, 1 mill3.studio, 1 milladeo.tk, 1 millant.ovh, 1 @@ -98572,7 +98161,6 @@ milleron.net, 1 milleron.xyz, 1 millersburgoregon.gov, 1 -millerthomson.com, 1 millhill.org.uk, 1 millhousen.tech, 1 milliarden-liste.de, 1 @@ -98588,7 +98176,6 @@ milliongrounds.com, 1 millionlearn.org, 1 millionmakers.com, 1 -millionseha.com, 1 millistream.com, 1 millix.com, 1 millnet.cloud, 1 @@ -98603,7 +98190,6 @@ milnerga.gov, 1 milobaker.co.uk, 1 milomedia.net, 1 -milor.nl, 1 milosguide.dk, 1 milovich.ca, 1 milpitas.gov, 1 @@ -98616,7 +98202,7 @@ miltor.com.ua, 1 miltor.ru, 1 miluneetsens.fr, 1 -milvilla.com, 1 +milvilla.com, 0 milwaukee-webdesigner.com, 1 milwaukeecreative.com, 1 milwaukeeinternational.tk, 1 @@ -98666,6 +98252,7 @@ minato-home-care.jp, 1 minatokucarpet.com, 1 minatomachi-dc.jp, 1 +minbrew.com, 1 minced.cf, 1 minchyn.com, 1 minclaw.com, 1 @@ -98693,6 +98280,7 @@ mindfab.de, 1 mindfactory.de, 1 mindflowmarketing.com, 0 +mindfully.com, 0 mindfulnessjourney.ca, 1 mindfulslumber.com, 1 mindgard.co.uk, 1 @@ -98711,10 +98299,10 @@ mindox.com.br, 1 mindprod.com, 1 mindrazr.com, 1 -mindrepair.net, 1 mindresti.tk, 1 mindscapephotos.de, 1 mindset-energie.ch, 1 +mindshiftleadership.com, 1 mindsight.com.br, 1 mindspliteffect.tk, 1 mindspring.co.za, 0 @@ -98738,6 +98326,7 @@ minecraft-game.ga, 1 minecraft-server.eu, 1 minecraft.buzz, 1 +minecraft.menu, 1 minecraft.social, 1 minecraft.vip, 1 minecraft.wiki, 1 @@ -98791,7 +98380,6 @@ minez-nightswatch.com, 0 minez.nl, 1 minf3-games.de, 1 -mingatiedias.com.br, 1 mingguanwanita.my, 1 mingkai.me, 1 mingle2.com, 1 @@ -98804,6 +98392,7 @@ minhanossasenhora.com.br, 1 minhazuloo7.com, 1 minhazuloo7.xyz, 1 +minhkhoi.pro.vn, 1 minhng99.cloud, 1 minhng99.eu, 1 minhyukpark.com, 1 @@ -98939,7 +98528,6 @@ mintea-noua.ro, 1 mintea.pw, 1 mintea.xyz, 1 -minternals.com, 1 minterslab.com, 1 mintersvault.com, 1 mintert.net, 1 @@ -98977,7 +98565,6 @@ mio-ip.ch, 1 miobeach.nl, 1 miobt.eu.org, 0 -miodziki.pl, 0 miomiojoyeria.com, 1 miorganics.ro, 1 miottawavotes.gov, 1 @@ -99009,6 +98596,7 @@ mira.systems, 1 mirabella.tk, 1 miracech.cz, 1 +miracl.com, 1 miracle-dome.com, 1 miracle95.eu.org, 1 miraclehill.org, 1 @@ -99115,6 +98703,7 @@ misakiya.co.jp, 1 misalacuna.cl, 1 misanci.cz, 1 +mischamassage.nl, 1 mischolz.de, 1 misclick.net, 1 misclick.nl, 1 @@ -99236,6 +98825,7 @@ misterspex.se, 1 mistertesi.it, 1 mistertrack.com, 1 +misterwish.store, 0 misteryrip.tk, 1 mistinecn.com, 0 mistitservices.in, 1 @@ -99251,6 +98841,7 @@ misura.re, 1 misw.jp, 1 miswonline.nl, 1 +mit-bezart.com, 1 mit-dem-rad-zur-arbeit.de, 0 mit-dem-rad-zur-uni.de, 0 mit-sexchat-geld-verdienen.com, 1 @@ -99267,7 +98858,6 @@ mitchellcountync.gov, 1 mitchkalf.nl, 0 mitchkiah.com, 1 -mitdip-mit-group-ch.azurewebsites.net, 1 mite3.nl, 1 mitechtrading.com, 1 mitel.io, 1 @@ -99279,6 +98869,7 @@ mitensaadatyota.fi, 1 mitev.gq, 1 mitevi.com, 1 +mitfahrgelegenheit.de, 1 mitgrussen.de, 1 mithgol.tk, 1 mithril.email, 1 @@ -99339,6 +98930,7 @@ mittvarsel.no, 1 mittwoch-nacht.net, 1 mitulv4u.tk, 1 +mitv.fyi, 1 mitzpettel.com, 1 miui-germany.de, 1 miui.kr, 1 @@ -99360,11 +98952,13 @@ mivzakim.tk, 1 mivzakim.tv, 1 mivzaklive.co.il, 0 +miwaglam.com, 1 miweb.ec, 1 miwebmadrid.es, 1 mix-books.ga, 1 mix-channel.ml, 1 mix-it.net, 1 +mix-master.fr, 1 mix-recruit.jp, 1 mix.my, 1 mixandplay.tk, 1 @@ -99431,6 +99025,8 @@ mjacobson.net, 1 mjanja.ch, 1 mjasm.org, 1 +mjbale.com, 1 +mjbtechtips.com, 1 mjc-psicologa.com, 1 mjcstsul2022.tk, 1 mjf.cz, 1 @@ -99447,6 +99043,7 @@ mjrlegends.com, 1 mjs-soft.de, 1 mjsacco-dwi.com, 1 +mjscustomcreations.com.au, 1 mjsports.bet, 1 mjstudios.tech, 0 mjstudios.tk, 1 @@ -99457,6 +99054,7 @@ mjzdaman.tk, 1 mk-builder.net, 1 mk-entruempelung.de, 1 +mk-translations.ua, 1 mk.gov.tr, 1 mk83.cloud, 1 mk89.de, 1 @@ -99491,13 +99089,11 @@ mkeysolutions.de, 1 mkg-laposte.info, 1 mkg-pch.com, 1 -mkg-wiebelskirchen.de, 1 mkgrupkelesvinckiralama.com.tr, 1 mkhsoft.eu, 1 mki-igrushki.ru, 1 mkie.cf, 1 mkiigrushki.ru, 1 -mkinfo.com.br, 1 mkipechat.ru, 1 mkjl.ml, 0 mkjoyeria.cl, 0 @@ -99513,7 +99109,6 @@ mkm.szczecin.pl, 1 mkmaster.tk, 1 mkmedien.tk, 1 -mknowles.com.au, 1 mkoppmann.at, 1 mkpdeepclean.com, 1 mkpeurope.org, 1 @@ -99540,7 +99135,6 @@ mladenovac.tk, 1 mladinskislatna.si, 1 mladiorl.cz, 1 -mlaschool.co.za, 1 mlawfirm.com, 0 mlcfinvest.in, 1 mlclaw.com, 1 @@ -99592,7 +99186,6 @@ mlundberg.se, 1 mlv-psychosomatik.de, 1 mlv.me, 1 -mlwr.ee, 1 mlyny-nitra.sk, 1 mlytics.com, 1 mm-sol.com, 1 @@ -99619,12 +99212,14 @@ mmcalc.jp, 1 mmcase.ml, 1 mmdc.ru, 0 +mmdriving.ca, 1 mme.re, 1 mmeaeasterndistrict.org, 1 mmfbi.com, 1 mmgal.com, 1 mmhome.fr, 1 mmilog.hu, 1 +mmimicro.com, 1 mminsco.com, 0 mmkstudio-digital.com, 1 mml.cx, 0 @@ -99652,8 +99247,8 @@ mmprojects.nl, 1 mmquality.com, 1 mmr.ua, 1 -mmrcl.com, 1 mms.is, 1 +mmsk.ca, 1 mmsl.cz, 1 mmsmotor.com.hk, 1 mmstick.tk, 1 @@ -99729,6 +99324,7 @@ moabcity.gov, 1 moabpapier.de, 1 moabygg.se, 1 +moaf.org, 1 moahmo.com, 0 moaicar.com, 1 moapyr.com, 1 @@ -99747,6 +99343,7 @@ mobcsp.work, 1 mobeewash.com, 1 mobele.fr, 1 +moberi.com.ua, 1 mobex.biz, 0 mobi-katalog.tk, 1 mobiclocks.com, 1 @@ -99829,6 +99426,7 @@ mobilo4ka.ru, 1 mobilosoft.com, 1 mobiltank.fr, 1 +mobilteq.hu, 0 mobiltune.tk, 1 mobilux.lv, 1 mobincube.com, 1 @@ -99838,7 +99436,6 @@ mobinst.ml, 1 mobio.net, 1 mobiotics.com, 1 -mobiproj.com, 1 mobiride.co, 1 mobisaar-cloud.de, 1 mobistartv.ml, 1 @@ -99870,6 +99467,7 @@ mochiyuki.net, 1 mochizuki.moe, 0 mochoko.com, 1 +mockcop.org, 1 mockerel.com, 1 mockers.tk, 1 mockingjay.io, 1 @@ -99947,6 +99545,7 @@ modern-family.tv, 1 modern-gaming.ga, 1 modern-metal-solutions.com, 1 +modernalisa.com, 1 modernapprenticeships.org, 1 modernautorepairs.com, 1 moderncat.com, 1 @@ -99959,6 +99558,7 @@ moderniknihovna.cz, 1 modernind.com, 1 modernindia.ml, 1 +modernizationhub.com, 1 modernliferoleplay.cf, 1 modernmomarchy.com, 1 modernsaas.net, 1 @@ -99966,11 +99566,12 @@ moderntech.dk, 1 moderntld.net, 1 moderntrainer.co.za, 1 -moderntreasury.com, 1 +moderntreasury.com, 0 modernwebz.com, 1 modernworkplacelearning.co.za, 1 modernx.de, 1 modesalination.com, 1 +modesofcriticism.org, 1 modestoca.gov, 1 modetalente.com, 1 modetrends.tk, 1 @@ -99979,7 +99580,7 @@ modicollege.com, 1 modifiedmind.com, 1 modineaviation.com, 1 -modint.nl, 1 +modint.nl, 0 modirhp.ir, 1 modisarkar.tk, 1 modistryusercontent.com, 1 @@ -100021,6 +99622,7 @@ moebeltaxi-berlin.com, 1 moeblog.cn, 1 moeblog.top, 1 +moec.top, 0 moecater.com, 1 moechel.com, 1 moedb.net, 1 @@ -100093,11 +99695,11 @@ mohot.com.tw, 1 mohot.fit, 1 mohr-maschinenservice.de, 1 +mohr.im, 1 mohsen-pashootan.vercel.app, 1 moi-sait.tk, 1 moikolhoz.ml, 1 moikolhoz.tk, 1 -moin.solar, 1 moip.com.br, 1 moipourtoit.ch, 0 moipourtoit.com, 0 @@ -100131,7 +99733,6 @@ mojizuri.jp, 1 mojkragujevac.net, 1 mojleksikon.com, 1 -mojmolitvenik.com, 1 mojnet.eu, 1 mojnet.net, 1 mojo.az, 1 @@ -100178,6 +99779,7 @@ molinillo.tk, 1 moliporex.com, 1 moliporex.pt, 1 +molise.store, 1 molkerei-ammerland.com, 1 molleron.net, 1 molletjesveer.tk, 1 @@ -100206,8 +99808,8 @@ moma.co.uk, 1 momentalno.tk, 1 momentlocacoes.com.br, 1 -momentmag.com, 1 momentosfriko.com, 1 +momentum-tech.ca, 1 momentum.photos, 1 momentumcoach.se, 1 momentumcomfortgear.com, 1 @@ -100348,6 +99950,7 @@ moneyformybeer.com, 1 moneyfuxx.com, 1 moneygo.se, 1 +moneygram.com, 1 moneygrup.tk, 1 moneyhash.io, 1 moneyinorder.net, 1 @@ -100421,7 +100024,6 @@ monkeybusiness.agency, 1 monkeymills.ga, 1 monkeysorce.tk, 1 -monkeytek.ca, 1 monlissagebresilien.com, 1 monmouthcountynj.gov, 1 monmouthmaine.gov, 1 @@ -100502,12 +100104,14 @@ montagnainitalia.com, 1 montagne-experience.fr, 1 montagne-vacances.com, 1 +montagnicimes.com, 1 montala.com, 1 montalvofarret.xyz, 1 montanabiack.de, 1 montanacreativitymovement.tk, 1 montanaguard.gov, 1 montanaonlinedivorce.com, 1 +montanarenewables.org, 1 montanasky.tv, 1 montanatitlesearch.com, 1 montanatrouthunters.com, 1 @@ -100609,7 +100213,6 @@ mooka.tk, 1 moola.market, 1 moolah.rocks, 1 -moolarbencoal.com.au, 1 moolimusic.ir, 1 moom20101234567890.tk, 1 moon.fish, 1 @@ -100619,7 +100222,7 @@ moonbooth.com, 1 moonboxi.tk, 1 moonboys.de, 1 -moonbyte.at, 0 +moonbyte.at, 1 mooncharmshop.com, 1 moonchart.co.uk, 1 moondoor.tk, 1 @@ -100754,13 +100357,11 @@ morehertz.com, 1 morehopefoundations.org.uk, 1 morellilaw.com, 1 -moremindsbetter.com, 1 morenadacentral.tk, 1 morenci.ch, 1 moreoptimal.com, 1 moreoptimal.world, 1 morepablo.com, 1 -moreretail.in, 1 moreshop.pl, 1 morespacestorage.co.uk, 1 moresw.com, 1 @@ -100813,18 +100414,16 @@ morningcurve.com, 0 morninggarden.com, 1 morningstar.moe, 1 -morningstaruniversityonline.com, 1 moro-gastro.de, 1 moroccanews.tk, 1 morocco-vacations.com, 1 moroccofriendlytravel.com, 1 moroccomiami.com, 1 +moroccoprivatetransport.com, 1 moroccotodaynews.ga, 1 moroccotravelagencies.com, 1 -moroccotravelingcars.com, 1 moroccotravelorganizer.com, 1 moroccounfiltered.com, 1 -morocotacoin.news, 1 morogoro.tk, 1 morohub.com, 1 morooi.cn, 0 @@ -100856,12 +100455,12 @@ morrowind-finland.tk, 1 morsang.net, 1 morselife.org, 1 -morshedinterior.com, 1 mortaltorment.tk, 1 mortazavifar.com, 1 morteau.org, 1 mortebrume.eu, 1 mortengamstpedersen.tk, 1 +mortenhc.dk, 1 mortezaafri.tk, 1 mortgageboss.ca, 1 mortgagecalculator.biz, 1 @@ -100897,6 +100496,7 @@ moscowsex.tk, 1 moscowtimes.tk, 1 mosdosug.ml, 1 +mosdot.org.il, 1 moseic.com, 1 moselwi.gov, 1 moserhof.it, 1 @@ -100919,6 +100519,7 @@ moskva-city.cf, 1 moskva-kamen.ru, 1 moskvagruz.tk, 1 +moskvayigit.com, 1 moskvitch.org, 1 mosnews.tk, 1 moso.io, 0 @@ -100926,7 +100527,6 @@ mosostore.nl, 1 mosquito-code.com, 1 mosquito-sklep.pl, 1 -mosquitojoe.com, 1 mosr.sk, 1 mossad.gov.il, 1 mossan.net, 1 @@ -100955,7 +100555,6 @@ moswand.nl, 1 motability.co.uk, 1 motat.nz, 1 -motchirotchi.com, 1 motd.ch, 1 mote.org, 1 motekforce.link, 1 @@ -101044,6 +100643,7 @@ motorbiketourhanoi.com, 1 motorcitycasino.com, 1 motorcyclesdata.com, 1 +motorcyclestudies.org, 1 motordearranque.com.br, 1 motorfinanceonline.com, 1 motorhype.co.uk, 1 @@ -101051,6 +100651,7 @@ motoridiricerca.tk, 1 motorinews24.com, 1 motorline.ru, 1 +motorlubilgiler.com, 1 motorparts-images.nl, 1 motorparts-online.com, 1 motorring.ru, 1 @@ -101065,6 +100666,7 @@ motorways.tk, 1 motorwrappen.nl, 1 motoryachtclub-radolfzell.de, 1 +motorz.ca, 1 motorzone.od.ua, 1 motoscooter.eu, 1 motoselfservices.fr, 1 @@ -101097,6 +100699,9 @@ motun.ga, 1 moturua.nz, 1 motusins.com, 1 +motusrenaultbloemfontein.co.za, 1 +motusrenaultmenlyn.co.za, 1 +motusrenaultwonderwaters.co.za, 1 mou-pmr.tk, 1 moube.fr, 1 mouche.fr, 1 @@ -101168,6 +100773,7 @@ movabletype.net, 1 movacare.de, 1 movaci.com, 1 +movado.com, 1 movahoteis.com.br, 1 moval.gov, 1 movavi.ru, 1 @@ -101191,7 +100797,6 @@ moveonlite.com, 1 moveonru.com, 1 movepin.com, 1 -movesmarter.nl, 1 movetonewcastle.com.au, 1 movewellnesslab.com, 1 movewithfiness.com, 1 @@ -101265,8 +100870,8 @@ mozaic.io, 1 mozambiquetravel.com, 1 mozartgroup.hu, 1 +mozartsocietyofamerica.org, 1 mozektevidi.net, 1 -mozen.io, 0 mozfr.org, 1 mozgb.ru, 1 mozgovoy.tk, 1 @@ -101337,6 +100942,7 @@ mpsi1.fr, 1 mpso.it, 1 mpsoundcraft.com, 1 +mpsports.org, 1 mptdom.com, 1 mptenders.gov.in, 1 mptool.pt, 1 @@ -101365,6 +100971,7 @@ mr3.io, 1 mr8.de, 1 mraag.xyz, 1 +mradiofm.com, 1 mrafrohead.com, 1 mrak.blog, 0 mralonas.cf, 1 @@ -101535,6 +101142,7 @@ msequipement.fr, 1 mserve.ddns.net, 1 mservers.cz, 1 +msf-usa.org, 1 msfishingcharter.com, 1 msgallery.tk, 1 msganka.jp, 1 @@ -101562,6 +101170,7 @@ msktc.org, 1 mslivros.com.br, 1 msm.ai, 1 +msmadlemon.com, 1 msmails.de, 1 msmaxfac.cz, 1 msmaxfax.cz, 1 @@ -101667,6 +101276,7 @@ mtel.gr, 1 mteleport.net, 1 mtelizabeth.com, 1 +mtex.net.ua, 1 mtf.party, 1 mtf.rip, 1 mtf.wiki, 1 @@ -101736,7 +101346,6 @@ mu00.org, 1 mu3e.com, 1 mu3on.com, 1 -muabannhanh.com, 0 muac-innolab.eu, 1 muafakatmalaysia.ga, 1 muafakatmalaysia.gq, 1 @@ -101880,7 +101489,7 @@ multiasistencia.com, 1 multibanco.pt, 1 multibomasm.com.br, 1 -multichange.net, 1 +multicharts.com, 1 multiclinicacardio.com.br, 1 multicoin.capital, 0 multicolortv.com, 1 @@ -101895,6 +101504,7 @@ multihobby.tk, 1 multihog.com, 1 multikalender.de, 0 +multikemasplastindo.com, 1 multilevelmarketing.cf, 1 multiline.ge, 1 multilingualpress.org, 1 @@ -101939,7 +101549,6 @@ multivpn.com.de, 1 multivpn.com.ua, 1 multivpn.fr, 1 -multivpn.su, 1 multiwavesensors.com, 1 multnomahvotes.gov, 1 multsearch.eu.org, 1 @@ -101979,6 +101588,7 @@ mundodosagapornis.tk, 1 mundoemalerta.com, 1 mundofoto.tk, 1 +mundofriki.es, 1 mundogamers.top, 1 mundoguatemalteco.com, 1 mundoinfrarrojo.com, 1 @@ -102019,6 +101629,7 @@ munroads.com, 1 muntajati-om.com, 0 muntproever.nl, 1 +muntstuk.com, 1 munzlocal10.org.nz, 1 muoivancauhoivisao.com, 1 muonmarketing.com, 1 @@ -102035,6 +101646,7 @@ murashun.jp, 1 muratatifsayar.com.tr, 1 muratbekgi.com, 1 +muratboyla.com, 1 muratcileli.tk, 1 muratec.tw, 1 muratoff.pp.ua, 1 @@ -102078,7 +101690,6 @@ murz.tv, 1 murzallawfirm.com, 1 murzik.space, 1 -musaccostore.com, 0 musacomo.com, 1 musafir-aceh.tk, 1 musagil.com.tr, 1 @@ -102192,7 +101803,6 @@ musicstudio.pro, 1 musictech.com, 1 musictools.tk, 1 -musicvideo.club, 1 musicvietnam.tk, 1 musicwear.cz, 0 musigama.tk, 1 @@ -102241,6 +101851,7 @@ muspla.com.br, 1 mussalains.com, 1 musselsblog.com, 1 +mussila.com, 1 mussonsppe.com, 1 mussonstrading.com, 1 musta.ch, 1 @@ -102272,9 +101883,11 @@ mutantmonkey.in, 1 mutantmonkey.info, 1 mutantmonkey.sexy, 1 +mutex.ru, 1 mutex.tech, 1 mutfakyolu.com, 1 muthai.in.th, 1 +muthamagazine.com, 1 mutiararentas.com.my, 1 mutsumikai8989.com, 1 mutua.es, 1 @@ -102380,7 +101993,6 @@ mwba.org, 1 mwc.mw, 1 mwcwallet.com, 1 -mwd.world, 1 mwdsls.gov, 1 mwe.st, 1 mwezi.org, 1 @@ -102404,6 +102016,7 @@ mww.moe, 1 mx-moto.fr, 0 mx-quad.fr, 0 +mx-solutions.net, 1 mx.org.ua, 1 mx.search.yahoo.com, 0 mx310.jp, 1 @@ -102505,6 +102118,7 @@ myairware.com, 1 myakkatactical.com, 1 myalliancechurch.com, 1 +myalmeria.com, 1 myalpine.shop, 1 myalsadd.tk, 1 myalumil.com, 1 @@ -102514,6 +102128,7 @@ myandroidfriend.ml, 1 myanimelist.net, 1 myanimo.ml, 1 +myanmar-now.org, 1 myanmar-responsiblebusiness.org, 1 myanmar.gov.mm, 1 myapexcard.com, 1 @@ -102527,6 +102142,7 @@ myathena.ai, 0 myatipfile.com, 1 myauto.ml, 1 +myayurvedicdiary.com, 1 mybaby.bg, 1 mybags.cf, 1 mybakkupakku.com, 1 @@ -102547,6 +102163,7 @@ mybestteam.tk, 1 mybicc.org, 1 mybieo.com, 1 +mybillie.com, 1 mybirds.tk, 1 mybisnis.tk, 1 mybizzmail.com, 1 @@ -102601,6 +102218,7 @@ mychamberlain.com.au, 0 mychamberlain.eu, 0 mychawinda.cf, 1 +mychemicallove.com, 1 mychemromance.tk, 1 mychicken.info, 1 mychicken.nl, 1 @@ -102625,6 +102243,7 @@ mycofairtrade.com, 0 mycoins.gallery, 1 mycoldjet.com, 1 +mycollegebag.in, 1 mycolo.gq, 1 mycolorado.gov, 1 mycommerce.tk, 1 @@ -102673,7 +102292,6 @@ mydedicatedservice.ca, 1 mydedicatedservice.com, 1 mydentalplan.gr, 1 -mydentist.co.uk, 0 mydenverhomesource.com, 1 mydesignrules.com, 1 mydestiny.tk, 1 @@ -102764,6 +102382,7 @@ myfirstcallmedical.com, 1 myfirstchessclub.com, 1 myfishpalace.at, 1 +myfitmare.com, 1 myfitnessbenefit.com, 1 myfitnesscare.com, 1 myfitsociety.com, 1 @@ -102799,6 +102418,7 @@ mygameconsole.tk, 1 mygaming.news, 1 mygate.at, 0 +mygaypornstarlist.com, 1 mygaysitges.com, 1 mygd.org, 1 mygear.live, 1 @@ -102826,6 +102446,7 @@ mygolod.com, 1 mygomel.tk, 1 mygov.scot, 1 +mygr8app.com, 1 mygreatjob.eu, 1 mygreatlakes.org, 1 mygreatwebsite.co.uk, 1 @@ -102836,6 +102457,7 @@ mygymer.ch, 1 myhabitshop.com, 1 myhappiness.tk, 1 +myharley-davidson.net, 1 myhealthchecked.com, 0 myhealthcheckup.ca, 1 myhealthcheckup.com, 1 @@ -102844,6 +102466,14 @@ myhelcim.com, 1 myhell-anonim.tk, 1 myhelo.com, 1 +myheritage.com, 1 +myheritage.de, 1 +myheritage.dk, 1 +myheritage.es, 1 +myheritage.fr, 1 +myheritage.nl, 1 +myheritage.no, 1 +myheritage.se, 1 myhermes.co.uk, 1 myhfstar.com, 1 myhkweb.tk, 1 @@ -102856,6 +102486,7 @@ myhouseofpizza.com, 1 myhouseproperty.com.au, 1 myhousestats.com, 0 +myhrconsultantllc.com, 1 myhub.eu.org, 1 myhurlburt.marketing, 1 myhuthwaite.com, 1 @@ -103008,7 +102639,6 @@ myndseye.com, 1 myneighborhoodperks.com, 1 mynerva.io, 1 -mynetblog.com, 1 mynetflow.com, 1 mynetpay.be, 1 mynetworkingbuddy.com, 1 @@ -103027,6 +102657,7 @@ mynr.ai, 1 mynrg.gr, 1 mynutrientcloud.com, 1 +mynxtcld.spdns.de, 1 myoctocat.com, 1 myoddlittleworld.com, 1 myodysi.com, 1 @@ -103051,7 +102682,6 @@ myowntutor.co.uk, 1 mypaperdone.com, 1 mypaperwriter.com, 1 -mypartnernews.com, 1 mypathologos.gr, 1 mypay.fr, 1 mypaypac.com, 1 @@ -103098,6 +102728,7 @@ myprivateserver.de, 1 myproblog.com, 1 myprofitweb.com, 1 +myprogress.cz, 1 mypromocode.com, 1 mypropertal.com, 1 myproteinpal.co.za, 1 @@ -103283,6 +102914,7 @@ mysticmedia.net, 1 mysticmine.shop, 1 mysticrealm.tk, 1 +mysticsenses.pt, 1 mystiko.eu, 1 mystinkefinger.de, 1 mystock911.com, 1 @@ -103301,7 +102933,6 @@ mystudycart.com, 1 mystudymap.tk, 1 mystylion.com, 1 -mysumber.com, 1 mysuperiorgarage.com, 1 mysupplements.ga, 1 mysurfhostel.com, 0 @@ -103311,13 +102942,11 @@ myswooop.de, 1 myszg.com, 1 mytana.com, 1 -mytanningcompany.com, 1 mytaratata.com, 1 mytaxindia.com, 1 mytc.fr, 1 myte.ch, 1 mytea.life, 1 -mytechwarellc.com, 1 mytefl.com, 1 mytests.tk, 1 mythen-fonds.ch, 1 @@ -103382,7 +103011,7 @@ myvoipnews.com, 0 myvologda.tk, 1 myvotect.gov, 1 -myvpl.com, 1 +myvu.com, 1 myvulcan-platinum.ru, 1 mywalletcrypto.cf, 1 mywapforum.ga, 1 @@ -103392,9 +103021,11 @@ mywebinar.io, 1 mywebpanel.eu, 1 mywebpanel.nl, 1 +mywebpeople.net, 1 mywebpharmacy.tk, 1 mywebserver.ml, 1 myweightlosstips.tk, 1 +mywestondental.com, 1 mywikis.net, 1 mywish.co.il, 1 mywonderkitchen.com, 1 @@ -103525,6 +103156,7 @@ nabzgroup.com, 1 nac.gov.pl, 1 nacc.gov.lb, 1 +nacds.org, 1 nacelle.com, 1 nach-holland.de, 1 nachalniku.cf, 1 @@ -103547,7 +103179,6 @@ nachtvertraut.com, 1 nacin.com, 1 nacionale.com, 1 -nacionalrecords.com, 1 nacionaltelha.com.br, 1 nackwallpapers.ml, 1 nacnkabiltrim.cf, 1 @@ -103564,7 +103195,6 @@ nada.com, 1 nada.org, 1 nadabrahma-hangtalmasszazs.hu, 1 -nadacnifondacr.cz, 1 nadaquenosepas.com, 1 naddi.org, 1 nadejeproninu.cz, 1 @@ -103589,7 +103219,7 @@ nadsandgams.com, 1 naduvilathu.tk, 1 nadyaolcer.fr, 1 -naec.ge, 1 +naeemsafdar.net, 1 naehenfuerwahrekleinehelden.de, 1 naehtalente.de, 0 naemnuk.tk, 1 @@ -103650,6 +103280,7 @@ naijapower.com, 1 naijauncut.com, 1 naijaxnet.com.ng, 1 +naijjobs.com, 1 naika.clinic, 1 nailartstudio.it, 1 nailattitude.ch, 0 @@ -103692,13 +103323,13 @@ nakama.tv, 1 nakamastudios.com, 1 nakameguro-ekimae-shika.com, 1 -nakamuramudancas.com.br, 1 nakayama.industries, 1 nakayamaresearch.com, 1 nakazanie.ga, 1 nakazawa-iin.com, 1 naked.pics, 1 nakedalarmclock.me, 1 +nakedbigdickmen.com, 1 nakedfacts.co.uk, 0 nakedgirls247.xxx, 1 nakedinkas.com, 1 @@ -103708,6 +103339,7 @@ nakedtruth.in, 1 nakedwomenpics.com, 1 nakenmodell.tk, 1 +nakhonchaitour.com, 1 nakib4tech.com, 1 nakim.cf, 1 nakin.tk, 1 @@ -103721,7 +103353,6 @@ nako.kr, 1 nako.no, 1 nakukata.com, 1 -nakupi.online, 1 nakupnabytku.sk, 1 nalagenetics.com, 1 nalanyinyun.top, 1 @@ -103746,6 +103377,7 @@ namastewestland.nl, 1 namazon.org, 1 namazvakitleri.com.tr, 0 +namc-um.org, 1 name.am, 1 name.ax, 1 namecoin.info, 1 @@ -103882,10 +103514,8 @@ naples.tk, 1 naplestotalgarage.com, 1 napo.tk, 1 -napoleon-empire.net, 1 napoleonoutlawed.tk, 1 napolict.com, 1 -napolike.it, 1 napolinissanctparts.com, 1 napolitoday.it, 1 napominanie.ml, 1 @@ -103933,6 +103563,7 @@ nariohtools.com, 1 naris-grc.com, 1 narkasa.com, 1 +narko-stop.org, 1 narkocenter116.ru, 1 narmafzar.tk, 1 narmos.ch, 0 @@ -103969,7 +103600,6 @@ narutoshippuden.tk, 1 narutoshow.tk, 1 narutouzumaki.tk, 1 -narvizit.com, 1 narware-testing.com, 1 nary-software.com, 1 narzedziownia.top, 1 @@ -103993,6 +103623,7 @@ nasedluhy.cz, 1 naseehah.ga, 1 nasehyar.ir, 1 +naserron.gr, 1 nasets-marcusgard.se, 1 nash-dom.tk, 1 nash-megagid.tk, 1 @@ -104061,7 +103692,9 @@ nataliealba.net, 1 nataliedawnhanson.com, 1 nataliehershlag.tk, 1 +nataliiawines.com.ua, 1 nataliyabag.com, 1 +natalrayovac.com.br, 1 natalsentido.com, 1 natanaelys.com, 1 nataniel-perissier.fr, 1 @@ -104138,7 +103771,6 @@ nationaldetailpros.com, 1 nationalemployertraining.co.uk, 1 nationaleyecenter.id, 1 -nationalfloorsdirectreviews.com, 1 nationalgangcenter.gov, 1 nationalgridrenewables.com, 1 nationalhomequotes.com, 1 @@ -104157,6 +103789,7 @@ nationalstudentclearinghouse.com, 1 nationaltestingnetwork.com, 1 nationaltrails.ru, 1 +nationaltransvisibilitymarch.org, 1 nationalwellness.org, 1 nationandfreedom.tk, 1 nationdivergente.com, 1 @@ -104227,6 +103860,7 @@ nature-basedsolutions.com, 1 nature.cz, 1 nature4justice.earth, 1 +natureaction100.org, 1 natureandculture.org, 0 natureartns.ru, 1 natureclaim.com, 1 @@ -104330,7 +103964,6 @@ navycs.com, 1 navyfederal.org, 1 navyleagueont.ca, 1 -nawaf-blog.com, 1 nawasyo.co.jp, 1 nawdar.tk, 1 nawir.de, 1 @@ -104512,8 +104145,6 @@ ncpimd001.spdns.de, 1 ncpublichealth.info, 1 ncpw.gov, 1 -ncr.pub, 1 -ncrjobs.in, 1 ncrpay.com, 1 ncrypt.ai, 1 ncrypt.at, 1 @@ -104587,7 +104218,6 @@ nea.gov, 1 nealemorison.com, 1 nealsmead.com, 1 -nealvorusphd.com, 1 neanderthalia.tk, 1 neapi.com, 1 nearbees.de, 1 @@ -104694,7 +104324,6 @@ needstobe.pet, 1 neeerd.org, 1 neel.ch, 1 -neemo.nz, 1 neenahwi.gov, 1 neenan.com, 1 neepscambaiting.com, 1 @@ -104725,7 +104354,7 @@ negativex.gq, 1 neglected.space, 1 neglecteddiseases.gov, 1 -negocieipanema.com.br, 1 +negocieipanema.com.br, 0 negociemos.com.co, 1 negocios-imatore.com, 1 negociosparaoptimistas.com, 1 @@ -104765,7 +104394,6 @@ neilrooney.com, 1 neilwynne.com, 1 neilyanto.com, 1 -neimadtelliam.fr, 1 nein-zu-bayern.de, 1 neishe.net, 1 neiu.edu, 1 @@ -104778,7 +104406,6 @@ nejomi.net, 1 nejrecept.cz, 1 nejsvetla.cz, 1 -nekb.org, 1 nekenieh.net, 0 nekkit.xyz, 1 nekljudov.ga, 1 @@ -104876,7 +104503,6 @@ nenapu.tk, 1 nenco.nl, 1 nenderus.su, 1 -neneko.moe, 1 nenesiosi.lt, 1 nenkin-kikin.jp, 1 neno.io, 1 @@ -105031,7 +104657,6 @@ nerfcity.tk, 1 nerfroute.com, 1 neri.it, 1 -neridasports.es, 1 nerion.tk, 1 nerispa.it, 1 nerja.es, 1 @@ -105063,7 +104688,6 @@ nesolabs.de, 1 nespim.tk, 1 nespresso.vn, 1 -ness.sh, 1 nessaesthetics.com, 1 nesscitycatholic.org, 1 nessimworks.com, 1 @@ -105113,17 +104737,16 @@ netbrewventures.com, 1 netbrief.ml, 1 netbsd.fi, 1 -netbulls.io, 1 netbuzz.ru, 1 netcake.in, 1 netcapital.com, 1 netcd.tk, 1 netcenteret.tk, 1 -netchameleon.com, 1 netcitadel.com, 1 netco-group.de, 1 netco-privacy.de, 1 netco-system.de, 1 +netconnect.at, 1 netcoolusers.org, 1 netcoresmartech.com, 1 netcost-security.fr, 1 @@ -105222,7 +104845,6 @@ netmaddy.com, 1 netmagellan.com, 0 netmagicas.com.br, 1 -netmajstor.eu, 1 netmania.tk, 1 netmedia.store, 1 netmedia.tk, 1 @@ -105234,6 +104856,8 @@ netnl.eu, 1 netoborona.tk, 1 netobur.net, 1 +netoffshop.ir, 1 +netolink.co.il, 1 netolink.com, 1 netor.ga, 1 netpatient.dk, 1 @@ -105361,7 +104985,6 @@ networktrafficanalysis.net, 1 networktrafficanalyzer.net, 1 networktrafficmonitoring.net, 1 -networkuser.de, 1 networld.to, 1 networth.at, 1 networthpal.com, 1 @@ -105370,7 +104993,6 @@ netz-noe.at, 1 netz0.com, 1 netzabfragen.de, 1 -netzagentur.at, 1 netzen.tk, 1 netzer.ml, 1 netzeroassetmanagers.org, 1 @@ -105433,7 +105055,6 @@ neurofitbraincentre.com.au, 1 neurogroove.info, 1 neurohouse.com.br, 1 -neurolepticgroup.com, 1 neurolicht.de, 1 neurologia.tk, 1 neurologie.tk, 1 @@ -105455,7 +105076,6 @@ neurozentrum-zentralschweiz.ch, 1 neuschwanstein.de, 1 neustadt-keller.de, 1 -neustadtguides.de, 1 neuteleers.tk, 1 neuton.ai, 1 neutra-vdl.org, 1 @@ -105574,7 +105194,6 @@ newcc.gov, 1 newcharmed.tk, 1 newchester.gov, 1 -newchoicesspb.ru, 1 newcityinfo.ch, 0 newcityinfo.info, 1 newcitystudio.ch, 0 @@ -105590,7 +105209,6 @@ newdaychristian.com, 1 newdayproperties.com, 1 newdayrecordlabel.com, 1 -newdecortrends.com, 1 newdenversurvivors.tk, 1 newdietandexercises.tk, 1 newdimensioninterlock.com, 0 @@ -105650,7 +105268,6 @@ newlanefinance.com, 1 newlegalsteroid.com, 1 newlifefund.org, 1 -newlight.net.br, 1 newlondonhospital.org, 1 newlovers.ga, 1 newlovers.gq, 1 @@ -105685,7 +105302,6 @@ newosis.life, 1 newparadigmventures.net, 0 newparrot.tk, 1 -newphysics.fi, 1 newplxx.gotdns.com, 1 newplxx.online, 1 newpointeg.com, 1 @@ -105705,7 +105321,6 @@ newrelic.com, 1 newreligiousmovements.org, 1 newreop.com, 1 -newresultbd.com, 1 newrichlandmn.gov, 1 newrochellearts.org, 1 news-and-blogs.tk, 1 @@ -105731,7 +105346,6 @@ news89.cf, 1 news89.ga, 1 news89.gq, 1 -newsabout.ca, 1 newsadvance.com, 1 newsall.gr, 1 newsarmenia.tk, 1 @@ -105800,6 +105414,7 @@ newspower.ir, 1 newspriest.com, 1 newsprix.com, 1 +newspro.io, 1 newspsychology.com, 1 newsquare.biz, 1 newsreach.org, 1 @@ -105856,7 +105471,7 @@ newyorkpub.com.br, 1 newyorkrp.tk, 1 newyorktitlesearch.com, 1 -newyorktoutsimplement.com, 1 +newyorktoutsimplement.com, 0 newz.to, 1 newzashitnik.tk, 1 newzealandadventure.tk, 1 @@ -105870,6 +105485,7 @@ newzvilla.ga, 1 nex.io, 1 nex.li, 1 +nexaquotient.com, 1 nexarda.com, 1 nexcoda.io, 1 nexd.com, 1 @@ -105897,7 +105513,7 @@ nexril.net, 0 nexs.gg, 1 nexscience.tk, 1 -nexsol-tech.ch, 1 +nexsol-tech.ch, 0 next-fact.com, 1 next-geek.fr, 1 next-idea.co, 1 @@ -105938,7 +105554,6 @@ nextgreencar.com, 1 nexthop.co.th, 0 nextiot.de, 1 -nextitstep.com, 1 nextiva.com, 1 nextlegends.gov, 1 nextlevel-forum.de, 1 @@ -106036,6 +105651,7 @@ nft.io, 1 nftactually.com, 1 nftdelegation.com, 1 +nftnow.com, 1 nftshowroom.com, 1 nfwkh.de, 1 ng-musique.com, 1 @@ -106047,9 +105663,8 @@ ngawa-avocat-paris.fr, 1 ngbilling.com.br, 1 ngc.gov, 0 -ngclearing.com, 0 +ngclearing.com, 1 ngefics.tk, 1 -ngegame.id, 1 ngelag.com, 1 ngen.ca, 1 ngergs.de, 1 @@ -106103,7 +105718,6 @@ nhadat100.vn, 1 nhai.gov.in, 0 nhance.pl, 1 -nhanlucnhatban.com, 1 nharper.org, 1 nhathaugiare.com, 1 nhatrang.tk, 1 @@ -106142,7 +105756,6 @@ niagaraschoice.org, 1 niallator.com, 1 niawier-wetsens.tk, 1 -nibadesign.nl, 1 nibbler.ai, 1 nibert.fr, 1 nibiru.com.uy, 1 @@ -106202,6 +105815,7 @@ nice-germany.tk, 1 nice-links.tk, 1 nice-pay.com, 0 +nice-school.com.ua, 1 nice.ch, 1 niceactimize.com, 0 niceb5y.net, 0 @@ -106216,6 +105830,7 @@ nicesurf.tk, 1 nicetits.pics, 1 nicevillefl.gov, 1 +nicgoa.nic.in, 1 nicheosala.info, 1 nicheosala.tk, 1 nicher.tk, 1 @@ -106293,7 +105908,7 @@ nickyfoxx.net, 1 nicn.me, 1 nico.st, 1 -nicoacosta.me, 1 +nicoacosta.me, 0 nicochinese.com, 1 nicogrosser.de, 0 nicoknibbe.nl, 1 @@ -106326,6 +105941,7 @@ nicolaw.uk, 1 nicolawealth.com, 1 nicole-4-u.de, 1 +nicole-richie.info, 1 nicolebracy.com, 1 nicolecurioni.com, 1 nicolehastings.com, 1 @@ -106359,6 +105975,7 @@ niduxcomercial.com, 1 nie-wieder-muede.de, 1 niebieskiorzel.pl, 1 +niebla.com.co, 1 niederalt.com, 1 niedermaier.eu.org, 1 niedermaier.pp.ua, 1 @@ -106416,6 +106033,7 @@ nigc.gov, 1 nigdeescort.tk, 1 nigel-aves-photography.com, 1 +nigelfreake.eu, 1 nigelpentland.co.uk, 1 nigelpentland.net, 1 nigelvm.com, 1 @@ -106425,7 +106043,6 @@ nigerianscholars.com, 1 nigeriaportal.tk, 1 niggo.eu, 0 -night-academy.pl, 1 night-life.club, 1 night-pleasure.com, 1 night2stay.cn, 1 @@ -106511,6 +106128,7 @@ nikavandenbos.nl, 1 nikavenus.com, 1 nike-studio.com, 1 +nikeairjordan.cc, 0 nikelunartw.net, 1 nikeoutletshoes.us, 1 nikesoccerbodotoutlet.ga, 1 @@ -106539,6 +106157,7 @@ niko-mapping-studio.tk, 1 niko-vfx.com, 0 nikodev.es, 1 +nikolab.com.ua, 1 nikolaev.ml, 1 nikolahost.tk, 1 nikolai-schmidt.tk, 1 @@ -106635,7 +106254,6 @@ ninetyseven.tk, 1 ninetysixsc.gov, 1 ninfora.com, 1 -ningrui.me, 0 ningwei.net, 1 niniko.tk, 1 ninja-corner.tk, 1 @@ -106645,7 +106263,6 @@ ninjamagic.tk, 1 ninjaseo.es, 1 ninjasquad.fr, 1 -ninjaworld.co.uk, 1 ninji.org, 1 ninkt.com, 1 ninmegam.gq, 1 @@ -106773,7 +106390,6 @@ nixtest.net, 1 nixx-gel.cz, 1 nixx.tk, 1 -nixxes.com, 1 nixxin.tk, 1 niyawe.de, 1 niyazpoyilan.com, 0 @@ -106915,6 +106531,7 @@ nnet.ca, 1 nnews.tk, 1 nnkkserver02.ddns.net, 1 +nnleadership.be, 1 nnlm.gov, 1 nnnico73.fr, 1 nnnn.loan, 1 @@ -106971,7 +106588,6 @@ nob.ro, 1 nobackups.com, 1 nobasico.com.br, 1 -nobellc.com, 1 nober.tk, 1 nobigtech.nl, 1 nobilefoods.com, 1 @@ -107113,6 +106729,7 @@ nokoshop.fr, 1 noktadedektor.com, 1 noktadetectors.com, 1 +noktadetectors.com.br, 1 noktron.de, 1 nokumbaya.com, 1 nokya.tk, 1 @@ -107260,6 +106877,7 @@ nord-sud.be, 1 nord-sued-wohnmobile.de, 0 nordaccount.com, 1 +nordbusinessaccount.com, 0 nordcheckout.com, 1 nordcity.ga, 1 nordcom.io, 1 @@ -107311,7 +106929,7 @@ nordvestkysten.dk, 1 nordvpn.com, 1 nordwal.de, 1 -nordwaldzendo.de, 1 +nordwaldzendo.de, 0 noref.tk, 1 noregrets.tk, 1 norelect.ch, 1 @@ -107491,7 +107109,6 @@ norz.at, 1 norzetto.com, 1 nos-oignons.net, 1 -nosacheva.ru, 1 nosandjayo.com, 1 nosbenevolesontdutalent.com, 1 noschairsfauteuils.fr, 1 @@ -107595,7 +107212,6 @@ notedesigner.com.br, 1 notedinstyle.co.uk, 1 notenarchiv.eu, 1 -notepam.com, 1 notequal.me, 1 noterica.com, 1 notes.ac, 1 @@ -107727,6 +107343,7 @@ novaya.media, 1 novaya.no, 1 novayagazeta.ee, 1 +novayagazeta.eu, 1 novayagazeta.ru, 1 novayazemlya.tk, 1 nove.city, 1 @@ -107873,7 +107490,6 @@ npcresearch.com, 1 npdc.nl, 1 npdigital.com, 1 -npdo.me, 1 npgcdn.net, 1 nphrm.com, 1 nphseagleeye.com, 1 @@ -107993,7 +107609,6 @@ nssfchile.tk, 1 nsspl.com.au, 1 nssquad.tk, 1 -nst-maroc.com, 1 nstatic.xyz, 1 nstd.net, 1 nstnet.org, 1 @@ -108039,11 +107654,8 @@ nts.com, 0 ntsb.gov, 1 ntsipl.com, 1 -ntsmetrics.com, 1 ntsp.team, 1 ntt-buses.com, 1 -ntu.edu.sg, 0 -ntuchinesesociety.com, 0 ntvtelugu.com, 1 ntx360grad-fallakte.de, 1 ntz.im, 1 @@ -108057,6 +107669,7 @@ nub.so, 1 nubank.com.br, 1 nube.com.br, 1 +nubeaustral.ar, 1 nubehogar.nsupdate.info, 1 nubian.cf, 1 nubian.tk, 1 @@ -108116,7 +107729,6 @@ nugush.tk, 1 nuhbeg.com, 1 nuhil.tk, 1 -nuhs.edu.sg, 0 nuhs.sg, 1 nuipogoda.ru, 1 nuitec.com.br, 1 @@ -108129,9 +107741,10 @@ nukleoti.de, 1 nul20.nl, 1 null-d.com, 1 -null-life.com, 0 +null-life.com, 1 null48.net, 1 nullbit.tk, 1 +nullbox.co, 0 nullcon.net, 1 nulldev.org, 1 nulle-part.org, 1 @@ -108180,6 +107793,7 @@ numetalagenda.com, 1 numismatix.de, 1 numismed-seniorcare.de, 1 +numismeo.com, 1 numista.com, 1 nummer378.de, 1 nummernschild.de, 1 @@ -108207,10 +107821,10 @@ nuovaguardia.tk, 1 nuovicasino.it, 1 nupaybusiness.com.br, 1 +nupixemedia.com, 1 nupro.net, 1 nuquery.com, 1 nur-test.de, 1 -nur.berlin, 1 nuraling.com, 1 nuranagi.rocks, 1 nureg.club, 1 @@ -108220,7 +107834,6 @@ nuriacamaras.com, 1 nuriastales.com, 1 nurkamol.com, 1 -nurlyn.com, 1 nurmio.fi, 1 nurnabi.ml, 1 nurseactioners.ga, 1 @@ -108238,7 +107851,6 @@ nursunity.ml, 1 nurture-thrive.com, 1 nusabarongmotormalang.com, 1 -nusaceningan.io, 1 nusailec.com, 1 nusantaraku.tk, 1 nusantararom.org, 1 @@ -108327,7 +107939,6 @@ nvleg.gov, 1 nvlifeinsurance.info, 1 nvlop.xyz, 0 -nvme.xyz, 1 nvnv.cf, 1 nvoip.com.br, 1 nvp.es, 1 @@ -108448,7 +108059,6 @@ nylbdc.gov, 1 nylevemusic.com, 1 nylipa.gov, 1 -nyliveauctions.com, 1 nyloc.de, 1 nylonmanila.com, 1 nym.at, 1 @@ -108493,6 +108103,7 @@ nyungweforestnationalpark.org, 1 nyupoco.com, 1 nyuware.pw, 1 +nyxa.be, 1 nyxapp.net, 1 nyxophyl.club, 1 nyxophyl.net, 1 @@ -108568,7 +108179,6 @@ o2design.tk, 1 o2solutions.ae, 1 o2ss.com, 0 -o3.ua, 1 o36533.com, 1 o365info.com, 1 o3c.com.br, 1 @@ -108617,7 +108227,6 @@ oakshield.nl, 1 oakslim.com, 1 oaktree-realtors.com, 0 -oaktreecapital.com, 0 oaktreelodge.org.uk, 1 oakwood-park.tk, 1 oanclothing.com, 1 @@ -108626,11 +108235,9 @@ oase-fuer-wohlbefinden.ch, 1 oasegroen.nl, 1 oasis-info.co.uk, 1 -oasis.in, 1 oasisautospa.org, 1 oasisbodycare.jp, 1 oasisbodywork.com, 1 -oasisgenetics.com, 1 oasislab.id, 1 oat-online.ch, 1 oatmealdome.me, 1 @@ -108659,7 +108266,6 @@ obelis.ltd, 1 obelisco.tk, 1 obelix05.duckdns.org, 1 -oben.es, 1 oberam.de, 1 oberdachstetten.de, 1 obereg.cf, 1 @@ -108675,7 +108281,6 @@ oberrot.de, 1 obertshausen.de, 1 obery.com, 1 -obesidadenmallorca.com, 1 obesidadlavega.com, 1 obet901vip.com, 1 obetz.gov, 1 @@ -108856,7 +108461,6 @@ ocenka-msfo.ru, 1 ocenka-nedv.ml, 1 ocenka.tk, 1 -ocennaswgoogle.pl, 1 ocf.io, 1 ocfelections.gov, 1 ocg-card.com, 1 @@ -108868,7 +108472,6 @@ ochki-linzi.tk, 1 ochobeatsmedia.net, 1 ochotnicky.com, 1 -ochranaprirody.cz, 1 ochrepoint.com.au, 1 ochsenfeld-design.de, 1 ochsenfeld-fotografie.de, 1 @@ -108900,6 +108503,7 @@ ocqueoctwpmi.gov, 1 ocredit.io, 1 ocrify.com, 1 +ocsamochodu.pl, 1 ocsan.gov, 1 ocsbl.at, 1 ocsbl.blog, 1 @@ -109029,6 +108633,7 @@ odontologiawilliampizarro.com, 1 odoo.co.th, 1 odoppelto.de, 1 +odoranswers.com, 1 odoru.ga, 1 odorucinema.ga, 1 odosblog.de, 1 @@ -109122,6 +108727,7 @@ offeo.com, 1 offer-today.ml, 1 offerfit.ai, 1 +offerground.com, 1 offerhome.com, 1 offerman.com, 1 offerman.industries, 1 @@ -109166,7 +108772,6 @@ officerjones.tk, 1 officert.ga, 1 officesib.ddns.net, 1 -officetechrentals.com.br, 1 official-sensitive.org, 1 official.link, 1 official.my, 1 @@ -109210,7 +108815,6 @@ ofina.on.ca, 1 ofiprecios.com, 1 ofis.tk, 1 -ofisas.cloud, 1 ofisbulutta.com, 1 ofisescort.ga, 1 ofisescort.tk, 1 @@ -109229,7 +108833,6 @@ oftamedic.com, 0 oftn.org, 1 ofuquemalitaestoy.tk, 1 -ofzenandcomputing.com, 1 oga.fit, 0 ogamerezine.tk, 1 ogar.ga, 1 @@ -109361,7 +108964,6 @@ ojo-publico.com, 1 ojoconmipisto.com, 1 ojp.gov, 1 -ok-remont.com.ua, 1 ok-travel.tk, 1 ok.ru, 1 ok2a.org, 1 @@ -109581,6 +109183,7 @@ olennolla.net, 1 oleodecopayba.com.br, 1 olepiraatti.fi, 1 +oleren.com, 0 olerogas.xyz, 1 oles-hundehaus.de, 1 olesaradio.tk, 1 @@ -109604,14 +109207,12 @@ oligenesi.it, 1 olihar.com, 1 olimp04.com, 1 -olimpia-law-firm-pllc.com, 1 olimpicmoradebre.tk, 1 olimplask.pl, 1 olimpoao.tk, 1 olinux.fr, 1 oliode.tk, 1 olisius.com, 1 -olitham.com, 1 olive-shikaclinic.com, 1 olive.dental, 1 olive.my, 1 @@ -109674,7 +109275,6 @@ olmc-nutley.org, 1 olmcjc.com, 1 olmcnewark.com, 1 -olmet.pl, 1 olmik.net, 1 olmportal.com, 1 olmsted.io, 1 @@ -109731,8 +109331,8 @@ omahcoin.com, 1 omal.info, 1 omamconsultancy.com, 1 +oman-stick.sale, 1 omanair.com, 1 -omaneziba.com, 1 omangrid.com, 1 omanhr.cf, 1 omanishikh.com, 1 @@ -109765,6 +109365,7 @@ omegachess.tk, 1 omegacode.pl, 1 omegahosting.net, 1 +omegamc.ua, 1 omegarazer.ca, 1 omegathermoproducts.nl, 1 omegleporn.to, 1 @@ -109891,7 +109492,6 @@ onaccount.co.nz, 1 onai.es, 1 onair.ovh, 1 -onairshop.fr, 1 onarto.com, 1 onavstack.net, 1 onawaymi.com, 1 @@ -109948,9 +109548,7 @@ one-dot.de, 0 one-host.ga, 1 one-news.net, 0 -one-piece-fans.com, 1 one-pixel.tk, 1 -one-resource.com, 1 one-tab.com, 1 one1xfarsi.com, 1 one2.digital, 1 @@ -110085,9 +109683,7 @@ onetcenter.org, 1 onetcodeconnector.org, 1 onetech.it, 1 -oneteg.com, 1 onetestatatime.com, 1 -onetimegallery.com, 1 onetimesecret.com, 1 onetly.com, 1 onetonline.org, 1 @@ -110103,6 +109699,7 @@ onetwo-vermietung.de, 1 onetwosweetatelier.com, 1 oneuniversalmedia.com, 1 +oneupchocolatebars.com, 0 oneurl.co, 1 onevisionstudio.com, 1 oneway.ga, 1 @@ -110158,6 +109755,7 @@ onkfaktor.de, 1 onkologiya.ga, 1 onkvwave.ru, 1 +onlanka.com, 1 onld.de, 1 onlfait.ch, 0 onlifehealth.com, 1 @@ -110207,7 +109805,6 @@ online24.pt, 1 online365.ga, 1 onlinebettingacademy.com, 1 -onlinebewerbungsserver.de, 1 onlinebiller.com, 1 onlinebillingform.com, 1 onlinebookmarks.tk, 1 @@ -110263,7 +109860,7 @@ onlinelegalmarketing.com, 1 onlinelegalmedia.com, 1 onlineloansnocreditcheck.tk, 1 -onlinemag24.com, 0 +onlinemag24.com, 1 onlinemagento.com, 1 onlinemarketfinds.cf, 1 onlinemarketingmuscle.com, 1 @@ -110278,7 +109875,6 @@ onlinepaydayloans365.tk, 1 onlineplay.ml, 1 onlinepokies.me, 1 -onlineporno.cc, 1 onlineprogrammingbooks.com, 1 onlineprojects.in, 1 onlineradio.com.pl, 1 @@ -110302,6 +109898,7 @@ onlinesports.cf, 1 onlinesports.tk, 1 onlinestatic.net, 0 +onlinestorebuilder.co, 1 onlinestoresite.com.au, 1 onlinesudoku.tk, 1 onlinesurveys.ac.uk, 1 @@ -110363,8 +109960,8 @@ onmyside.com, 1 onnatuurlijk.tk, 1 onnee.ch, 1 +onnytech.co.uk, 1 ono.ac.il, 1 -onodera.com.br, 1 onohawaiianbbq.com, 1 onondaga.gov, 1 ononoki.org, 1 @@ -110382,7 +109979,6 @@ onrampwallet.com, 1 onrangetout.com, 1 onrealt.ru, 0 -onrise.software, 1 onrr.gov, 1 onscript.study, 1 onsemediagroup.ml, 1 @@ -110413,7 +110009,6 @@ ontestpad.com, 1 onthe.network, 1 ontheballbuilding.com.au, 1 -onthecheap.store, 0 onthegosystems.com, 1 onthemend.com, 1 onthesocials.com.au, 1 @@ -110496,7 +110091,6 @@ ootoolkit.us, 1 op11.co.uk, 0 op3racional.eu, 1 -op404.com, 0 opacity.au, 1 opaco.tk, 1 opadaily.com, 1 @@ -110606,7 +110200,6 @@ openfir.st, 0 openfitapi-falke.azurewebsites.net, 1 openfpcdn.io, 1 -openfuture.digital, 1 opengameart.org, 1 opengovpartnership.de, 1 openhandhelds.org, 1 @@ -110641,7 +110234,6 @@ openpictures.ch, 1 openports.se, 1 openpowerfoundation.org, 1 -openproject.com, 1 openproton.cf, 1 openprovider.nl, 0 openqnx.com, 1 @@ -110694,7 +110286,7 @@ opentrack.info, 1 opentrader.com.au, 0 opentrash.org, 1 -opentrek.it, 1 +opentrek.it, 0 openverse.com, 0 openvision.tech, 1 openvision.tk, 1 @@ -110738,13 +110330,13 @@ opic.gov, 1 opid.my.id, 1 opil.no, 1 +opimo3d.com.br, 1 opin.me, 1 opinie.pl, 1 opinio.fr, 1 opinionipannolini.it, 1 opinioniprodotto.it, 1 opinionitech.com, 1 -opinionmodel.it, 1 opiniterupdate.com, 1 opioidaffectedyouth.org, 1 opioids.co.uk, 1 @@ -110763,7 +110355,6 @@ opl.bz, 1 oplata-mvd.ga, 1 oplata-vklike.tk, 1 -oplata.md, 1 oplata.uz, 1 oplop.appspot.com, 1 opm.gov, 1 @@ -110815,7 +110406,6 @@ opryshok.com, 1 ops.ai, 1 ops.com.pl, 1 -opsba.org, 1 opsdis.com, 1 opsecx.com, 1 opsholders.com, 1 @@ -110837,6 +110427,7 @@ opteamax.de, 1 opteamax.eu, 1 optenhoefel.de, 1 +optgo.com.ua, 1 opti-net.at, 1 opti-net.solutions, 1 optibelt.com, 1 @@ -110893,7 +110484,6 @@ optimuscrime.net, 1 optimuslearningschool.com, 1 optimusprime.pl, 1 -optimust.fi, 1 optinadx.com, 1 optionsfund.cn, 1 optionskredit.ag, 1 @@ -110921,6 +110511,7 @@ opture.ch, 1 optykgill.pl, 1 optymyze.com, 1 +opulentdivision.com, 1 opus-codium.fr, 1 opus-labs.fr, 1 opus-nail.com, 1 @@ -111017,7 +110608,6 @@ orbitum.space, 1 orbsl.com, 1 orbu.net, 1 -orbussoftware.com, 0 orca-software.com, 1 orca.security, 1 orcada.co, 1 @@ -111108,7 +110698,6 @@ orensport.tk, 1 oreo.rocks, 1 oreomuhely.hu, 1 -oresama.studio, 1 oreshinya.xyz, 1 orestadit.dk, 1 oreto.de, 0 @@ -111129,7 +110718,7 @@ organicappraisalers.ga, 1 organicconsumers.org, 1 organicflavor.com.br, 1 -organicindiausa.com, 1 +organicindiausa.com, 0 organicossuliani.com.br, 1 organicpoint.in, 1 organicrootsfestival.tk, 1 @@ -111171,7 +110760,6 @@ origamiii.me, 1 origamiking.wiki, 1 origemtemperos.com.br, 1 -origenarts.com, 1 origent.com, 1 origina.com, 1 originahl-scripts.com, 1 @@ -111206,6 +110794,7 @@ orioneclipse.com, 1 orionelement.com, 1 orionfcu.com, 1 +orionfinancialservices.com, 1 oriongames.eu, 1 orionintel.es, 1 orionlab.com.br, 1 @@ -111285,7 +110874,6 @@ orthodontiste-geneve-docteur-rioux.com, 0 orthodoxdelmarva.org, 1 orthograph.ch, 1 -orthomolecularproducts.com, 0 orthopedic-shoes.tk, 1 orthopedicsalon.tk, 1 orthoquest.ca, 1 @@ -111297,6 +110885,7 @@ ortocraft.tk, 1 ortoemangiato.it, 1 ortografiacerta.com.br, 1 +ortoinnovapanama.com, 1 ortop.ua, 1 ortopedia.tk, 1 ortopertutti.it, 1 @@ -111310,6 +110899,7 @@ oryxlabs.com, 1 oryxserver.ch, 1 orzado.com, 1 +orzado.com.ua, 1 orzechot.pl, 1 os-s.de, 1 os-s.net, 1 @@ -111500,7 +111090,6 @@ osveld.com, 1 osvhub.com, 1 oswaldlabs.com, 1 -oswalds.co.uk, 1 oswaldsmillaudio.com, 1 oswegoil.gov, 1 oswegony.gov, 1 @@ -111519,6 +111108,7 @@ otakurepublic.com, 1 otakurumi.de, 1 otakuzonefanzine.tk, 1 +otariarutiunian.com, 1 otaris.de, 1 otchecker.com, 1 otdel16.tk, 1 @@ -111547,17 +111137,16 @@ otkm-stuttgart.tk, 1 otmns.net, 1 otng.us, 1 -otoblok.com, 1 otogeworks.com, 1 otokiralama.name.tr, 1 otoko.fr, 1 -otokocikinciel.com, 1 otoma.tk, 1 otomania.tk, 1 otomauto.com, 1 otomekaito.xyz, 1 otomny.fr, 1 otomobilforumu.com, 0 +otomobilhaber.com, 1 otonity.com, 1 otoplastik.ml, 1 otoplenie-ufa.ml, 1 @@ -111842,7 +111431,6 @@ oversight.gov, 1 oversight.nz, 1 oversightboard.com, 1 -overspace.cloud, 1 overstemmen.nl, 1 overstockpromote.com, 1 overthecloud.it, 1 @@ -111899,7 +111487,6 @@ owlandbee.com.au, 1 owlandbee.eu, 1 owlandbee.uk, 1 -owlando.com, 1 owlandrabbitgallery.com, 1 owlazy.com, 1 owlbee.be, 1 @@ -111940,6 +111527,7 @@ owozi.com, 1 owrt-risk.dedyn.io, 1 owyheecounty.gov, 1 +owynsafety.com, 1 owysgarden.com.au, 1 ox.restaurant, 1 oxalato.com, 1 @@ -111955,6 +111543,7 @@ oxfordandcambridgetutors.com, 1 oxfordbus.co.uk, 1 oxforddigital.com.au, 0 +oxfordenglish.com.ua, 1 oxfordkneeinfo.com, 0 oxfordmd.gov, 1 oxfordobserver.org, 1 @@ -112036,7 +111625,6 @@ oz-artfocus.com, 1 oz-style.com, 1 ozacek.fun, 1 -ozantravel.com, 1 ozark-serial.net, 1 ozarkinspected.com, 1 ozas.lt, 1 @@ -112119,7 +111707,6 @@ p2p-tv.tk, 1 p2pool.observer, 1 p2r.ru, 1 -p3.marketing, 1 p30mororgar.ir, 1 p333aa.com, 1 p333b.net, 1 @@ -112349,7 +111936,6 @@ pagalofacil.com, 1 pagalworld-news.ml, 1 pagalworld.com, 1 -pagalworld.name, 1 pagalworld.us, 1 pagamesssddr.com, 1 pagancollective.cf, 1 @@ -112360,7 +111946,7 @@ pagbitcoin.com, 1 page, 1 page-engine.tk, 1 -page-speed.ru, 1 +page-speed.ru, 0 page.lgbt, 1 page12.tk, 1 pageboard.fr, 1 @@ -112375,7 +111961,6 @@ pagehost.one, 1 pagenews.tk, 1 pagenstedt.de, 1 -pageonecoffee.com, 1 pageonstage.at, 1 pagepapi.com, 1 pagerankkings.com, 1 @@ -112418,7 +112003,6 @@ paiementdp.com, 1 paiementpasseport-mali.com, 1 paige.ai, 1 -paigejulianne.com, 1 paigethegeek.com, 1 paiinternational.in, 1 paimboeuf.fr, 1 @@ -112460,8 +112044,8 @@ paisley.is, 1 paisleyandsparrow.com, 1 paistation.ch, 1 -paivafernandes.com.br, 1 pajadam.me, 1 +pajamka.com.ua, 1 pajbot.de, 1 pajobsite.com, 1 pajuvuo.fi, 1 @@ -112495,6 +112079,7 @@ pakjefooi.nl, 1 pakjefooi.org, 1 pakkibaat.tk, 1 +pakmarkas.lt, 1 pakmedia.tk, 1 paknetworking.org, 1 pakostane-apartments.tk, 1 @@ -112541,7 +112126,6 @@ paleontologiadebagua.tk, 1 paleopolis-parc.com, 1 paleoself.com, 1 -paleospirit.com, 1 paleosquawk.com, 1 palermoantagonista.tk, 1 palermofc.com, 1 @@ -112586,7 +112170,6 @@ palmettogba.com, 1 palmex.com, 1 palmfan.com, 1 -palmgrovefarm.com, 1 palmiye.tk, 1 palmknihy.cz, 1 palmmedia.de, 1 @@ -112610,6 +112193,7 @@ palyvoice.com, 1 pamajans.com, 0 pamaniqu.nl, 1 +pamba.com.co, 1 pamc.tk, 1 pamdrew.com, 1 pamelafong.com, 1 @@ -112696,7 +112280,7 @@ pandillatel.ml, 1 pandit.tech, 1 pandithaya.tk, 1 -pandiwibowo.site, 1 +pandiwibowo.site, 0 pandjlive.com, 1 pandkonijn.nl, 1 pandn-bulgaria.com, 1 @@ -112743,7 +112327,6 @@ panicroomgames.ch, 1 panictours.tk, 1 panier-legumes.bio, 1 -panierscadeauxinternationaux.com, 1 paniigielka.pl, 1 paniniamerica.net, 1 panino.gr, 1 @@ -112785,12 +112368,12 @@ pansermuseet.com, 1 pansermuseet.dk, 1 pansermuseum.dk, 1 +pansino.net, 1 pansion-differently.tk, 1 panskeet.xyz, 1 pansys.de, 1 panszelescik.pl, 1 pantagraph.com, 1 -pantai.com.my, 0 pantallasyescenarios.com, 0 pantas.com, 1 pantera.tk, 1 @@ -113207,6 +112790,7 @@ parkos.de, 1 parkos.it, 1 parkos.nl, 1 +parkplus.in.ua, 0 parkr.io, 0 parkseed.com, 0 parksi.top, 1 @@ -113243,7 +112827,7 @@ paroisses-theix-surzur.com, 1 parokia.hu, 1 parolededieu.org, 1 -paroli.pl, 1 +paroli.pl, 0 parolu.io, 1 paronubi.com, 1 parool.nl, 1 @@ -113272,7 +112856,6 @@ pars.work, 1 parsdev.com, 0 parsec.app, 1 -parsemail.org, 1 parser.name, 1 parser.nu, 1 parseur.com, 1 @@ -113292,6 +112875,7 @@ partaiperindo.com, 1 parteaga.com, 1 parteaga.net, 1 +partechshaker.com, 1 partecipa.tn.it, 1 partedmagic.com, 1 parthkolekar.me, 1 @@ -113408,7 +112992,6 @@ pascoflcorrections.gov, 1 pascopa.gov, 1 pascopcfix.com, 1 -pascopresents.com, 0 pascosheriff.com, 1 pascovotes.gov, 1 pascualberniz.tk, 1 @@ -113429,12 +113012,12 @@ pass-jobcoaching.nl, 1 passa.org, 1 passabook.com, 1 +passandsecure.fr, 1 passau-webdesign.com, 1 passbolt.com, 1 passedport.eu, 1 passedport.net, 1 passedport.org, 1 -passegginieculle.it, 1 passendonderwijs.nl, 0 passengertravelportal.com, 1 passer.ga, 1 @@ -113470,6 +113053,7 @@ passport.yandex.kz, 1 passport.yandex.ru, 1 passport.yandex.ua, 1 +passportcorporate.com, 1 passports.govt.nz, 1 passporttrails.com, 1 passportunlimited.com, 1 @@ -113626,11 +113210,10 @@ patrickbusch.net, 1 patrickcontainerrotator.ga, 1 patrickdankers.nl, 1 -patrickdecokere.be, 1 patrickderitter.nl, 1 patrickhoefler.net, 1 patrickkaminski.com, 1 -patrickmahaffy.com, 1 +patrickmahaffy.com, 0 patrickpeeters.com, 1 patrikjohan.cf, 1 patrikjohan.ga, 1 @@ -113693,7 +113276,7 @@ paulchua.tk, 1 paulcloud.fr, 1 pauld.codes, 1 -pauldaugerdas.com, 1 +pauldaugerdas.com, 0 pauldeconinck.tk, 1 paulgerberrealtors.com, 1 paulgo.io, 1 @@ -113712,7 +113295,6 @@ paullovestugba.nl, 1 paulmarc.org, 1 paulmarvin.tk, 1 -paulmcdermott.com, 1 paulmolloy.guitars, 1 paulmolloydesign.com, 1 paulmurraycleaningservices.ie, 1 @@ -113830,7 +113412,6 @@ paxwinkel.nl, 1 pay.accountant, 1 pay.apartments, 1 -pay.band, 1 pay.basketball, 1 pay.business, 1 pay.catering, 1 @@ -113840,42 +113421,32 @@ pay.contractors, 1 pay.dentist, 1 pay.dog, 1 -pay.engineer, 1 pay.equipment, 1 pay.faith, 1 -pay.flights, 1 pay.football, 1 pay.foundation, 1 pay.gallery, 1 pay.gov, 0 -pay.graphics, 1 pay.hockey, 1 pay.hospital, 1 pay.im, 1 pay.insure, 1 -pay.investments, 1 pay.kitchen, 1 pay.lawyer, 1 -pay.llc, 1 pay.management, 1 -pay.memorial, 1 pay.mg, 0 pay.photography, 1 pay.plumbing, 1 pay.rent, 1 -pay.rentals, 1 pay.repair, 1 pay.sb, 1 pay.school, 1 -pay.solar, 1 pay.storage, 1 pay.surf, 1 -pay.surgery, 1 pay.tennis, 1 pay.theater, 1 pay.ubuntu.com, 1 pay.university, 1 -pay.video, 1 pay.wedding, 1 pay2keep.com, 1 pay8522.com, 1 @@ -113893,6 +113464,9 @@ payboy.rocks, 1 paycaptain.com, 0 paycardtech.com, 1 +paycom.com, 0 +paycomdfw.com, 0 +paycomonline.com, 0 paycore.com, 1 paycrest.io, 1 paydepot.com, 1 @@ -113933,7 +113507,6 @@ paymore.org, 1 paymyphysician.com, 0 paymytuition.com, 1 -paynet.md, 1 paynexpay.com, 1 paynode.com, 1 paynuity.com, 1 @@ -113957,7 +113530,7 @@ paypipes.com, 1 paypo.pl, 1 paypod.org, 1 -paypro.nl, 0 +paypro.nl, 1 payps.ru, 1 payraise.us, 1 payroll-outsourcing.com.au, 1 @@ -114040,6 +113613,7 @@ pc-mac.de, 1 pc-master.pl, 1 pc-pharma.com, 1 +pc-reanimator.ru, 1 pc-remont.tk, 1 pc-service.me, 1 pc-servis-brno.com, 1 @@ -114276,7 +113850,7 @@ pecan.ai, 1 pecetowicz.pl, 1 pecheneg.tk, 1 -pechibani.by, 0 +pechibani.by, 1 pechka.tk, 1 pechonova.com, 1 pecker-johnson.com, 1 @@ -114293,7 +113867,6 @@ pedaleuse.be, 1 pedalia.cc, 1 pedalirovanie.tk, 1 -pedallers.com, 1 pedalr.eu, 1 pedaltown.nl, 1 peddals.com, 1 @@ -114315,11 +113888,11 @@ pedo.house, 1 pedodontie.ro, 1 pedohunters.de, 1 -pedraja.fr, 1 pedrazanoticias.tk, 1 pedro.com.es, 1 pedrobotias.tk, 1 pedrolamas.com, 1 +pedrollo-ua.com, 1 pedroministro.pt, 1 pedromunoz.tk, 1 pedrooliveira.tk, 1 @@ -114395,7 +113968,6 @@ peinture-77.fr, 1 peippo.at, 1 peirong.me, 1 -pejic.nl, 1 pekarskarodina.cz, 1 pekarskis.com, 1 pekarstvivetvrzi.cz, 1 @@ -114406,6 +113978,7 @@ peklostroj.eu, 1 peklostroj.sk, 1 peko.com.mk, 1 +pelachim.com.br, 1 pelagicus.co.uk, 1 pelajaran.co.id, 1 pelanucto.cz, 1 @@ -114462,6 +114035,7 @@ pen15art.tk, 1 pena-party.tk, 1 pena600.tk, 1 +penair.com.au, 0 penatizavarise.com, 1 penaznepozicky.com, 1 penbrookpa.gov, 1 @@ -114567,6 +114141,7 @@ pensiunea-paco.ro, 1 pensiunealido.ro, 1 pentagon-area.tk, 1 +pentagonix.com.br, 1 pentagram.cf, 1 pentagram.me, 1 pentagrid.ch, 1 @@ -114674,7 +114249,6 @@ perception-point.io, 1 perceptive.pro, 1 perceptivemediatech.com, 1 -percepto.co, 1 perceptyx.com, 1 perchance.org, 1 percherosdepared.es, 1 @@ -114686,6 +114260,7 @@ percymagic.tk, 1 perd.re, 1 perdanabagus.tk, 1 +perdele-draperii.ro, 1 perdita-capelli.tk, 1 perdolyathlendr.tk, 1 perecraft.com, 1 @@ -114706,6 +114281,7 @@ pereuda.com, 1 perevedi.org, 1 perevedut.cf, 1 +perevod-kakadu.com, 1 perevod-tekst-pesni.ru, 1 perewall.tk, 1 perez-marrero.com, 1 @@ -114718,6 +114294,7 @@ perfect-carstyle.de, 1 perfect-dream.tk, 1 perfect-privacy.com, 1 +perfect-seo.com.ua, 1 perfect-servers.com, 1 perfect-tour.ro, 1 perfect8.com.tw, 1 @@ -114802,13 +114379,13 @@ perlego.com, 1 perlina.co.il, 1 perlina.top, 1 -perm-avia.ru, 1 perm-jur.ch, 0 perm-juridique.ch, 0 perm-l2.tk, 1 perma-batteries.com, 1 permaculture.cf, 1 permaditya.my.id, 1 +permajack.com, 1 permajackofstlouis.com, 1 permajackstlouis.com, 1 permak.tk, 1 @@ -114867,6 +114444,7 @@ perscore.tk, 1 perseo.tk, 1 persephone.gr, 1 +persey-ssm.com.ua, 1 persey.tk, 1 persian-clan.tk, 1 persiandating.tk, 1 @@ -115045,7 +114623,7 @@ peterdavehello.org, 1 peterfoden.com, 1 peterfolta.net, 1 -petergrimson.com, 1 +petergrimson.com, 0 petergudo.tk, 1 peterhall.au, 1 peterheery.me, 0 @@ -115056,7 +114634,7 @@ peterhuetz.com, 1 peterjin.org, 1 peterjohnson.io, 1 -peterkleinsouthcarolina.com, 1 +peterkleinsouthcarolina.com, 0 peterkotula.tk, 1 peterkrivanek.com, 1 peterkshultz.com, 0 @@ -115073,7 +114651,7 @@ peterpauer.com, 1 peterpiperpizza.com, 1 peterreinold.com, 1 -peterrentrop.com, 1 +peterrentrop.com, 0 peters.consulting, 1 petersburgmi.gov, 1 peterseninc.com, 1 @@ -115119,6 +114697,7 @@ petitnuagephotographie.be, 1 petitsfrenchies.com, 1 petitsfreresdespauvres.fr, 1 +petitsouffle.fr, 1 petitu.mx, 1 petjoy.co.za, 1 petkiss.ga, 1 @@ -115150,7 +114729,6 @@ petr.no, 1 petr.se, 1 petr22shcool.tk, 1 -petra-toroid.ro, 1 petrachuk.ru, 1 petrally.ga, 1 petrapsy.nl, 1 @@ -115166,7 +114744,6 @@ petrochemprojects.ga, 1 petrol-power.tk, 1 petroleum-schools.com, 1 -petroleumservicecompany.com, 1 petrolicious.com, 1 petroll.ga, 1 petroscand.eu, 1 @@ -115221,6 +114798,7 @@ petwebshop.com, 1 petwood.co.uk, 1 petwoods.com.br, 1 +petzplus.net, 1 peuf.shop, 1 peukert.cc, 1 peupledefrance.fr, 1 @@ -115230,6 +114808,7 @@ pewat.com, 1 pewforum.org, 1 pewglobal.org, 1 +pewhispanic.org, 1 pewo.com, 1 pewresearch.org, 1 pewsocialtrends.org, 1 @@ -115307,7 +114886,6 @@ pg-sec.com, 1 pg-sec.cz, 1 pg-sec.eu, 1 -pg-slot.me, 1 pgazette.tk, 1 pgdailynews.ca, 1 pggm.nl, 1 @@ -115365,14 +114943,13 @@ phantomlord.tk, 1 phantomphans.tk, 1 phantomware.tk, 1 -pharma-insights.nl, 1 +pharma-insights.nl, 0 pharmaabsoluta.com.br, 1 pharmaboard.de, 1 pharmaceutical-technology.com, 1 pharmaceuticalcannabis.org, 1 pharmacie-dufayel.fr, 1 pharmacie-matignon.com, 1 -pharmaciechatelle.be, 1 pharmacologydiscoveryservices.com, 1 pharmacy-evalar.ru, 1 pharmacy-schools.com, 1 @@ -115466,10 +115043,11 @@ philipdeussen.com, 1 philipdeussen.de, 1 philiperiksson.se, 1 +philipgoffphilosophy.com, 1 philipkdick.tk, 1 philipkobelt.ch, 1 philiplowran.tk, 1 -philipmcaputo.com, 1 +philipmcaputo.com, 0 philipmordue.co.uk, 1 philipoff.com, 1 philipp-trulson.de, 0 @@ -115507,7 +115085,6 @@ phillippe-lemarc.ch, 1 phillips-cohen.com.au, 1 phillipspediatricsoxford.com, 1 -phillprice.com, 0 phillyhometech.com, 1 phillyinjurylawyer.com, 1 philmontphotography.com, 1 @@ -115562,6 +115139,7 @@ phoenixmunicipalcourt.gov, 1 phoenixnest.ltd, 1 phoenixpower.tk, 1 +phoenixrisingconsult.com, 1 phoenixsalon.eu, 1 phoenixurbanspaces.com, 0 phoenixville.online, 1 @@ -115621,7 +115199,7 @@ phosforum.ga, 1 phosphorus.io, 1 photistic.org, 1 -photo-blowup.com, 0 +photo-blowup.com, 1 photo-booth.ro, 1 photo-design.ml, 1 photo-host.tk, 1 @@ -115682,6 +115260,7 @@ photoprofi.tk, 1 photops.fr, 1 photoreal.tk, 1 +photorelive.com, 1 photosafari.com.my, 1 photosafaribg.com, 1 photosavi.com, 1 @@ -115844,7 +115423,6 @@ pianoschmitz.de, 1 pianotaku.com, 1 pianotuning.cn, 0 -piantami.com, 1 piaohong.tk, 1 piasativa.com, 1 piasto.com.cy, 1 @@ -115894,9 +115472,9 @@ pickhdtvers.ga, 1 pickhdtvest.ga, 1 pickle-publishing.com, 1 -pickleballspots.com, 1 picklinik.id, 0 pickmysoap.gr, 1 +picknclickonline.com, 1 picknetworkiscoming.sg, 1 picknrg.com, 1 picksin.club, 1 @@ -115926,7 +115504,7 @@ picsalesers.ga, 1 picsastock.com, 1 picshare.nz, 1 -picsnmore.de, 1 +picsnmore.de, 0 picstar.tk, 1 picsto.re, 0 pictominoes.com, 1 @@ -115948,6 +115526,7 @@ picus.io, 1 pidelo-peru.com, 1 pidgi.net, 1 +pidiylab.com, 0 pidjipi.com, 1 pidu.jp, 1 pie-express.xxx, 1 @@ -116000,6 +115579,7 @@ piersmana.com, 1 pierson.tk, 1 pierstone.com, 1 +piesel-piepser.de, 1 pietbrakman.tk, 1 pietcees.nl, 1 pietechsf.com, 0 @@ -116038,7 +115618,6 @@ piifunder.uk, 1 piifunding.com, 1 piizapp.com, 1 -pijamasbichopreguica.com.br, 1 pijappi.com, 1 pijiutuan.com, 1 pijuice.com, 1 @@ -116089,7 +115668,7 @@ pillowfort.pub, 1 pillser.com, 1 pilot-colleges.com, 1 -pilot-gps.africa, 0 +pilot-gps.africa, 1 pilot.co, 1 pilot.com, 1 pilotbook.org, 1 @@ -116179,6 +115758,7 @@ pinguinreal.sk, 1 pingvinofnet.ml, 1 pinhadigital.com, 1 +pinheirobittencourt.com.br, 1 pinigseu.xyz, 1 pinimg.com, 1 pink-check.school, 1 @@ -116288,6 +115868,7 @@ pinyonpass.org, 1 pioneer-car.eu, 1 pioneer-football.org, 1 +pioneer.eu, 0 pioneerbible.org, 1 pioneercredit.com.au, 1 pioneerscar.com, 1 @@ -116316,7 +115897,6 @@ pipl.ua, 1 piprivillage.ml, 1 pipscprd.ca, 1 -pipuwong.com, 0 piquaoh.gov, 1 piqueteway.tk, 1 piramalglassusa.com, 1 @@ -116396,7 +115976,6 @@ pitchforkunion.tk, 1 pitchlogic.com, 1 pitchup.com, 1 -pitchupp.com, 0 pitchvantage.com, 1 pitctestdomain.gov, 1 piteadetox.com, 1 @@ -116469,6 +116048,7 @@ pixelats.cat, 1 pixelcatproductions.net, 1 pixelchannel.ga, 1 +pixelcomunicacion.com, 1 pixelcrayons.com, 1 pixelfiends.tk, 1 pixelglance.com, 1 @@ -116477,6 +116057,7 @@ pixelheaven.tk, 1 pixelhero.co.uk, 0 pixelion.tk, 1 +pixelissues.com, 1 pixelkingdom.se, 1 pixelkraft.net, 1 pixellent.me, 1 @@ -116485,7 +116066,6 @@ pixelmattic.com, 1 pixelmedianetwork.com, 1 pixelmonworld.fr, 1 -pixelneed.com, 1 pixelonl.com, 1 pixelpaper.org, 1 pixelplex.io, 1 @@ -116658,7 +116238,6 @@ plaloo.gq, 1 plaloo.tk, 1 plamenapanayotova.co.uk, 1 -plan-immobilier.fr, 1 plan-in-architektur.de, 1 plan-it-events.de, 1 planable.io, 1 @@ -116860,7 +116439,6 @@ platinumpavingnj.com, 1 platinumplumbingca.com, 1 platinumpoolsaz.com, 1 -platinumsystems.biz, 1 platinumtalkers.ga, 1 platinumtalkest.ga, 1 platitudemusic.com, 1 @@ -116920,6 +116498,7 @@ playerslounge.co, 0 playerup.com, 1 playface.ml, 1 +playform.cloud, 1 playfrank.com, 1 playgame.tk, 1 playgamenow.tk, 1 @@ -116934,6 +116513,7 @@ playinfinity.com, 1 playinfinityvr.com, 1 playit.rs, 1 +playkids.com, 0 playlistresearch.com, 1 playmei.com, 0 playmyinbox.com, 1 @@ -117035,7 +116615,6 @@ plgr.tech, 1 plicca.com, 0 plichso.de, 1 -plicker.net, 1 plikersi.tk, 1 plikiai.tk, 1 plinss.com, 1 @@ -117055,6 +116634,7 @@ ploi.io, 1 plokko.com, 1 plomberie-rivesud.ca, 1 +plombier-autourdemoi.fr, 1 plomeros.cl, 1 plomin.tk, 1 plongee-phuket.fr, 1 @@ -117203,7 +116783,6 @@ pmfilter.net, 1 pmg-offshore-company.com, 1 pmg.ua, 1 -pmgenomics.ca, 1 pmglobal.ro, 1 pmgroup-global.com, 1 pmh.codes, 1 @@ -117276,7 +116855,6 @@ poc13.com, 1 poc15.com, 1 poc16.com, 1 -poc17.com, 1 poc18.com, 1 poc19.com, 1 poc21.com, 1 @@ -117287,7 +116865,7 @@ poc25.com, 1 poc26.com, 1 poc261.com, 1 -poc262.com, 1 +poc262.com, 0 poc27.com, 1 poc290.com, 1 poc298.com, 1 @@ -117446,6 +117024,7 @@ podologolaspezia.it, 1 podologyclinic.gr, 1 podolskaya.tk, 1 +podoscop.org, 1 podparkers.ga, 1 podparkest.ga, 1 podprotectionest.ga, 1 @@ -117528,7 +117107,6 @@ pointpleasantbeachnj.gov, 1 pointpur.ch, 1 points-pote.com, 1 -points4unitedway.com, 1 pointtosource.com, 1 pointum.com, 1 pointworksacademy.com, 1 @@ -117558,6 +117136,7 @@ pokeelektronik.com.tr, 1 pokefarm.com, 1 pokeforest.io, 1 +pokegourou.com, 1 pokeinthe.io, 1 pokelens.tk, 1 pokeli.de, 1 @@ -117688,6 +117267,8 @@ polioptics.com, 1 polis.or.at, 1 polis.to, 0 +polisanaraka.pl, 1 +polisanarciarska.pl, 1 polish-dictionary.com, 1 polish-flag.com, 1 polish-translations.com, 1 @@ -117708,6 +117289,7 @@ polismar.pt, 1 polismar.uy, 1 polisport.tk, 1 +polisynazycie.com.pl, 1 polit-it.pro, 1 polit.im, 1 politagree.com, 1 @@ -117739,7 +117321,6 @@ politraq.com, 1 politsei.ee, 0 politvesti.tk, 1 -polkadotsandpixiedust.com, 1 polkcountyne.gov, 1 polkcountywi.gov, 1 polkelections.gov, 1 @@ -117854,7 +117435,6 @@ ponio.xyz, 1 ponpokorin.tk, 1 ponpon.tk, 1 -ponsoftware.net, 1 ponte-camp.de, 1 ponteggi.it, 1 ponteggi.roma.it, 1 @@ -117880,7 +117460,7 @@ poochpark.tk, 1 poodlefan.net, 1 pooi.me, 1 -poojanews.com, 1 +poojanews.com, 0 pookhaarden.nl, 1 pookl.com, 1 pool-selber-bauen.de, 1 @@ -117894,6 +117474,7 @@ pooltools.net, 1 poolvilla-margarita.net, 1 poon.io, 1 +poonawallafincorp.com, 1 poopa.loan, 1 poopjournal.rocks, 1 poopr.ru, 1 @@ -118059,7 +117640,6 @@ pornmax.net, 1 pornmega.net, 1 pornmei.com, 1 -porno-chat.it, 1 porno-geschichten.com, 1 porno-stars-video.ru, 1 pornobilder.pics, 1 @@ -118133,7 +117713,6 @@ portalchega.pt, 1 portaldabiblia.com.br, 1 portaldamizade.com, 1 -portaldatorcida.com.br, 1 portaldocredito.pt, 1 portaldogremista.com.br, 1 portalelavoro.org, 1 @@ -118199,7 +117778,6 @@ portosonline.pl, 1 portovelhoshopping.com.br, 1 portoveneregrand.com, 1 -portplotter.com, 1 portraitcameos.com, 1 portsaidyman.tk, 1 portsdebalears.gob.es, 1 @@ -118251,7 +117829,7 @@ positive-thinking-for-you.com, 1 positive.com.cy, 1 positive.photography, 1 -positivecoach.org, 0 +positiveleaps.org, 0 positivenames.net, 1 positiveone.tk, 1 positiveoutlook.cn, 1 @@ -118264,6 +117842,7 @@ positronicmoron.tk, 1 poskacrew.org, 1 poslednigenerace.cz, 1 +posluhy-asenizatora.com.ua, 1 posoco.in, 1 pospisilik.eu, 1 pospisilikovi.cz, 1 @@ -118293,7 +117872,6 @@ postbox.life, 1 postcardpayment.com, 1 postcards.tk, 1 -postcode.nl, 1 postcodeswag.co.uk, 1 postcodeswag.com, 1 postcodeswag.uk, 1 @@ -118480,7 +118058,6 @@ powerconcept.be, 1 powerconcretecutting.com.au, 1 powercounty.gov, 1 -powercv.ro, 1 poweredbybp.nl, 1 poweredbyiris.nl, 1 powerenglish.cl, 1 @@ -118577,6 +118154,7 @@ pozitiv.gq, 1 pozitone.com, 1 poziworld.com, 1 +poznajrynek.pl, 1 poznavatelno.ml, 1 pozo.in, 1 pozzitiv.ro, 1 @@ -118722,6 +118300,7 @@ praktijktoetsen.nl, 1 praktiker.hu, 1 praktikum.tk, 1 +praladofuturo.blog, 1 pralaw.com, 1 praleria.com, 1 pramadillo.com, 1 @@ -118733,9 +118312,9 @@ pranafilms.tk, 1 pranavida.cl, 0 prancor.ru, 1 -pranita-schals.de, 1 -pranita.cz, 1 -pranita.sk, 1 +pranita-schals.de, 0 +pranita.cz, 0 +pranita.sk, 0 prankawards.ga, 1 pranksearch.ml, 1 prankstercompany.com, 1 @@ -118816,9 +118395,7 @@ precept.uk.com, 1 preci0.com, 1 preciadictos.tk, 1 -preciofishbone.com, 1 preciofishbone.de, 1 -preciofishbone.se, 1 preciosmejores.com, 1 preciousdad.com, 1 preciouspebble.co.uk, 1 @@ -118954,10 +118531,12 @@ premiumpeaches.com, 1 premiumpictureframing.com, 1 premiumplus.io, 1 +premiumresidency.in, 1 premiumshop24.de, 1 premiumsmile.ru, 1 premiumturkey.ml, 1 premiumusedautoparts.com, 0 +premiumweb.co.id, 1 premiumwebdesign.it, 1 premkumar.net, 1 premlall.com, 1 @@ -118966,6 +118545,7 @@ prenatal.com, 1 prendashop.es, 1 prensaalterna.com, 1 +prensacomunitaria.org, 1 prensahispana.ga, 1 prensarural.org, 1 prepa-benjam.fr, 1 @@ -119089,7 +118669,6 @@ prestigeworldwidepr.com, 1 prestigia.com, 1 prestonadamscountywi.gov, 1 -prestonapp.com, 1 prestonmn.gov, 1 prestopermits.com, 1 prestopizzas63.fr, 1 @@ -119106,7 +118685,6 @@ pretrialservices.gov, 1 prettier.fun, 1 pretty-liars.tk, 1 -pretty-smile.com.tw, 1 prettycities.ga, 1 prettycloud.net, 1 prettycobs.com, 1 @@ -119141,6 +118719,7 @@ previstart.fr, 1 prevodkazet.cz, 1 prevu3d.com, 1 +prewin.nl, 1 prexxorvita.com, 1 prezentmarzen.com, 1 prezista.com, 1 @@ -119226,6 +118805,7 @@ primananda.com, 1 primanota.ch, 0 primapak.bg, 1 +primariachisineucris.ro, 1 primarium.info, 1 primary.health, 1 primarycareconnect.com.au, 1 @@ -119278,7 +118858,6 @@ primordialsnooze.com, 1 primorus.lt, 1 primos-tech.com, 1 -primowatercorp.com, 1 primrose-2.com, 1 primrosehillvets.ie, 1 primrosenyagwaya.online, 1 @@ -119378,7 +118957,6 @@ priorlakemn.gov, 1 priorshalldental.com, 1 priscillacouto.com.br, 1 -prism-transfer.com, 1 prisma.io, 0 prisma.tk, 1 prismacloud.com, 1 @@ -119422,7 +119000,6 @@ privacyforpatriots.com, 1 privacyget.tk, 1 privacyguidance.com, 1 -privacyguides.org, 1 privacyinternational.org, 1 privacymanatee.com, 1 privacynow.eu, 1 @@ -119434,6 +119011,7 @@ privacysecuritybrainiacs.com, 1 privacystatement.tk, 1 privacysvcs.net, 1 +privacytrust.sg, 1 privacywe.com, 0 privacyweek.at, 1 privacyweek.de, 1 @@ -119662,7 +119240,6 @@ prodinger.com, 0 prodmazul.com, 1 prodottitipicidellatoscana.it, 1 -prodottogiusto.com, 1 producentbalustrad.pl, 1 producentparapetow.pl, 1 producersnational.com, 1 @@ -119767,6 +119344,7 @@ profitwhales.com, 1 profitwithpurposepodcast.com, 1 profloorstl.com, 1 +profmatheus.com, 1 profmetod.com, 1 profondeville-sharks.be, 1 profor.cz, 1 @@ -119781,6 +119359,7 @@ proft.eu, 0 profumeria.roma.it, 1 profuntime.tk, 1 +profusion.cl, 1 profusion.io, 0 profvideo.kharkov.ua, 1 profwald.4lima.de, 1 @@ -119815,7 +119394,7 @@ program-and.work, 1 program.download, 1 programaarista.com, 1 -programador-web-freelance.es, 0 +programador-web-freelance.es, 1 programagetit.com.br, 1 programagrowup.com.br, 1 programando.tk, 1 @@ -119851,6 +119430,7 @@ progressivedie.net, 1 progressiveplanning.com, 1 progressivestreetdance.tk, 1 +progressivetree.com, 1 progressm.tk, 1 progressnet.nl, 1 progressonderwijs.nl, 1 @@ -119861,13 +119441,13 @@ progtime.net, 1 progweb.it, 1 prohashing.com, 1 +proheadshots.uk, 1 prohelpers.tk, 1 prohibition.tk, 1 prohost24.tk, 1 prohrcloud.com, 1 proi.net, 1 proid.studio, 1 -proinn.com.br, 1 proj.org.cn, 1 proj3ct.me, 1 proj6.site, 1 @@ -119882,6 +119462,7 @@ project-tamriel.com, 1 project-trans.org, 1 project.ac.cn, 1 +project.supply, 1 project25.org, 1 project86fashion.com, 1 projectalias.com, 1 @@ -119928,7 +119509,6 @@ projectstem.org, 1 projecttalent.be, 1 projectte.ch, 1 -projecttopics.org, 0 projectunity.io, 1 projectvault.ovh, 1 projectveritasaction.com, 0 @@ -120015,7 +119595,7 @@ promods.net, 1 promods.store, 1 promofirstmedia.co.id, 1 -promohulp.nl, 1 +promohulp.nl, 0 promohunt.ru, 0 promokodi.tk, 1 promolife.be, 1 @@ -120040,13 +119620,13 @@ promove.be, 1 promovendum.nl, 1 promozioni.it, 1 -prompt-service.ro, 1 promptwars.io, 1 promuovi.tv, 1 promushroom.com, 1 promwad.com, 0 pron4ik.gq, 1 pronandi.tk, 1 +pronatec.pro.br, 1 pronikoho.cz, 1 pronoundb.org, 1 pronto-intervento-fognature.it, 1 @@ -120087,7 +119667,7 @@ property-tax.gq, 1 property.ie, 1 propertyauctionaction.co.uk, 1 -propertycareincorporated.com, 1 +propertycareincorporated.com, 0 propertycrawl.com, 1 propertydealer.ga, 1 propertyfindercdn.com, 1 @@ -120135,7 +119715,6 @@ proserialkey.com, 1 proseriesevents.com, 1 proservice.ma, 1 -proservice.website, 1 proservices.vip, 1 prosharp.com.au, 1 proshop.pl, 1 @@ -120178,11 +119757,8 @@ prostoivkusno.ml, 1 prostoporno.fun, 1 prostoporno.guru, 1 -prostoporno.life, 1 -prostoporno.love, 1 prostoporno.net, 1 prostoporno.sexy, 1 -prostoporno.vip, 1 prostoporno.zone, 1 prostor.cf, 1 prostore.vn, 1 @@ -120241,7 +119817,6 @@ protiksana.gr, 1 protipster.com, 1 protium.co.in, 1 -protix.eu, 1 proto.io, 1 protobetatest.com, 1 protocol.co.il, 1 @@ -120263,7 +119838,6 @@ prototype.bg, 1 prototypefund.de, 1 prototyping-computer.ml, 1 -protoxin.net, 0 protrainerbrasil.com.br, 1 protranslate24.ru, 1 protrolley.cf, 1 @@ -120301,6 +119875,7 @@ providenthousing.com, 1 providential.be, 1 providerlijst.ml, 1 +providmedical.com.ua, 1 provigis.com, 0 provincialrubber.co.uk, 1 provinciaotlavoro.it, 1 @@ -120324,6 +119899,7 @@ prowrestlingevents.tk, 1 prowrestlingsheet.com, 1 prox.ru, 1 +proxaccess.com, 1 proxar.co.uk, 1 proxidize.com, 1 proxify.io, 1 @@ -120340,6 +119916,7 @@ proxytool.cf, 1 proyectodia.com.mx, 1 proyectomca.es, 1 +proyectorium.com, 1 proyectosaludecuador.org, 1 proyectosinelec.com, 1 proyectostep.tk, 1 @@ -120461,6 +120038,7 @@ psicologajanainapresotto.com.br, 1 psicologamarianaortiz.com, 1 psicologia.gay, 1 +psicologiaparatodos.com.mx, 1 psicologias.rio.br, 1 psicologo-especialista-barcelona.com, 1 psicologo.vip, 1 @@ -120483,7 +120061,6 @@ psinergyhealth.com, 1 psinergytech.com, 1 psinetika.tk, 1 -psionline.com, 0 psiplex.cf, 1 psiplex.ga, 1 psiplex.gq, 1 @@ -120507,7 +120084,7 @@ psncardplus.nl, 1 psncardplus.se, 1 psncuc.gov, 1 -pso2.icu, 1 +pso2.icu, 0 psochecker.com, 1 pson.ninja, 1 psono.pw, 1 @@ -120619,6 +120196,7 @@ psyelena.be, 1 psygame.cf, 1 psyh.tk, 1 +psyhelp.ro, 1 psyk-patienten.tk, 1 psykbase.no, 1 psykologtidningen.cf, 1 @@ -120733,7 +120311,6 @@ publichealth.cf, 1 publichealth.gq, 1 publichealthdegrees.org, 1 -publicidadebh.com.br, 1 publicintegrity.org, 1 publicintelligence.net, 1 publicishealth.es, 1 @@ -120762,7 +120339,6 @@ publish.ga, 1 publishedpaper.ga, 1 publisherservices.co, 1 -publishmystory.co, 1 publishpressnews.tk, 1 publivate.ca, 1 publiweb.tk, 1 @@ -120771,7 +120347,6 @@ pubmed2xl.com, 1 pubsavoy.tk, 1 puccakir.tk, 1 -puchshop.de, 1 puckcreations.com, 1 pucogid.ga, 1 puddin.ml, 1 @@ -120864,6 +120439,7 @@ punchdrunk.com, 1 punchlinetheatre.co.uk, 1 punchlinetheatre.com, 1 +punchlist.com, 1 punchlistprosdfw.com, 1 punctually.gq, 1 pundak.games, 1 @@ -120903,6 +120479,7 @@ puntonium.hu, 1 puntopropiedad.com, 1 puntoremov.ga, 1 +puntualseo.com, 1 pup.systems, 1 pupaganda.com, 1 pupboss.com, 1 @@ -120965,7 +120542,6 @@ purelife.photography, 1 pureliferx.com, 1 purelovecoaching.fi, 1 -purely.domains, 1 purelymail.com, 1 purelypestcontrol.com, 1 puremosquito.com, 1 @@ -121055,7 +120631,6 @@ pushphp.com, 1 pushponline.com, 1 pushthebutton.tk, 1 -pushti.in, 1 pushy.tg, 1 pusichatka.ddns.net, 1 pusra.ga, 1 @@ -121230,7 +120805,6 @@ pyramydair.com, 1 pyrios.pro, 1 pyro.works, 1 -pyroballpcbs.com, 1 pyrofestival-vermoise.fr, 1 pyromaniac.tk, 1 pyrotechnologie.de, 1 @@ -121291,6 +120865,7 @@ q9297.co, 1 q9728.co, 1 qa-brandywineglobal.com, 1 +qa.com, 1 qa.fedoraproject.org, 1 qa.stg.fedoraproject.org, 1 qaabildigital.com, 1 @@ -121330,7 +120905,6 @@ qbcorescripts.com, 1 qbiltrade.com, 1 qbits.li, 1 -qbotica.com, 1 qbrix.dk, 1 qbstores.com, 1 qbug.cf, 1 @@ -121348,6 +120922,7 @@ qcinteriors.in, 1 qclean.com.au, 1 qcmlw.com, 1 +qcnet.com, 1 qconline.com, 1 qconnan-photos.fr, 1 qconomics.com, 1 @@ -121387,6 +120962,7 @@ qhack.ai, 1 qhost.cf, 1 qhse-professionals.nl, 1 +qi.iq, 1 qiai.cf, 1 qiai.ga, 1 qiai.gq, 1 @@ -121526,8 +121102,10 @@ qrcodedynamic.com, 1 qrcodes.tools, 1 qrcontagion.com, 0 +qrd.by, 1 qredo.com, 0 qrida.qld.gov.au, 1 +qristianuli.com, 1 qrlab.biz, 1 qrlab.ch, 1 qrlab.de, 1 @@ -121538,6 +121116,7 @@ qrma.com.au, 1 qrmagic.com, 1 qrpatrol.com, 1 +qrplanet.com, 1 qrprincipal.com, 1 qrpth.eu, 1 qrsa.com.au, 1 @@ -121576,6 +121155,7 @@ qtpower.org, 1 qtspace.cn, 1 qttransformation.com, 1 +qtv.ge, 1 qtvr.com, 1 qu1x.org, 1 quackapp.com, 1 @@ -121630,6 +121210,7 @@ qualityplusconsulting.com, 0 qualitypolyjacking.com, 1 qualitypropertycare.co.uk, 1 +qualityroofingservices.ca, 1 qualitysistemas.com.br, 1 qualitytitlepaducah.com, 1 qualitywaterproofingco.com, 1 @@ -121638,7 +121219,6 @@ qualli.com, 1 qualtrics.com, 1 qualyven.com, 1 -quandoandare.it, 1 quanquan.cyou, 1 quanquan.space, 1 quantability.net, 1 @@ -121843,6 +121423,7 @@ queverenespana.org, 1 quevisiongrafica.com, 1 quezoncity.ml, 1 +quforce.org, 1 quhyu.xyz, 1 quible.tk, 1 quic-hosting.de, 1 @@ -121916,6 +121497,7 @@ quillandquire.com, 1 quillwave.com, 1 quilmo.com, 1 +quilteronfire.com, 1 quiltmc.org, 1 quimba.tk, 1 quimica.science, 1 @@ -122111,9 +121693,9 @@ r36533.com, 1 r3bl.blog, 1 r3dh4ck.ml, 1 +r3gi.cz, 1 r3s1stanc3.me, 1 r40.us, 1 -r4fo.com, 1 r4g3baby.com, 1 r5197.co, 1 r6729.co, 1 @@ -122408,6 +121990,7 @@ radioliberty.ga, 1 radiolla.com, 1 radiolodz.pl, 1 +radiologyreportsonline.com, 1 radiom.fr, 1 radiomacuto.gq, 1 radiomagicafm.tk, 1 @@ -122441,6 +122024,7 @@ radioperfect.tk, 1 radiopharereims.tk, 1 radiopicaflor.tk, 1 +radioplanetario.com, 1 radioplayer.ie, 1 radiopleer.net, 1 radiopolarniki.spb.ru, 1 @@ -122510,7 +122094,6 @@ radnas.com, 1 radnickapartija.tk, 1 radnicki-nis.tk, 1 -radogear.com, 1 radoman.ga, 1 radon.tk, 1 radopsec.com, 1 @@ -122534,7 +122117,6 @@ raeder-test.azurewebsites.net, 1 raeu.me, 1 raeven.nl, 1 -raevinnd.com, 1 raewardfresh.co.nz, 1 raf.org, 1 rafaelangelfg.tk, 1 @@ -122558,7 +122140,6 @@ ragadoor.com, 1 ragasto.nl, 1 ragazzi-music.de, 1 -ragdollrecon.com, 1 rage-overload.ch, 1 rage4.com, 1 ragebin.com, 1 @@ -122663,7 +122244,6 @@ rainbow-christian.tk, 1 rainbow-girl.top, 1 rainbow-web.com, 1 -rainbowapromise.com, 1 rainbowbrains.com, 1 rainbowcomputer.tk, 1 rainbowflowers.co.uk, 0 @@ -122709,6 +122289,7 @@ raistrick.art, 1 raistrick.it, 1 raitza.de, 1 +raj.nic.in, 1 raja.fr, 1 rajabherfehdoost.com, 1 rajabpour.com, 1 @@ -122720,7 +122301,6 @@ rajapack.es, 1 rajapack.it, 1 rajapack.nl, 1 -rajasatour.id, 1 rajeen.tk, 1 rajendragon.com, 1 rajeshkochhar.com, 1 @@ -122738,6 +122318,7 @@ rakeprofit.com, 1 rakeshkaryana.com, 1 raketa.travel, 1 +raketaholst.com.ua, 1 raketaro.de, 1 raketech.com, 1 raketenwolke.de, 1 @@ -122796,7 +122377,6 @@ ramel.tk, 1 ramen-dealer.de, 1 ramenramenramen.net, 1 -ramfaseo.ca, 1 ramfy.ru, 1 ramiabusalah.tk, 1 ramieres.cf, 1 @@ -122825,7 +122405,7 @@ ramsdensforcash.co.uk, 1 ramsdensplc.com, 1 ramseycountymn.gov, 1 -ramseycs.net, 0 +ramseycs.net, 1 ramsgatenoiseinstitute.org, 1 ramsor-gaming.de, 1 ramt.tk, 1 @@ -122865,7 +122445,6 @@ randomads.net, 1 randomadversary.com, 1 randomarticle.ml, 1 -randombig.cat, 1 randombit.eu, 0 randombooks.gq, 1 randombrainwave.cf, 1 @@ -122923,6 +122502,9 @@ ranking-mensesthe.jp, 1 ranking10hits.tk, 1 rankingide.tk, 1 +rankingofe.com.pl, 1 +rankingubezpieczeniowy.pl, 1 +rankingubezpieczennazycie.pl, 1 ranksite.cf, 1 ranksite.ga, 1 ranksite.gq, 1 @@ -122975,6 +122557,7 @@ rapidooo.fr, 1 rapidrepair.in, 1 rapidscale.net, 1 +rapidseo.net, 1 rapidshit.net, 1 rapidspike.com, 1 rapidssl.com.ru, 1 @@ -122989,7 +122572,6 @@ rapport.link, 1 raps.org, 1 rapwoyska.tk, 1 -rapyd.net, 1 raqebpress.com, 1 raqoo.jp, 1 raquelmolinacases.tk, 1 @@ -123038,7 +122620,6 @@ rasmera.ddns.net, 1 rasmushaslund.com, 1 rasnyder.com, 1 -rasp-consulting.de, 1 raspclock.com, 1 raspitec.ddns.net, 1 rassadacvetov.com, 0 @@ -123114,6 +122695,7 @@ ravalement-facades.net, 1 ravallirepublic.com, 1 ravchat.com, 1 +rave-archive.com, 1 raveboy.dyndns.org, 1 ravefm.tk, 1 raveharmony.com, 1 @@ -123134,6 +122716,7 @@ ravenstonejeweler.com, 1 raventechnology.es, 1 ravenx.me, 1 +ravescout.club, 1 raveseguros.com, 1 ravesteijn.nl, 1 ravhaaglanden.org, 1 @@ -123219,6 +122802,7 @@ razakhanimazhab.tk, 1 razalabs.com, 1 razalabs.gr, 1 +razawitv.com, 1 razberry.kr, 1 razborpoletov.cf, 1 razborpoletov.ml, 1 @@ -123231,7 +122815,7 @@ razeencheng.com, 1 razgon.ga, 1 razgon.tk, 1 -raziculacrimi.ro, 1 +raziculacrimi.ro, 0 razoesparaacreditar.com, 1 razrabo.tk, 1 razrsec.uk, 1 @@ -123274,10 +122858,10 @@ rbunews.tk, 1 rburchell.com, 0 rburz.com, 1 -rbw-tech.com, 1 rbx.com, 1 rbx.gg, 1 rc-offi.net, 1 +rc-refer.nhs.uk, 1 rc-shop.ch, 1 rc.cruises, 1 rc1.eu, 1 @@ -123342,7 +122926,7 @@ rcz.com.br, 1 rd0xb.com, 1 rdactive.de, 1 -rdb.vote, 1 +rdb.vote, 0 rdcdesign.com, 1 rddjapan.info, 1 rded.nl, 1 @@ -123441,6 +123025,7 @@ reades.co.uk, 1 readify.net, 1 readifycloud.com, 1 +readingea.com, 1 readingeggs.com, 1 readingoutpost.com, 1 readingrats.de, 1 @@ -123448,7 +123033,7 @@ readmynews.cf, 1 readouble.com, 0 readpages.gq, 1 -readtome.co.in, 1 +readsportsonly.com, 0 readup.tk, 1 ready2learn.eu, 1 ready4bf.tk, 1 @@ -123503,6 +123088,7 @@ realclinic.jp, 1 realcytherea.com, 1 realdomdom.cf, 1 +realestagency.com, 1 realestate-in-uruguay.com, 0 realestate-lidl.lu, 1 realestateagent-directory.com, 1 @@ -123516,7 +123102,6 @@ realestatelegalupdate.com, 1 realestatemaryland.tk, 1 realestateofnewmexico.com, 1 -realestateofstarvalley.com, 1 realestateonehowell.com, 1 realestates.istanbul, 1 realestatesales.gov, 1 @@ -123535,7 +123120,6 @@ realidad.tk, 1 realincest.tv, 1 realinsurance.com.au, 1 -reality.news, 1 reality0ne.com, 0 realitycrazy.com, 1 realitydudes.com, 1 @@ -123558,7 +123142,7 @@ reallinux.tk, 1 reallove.com, 1 reallovetab.ga, 1 -really-simple-plugins.com, 1 +really-simple-ssl.com, 1 reallyangryaboutchipshops.com, 1 reallybadidea.tk, 1 reallycooljobs.ga, 1 @@ -123569,7 +123153,6 @@ realmaturetube.com, 1 realmixwell.tk, 1 realmjoin.com, 1 -realmofespionage.xyz, 1 realmoney.games, 1 realneo.me, 1 realnet.tk, 1 @@ -123587,6 +123170,7 @@ realtimeregister.com, 1 realty-pochta.tk, 1 realtybymonica.com, 1 +realtyfeature.com, 0 realtygroup-virginia.com, 0 realtyofnaples.com, 1 realum.com, 1 @@ -123659,13 +123243,11 @@ rebuga.com, 1 rebuild96.ru, 1 rebull.fr, 1 -rebura.com, 1 rebure.com, 1 rebus.support, 1 rebusfarm.net, 1 reby.cf, 1 reby.tk, 1 -rec.gov, 1 rec.moe, 1 rec5.nl, 1 recalendar.me, 1 @@ -123719,11 +123301,11 @@ recipeyak.com, 1 recipito.tk, 1 reciple.kz, 1 -recitoners.net, 1 reckers-griesbach.com, 1 recklessly.ga, 1 reckner.com, 1 reckoning.gq, 1 +reckoning.press, 1 reckontalk.com, 1 reckord-bau.de, 1 reckord.org, 1 @@ -123753,10 +123335,7 @@ recommends.ml, 1 recompiled.org, 0 recon-networks.com, 1 -recon.net.br, 1 -reconciliatecondios.es, 1 reconocimientoincan.org.mx, 1 -reconyx.com, 1 recordagrave.org, 1 recordati.com.tr, 1 recordless.io, 1 @@ -123777,9 +123356,9 @@ recraftmobility.com, 1 recraftventures.com, 1 recreatiewoningverzekeringen.nl, 1 -recreation.gov, 1 recreus.com, 1 recroommasters.com, 1 +recruit.net, 1 recruitcrm.io, 0 recruiterbox.com, 1 recruiting.ai, 1 @@ -123831,7 +123410,6 @@ red-t-shirt.ru, 1 red-team.com, 1 red-train.de, 1 -red-trigger.net, 1 red-wine.tk, 1 red031000.com, 1 red1it.net, 1 @@ -123885,6 +123463,7 @@ rededca.com, 1 rededecuidadores.pt, 1 redeemerlutheranschoolkokomo.org, 1 +redeemmovie.com, 1 redefertig.de, 1 redefiningstrength.com, 1 redelectrical.co.uk, 0 @@ -123903,7 +123482,6 @@ redfox-media.eu, 1 redfox-media.net, 1 redfox-media.org, 1 -redfoxlotto.com, 1 redfoxmarketiing.com, 1 redfoxwebdesign.com.au, 1 redfrogbeach.com, 1 @@ -123917,7 +123495,6 @@ redhackerteam.tk, 1 redhandedsecurity.com.au, 1 redhead.id.au, 1 -redheadfuck.com, 1 redheeler.com.br, 1 redhill.world, 1 redhillboardriders.tk, 1 @@ -124031,6 +123608,7 @@ reducedlens.org, 1 reducer.co.uk, 1 reducto.tk, 1 +reduktorntc-k.com.ua, 1 redunion.tk, 1 redux.show, 1 redvau.lt, 1 @@ -124047,7 +123625,6 @@ redwillowcountyne.gov, 1 redwood.pw, 1 redwoodcounty-mn.gov, 1 -redwoodroofs.com, 1 redwoodsgroup.com, 1 redwoodtoxicology.com, 1 redzonedaily.com, 1 @@ -124075,7 +123652,6 @@ reentry.gov, 1 reentrycenterofocala.com, 1 rees-carter.net, 1 -reesi.site, 1 reesmichael1.com, 1 reeson.at, 1 reeson.de, 1 @@ -124186,7 +123762,6 @@ refreshliving.us, 1 refrigeracion2hermanos.com.mx, 1 refrigeratorrepair-austin.com, 1 -refu.net, 0 refuelcollective.com, 0 refuelcreative.com.au, 0 refuelmcconnell.marketing, 1 @@ -124217,6 +123792,7 @@ reganparty.com, 1 regardezleprogramme.fr, 1 regasportshop.it, 1 +regata-club.com.ua, 1 regata2015.tk, 1 regatesenbretagne.bzh, 1 regazofotografia.com, 1 @@ -124293,6 +123869,7 @@ registrarowl.com, 1 registrarplus.net, 1 registrarplus.nl, 1 +registre.quebec, 1 registrierung.tk, 1 registry.google, 1 registry.quebec, 1 @@ -124317,6 +123894,7 @@ regulative.gq, 1 regulatory-reporting.com, 1 rehab.cf, 1 +rehab.cn.ua, 1 rehabilitologist.ru, 1 rehabthailand.com, 1 rehabthailand.org, 1 @@ -124325,6 +123903,7 @@ rehasport-informationen.de, 1 rehasport-marketing.de, 1 rehasportwelt.de, 1 +rehau-ua.com, 1 reher.pro, 1 rehive.com, 1 rehobothbeachde.gov, 1 @@ -124514,12 +124093,14 @@ relikwiarz.com, 1 relines.ru, 1 relionbattery.com, 1 +relishify.com, 1 relisten.nl, 1 reloading.ml, 1 relocatefeds.gov, 1 relojeriajoyeria.com, 1 relojes-especiales.com, 1 relojes-online.com, 1 +relooney.com, 1 relsak.cz, 0 reltio.com, 1 relution.io, 1 @@ -124585,6 +124166,7 @@ remodded.tk, 1 remodelate.mx, 1 remodelhealth.com, 1 +remodulin.com, 1 remonline.ru, 1 remont-45.tk, 1 remont-kazan.tk, 1 @@ -124636,7 +124218,6 @@ remyphotography.fr, 1 remyroguevolution.tk, 1 renaatsioncke.com, 1 -renaissance.shop, 1 renaissanceproperty.ie, 1 renalco.ch, 1 renard-pierne-avocats.fr, 1 @@ -124694,6 +124275,7 @@ renewittke.com, 1 renewmedispa.com, 0 renewpfc.com, 1 +renhub.no, 1 renicimery.com.br, 1 renjyaku-dental.com, 1 renkenlaw.com, 1 @@ -124814,6 +124396,7 @@ repalriley38.com, 1 repaper.org, 1 reparacionesdecalefones.com, 1 +reparacionmovilescartagena.com, 1 reparacionmovilesmurcia.com, 1 reparacoesnolar.pt, 1 repararimac.eu, 1 @@ -124873,8 +124456,8 @@ reposeed.org, 1 represent.us, 1 represii.net, 1 -repricer.com, 1 -repricerexpress.com, 1 +repricer.com, 0 +repricerexpress.com, 0 reproaccess.gov, 1 reproductive-revolution.com, 1 reproductiveaccess.gov, 1 @@ -124935,6 +124518,7 @@ resanebartar.tk, 1 resbi.tk, 1 resc.la, 1 +rescatec.com, 1 resch-verlag.com, 1 rescms-secure.com, 1 rescuenode.com, 1 @@ -124943,10 +124527,12 @@ rescueyourrestaurant.com, 1 research-panel.jp, 1 research.facebook.com, 0 +researchallofus.org, 1 researchmarathi.com, 1 researchresults.com, 1 researchstory.com, 1 researchtriangle.org, 1 +researchwriting.co.uk, 1 reseau-ait.ca, 1 reseau-image.com, 1 reseau-intranet.fr, 1 @@ -124998,7 +124584,6 @@ resinbondedaggregates.com, 1 resine.roma.it, 1 resinflooringcompany.com, 1 -resisfestival.com, 1 resist.bot, 1 resistancebooks.com, 1 resistav.com, 1 @@ -125052,6 +124637,7 @@ respons.mobi, 1 respons.us, 1 respons.ws, 1 +responsafortoday.com, 1 responscode.eu, 1 responscode.info, 1 responscode.mobi, 1 @@ -125153,7 +124739,6 @@ retailcybersolutions.com, 1 retaildisplaystands.com.au, 1 retailer-plattform.de, 1 -retailerapp.info, 1 retailing.cf, 1 retailmarket.net, 1 retailnext.net, 1 @@ -125163,7 +124748,6 @@ retard.ca, 1 retardedstudios.tk, 1 retarus.com, 1 -retefrati.it, 0 reteimprese.it, 1 reteteaz.net, 1 retetop95.it, 0 @@ -125183,6 +124767,7 @@ retinenda.com, 1 retinens.com, 1 retirementincomeplanninggroup.com, 1 +retireoften.com, 1 retirepathva.com, 1 retireyourpassword.org, 1 retiring-dentist.co.uk, 1 @@ -125235,7 +124820,6 @@ retroworldshop.com, 1 retseptykaboli.cf, 1 rettar.net, 1 -rette-ein-kinderleben.de, 1 rettig.xyz, 1 retube.ga, 1 return-profit.tk, 1 @@ -125280,11 +124864,10 @@ reverce.com, 1 reveriecaps.com.br, 1 revers.tk, 1 -reverse1999.wiki, 1 +reverse1999.wiki, 0 reverseaging.site, 1 reverseaustralia.com, 1 reversecanada.com, 1 -reversecrucifixkm.altervista.org, 1 reversedns.tk, 1 reverseloansolutions.com, 1 reversemortgageguides.com, 1 @@ -125305,6 +124888,7 @@ reviewskia.com, 1 reviewsonline.ml, 1 reviewspot.net, 1 +reviewtrendingproducts.com, 1 revijahak.hr, 1 revintake.com, 1 revionics.com, 1 @@ -125339,6 +124923,8 @@ revive-me.org, 1 reviveourhearts.com, 1 reviveplumbingmelbourne.com.au, 1 +revivewellholistichealth.com, 1 +revivicor.com, 1 reviviendolavilla.tk, 1 revizor-online.cf, 1 revizor-online.ga, 1 @@ -125535,6 +125121,7 @@ rhodos.fr, 1 rhona.cl, 1 rhona.pe, 1 +rhonni.com, 1 rhost.nl, 1 rhowell.io, 1 rhrplumbing.com, 0 @@ -125571,7 +125158,6 @@ rian.gq, 1 riared.net, 1 riared.org, 1 -riaszto-szereles.eu, 1 riaudetil.com, 1 riauwebhost.com, 1 rib-dinslaken.com, 1 @@ -125582,9 +125168,9 @@ rib-software.com, 1 riba-lov.ga, 1 ribafs.tk, 1 +ribapo.com, 1 ribar.com, 1 ribblu.com, 1 -ribdigital.com, 0 ribella.net, 1 ribfixation.com, 1 ribit4u.co.il, 1 @@ -125612,7 +125198,6 @@ riceforafrica.net, 1 ricelasvegas.com, 1 ricettedellanonna.net, 1 -ricettesemplicieveloci.altervista.org, 1 rich-good.com, 0 richadams.me, 1 richandsteph.co.uk, 1 @@ -125714,6 +125299,7 @@ ricobaldegger.ch, 1 ricochet.com, 1 ricochet.im, 1 +ricoshotvideos.com, 1 ricotrebol.com, 1 ricozienke.de, 1 ricp.it, 1 @@ -125730,6 +125316,7 @@ rideintaxi.com, 1 rideneuron.com, 1 rident-estetic.ro, 1 +rideology.io, 1 riderchris.com, 1 riders.ga, 1 rides-japan.jp, 1 @@ -125758,6 +125345,7 @@ riedl-shk.de, 1 riemzac.com, 1 riepe-online.de, 1 +riepe.cc, 1 riesenweber.id.au, 1 riesheating.com, 1 rieslingtrailclarecottages.ga, 1 @@ -125867,6 +125455,7 @@ rineke.art, 1 ring.com, 1 ring2.de, 1 +ringarang.com, 0 ringelfee.de, 1 ringgitplus.com, 1 ringgoldtownship.gov, 1 @@ -125907,6 +125496,7 @@ ripcorddesign.com, 1 ripcordsandbox.com, 1 ripcurl.tk, 1 +ripe.cash, 1 ripenapps.com, 1 ripetizioni.roma.it, 1 ripin.org, 1 @@ -125974,6 +125564,7 @@ riskmitigation.ch, 1 risksciences.com, 1 riskstudio.com, 1 +riskxchange.co, 1 risky.services, 1 riskymeals.com, 1 risman.tk, 1 @@ -126002,6 +125593,7 @@ ritacaldeira.com.br, 1 ritaescortsdelhi.com, 1 ritaohio.gov, 1 +ritaora.com, 1 ritas.tk, 1 ritchieneville.tk, 1 riteboost.com, 1 @@ -126040,6 +125632,7 @@ riveal.fr, 1 rivenmains.com, 1 river-rest.com, 1 +river.com, 1 river.gq, 1 riverbednetflowsupport.com, 1 riverbreak.com, 1 @@ -126095,6 +125688,7 @@ riyono.com, 1 rizaderindag.com, 1 rizehaberleri.tk, 1 +rizhik.com.ua, 1 rizikaockovani.cz, 1 rizonrice.club, 1 rizospastis.gr, 1 @@ -126122,7 +125716,6 @@ rknews.tk, 1 rkowalewski.de, 1 rkphotolense.de, 1 -rkrent.fr, 1 rkstudio.com, 1 rl3.de, 1 rlahaise.nl, 0 @@ -126130,6 +125723,7 @@ rlan.eu.org, 1 rland.ph, 1 rlcosmeticsurgery.com, 1 +rleeden.servehttp.com, 1 rleh.de, 1 rlmud.tk, 1 rlove.org, 1 @@ -126189,10 +125783,10 @@ rngmeme.com, 1 rnjobsite.com, 1 rnmkrs.co, 1 -rnp.br, 1 rnrrescue.com, 1 rntgroup.com, 1 rnz3.net, 1 +ro-77.fr, 1 ro.co, 1 ro.exchange, 1 ro.search.yahoo.com, 0 @@ -126325,6 +125919,7 @@ robinvdmarkt.nl, 1 robinwill.de, 1 robinwinslow.uk, 1 +robinzone.ua, 1 robinzorg.nl, 1 robjager-fotografie.nl, 0 robkaper.nl, 1 @@ -126340,7 +125935,6 @@ robodeidentidad.gov, 1 roboform.com, 1 robohash.org, 1 -robokits.co.in, 1 roboland.ga, 1 roboonline.tk, 1 roboraptor.tk, 1 @@ -126367,7 +125961,8 @@ robottip.com, 1 robowars.ga, 1 robpol86.com, 1 -robs-info.eu, 1 +robs-info.eu, 0 +robsamtechnology.com, 1 robspc.repair, 1 robstibal.com, 1 robtatemusic.com, 1 @@ -126484,7 +126079,6 @@ rockmn.gov, 1 rocknbluestoday.tk, 1 rocknreports.com, 1 -rocknwater.com, 1 rockpesado.com.br, 1 rockporttx.gov, 1 rockportusa.com, 1 @@ -126527,7 +126121,6 @@ rodeosales.co.uk, 1 roder-skarf.se, 1 rodest.net, 0 -rodgersawnings.com, 1 rodichi.net, 1 rodin.tk, 1 rodinka.tk, 1 @@ -126546,7 +126139,6 @@ rodpenroseracing.com.au, 1 rodrigamer.com, 1 rodrigoacevedo.com.uy, 1 -rodrigoarayaaliaga.com, 1 rodrigocarvalho.blog.br, 1 rodrigodematos.tk, 1 rodriguez.im, 1 @@ -126608,7 +126200,6 @@ roguenexus.io, 1 roguerocket.com, 1 roguetech.ca, 1 -roguetechhub.org, 1 roguevalleywinecountry.com, 1 rohal.tk, 1 rohanbassett.com, 1 @@ -126647,6 +126238,7 @@ rokar.de, 1 rokass.nl, 1 rokettube.tk, 1 +rokka.com.mx, 1 roko-foto.de, 1 rokprodobro.cz, 1 rokudenashi.de, 1 @@ -126714,11 +126306,11 @@ roman.systems, 1 romana.org, 1 romanceamor.com.pt, 1 -romancerecipes.com, 1 romancy.tk, 1 romandaphotography.com, 1 romanglos.de, 1 romania-film.ml, 1 +romaniacompany.com, 1 romanian.cam, 1 romank.com.np, 1 romankozak.cz, 1 @@ -126776,11 +126368,11 @@ romtex.co.uk, 1 romun.net, 1 romy.tw, 1 -ron2k.za.net, 1 ronaldcantor.com, 1 ronaldleite.tk, 1 ronaldvanassen.nl, 1 ronan.cf, 1 +ronanotorrino.com.br, 1 ronasit.com, 1 ronbongamis.com, 1 ronc.ru, 1 @@ -126816,7 +126408,6 @@ roodo.com, 1 roof.ai, 0 roofbar-mannheim.de, 1 -roofcareswfl.com, 1 roofcheckmate.com, 1 roofer.cf, 1 roofhaven.co.uk, 1 @@ -126828,7 +126419,6 @@ roofsbyempire.com, 1 roofsrenewed.com, 1 rooijakkers.software, 1 -rooik.at, 0 rooiratel.red, 1 roojai.com, 1 rook-playz.net, 1 @@ -126891,6 +126481,7 @@ rooter.group, 1 rootergroupinc.ca, 1 rootfor.me, 1 +rootgsm.com, 1 rootie.de, 1 rootinchase.com, 1 rootingpalace.tk, 1 @@ -126937,6 +126528,7 @@ rosabrasiv.ga, 1 rosacosmos.tn, 1 rosaflorbijoux.com.br, 1 +rosakkreditatsiya-forum.ru, 1 rosalinda.cl, 1 rosalindturner.co.uk, 1 rosalopezcortes.tk, 1 @@ -127033,7 +126625,6 @@ rosstroj-balashiha.ml, 1 rosstwpmcpa.gov, 1 rossvillega.gov, 1 -rost.tv, 1 rostclub.ro, 1 rosten.tk, 1 rostirolla.se, 0 @@ -127083,6 +126674,7 @@ rotince.tk, 1 rotol.me, 1 rotonde.gq, 1 +rotondi.com.ua, 1 rottadeifenici.it, 1 rottal-inn.de, 1 rottamazioni.it, 1 @@ -127167,7 +126759,6 @@ roxanaherguz.com, 1 roxanneguinoo.tk, 1 roxburytech.tk, 1 -roxet.my.id, 1 roxhillmedia.com, 1 roxicontainer.com, 1 roxiesbouncycastlehire.co.uk, 1 @@ -127176,6 +126767,8 @@ roy-buehring.de, 1 roy.wang, 1 royacshop.com, 1 +royal-coatings.com, 1 +royal-flowers.dp.ua, 1 royal-knights.tk, 1 royal-life.tk, 1 royal-rangers.de, 1 @@ -127252,12 +126845,14 @@ royaltyk9.com, 1 royaltyrange.com, 1 royalvortex.co, 1 +royalworldservice.com.ua, 1 royalyule.com, 1 royauction.ca, 1 royauction.com, 1 royaumesoublies.com, 1 roycampbell.tk, 1 royceandsteph.com, 1 +roycestars.com, 1 roycewilliams.net, 1 royger.tk, 1 royoy.com, 1 @@ -127274,7 +126869,6 @@ rozemaandag.tk, 1 rozemuller.com, 1 rozhodce.cz, 1 -rozmach.com, 1 rozprodat.cz, 1 roztilefona.net, 1 rp-megapolis.tk, 1 @@ -127361,7 +126955,6 @@ rscturmoil.com, 1 rsdantyslab.lt, 1 rsdbyroos.nl, 1 -rsddrsoebandi.id, 1 rsdisedezzari.it, 1 rsdns.ml, 1 rse-reporting.com, 1 @@ -127464,12 +127057,13 @@ rtl.de, 1 rtlnitro.de, 1 rtlspiele.de, 1 -rtm.kr, 1 +rtm.kr, 0 rtmi.co.il, 1 rtmoran.org, 1 rtmtech.ru, 1 rtnewsde.com, 1 rtnewsde.online, 1 +rtnewsde.pro, 1 rtp.org, 1 rtpa.es, 1 rtparket.ga, 1 @@ -127544,6 +127138,7 @@ rubidium.ml, 1 rubidium.se, 1 rubik.tk, 1 +rubika.com.ua, 1 rubinamillinery.com, 1 rubinchyk.tk, 1 rubinnadlan.co.il, 1 @@ -127616,7 +127211,6 @@ ruflay.ru, 1 ruforce.ml, 1 rugadgets.tk, 1 -rugbugecoflooring.com, 1 rugby.tk, 1 rugby.video, 1 rugbynow.com, 1 @@ -127636,7 +127230,6 @@ ruhrmobil-e.de, 1 ruhrnalist.de, 1 ruhrpott-media.com, 1 -ruhrpott-media.de, 1 ruhrpott.rodeo, 1 rui-vet.com, 1 ruiduntrading.com, 1 @@ -127694,7 +127287,6 @@ rummey.co.uk, 1 rumreader.com, 1 rumtaste.com, 1 -rumusbilangan.com, 1 rumusrumus.com, 1 rumussoal.com, 1 run-it-direct.co.uk, 1 @@ -127819,6 +127411,7 @@ ruskcountytx.gov, 1 ruski.tk, 1 ruskin200.com, 1 +ruskod.net, 1 ruslandautohuur.nl, 1 rusmir.tk, 1 rusmodel.tk, 1 @@ -127861,8 +127454,6 @@ russiancrimes.in.ua, 1 russianews.cf, 1 russianews.ga, 1 -russianflora.com, 1 -russianflora.ru, 1 russianpostcalc.ru, 1 russianpunkrock.tk, 1 russianrandom.ru, 1 @@ -127879,7 +127470,6 @@ rustamkhanko.gq, 1 rustdesk.com, 1 rustfactory.io, 1 -rustfanatic.com, 1 rustfu.rs, 1 rusticroadlandscaping.com, 1 rusticus-consulting.de, 0 @@ -127914,7 +127504,6 @@ ruthil.com, 1 ruthmalan.com, 1 ruthmarques.com.br, 1 -ruthmontenegro.com, 1 ruthstas.com, 1 rutiger.com, 1 rutika.ru, 1 @@ -127941,7 +127530,6 @@ rva.gov, 1 rvaneijk.io, 1 rvantwembeke.tk, 1 -rvcamperguide.com, 1 rvcampgroundhq.com, 1 rvem.org, 1 rvender.cz, 1 @@ -127960,6 +127548,7 @@ rw2.de, 1 rwalch.at, 1 rway.pro, 1 +rwb.charity, 1 rwbstuff.com, 1 rwgamernl.ml, 1 rwglaw.com, 1 @@ -127972,10 +127561,10 @@ rwx.work, 1 rx-base.nl, 1 rx-diet.com, 0 +rx-safety.com, 0 rx2go.com, 1 rxbn.de, 1 rxbusiness.com, 1 -rxcarbon.com, 1 rxcom.net, 1 rxhill.com, 1 rxperiusdata.com, 1 @@ -128006,7 +127595,6 @@ ryanparman.com, 1 ryanrichardwalker.com, 1 ryanrock.net, 1 -ryansmithphotography.com, 1 ryanwordpress.com, 1 ryazagro.ru, 1 ryazan-region.ru, 1 @@ -128156,7 +127744,6 @@ s553.cc, 0 s557.cc, 0 s558.cc, 0 -s559.cc, 0 s5g8.com, 1 s64.cz, 1 s6729.co, 1 @@ -128177,7 +127764,6 @@ sa-blog.net, 1 sa-mp.me, 1 sa-mp.ro, 1 -sa-refer.nhs.uk, 1 sa-stu.com, 1 sa-studio.chat, 1 sa-studio.ltd, 1 @@ -128227,6 +127813,7 @@ sabiniambientes.com.br, 1 sabinov.sk, 1 sabiote.com, 1 +sabiru-develop.web.id, 1 sabisandsgamereserve.com, 1 sablanout.com, 1 sable.gq, 1 @@ -128299,7 +127886,6 @@ sacscoc.org, 1 sacwellness.com, 1 sad-berezka.ru, 0 -sadecegundem.net, 1 sadeedos.systems, 1 sadeem.space, 1 sadesign.co.uk, 1 @@ -128315,7 +127901,7 @@ sadievilleky.gov, 1 sadiqloaded.tk, 1 sadiqstore.com, 1 -sadko-group.com, 1 +sadjawebsolutions.com, 1 sadkodesign.com.ua, 1 sadmansh.com, 1 sadou.kyoto.jp, 0 @@ -128330,6 +127916,7 @@ saechsischer-christstollen.shop, 0 saeder-krupp.de, 1 saedgn.com.cn, 1 +saeitalianfood.com, 1 saemag.com.cn, 1 saenforcement.agency, 1 saengsook.com, 1 @@ -128350,6 +127937,7 @@ safatech.me, 1 safc.tk, 1 safcstore.com, 0 +safe-kim.com, 0 safeacs.com, 1 safeadmin.ga, 1 safeandsecureserver.com, 1 @@ -128376,6 +127964,7 @@ safeers.tk, 1 safefreehost.gq, 1 safefreepornsites.com, 1 +safegas.com.ua, 1 safegold.ca, 1 safegroup.pl, 1 safeguardhosting.ca, 1 @@ -128396,6 +127985,7 @@ safeo.fr, 1 safeocs.gov, 1 safeplay.co, 1 +safeplayground.net, 1 safeporn.org, 1 safeprint.pt, 1 safeproject.us, 1 @@ -128540,8 +128130,6 @@ saifoundation.in, 1 saifoundation.org, 1 saiful.web.id, 1 -saifulanam.com, 1 -saigon.one, 1 saigonflowers.com, 1 saigonland24h.vn, 1 saigonstar.de, 1 @@ -128581,6 +128169,7 @@ saint-petersburg.cf, 1 saint-petersburg.gq, 1 saint-petersburg.ml, 1 +saint-ssd.org, 1 saintaardvarkthecarpeted.com, 1 saintanne.net, 1 saintanthonylakin.org, 1 @@ -128669,6 +128258,7 @@ sakenohana.com, 1 sakerhetsbubblan.se, 1 sakiborislam.com, 1 +sakido.fr, 1 sakipsabancimuzesi.org, 1 sakirdak.tk, 1 sakitama-shika.com, 1 @@ -128770,6 +128360,7 @@ salesforceliveagent.com, 1 salesforcescrt.com, 1 salesfunnelfirstaid.com, 1 +saleskeyonline.com, 1 salesoutcomes.com, 1 salesparrow.com, 1 salesprocessing.gq, 1 @@ -128778,7 +128369,7 @@ saleturs.tk, 1 saletzki.de, 1 salework.net, 1 -salford.gov.uk, 1 +salford.gov.uk, 0 salfraedingarnir.is, 1 salge.rocks, 1 salibandy.tk, 1 @@ -128801,7 +128392,6 @@ sallandstorage.nl, 1 salle-quali.fr, 0 salledebainmontreal.gq, 1 -salleetech.com, 1 sallisawok.gov, 1 sally-secret.com, 1 sallyandruss.ca, 1 @@ -128814,7 +128404,6 @@ salmadenora.net, 1 salman.agency, 1 salmanravoof.com, 1 -salmanshafi.net, 1 salmati.de, 1 salmelainenwalter.tk, 1 salminencrane.tk, 1 @@ -128840,7 +128429,6 @@ salone-mio.com, 1 salonestella.it, 1 saloni.com, 1 -salonia.it, 1 saloniestate.ml, 1 salonist.io, 1 salonivenera.com, 1 @@ -128859,7 +128447,7 @@ saltandlight.sg, 1 saltcave.gq, 1 saltedfish.network, 1 -saltedfishes.com, 1 +saltedfishes.com, 0 saltedge.com, 1 saltedpasta.com, 1 saltercane.com, 0 @@ -128924,7 +128512,6 @@ samanthabiggers.com, 1 samanthasmith.tk, 1 samar-leyte.tk, 1 -samara-avia.ru, 1 samara-hosting.tk, 1 samaraugol.ru, 1 samarhotel.com, 1 @@ -128937,6 +128524,7 @@ sambot22.tk, 1 sambuchanan.tk, 1 sambull.org, 1 +sambus.com, 1 samcantwell.au, 1 samcera.gov, 1 samclarke.com, 1 @@ -129022,10 +128610,10 @@ samroelants.com, 1 samsara.nl, 1 samsatcorner.com, 1 +samscollection.in, 1 samsebe.ml, 1 samsebe.tk, 1 samsepi0l.ovh, 1 -samshouseofspaghetti.net, 1 samson-td.com, 1 samson.org.au, 1 samsondonick.com, 1 @@ -129108,7 +128696,6 @@ sanbornteam.com, 0 sanbs.org.za, 0 sancaktepehaber.tk, 1 -sancarlosparkcasa.com, 1 sanchez.adv.br, 0 sancraft.de, 1 sanctio.tk, 1 @@ -129138,7 +128725,6 @@ sandersmontalto.com, 1 sandersonfarms.com, 1 sanderspies.com, 1 -sanderstaxpro.com, 1 sandervanderstap.nl, 1 sandesh.tk, 1 sandfield.co.nz, 1 @@ -129197,7 +128783,6 @@ sandybigboobs.com, 1 sandybigboobs.net, 1 sandykeymedical.com, 1 -sandylanevacations.com, 1 sandyrobsonhypnotherapy.co.uk, 1 sandyspringadventurepark.org, 1 sandytoesgifts.co.uk, 1 @@ -129294,6 +128879,7 @@ sanraizu.top, 1 sanraksuparak.com, 1 sanray73.ru, 1 +sanroque.es, 1 sans-hotel.com, 1 sans-papiers.ch, 1 sansairyu-kuyoukai.com, 1 @@ -129378,6 +128964,7 @@ santosdecordoba.tk, 1 santoshpandit.com, 1 santsadurni.cat, 1 +santswebdesign.com, 1 santugon.tk, 1 santv.cc, 0 sanukarlos.tk, 1 @@ -129399,7 +128986,6 @@ sapafolumuxu.tk, 1 sapancavillalari.com, 1 sapaship.ru, 1 -saphead.cn, 1 saphi.re, 1 saphnelosavings.com, 1 sapibatam.com, 0 @@ -129438,7 +129024,7 @@ sapulpapd.gov, 1 sapuseven.com, 1 saputra.org, 1 -saq.com, 0 +saq.com, 1 saqara.com, 1 saracenmarkets.com, 1 sarafanchik.tk, 1 @@ -129709,9 +129295,10 @@ savage-harmony.tk, 1 savagecore.eu, 1 savagecore.uk, 1 -savan.ae, 1 savanna.io, 1 +savanna.vn.ua, 1 savannahhappycats.com, 1 +savannapro.vn.ua, 1 savant-dagen.nl, 1 savantcare.com, 1 savart.blog, 1 @@ -129729,7 +129316,6 @@ save-me-aachen.eu, 1 save-me-koeln.de, 1 save-spb.ru, 1 -save-your-bitcoins.com, 1 save.ch, 1 save.gov, 1 saveaward.gov, 1 @@ -129876,7 +129462,7 @@ sber.games, 1 sberanalytics.ru, 1 sberbank.ch, 1 -sbercity.ru, 1 +sbercity.ru, 0 sbercontactmonitoring.ru, 1 sbermobile.ru, 1 sbestimes.com, 1 @@ -129936,8 +129522,7 @@ scaffoldhiresandton.co.za, 1 scaffoldingsandton.co.za, 1 scag9.com, 1 -scai.org, 1 -scala.click, 1 +scala.click, 0 scalable.capital, 1 scalafactory.io, 1 scalaire.com, 1 @@ -130159,7 +129744,6 @@ schipholwatch.org, 1 schippendale.de, 1 schiriportal.ch, 1 -schirmer.io, 1 schittscreek.shop, 1 schizoid.tk, 1 schizoids.net, 1 @@ -130194,6 +129778,7 @@ schluesseldienst-neukoelln.de, 1 schluesseldienst-norderstedt.de, 1 schluesseldienstzentrum.de, 1 +schluesselnotdienst.hamburg, 1 schmaeh-coaching.ch, 1 schmatloch.cloud, 1 schmedes-gmbh.de, 1 @@ -130303,7 +129888,6 @@ schooleducationharyana.gov.in, 1 schoolheads.ph, 1 schoolhouse.world, 1 -schoolofequineshiatsu.com, 1 schoolroom.ga, 1 schoolrumble.tk, 1 schoolsafety.gov, 1 @@ -130312,7 +129896,7 @@ schooltransport.com.au, 1 schooluniform.com.au, 1 schoonheidssalon-annelies-santpoort.nl, 1 -schoonheidssalon-annelies-velserbroek.nl, 0 +schoonheidssalon-annelies-velserbroek.nl, 1 schoonheym.com, 1 schoonheym.nl, 1 schoop.me, 1 @@ -130384,7 +129968,6 @@ schupp.io, 1 schutte.tk, 1 schutterij-sintsebastianus-eys.tk, 1 -schutterijschinveld.nl, 0 schutz-vor-schmutz.de, 1 schutzkoffer-profilampen.at, 1 schutznetze24.de, 1 @@ -130417,7 +130000,7 @@ schwellensittiche.de, 1 schwerkraftlabor.de, 1 schwertkriege.de, 1 -schwesterseiten.com, 0 +schwesterseiten.com, 1 schwienbacher-karl.it, 1 schwifty.cloud, 1 schwiha.de, 1 @@ -130472,10 +130055,10 @@ scientific-socialism.ml, 1 scientificdev.net, 1 scif.com, 1 +scifisatellite.com, 1 scifisloth.com, 1 scifplus.com, 1 scifsafe.com, 1 -scigacz.pl, 1 scigov.xyz, 1 scijinks.gov, 1 scimaxglobal.com, 1 @@ -130579,7 +130162,6 @@ scottgalvin.com, 1 scotthelme.co.uk, 1 scotthelmesucks.com, 1 -scotthowell.com, 1 scottipc.com, 1 scottish-paranormal.tk, 1 scottishambulance.com, 1 @@ -130593,11 +130175,9 @@ scottrae.me.uk, 1 scottsbluffcountyne.gov, 1 scottsboropdal.gov, 1 -scottsdaleaz.gov, 0 scottsdalegunclub.com, 1 scottseditaacting.com, 1 scottsfreightshipping.com, 1 -scottshorter.com.au, 1 scottspainting.com, 1 scottsvalley.gov, 1 scottsvilleva.gov, 1 @@ -130627,7 +130207,6 @@ scoutwired.org, 1 scp-rustenholz-trens.notaires.fr, 1 scpe.eu.org, 1 -scphotography.co.uk, 1 scpocahontas.nl, 1 scpower.sg, 1 scpreplay.net, 1 @@ -130686,10 +130265,10 @@ scribesecurity.com, 1 scripo-bay.com, 1 scrippsnews.com, 1 +script-sign.com, 1 script.google.com, 1 scriptamanent.org, 1 scripter.co, 1 -scriptjunkie.us, 1 scriptline.ga, 1 scriptmaker.tk, 1 scriptnav.com, 1 @@ -130937,7 +130516,7 @@ seattleduiattorneys.com, 1 seattlemesh.net, 1 seattlespectator.com, 1 -seattlewalkinbathtubs.com, 1 +seattlewalkinbathtubs.com, 0 seattleyachtclub.org, 1 seaview.gq, 1 seaviewkohchang.com, 1 @@ -131019,7 +130598,6 @@ secborder.com, 1 secbsd.org, 1 secctexasgiving.org, 0 -secdaemons.com, 1 secdfir.com, 1 secfilingdata.com, 1 secgui.de, 1 @@ -131234,13 +130812,11 @@ securview.ch, 1 securyblack.com, 1 secutec.fr, 1 -secvuln.com, 1 secvuln.info, 1 secwall.me, 1 secwatch.nl, 1 secweb.org, 1 seda.wa.edu.au, 1 -sedaghatweb.com, 1 sedaliastpauls.org, 1 sedico.mx, 1 sedicomm.com, 1 @@ -131410,7 +130986,6 @@ seitenwaelzer.de, 1 seitokai.jp, 1 seiulocal300.org, 1 -seize.io, 1 seized.gov, 1 seizethedaybrasil.com.br, 1 sejageek.com, 1 @@ -131429,7 +131004,6 @@ sektor-news.tk, 1 sektor.ro, 1 sektor.tech, 1 -sektor41.com, 1 sektorgaza.su, 1 sekundadosetki.pl, 1 sekurak.pl, 1 @@ -131438,13 +131012,13 @@ sekweta.com, 1 selang.cf, 1 selang.ml, 1 +selatv.com, 1 selayar.vacations, 1 selber-coden.de, 1 selbst-schmiede.de, 1 selbst-schreinern.de, 1 selco-himejiminami.com, 1 selcusters.nl, 1 -seldadogancan.com, 1 selebrita.ml, 1 selectables.tk, 1 selectagents.gov, 1 @@ -131535,6 +131109,7 @@ selltogaprime.com, 1 selltothousandhills.com, 1 selltous.com.au, 1 +sellusdtindubai.com, 1 sellwithsquare.com, 1 selma.com, 1 selman-marrakech.com, 1 @@ -131737,7 +131312,6 @@ sensorshop.ir, 0 sensorsoft-waterontharder.nl, 1 sensorville.com.br, 1 -sensorwise.com, 1 sensoscientific.com, 1 sensound.ml, 1 sensualism.com, 1 @@ -131865,6 +131439,7 @@ seoprnews.cf, 1 seopromotion.tk, 1 seoproof.tk, 1 +seoptimizan.com, 1 seoptimize.fr, 1 seoquero.com, 1 seoranker.tk, 1 @@ -131877,6 +131452,7 @@ seoscribe.net, 1 seosearch.org, 1 seoserfing.tk, 1 +seosergio.com, 1 seoshanti.ru, 0 seoshnik.tk, 1 seosmart.gq, 1 @@ -131919,7 +131495,6 @@ sep.tarnobrzeg.pl, 1 sepakbola.id, 1 separacioniglesiaestado.tk, 1 -sepehrmahan.com, 1 sepenggal.info, 1 sepio.systems, 1 sepmgroupec.com, 1 @@ -131934,7 +131509,6 @@ septics.ga, 1 septictankpumpingservices.com, 1 septodont.com.ru, 1 -septodontchina.com, 1 septona.gr, 1 septonol.tk, 1 septs.blog, 1 @@ -132128,7 +131702,6 @@ serveroffline.net, 1 serverpedia.de, 1 servers.vg, 1 -serverscan.com, 1 serversfrom.space, 1 serversify.host, 1 serversify.net, 1 @@ -132153,17 +131726,15 @@ service.gov.scot, 1 service.gov.uk, 1 service.vic.gov.au, 0 +service220.ar, 1 serviceair.com.ar, 1 serviceautobaneasa.com, 1 serviceautobaneasa.ro, 1 -servicebeaute.fr, 1 serviceboss.de, 1 servicecentreperth.com.au, 1 -servicechannel.com, 1 servicedesk.ath.cx, 1 serviceexpress.com, 1 servicefish.tk, 1 -serviceflow.co.za, 1 serviceforge.com, 1 serviceland.am, 1 servicemasterbyzaba.com, 1 @@ -132315,7 +131886,6 @@ sevenrooms.com, 0 sevensymbolsofkwanzaa.com, 1 seventeamiles.com, 1 -seventure.fr, 1 seventwentynine.com, 1 seventymania.de, 1 severac.org, 1 @@ -132386,6 +131956,7 @@ sexokursk.com, 1 sexolipetsk.com, 1 sexologist.cf, 1 +sexolviv.com, 1 sexonwax.com, 0 sexorzn.red, 1 sexorzn.xyz, 1 @@ -132410,7 +131981,6 @@ sextw.net, 1 sexualdiversity.org, 1 sexufa.red, 1 -sexvideochat.it, 1 sexvideos.tel, 1 sexvirtualspace.com, 1 sexvl.club, 1 @@ -132608,14 +132178,12 @@ sh0u.jp, 1 sh0uld.net, 1 sh1mar.in, 1 -sh68.cc, 0 sha.bi, 1 sha512.online, 1 shabaka.org, 1 shabashka.ml, 1 shabiwangyou.com, 1 shackleton.io, 1 -shad.waw.pl, 1 shade.sh, 1 shadebarandgrillorlando.com, 1 shadebarandgrillutica.com, 1 @@ -132798,6 +132366,7 @@ sharedhealthmb.ca, 1 sharedhost.de, 1 sharefox.eu, 0 +sharefunfacts.com, 1 sharegate.tk, 1 sharehabor.org, 1 sharehousechintai.jp, 1 @@ -132877,7 +132446,7 @@ shatabdichildrenschool.tk, 1 shatalov.com, 1 shatteredarchive.com, 1 -shaukatkhanum.org.pk, 1 +shaukatkhanum.org.pk, 0 shaumine.ml, 1 shaunallen.co.uk, 1 shaunandamyswedding.com, 1 @@ -132893,14 +132462,13 @@ shawanocountywi.gov, 1 shawarmapressfranchise.com, 1 shawcentral.ca, 0 -shawclan.id.au, 1 shawfamily.au, 1 shawfamily.id.au, 1 shawiah.tk, 1 shawlumber.ca, 1 shawmutdelivers.com, 1 shawnalucey.com, 1 -shawncasemore.com, 1 +shawncasemore.com, 0 shawnee-nsn.gov, 1 shawneeohio.gov, 1 shawngvs.com, 1 @@ -133020,7 +132588,6 @@ shenghaiautoparts.net, 1 shenghuang.tk, 1 shengrenyu.com, 1 -shengyipin.com.my, 1 shentengtu.idv.tw, 1 sheo-tech.fr, 1 shepherdsfriendly.co.uk, 1 @@ -133106,7 +132673,6 @@ shiftkey.com, 1 shiftkey.pl, 1 shiftleft.io, 1 -shiftleft.org, 1 shifton.com, 0 shiga1.jp, 1 shigaben.or.jp, 1 @@ -133154,6 +132720,7 @@ shinglereplacementlv.com, 1 shinice.net, 1 shining.gifts, 1 +shiningservices.ie, 1 shiningstarlogistics.com, 1 shinju.moe, 0 shinkamigoto.tv, 1 @@ -133168,10 +132735,8 @@ shinsyo.com, 1 shinta.ro, 1 shintoism.com, 1 -shinycleankitchen.com, 1 shinyoko-saisyuusyou.com, 1 shinypebble.uk, 1 -shinyshiny.tv, 1 shinyteethand.me, 1 shinyupai.com, 1 shiomiya.com, 1 @@ -133205,8 +132770,6 @@ shippingyourworld.ca, 1 shippingyourworld.com, 1 shipshewana.gov, 1 -shipsparrot.com, 1 -shiptek.co, 1 shiptest.net, 1 shiptron.com, 1 shiqi.ca, 1 @@ -133250,7 +132813,6 @@ shitmybradsays.com, 1 shitnikovo.tk, 1 shitposter.io, 1 -shitpostingmain.com, 1 shitposts.se, 1 shitproductions.org, 1 shittywok.tk, 1 @@ -133298,6 +132860,7 @@ sho-furtwangen.de, 1 shoahneveragain.com, 1 shoalcreekoutfitters.com, 0 +shobdonogor.net, 1 shochikubai.tk, 1 shochufes.jp, 1 shock.ee, 0 @@ -133372,7 +132935,6 @@ shopdullestowncenter.com, 1 shopee6.com, 0 shopfazz.com, 1 -shopfinale.com, 1 shopforcovers.com, 1 shopforeverproducts.com, 1 shopfskmall.com, 1 @@ -133393,7 +132955,6 @@ shopjyf.com, 1 shopkeyfoodmaspeth.com, 1 shopkeyfoodsandlane.com, 1 -shopkini.com, 0 shoplogcap.com, 1 shoplus.com.tw, 1 shoplyft.co.za, 1 @@ -133663,8 +133224,6 @@ shouldtest.net, 1 shouldtest.org, 1 shouohkai-dental.com, 1 -shoutmecrunch.com, 1 -shouttag.com, 1 shoveltoss.com, 0 shovonhasan.com, 0 show.fo, 1 @@ -133825,7 +133384,6 @@ sia6.com, 1 siaarchivi.com, 1 siadiamond.com, 1 -siadlak.com, 1 siaggiusta.com, 1 siai.cf, 1 siai.gq, 1 @@ -133843,7 +133401,6 @@ siamwatercraftpromotion.com, 1 sianjhon.com, 1 siapcn.it, 1 -siatris.qc.ca, 1 siava.ru, 1 sibanyestillwater.com, 1 sibauto.club, 1 @@ -133899,6 +133456,7 @@ sicurezzalavoro24.com, 1 sicvisuals.com, 1 sid500.com, 1 +sidabrajewelry.lt, 1 sidari.tk, 1 sidatbacklink.tk, 1 siddhalepa.com, 1 @@ -133908,8 +133466,7 @@ sidechannel.media, 1 sidecredit.ga, 1 sidefx.com, 1 -sidelinesurgeons.com, 1 -sidema.be, 1 +sideleau.com, 1 sidemount-tauchen.com, 1 sideofburritos.com, 1 sideofburritos.social, 1 @@ -133925,6 +133482,7 @@ sidianbank.co.ke, 1 sidik.web.id, 1 sidingsmedia.com, 1 +sidingvault.com, 1 sidiprojects.us, 1 sidirokastro.ga, 1 sidium.de, 1 @@ -133942,7 +133500,6 @@ sie.at, 1 siebenhirten7.at, 1 siebeve.be, 1 -siecledigital.fr, 1 siecon-it.com, 1 siega.pl, 1 siegemund-frankfurt.de, 1 @@ -133974,7 +133531,6 @@ sierkbornemann.de, 1 sierom.net, 1 sierpinska.eu, 1 -sierradeguadarrama.online, 1 sierramadreca.gov, 1 sierramusic.tk, 1 sietareu.org, 1 @@ -133998,7 +133554,6 @@ sigb.sh, 1 sigcafe.net, 1 sigep.org, 1 -sigfox.com, 1 sigfridlinden.se, 1 siggi.io, 1 sight-restoration.tk, 1 @@ -134098,10 +133653,12 @@ sigterm.sh, 1 sigurnost.online, 1 sigvik.ru, 1 +sihy.uk, 1 siika.solutions, 1 siikaflix.tv, 1 siimonreynolds.com, 1 siimustilak.edu.ee, 1 +sijem.si, 1 sijimi.cn, 1 sik-it.nl, 1 sikaranbrotherhood.tk, 1 @@ -134184,7 +133741,6 @@ silver-heart.co.uk, 1 silver-johnes.tk, 1 silvera.com.co, 1 -silverairways.com, 0 silverback.is, 0 silverbankltd.com, 1 silverbowflyshop.com, 1 @@ -134283,6 +133839,7 @@ silversgarage.org, 1 silvershadow.cc, 1 silverspringdowntown.com, 1 +silverstyle.ua, 1 silvertas.com, 1 silvertoken.com, 1 silvertoncolorado.com, 1 @@ -134310,15 +133867,11 @@ sim4seed.org, 1 simabonnement.nl, 1 simac.fr, 1 -simacero.com.mx, 1 simakui.id, 1 simam.de, 1 -simantec.cl, 1 simaogv.net, 1 simark.ca, 1 simart.cf, 1 -simartik.com, 1 -simasoft.com, 1 simaspava.com.tr, 1 simava.org, 1 simbike.ru, 1 @@ -134561,7 +134114,6 @@ simur.ky, 1 simus.fr, 1 simwalk.com, 1 -simworks.com.ph, 1 simyayayinlari.com, 0 sin-el-fil.com, 0 sin-nombre-alleria.de, 1 @@ -134595,7 +134147,6 @@ sindastra.org, 1 sinde.ru, 1 sindicatoburgos.org, 1 -sindicodorio.com.br, 1 sindirectory.com, 1 sindominio.net, 1 sindromebenjamin.tk, 1 @@ -134609,16 +134160,18 @@ sinfoniettabelcanto.org, 1 sinfully.gq, 1 sinfully.tk, 1 -sinfulthrills.co.uk, 1 singaporebrand.com.sg, 1 singaporeccc.org.sg, 1 singaporeconventionweek.sg, 1 +singaporecriminaldefencelawyer.com, 1 +singaporedivorcelawyer.com, 1 +singaporefamilylawyer.com, 1 +singaporefreelegaladvice.com, 1 singaporepsa.com, 1 singaporetoptentravel.com, 1 singaporewebdesign.tk, 1 singaporeyachtcharter.com, 1 singapur24.tk, 1 -singcapital.com.sg, 1 singee.me, 1 singel.ch, 1 singen.eu.org, 1 @@ -134639,7 +134192,6 @@ singles-berlin.de, 1 singlesproject.org, 1 singleuse.link, 1 -singlu10.org, 0 singluten.tk, 1 singolf.com, 1 singpost.com, 1 @@ -134685,6 +134237,7 @@ sint-joris.nl, 1 sint-sebastianus.tk, 1 sint-servattumus.tk, 1 +sinta-d.com, 1 sintas.lt, 1 sintaxis.org, 1 sintbaafsabdij.gent, 1 @@ -134703,6 +134256,7 @@ sinvideovault.com, 1 sinvik.com.ua, 1 sinzig.de, 1 +sioargentina.com.ar, 1 siofok.hu, 1 sion-colony.tk, 1 sion.info, 1 @@ -134912,6 +134466,7 @@ sittogether.club, 1 sittogether.tw, 1 situm.com, 1 +situs.web.id, 0 situsbandarq.cf, 1 situsbandarq.ga, 1 situsbandarq.ml, 1 @@ -134976,14 +134531,7 @@ sjnp.org, 1 sjoelen.tk, 1 sjoelsport.nl, 1 -sjolseth.casa, 1 -sjolseth.family, 1 -sjolseth.io, 1 -sjolseth.mx, 1 -sjolseth.net, 1 -sjolseth.org, 1 sjoorm.com, 1 -sjorssportief.nl, 1 sjorsvanweert.nl, 1 sjouke.dedyn.io, 1 sjparanormal.tk, 1 @@ -135022,7 +134570,6 @@ skarox.net, 1 skarox.ru, 1 skat.dk, 1 -skatefilms.tv, 1 skateparkmontbriz.tk, 1 skaterangels.tk, 1 skaterepublic.tk, 1 @@ -135047,7 +134594,6 @@ skeditor.tk, 1 skeeley.com, 1 skeetads.com, 1 -skegnesstec.ac.uk, 1 skei.org, 1 skepneklaw.com, 1 skepp.com, 1 @@ -135141,6 +134687,7 @@ skinexpert.ml, 1 skinfoodpeachcotton.tk, 1 sking.io, 1 +skinkits.com.ua, 1 skinlogic.org, 1 skinlords.com, 1 skinmarket.co, 1 @@ -135187,7 +134734,6 @@ skjt.co.jp, 1 skk.moe, 1 skky.net, 1 -skladchinamk.ru, 1 skladnicaksiegarska.pl, 1 sklarlaw.com, 1 sklepbhp.online, 1 @@ -135217,7 +134763,6 @@ skolid.se, 1 skolni-system.eu, 1 skolnieks.lv, 1 -skolnilogin.cz, 1 skolniweby.cz, 1 skolplattformen.org, 1 skolskyportalporuba.cz, 1 @@ -135253,7 +134798,6 @@ skriptorium.de, 1 skrivargarden-nes.cf, 1 skrivebordet.tk, 1 -skrprojects.com.au, 1 skrsv.net, 1 skrundz.ca, 1 skrundz.com, 1 @@ -135394,11 +134938,11 @@ skypefr.com, 1 skypicker.com, 1 skypicshd.com, 1 -skypinc.com, 1 skyportcloud.com, 1 skyqueen.cc, 1 skyquid.co.uk, 1 skyra.pw, 1 +skyrider.me, 1 skyrosconsulting.com, 1 skys-entertainment.com, 1 skyscanner.ca, 1 @@ -135462,7 +135006,6 @@ slaght.de, 0 slagterbob.com, 1 slainvet.net, 1 -slajeslag.nl, 1 slalix.pw, 1 slalix.xyz, 1 slamdunkdedication.tk, 1 @@ -135574,7 +135117,6 @@ slgcdn.com, 1 slhn.org, 1 sli.do, 1 -slicedpies.com, 1 sliceone.com, 1 slicticka.cz, 1 slide.cz, 1 @@ -135592,6 +135134,7 @@ slik.ai, 1 slim-health.com, 1 slim-slender.com, 1 +slim.ua, 1 slimcrm.vn, 1 slime5.com.tw, 1 slimetutorial.com, 1 @@ -135602,7 +135145,6 @@ slimpay.com, 1 slimspots.com, 1 slimster.nl, 1 -slimtelecom.nl, 1 slimwindows.cf, 1 slimwindows.ga, 1 slimwindows.gq, 1 @@ -135659,7 +135201,6 @@ slopeoak.com, 1 slotarazzi.com, 1 slotbonus24.com, 1 -slotbonusinsider.com, 1 slotboss.co.uk, 1 slotcatalog.com, 1 sloterplas-management.nl, 1 @@ -135700,7 +135241,6 @@ slowsociety.org, 0 slpidny.gov, 1 slpm.com, 1 -slpnewsmx.com, 0 slrd-isperih.com, 1 slrealty.ru, 1 slrie.de, 1 @@ -135799,9 +135339,9 @@ smares.de, 1 smaridibor.tk, 1 smarinintgal.tk, 1 -smark.ai, 1 smarpshare.com, 1 smarriti.it, 1 +smart-bezpeka.com, 1 smart-broker.ru, 1 smart-dianza.ga, 1 smart-house.bg, 1 @@ -135834,12 +135374,12 @@ smartbear.com, 1 smartbetaler.no, 1 smartbis.com, 1 +smartbitcoininvestments.com, 1 smartbiz.vn, 1 smartblock.cloud, 1 smartbooqing.com, 1 smartcar.com, 0 smartcard.tools, 1 -smartcarleen.com, 1 smartcentres.com, 1 smartcents.gold, 1 smartcentsforlife.com, 1 @@ -135877,7 +135417,6 @@ smartgirledits.com, 1 smartgirls.tk, 1 smartglassworld.net, 1 -smartgrepp.se, 1 smartgridsecurity.com, 1 smartgridsecurity.org, 1 smartguardzone.kr, 1 @@ -135907,7 +135446,6 @@ smartlogtower.com, 1 smartlooks.es, 1 smartmachine.com, 1 -smartmail.io, 1 smartmail24.de, 1 smartme.pl, 1 smartmeal.ru, 1 @@ -135950,7 +135488,6 @@ smartroofingandsheetmetal.com, 1 smartroutes.ie, 1 smartroutes.io, 1 -smartseatravel.com, 1 smartservices.nl, 0 smartshiftme.com, 1 smartshoppers.es, 1 @@ -136019,6 +135556,7 @@ smelinukas.lt, 1 smelly.cloud, 1 smeloan.sg, 1 +smereka.ua, 1 smeso.it, 1 smeta.ml, 1 smetak.cz, 1 @@ -136029,12 +135567,14 @@ smfdmn.gov, 1 smgl.cm, 1 smh.me, 1 +smhatelier.com, 1 smi-a.me, 1 smialnumenor.tk, 1 smiatek.name, 1 smicenter.tk, 1 smicompact.com, 1 smictecniservi.com, 1 +smiilliin.com, 1 smiilliin.site, 1 smikom.ru, 1 smile-shika-fujii.com, 1 @@ -136071,7 +135611,6 @@ smirniopoulos.gr, 1 smishnik.tk, 1 smit.com.ua, 1 -smith-solutions.com, 1 smith-tech.ga, 1 smith.bz, 1 smithandnephewpensions.co.uk, 1 @@ -136096,7 +135635,6 @@ smitsmail.net, 1 smittybilt.com, 1 smkkesfambatujajar.sch.id, 1 -smkn1luragung.sch.id, 1 sml.lc, 1 smlk.org, 1 smlstriperfishing.com, 1 @@ -136207,7 +135745,6 @@ smucraiova.ro, 1 smudailycampus.com, 1 smudge.ai, 1 -smuhelper.cn, 1 smuncensored.com, 1 smurffi.net, 1 smurl.tk, 1 @@ -136245,7 +135782,6 @@ snakesandladders.tk, 1 snakesolid.nl, 1 snap-ci.com, 1 -snap.com, 1 snapaffiliate.net, 1 snapappointments.com, 1 snapappts.com, 1 @@ -136266,7 +135802,6 @@ snatertlc.it, 1 snatti.com, 1 snatural.com.br, 1 -snav.cc, 1 snazel.ae, 1 snazel.co.il, 1 snazel.co.uk, 1 @@ -136284,7 +135819,6 @@ sneakers-sports.tk, 1 sneakers88.it, 1 sneakersmexs.com, 1 -sneakpod.de, 0 sneakycode.net, 1 sneakynote.com, 1 sneakypaw.com, 1 @@ -136495,7 +136029,6 @@ socialdemo.ml, 1 socialdemo.tk, 1 socialdevelop.biz, 0 -socialdocumentary.net, 1 socialeducation.tk, 1 socialesactivo.ga, 1 socialesretro.tk, 1 @@ -136541,7 +136074,6 @@ socialtactics.ga, 1 socialtactics.gq, 1 socialtactics.ml, 1 -socialtextjournal.org, 1 socialtick.club, 1 socialtournaments.com, 0 socialtranslation.ga, 1 @@ -136577,6 +136109,7 @@ sociopampers.com.ar, 1 sociopathy.org, 1 sociosalafuerza.tk, 1 +socioscasino.com, 1 sociosjournal.com, 1 socious.io, 1 sociusian.gq, 1 @@ -136615,7 +136148,7 @@ sodi.nl, 1 sodigent.be, 1 sodigent.gent, 1 -sodirace.com, 1 +sodirace.com, 0 sodo.top, 1 sodom-metal.tk, 1 sodrama.sg, 1 @@ -136750,7 +136283,6 @@ soilegustafsson.fi, 1 soillessgeek.com, 1 soilscapesolutions.com, 1 -soinsparlesmains.fr, 1 sointelcom.com.co, 1 soinvett.com, 0 soissons-technopole.org, 1 @@ -136890,7 +136422,6 @@ solisrey.es, 1 solitaire-game.org, 1 solitairenetwork.com, 1 -solitary.social, 1 solitaryride.com, 1 solitech.bg, 1 soliten.de, 1 @@ -136902,9 +136433,7 @@ solix.com, 1 sollah.com, 1 sollahlibrary.com, 1 -sollea.co, 1 sollet.ac, 1 -sollet.live, 1 sollishealth.com, 1 solliv.com, 1 solmek.co.uk, 1 @@ -136932,7 +136461,6 @@ soloparati.cf, 1 solopress.com, 1 soloprivacidad.com, 1 -soloproaudio.com, 0 soloproductos.top, 1 soloroboto.com, 1 solosesso.tk, 1 @@ -136954,7 +136482,6 @@ sols.style, 1 solsea.io, 1 solsi.ga, 1 -solskin-art.fr, 1 solsticecam.com, 1 soltysblue.pl, 0 solucion.gq, 1 @@ -136992,7 +136519,6 @@ solwit.com, 1 solxsys.com, 0 solymar.co, 1 -soma.com.au, 0 somaar.tk, 1 somaini.li, 1 somaliaonline.com, 1 @@ -137033,6 +136559,7 @@ sommeil.cl, 1 sommeilsante.com, 1 sommer-reitmajer.de, 1 +sommercamp.wien, 0 sommerhusudlejning.com, 1 sommerkult.de, 1 sommerles.no, 1 @@ -137047,7 +136574,6 @@ somosgratitude.com.br, 1 somoslaarmenia.com, 1 somosmasa.com, 1 -somospacifico.org, 1 somosweb.cf, 1 sompo-intl.com, 1 sompo.com.au, 1 @@ -137259,6 +136785,9 @@ sortirentrenous.com, 1 sortly.com, 1 sorubak.com, 1 +soruly.com, 1 +soruly.moe, 1 +soruly.net, 1 soruly.org, 1 sorumatik.co, 1 sorunrehberi.com, 1 @@ -137348,6 +136877,7 @@ soufastnet.com.br, 1 souga.eu.org, 1 souked.com, 1 +soukjoint.com, 1 soukka-seura.fi, 1 soukodou.jp, 1 soul-of-style.com, 1 @@ -137381,6 +136911,7 @@ soumen.tk, 1 soumikghosh.com, 1 soumission-assurances.ca, 1 +soumissionalarme.ca, 1 soumya.xyz, 1 soumya92.me, 1 sounah.com, 1 @@ -137405,6 +136936,7 @@ soundeo.com, 1 soundeo.net, 1 soundersmusic.com, 1 +soundersu23.com, 1 soundexclusive4ever.tk, 1 soundfingers.com, 0 soundgasm.net, 1 @@ -137461,7 +136993,6 @@ sourcing4exports.co.uk, 1 sourcitec.com, 1 souria.tk, 1 -souris-gamer.com, 1 sourlakepd.gov, 1 sourmatt.xyz, 1 sourraundweb.tk, 1 @@ -137495,7 +137026,6 @@ southernforge.com, 1 southerngospelnow.com, 1 southerngospelprizes.com, 1 -southernknightsatlanta.com, 1 southernlights.cf, 1 southernlights.club, 1 southernlights.gq, 1 @@ -137515,7 +137045,6 @@ southforkamericanriver.net, 1 southgatemi.gov, 1 southgatesystems.com, 1 -southgeorgiacargotrailers.org, 1 southjacksonville-il.gov, 1 southjerseyhomes.info, 1 southkentschool.org, 1 @@ -137689,6 +137218,7 @@ spacelandpark.ga, 1 spacelift.io, 1 spacenation.online, 1 +spacenerd.it, 1 spaceon.tk, 1 spacepirates.tk, 1 spacepixel.ml, 1 @@ -137750,6 +137280,7 @@ spanglishls.com, 1 spanien.guide, 1 spanischunterricht.tk, 1 +spanishblackboard.com, 1 spanishclub.blog, 1 spanishdogs.tk, 1 spanishenglish.com, 1 @@ -137773,7 +137304,6 @@ spar.hr, 1 spar.hu, 1 spar.si, 1 -sparanoid.blog, 1 sparanoid.com, 1 sparanoid.net, 1 sparanoid.network, 1 @@ -137784,7 +137314,7 @@ spare.no, 1 spare.se, 1 sparefoot.com, 1 -sparendirekt.at, 1 +sparendirekt.at, 0 sparepartsnow.de, 1 spargrancanaria.es, 1 sparkandglass.com, 1 @@ -137801,7 +137331,6 @@ sparkl.fm, 1 sparklabs.com, 1 sparklatvia.lv, 1 -sparkleapp.com, 1 sparklebastard.com, 1 sparklesvt.com, 1 sparklingice.com, 1 @@ -137828,7 +137357,6 @@ spartamet.tk, 1 spartan300.tk, 1 spartan300charity.org, 1 -spartandtf.com, 1 spartanis.tk, 1 spartanrvchassis.com, 1 spartinacreekbuilding.com, 1 @@ -137836,10 +137364,10 @@ sparvagn.tk, 1 sparx.dog, 1 spasem-park.tk, 1 -spasicilia.it, 1 spass.info, 1 spasskellner-comedykellner.ch, 1 spatialflunky.one, 1 +spatialnom.com, 1 spatiugratis.tk, 1 spatter.cf, 1 spatter.tk, 1 @@ -138162,7 +137690,6 @@ spiritgruppen.no, 1 spirithouse.com, 1 spiritindia.com, 1 -spiritinthesky.com, 1 spiritmeaning.org, 1 spiritous.cf, 1 spiritscorp.ddns.net, 1 @@ -138190,7 +137717,6 @@ splconsulenza.it, 1 spleis.no, 1 splendadent.it, 1 -splendidaccounts.pk, 1 splendorservizi.it, 1 splex.com, 1 spli.co, 1 @@ -138267,13 +137793,11 @@ sport-socken.net, 1 sport-tv-guide.live, 1 sport24.by, 1 -sport4sd.com, 1 sportabatese.tk, 1 sportabee.com, 0 sportadictos.com, 1 sportal.se, 1 sportalliance.com, 1 -sportausbildung.com, 1 sportbikeadventures.com, 1 sportboot.mobi, 1 sportcal.com, 1 @@ -138284,10 +137808,8 @@ sportcompactwarehouse.com, 1 sportcucc.hu, 1 sportda.tk, 1 -sporte3q.com, 1 sportedy.com, 1 sportencultuurintrobreda.nl, 1 -sporter.com.hr, 1 sportfair.it, 1 sportfits.at, 1 sportfits.de, 1 @@ -138305,7 +137827,6 @@ sportli.cz, 1 sportli.sk, 1 sportlinks.tk, 1 -sportllux.com.br, 1 sportlogiq.com, 1 sportmall.ir, 1 sportmedia.ga, 1 @@ -138342,7 +137863,6 @@ sportsmania.tk, 1 sportsmansblog.com, 1 sportsmashup.com, 1 -sportsmax.tv, 1 sportsnacklove.com, 1 sportsnewss.site, 1 sportspainmanagementnyc.com, 1 @@ -138368,6 +137888,7 @@ sportwettenschweiz.net, 1 sportygirlsjewels.ga, 1 sportztalk.com, 1 +sporyayinevi.com, 1 spot-cleaner.tk, 1 spot-pro.jp, 1 spotifycodes.com, 1 @@ -138415,7 +137936,6 @@ spraypolyurethane.org, 1 spreadgreatideas.com, 1 spreadgreatideas.org, 1 -spreadsheetconverter.co, 1 spreadsheets.google.com, 1 spreadshirt.at, 1 spreadshirt.be, 1 @@ -138478,7 +137998,6 @@ spritmonitor.de, 1 spritsail.io, 1 sprizzy.com, 1 -sprkvapors.com, 1 sprock.io, 0 sprocktech.com, 1 sprogress.uz, 1 @@ -138773,7 +138292,6 @@ ssentinel.com, 1 sserc.ca, 1 ssetechnologies.com, 1 -ssf.no, 0 ssfca.gov, 1 ssh-keys.online, 1 ssh-vault.com, 1 @@ -138813,12 +138331,10 @@ sslmonitor.eu, 1 sslmonkey.net, 1 sslok.com, 0 -sslping.com, 1 sslpod.com, 1 sslpoint.com, 1 ssls.cz, 1 sslsecureproxy.com, 1 -sslseller.com, 1 sslsurvey.de, 1 ssltrus.com.cn, 1 ssm-techmarketing.tk, 1 @@ -138868,6 +138384,7 @@ st-shakyo.jp, 1 st-sleek.com, 1 st-steuern.de, 1 +st3tailor.com.br, 1 st42.fr, 1 staaldart.tk, 1 staatdesinternets.nl, 1 @@ -139056,7 +138573,6 @@ stamperdle.com, 1 stampinggroundky.gov, 1 stampix.com, 1 -stampli.com, 1 stamppadinks.com, 1 stampsbar.co.uk, 0 stamurai.com, 1 @@ -139103,7 +138619,6 @@ standoff-magic.ru, 1 standoffarena.com, 1 standoffdrop.ru, 1 -standrewsbookshop.co.uk, 1 standsearch.cf, 1 standupcomedy.cf, 1 standupcomedy.ga, 1 @@ -139142,6 +138657,7 @@ star-clean.it, 1 star-darom.co.il, 1 star-life.tk, 1 +star-matrimony.com, 1 star-one.co.uk, 1 star.my.id, 1 star.watch, 1 @@ -139154,6 +138670,7 @@ starburns.audio, 1 starbusiness.ml, 1 starbyte.co.uk, 1 +starchild.uk, 1 starcitizen.tools, 1 starcitizenreferral.codes, 1 starcity.bg, 1 @@ -139162,6 +138679,7 @@ starcomproj.com, 1 starcraftsource.tk, 1 starcroisieres.com, 1 +starcubix.com, 1 starcys.xyz, 1 stardanceacademy.net, 1 stardate.org, 1 @@ -139196,7 +138714,6 @@ starinc.xyz, 1 staring.tk, 1 staringer.net, 1 -starinsights.com, 1 starka.st, 1 starkbim.com, 1 starking.net.cn, 1 @@ -139283,7 +138800,6 @@ startmail.com, 1 startner.com, 1 startnowcornwall.org.uk, 1 -startpage.com, 1 startpage.info, 1 startpage4u.tk, 1 startplats.tk, 1 @@ -139484,7 +139000,6 @@ stdnet.ru, 1 stdssr.com, 1 ste2.de, 1 -stea-web.com, 1 steacy.tech, 1 steak-kojiro.com, 1 steakovercooked.com, 1 @@ -139565,7 +139080,6 @@ stefaanoyen.be, 1 stefamedia.com, 1 stefan-bayer.eu, 1 -stefan-henning.de, 1 stefan-karstens.de, 1 stefan-rothe.ch, 1 stefan-schlueter.de, 1 @@ -139602,6 +139116,7 @@ stehlik.co.uk, 1 stehlik.sk, 1 steigerlegal.ch, 1 +steilundfrech.agency, 1 steinbach.ai, 1 steinbrich.eu, 1 steiner-dominik.at, 1 @@ -139620,6 +139135,7 @@ stek-usa-shop.com, 1 stek-usa.com, 1 stekelenburg.me, 1 +steklein.de, 1 stel-stroi.com, 1 steleentechnischevraag.com, 1 steleentechnischevraag.eu, 1 @@ -139680,7 +139196,6 @@ stenhojmedia.dk, 1 stening.co, 1 steno.nl, 1 -stenstromen.se, 1 stenvallmcclain.tk, 1 stenzhorn-cloud.de, 1 steolo.com, 1 @@ -139771,7 +139286,6 @@ sternplastic.com, 1 sternsinus.com, 1 sternstrailer.com, 1 -steroide-legal.fr, 1 steroids.ga, 1 steroidswiki.com, 1 sterr.in, 1 @@ -139801,7 +139315,6 @@ stevebuck.tk, 1 stevecostar.com, 1 stevedoggett.com, 1 -steveellwood.com, 1 stevegellerhomes.com, 0 stevegrav.es, 1 steveherlihyphotography.com, 1 @@ -139820,6 +139333,7 @@ stevengrech.com, 1 stevenjacobs.be, 1 stevenjacobs.eu, 1 +stevenkendypierre.com, 1 stevenkobes.com, 1 stevenmdriving.co.uk, 1 stevenroddis.com, 1 @@ -139847,7 +139361,6 @@ stevewillshaulage.co.uk, 1 stevezheng.cf, 1 stevezheng.tk, 1 -stevezone.in, 1 steviate.com, 1 steviate.de, 1 stevin.com, 1 @@ -140073,7 +139586,6 @@ stn.me.uk, 0 stnews.ga, 1 stnl.de, 0 -stnonline.com, 1 stntrading.eu, 1 sto-garant.nl, 1 sto.ca, 1 @@ -140177,7 +139689,6 @@ stonefusion.org.uk, 1 stonegatewealth.com, 0 stonegray.ca, 1 -stonehamlanesurgery.co.uk, 1 stonehammerhead.org, 1 stonehurstcap.com, 1 stonemain.eu, 1 @@ -140196,6 +139707,8 @@ stoneypointlife.com, 1 stoningtonboroughct.gov, 1 stonkslab.com, 1 +stonnaltd.com, 1 +stonnastructures.co.uk, 1 stonsil.com, 1 stonystratford.org, 1 stoom-stichting.nl, 1 @@ -140233,7 +139746,6 @@ stopfraud.gov, 1 stoph.at, 1 stopka.tk, 1 -stopkadr-studio.ru, 1 stopkimailowe.pl, 1 stoplossoff.tk, 1 stopmetbellen.be, 1 @@ -140304,7 +139816,6 @@ storillo.com, 1 storin.nl, 1 storipress.com, 1 -storipress.pro, 1 storistalker.com, 1 storj.io, 1 storjar.com, 1 @@ -140505,7 +140016,6 @@ stratuscloudconsulting.net, 1 stratuspayments.net, 1 stratussc.com, 1 -straubis.org, 1 straubs.eu, 1 strauss-advisor.de, 1 strauss.eu.com, 1 @@ -140558,7 +140068,6 @@ streamfood.tv, 1 streamgifter.com, 1 streamgoalandres.ml, 1 -streaming-download.net, 1 streamkino.cz, 1 streamlinecarwash.com, 1 streamlinedprocesses.com, 1 @@ -140650,7 +140159,6 @@ strijdmeevoorvrede.gent, 1 strijkkraal.tk, 1 strijkshop.be, 1 -strike.money, 1 strikeone.io, 1 strikeout.ga, 1 strikers.cf, 1 @@ -140668,6 +140176,7 @@ striptizer.tk, 1 stritai.ru, 1 strixmusic.com, 1 +strizh.com.ua, 1 strl-tunis.tk, 1 strm.pl, 1 strobe.cool, 1 @@ -140686,6 +140195,7 @@ stroimsami.tk, 1 stroimvse.ml, 1 stroiproect.tk, 1 +strojar.com, 1 strojmaster.tk, 1 strokesb.store, 1 strokesurvivor.nz, 1 @@ -140735,6 +140245,7 @@ stroyka2001.kh.ua, 1 stroykomi.tk, 1 stroymart.bg, 1 +stroymex.online, 1 stroynet.ml, 1 stroyservice-tver.ru, 1 strozik.de, 1 @@ -140753,7 +140264,6 @@ strypsteen.com, 1 strypsteen.me, 1 strzelcy.org.pl, 1 -sts-consulting.it, 1 stscecyteo.org, 1 stsen.de, 1 stsolarenerji.com, 1 @@ -140792,6 +140302,7 @@ stuc-groep.nl, 1 stuccokingsfl.com, 1 stuckateur-bruno.de, 0 +stuckateur-weber.de, 1 stucki-bagger.ch, 1 stuckwithme.tk, 1 stucydee.nl, 1 @@ -141099,7 +140610,6 @@ subarupartsdeal.com, 1 subarus.tk, 1 subaruxv.pl, 1 -subastasdecarros.net, 1 subbacultcha.tk, 1 subdev.org, 1 subdimension.org, 1 @@ -141117,7 +140627,6 @@ sublimacaoshop.com.br, 1 sublimated.tk, 1 sublimesurface.fr, 1 -sublimetours.com, 1 sublimigeek.fr, 1 subliminalrecorder.com, 1 subliminalrecordingsystem.com, 1 @@ -141144,7 +140653,7 @@ subsistencematters.net, 1 subsitude.tk, 1 subsoft.tk, 1 -subspace.institute, 1 +subspace.institute, 0 substanceandprogram.info, 1 substances.be, 1 substitutealert.com, 1 @@ -141181,7 +140690,6 @@ succmy.wang, 1 succorfish.net, 1 succubus.network, 1 -succubus.to.md, 1 succubus.xxx, 1 succulentplantguru.com, 1 succulenty.ru, 1 @@ -141229,6 +140737,7 @@ sudrania.com, 1 sudsitupwash.com, 1 sudtirol.com, 1 +sudya-dredd.ru, 1 sudzsation.com, 1 suecaunitedfc.tk, 1 suedtirolerhotels.it, 1 @@ -141283,6 +140792,7 @@ suguo.vip, 1 suhost.com.br, 1 suhost.site, 1 +suhsport.es, 1 suicide.gq, 1 suicidegirls.cf, 1 suicidepreventioncenter.tk, 1 @@ -141291,7 +140801,6 @@ suigen.jp, 1 suijo-bus.osaka, 1 suikerspinnetje.nl, 1 -suisjeclean.fr, 1 suisui.stream, 1 suite.li, 1 suite360sel.org, 1 @@ -141482,7 +140991,7 @@ sunderland.ac.uk, 1 sunderlandmoneyman.com, 1 sundeskole.no, 1 -sundhedsdatastyrelsen.dk, 1 +sundhedsdatastyrelsen.dk, 0 sundhedsvejen.dk, 1 sundialpowdercoating.com, 1 sundiel.tk, 1 @@ -141513,7 +141022,6 @@ sunmail.uk, 1 sunmantechnology.com, 1 sunmeiren.com, 1 -sunmetis.com, 1 sunn.ie, 1 sunnuntaileivonta.fi, 1 sunnuntaimargariini.fi, 1 @@ -141572,7 +141080,6 @@ sunsquare.cz, 1 sunstar.bg, 1 sunstyl.fr, 1 -sunsumba.com, 1 sunsun-jewelry.com, 1 sunsun.co, 1 sunsun.com.sg, 1 @@ -141661,7 +141168,6 @@ supercalorias.com, 1 supercarpets.ru, 1 supercarrot.tk, 1 -supercarweek.com, 1 supercastlesadelaide.com.au, 1 supercastlesbrisbane.com.au, 1 supercastlesmelbourne.com.au, 1 @@ -141812,6 +141318,7 @@ supplementpolice.tk, 1 supplementwarehouseonline.com, 1 supplhi.com, 1 +supplierlinkup.com, 1 suppliersession2021.com, 1 supplies24.at, 1 supplies24.es, 1 @@ -141845,7 +141352,7 @@ supremecarnage.de, 1 suprememale.tk, 1 supremeslumber.com.au, 1 -supremestandards.com, 0 +supremevi.com, 1 suprintbot.xyz, 0 supriville.com.br, 1 supropionegocio.tk, 1 @@ -141875,6 +141382,7 @@ surfbluewave.com, 1 surfcoastendoscopy.com, 1 surfenergy.tk, 1 +surfinglisbon.com, 1 surfingshare.com, 1 surfkath.de, 1 surflessonslisbon.com, 1 @@ -141988,11 +141496,9 @@ sustainabilityknowledgegroup.com, 1 sustainabilitysociety.hk, 1 sustainablefibre.org, 1 -sustainableputnam.org, 1 sustainableux.com, 1 sustainableweb.dk, 1 sustainalists.com, 1 -sustainalytics.com, 0 sustained.tk, 1 sustaineukraine.org, 1 sustainimum.com, 1 @@ -142005,7 +141511,6 @@ sustc.ac.cn, 1 susthx.com, 1 susumulus.ml, 1 -suswhw.top, 0 sut-b.de, 1 sutabi.tk, 1 suter.au, 1 @@ -142071,7 +141576,6 @@ sv.search.yahoo.com, 0 sv1862ruesselsheim.de, 0 sv1880-lichtenau.de, 0 -sv388.bz, 1 sv443.net, 1 svager.cz, 1 svak-gutachter.de, 0 @@ -142080,7 +141584,9 @@ svantner.sk, 1 svarga.ua, 1 svarka22.ml, 1 +svarka24.com.ua, 1 svarka26.gq, 1 +svarmax.com.ua, 1 svarovani.tk, 1 svasse.nl, 1 svatba.cf, 1 @@ -142107,7 +141613,6 @@ svendgram.com, 1 svendubbeld.nl, 1 sveneckelmann.de, 1 -svenhammond.com, 1 svenjaundchristian.de, 1 svenljunga.se, 1 svenmuller.com, 1 @@ -142143,7 +141648,7 @@ svetplast.spb.ru, 0 svetrelaxu.cz, 1 svetserialov.to, 1 -svev.no, 1 +svev.no, 0 svfitness.ru, 1 svg-board.ml, 1 svg.beauty, 0 @@ -142175,6 +141680,7 @@ svolby.cz, 1 svorcikova.cz, 1 svorkmofotball.tk, 1 +svoya-energy.com.ua, 1 svportalframe.com, 1 svrjs.link, 1 svrjs.org, 1 @@ -142233,7 +141739,6 @@ swargvibha.tk, 1 swarlys-server.de, 1 swarovskijewelry.tk, 1 -swarovskiwaterschool.com, 1 swat.io, 1 swat4stats.com, 1 swataratwpauthority-pa.gov, 1 @@ -142362,7 +141867,6 @@ swindontennisclub.org, 1 swineson.me, 1 swing.berlin, 1 -swingcompleto.com, 0 swingerclub.in, 1 swingers.com.pt, 1 swingle.ga, 1 @@ -142436,6 +141940,7 @@ swktestserver.tk, 1 swmlink.com, 1 swn-nec.de, 1 +swngrs.nl, 1 swocaoh.gov, 1 swoop-qa.cloud, 1 swoop-support.com, 1 @@ -142610,6 +142115,7 @@ synecek11.cz, 1 synedat.com, 1 synel.co.il, 1 +synel.co.uk, 1 synergiamedicalcare.es, 1 synergiedenken.de, 1 synergisticsoccer.com, 1 @@ -142622,6 +142128,7 @@ synetiq.co.uk, 1 synfrait.com, 1 synitsa.tk, 1 +synlab-recrute.fr, 0 synlab.es, 1 synology-distribution.de, 1 synonimluksusu.pl, 1 @@ -142644,7 +142151,6 @@ synthezis.tk, 1 synthgularity.net, 1 synthpop.ai, 1 -synthroidpills.com, 1 syntia.tk, 1 syntric.io, 1 synuosity.com, 1 @@ -142698,6 +142204,7 @@ sysconautomation.com, 1 syscoon.com, 1 sysctl.se, 1 +syscurve.com, 1 sysdb.io, 1 sysdig.com, 1 syselg.com, 1 @@ -142731,10 +142238,6 @@ system.is, 1 system.md, 1 system4travel.com, 1 -system4u.com, 1 -system4u.cz, 1 -system4u.eu, 1 -system4u.sk, 1 systemart.pro, 1 systematic-momo.com, 1 systematic-momo.dk, 1 @@ -142751,6 +142254,7 @@ systeminformer.com, 1 systemintegra.ru, 0 systemisbusy.info, 1 +systemlead.pl, 1 systemli.org, 1 systemofmedicine.com, 1 systemology.com, 1 @@ -142818,7 +142322,6 @@ sziluett.xyz, 1 szimpla.hu, 1 szklarnia.pro, 1 -szkolajazdykaleta.pl, 1 szkolenia-dron.pl, 1 szkoleniadekarzy.pl, 1 szlovaknyelv.hu, 1 @@ -142842,7 +142345,6 @@ sztuanzi.top, 1 sztyup.com, 1 szuecs.net, 1 -szw-hessen.de, 1 szwrc.co, 1 szww99.cc, 1 szybkaekipa.pl, 1 @@ -142862,7 +142364,6 @@ t-moon.hr, 1 t-network.nl, 1 t-op1.com, 1 -t-op10.com, 1 t-op6.com, 1 t-op7.com, 1 t-op8.com, 1 @@ -143000,7 +142501,6 @@ tablascreek.com, 1 table.media, 1 tableandhearth.com, 1 -tableconvert.com, 1 tabledown.ga, 1 tabledusud.be, 1 tabledusud.nl, 1 @@ -143022,7 +142522,6 @@ tablettes-tactiles.tk, 1 tablosec.com, 1 tably.com, 1 -tablyrics.com, 1 taboomale.com, 1 tabordaadvogados.ga, 1 taborsky.cz, 1 @@ -143060,6 +142559,7 @@ tactile.love, 1 tactportal.com, 1 tactus.nl, 1 +tad.ua, 1 tadaaam.studio, 1 tadabase.io, 1 tadalafil-tablets.tk, 1 @@ -143080,7 +142580,6 @@ taelman.be, 1 taetomeister.de, 1 tafcares.org, 1 -tafeil.net, 1 taffe-elec.com, 1 tafnervotacao.com.br, 1 tafp3.ga, 1 @@ -143207,7 +142706,6 @@ tajniy-smisl.ml, 1 tajniy-smisl.tk, 1 tajper.pl, 1 -tajr.shop, 1 tajtandoori.co.uk, 1 tajtowereg.com, 1 tak-it.nl, 1 @@ -143250,6 +142748,7 @@ takepicturesleavefootprints.com, 1 takeshi.cz, 1 takestars.tk, 1 +taketecnologia.com.br, 1 takethatspainfanclub.tk, 1 takeuchi-naika.com, 1 takeyourpic.co.uk, 1 @@ -143278,6 +142777,7 @@ takshni.com, 1 taksihesaplama.com, 1 taksit.dz, 1 +taksitexpress.dz, 1 taktak.co.uk, 0 taktika.tk, 1 takuhai12.com, 1 @@ -143322,7 +142822,6 @@ talentplatform.com, 1 talentplatform.eu, 1 talentplatform.us, 1 -talentsplit.com, 1 talentuar.com, 1 talentwall.io, 1 taler.net, 1 @@ -143356,7 +142855,7 @@ talklikeyodaday.tk, 1 talkmojang.club, 1 talknetwork.ru, 1 -talkreal.net, 1 +talkreal.net, 0 talks.run, 1 talkscope.cf, 1 talkscope.ml, 1 @@ -143394,7 +142893,6 @@ talpurwadalions.tk, 1 taltech.ee, 1 talusan.tk, 1 -talxis.com, 1 tam-moon.com, 1 tam-safe.com, 1 tam7t.com, 0 @@ -143413,6 +142911,8 @@ tambayology.com, 1 tambo.es, 1 tamboa.com, 1 +tambola.live, 1 +tambosi-odeonsplatz.de, 1 tambourdegille.be, 1 tambov.cf, 1 tambov.tk, 1 @@ -143450,7 +142950,6 @@ tampa.gov, 1 tampabaybusinesslistings.com, 1 tampabayhistorycenter.org, 1 -tampabayhometours.info, 1 tampacific.net, 1 tampacific.vn, 1 tampaexplorer.ml, 1 @@ -143461,7 +142960,6 @@ tamrielcraft.tk, 1 tamronhallshow.com, 1 tamsulosin.gq, 1 -tamuraei.co.jp, 1 tamylove.net, 1 tan90.tw, 1 tanabekensetsu.co.jp, 1 @@ -143478,7 +142976,6 @@ tandartszilverschoon.nl, 1 tandblekningidag.com, 1 tandcr.com, 1 -tandem-trade.ru, 0 tandem.team, 1 tandemexhibits.com, 0 tandempartnerships.com, 0 @@ -143612,7 +143109,6 @@ tapetenresonanz.de, 1 tapinto.net, 1 tapirs.jp, 1 -tapis-souris-gamer.fr, 1 taplemon.at, 1 taplemon.com, 1 tapmat.com, 1 @@ -143636,6 +143132,7 @@ taraiid.com, 1 tarakan-klopik.tk, 1 taraksarkar.tk, 1 +taran.ua, 1 taranagar.tk, 1 tarantino.tk, 1 tarantul.org.ua, 1 @@ -143673,7 +143170,6 @@ tarhunfirin.com, 1 tarif-pellets.fr, 1 tarife.at, 1 -tariff.cc, 1 tarihpedia.com, 1 tarihvakti.com, 1 tarija.tk, 1 @@ -143761,7 +143257,6 @@ tasports2043.com.au, 1 tassweb.com.au, 1 taste2travel.com, 1 -tastebudsmarketing.com, 1 tastedrecipes.com, 1 tastefullyminimalist.com, 1 tastehungary.com, 1 @@ -143815,7 +143310,6 @@ tatteredatlastales.com, 1 tattoo-art.tk, 1 tattoo-family.com, 1 -tattoo.blog.br, 1 tattoo.roma.it, 1 tattoocorina.tk, 1 tattooidee.nl, 1 @@ -143886,7 +143380,7 @@ tavr.org.tw, 1 tavsiyeforumu.com, 1 tavsys.net, 1 -tawanienterprises.com, 1 +tavukdiyari.net, 1 tawzea.com, 0 tax-brain.net, 1 tax-guard.com, 1 @@ -143918,7 +143412,7 @@ taxi7.be, 1 taxialcmaria.nl, 1 taxibiz.ga, 1 -taxibruxelles24.be, 1 +taxibruxelles24.be, 0 taxicollectif.ch, 0 taxid-k.be, 1 taxihat.co.il, 1 @@ -143991,7 +143485,6 @@ tbid.gov, 1 tbird-q.com, 1 tbitc.ch, 1 -tbksp.org, 1 tbkwatch.co.za, 1 tbkwatch.com, 1 tbkwatch.org.za, 1 @@ -144059,11 +143552,13 @@ tchnics.de, 1 tcholet.com, 1 tchoukball.ch, 0 +tchouktchouk-baroum.fr, 1 tci-style.pl, 1 tci-thaijo.org, 0 tciit.pl, 1 tcit.fr, 0 tcj.ir, 1 +tcl.sh, 1 tcmk-tomsk.ru, 1 tcn.news, 1 tcnapplications.com, 1 @@ -144109,7 +143604,6 @@ tdmclinic.com, 1 tdn.com, 1 tdolar.com, 1 -tdor.co, 1 tdos.com, 1 tdr.today, 1 tdrcartuchos.com.br, 1 @@ -144143,6 +143637,7 @@ teachbase.ru, 1 teachbiz.net, 1 teachercall.kr, 1 +teachercreatedmaterials.com, 0 teachermommylife.com, 1 teachernewsbd.com, 1 teacherph.com, 1 @@ -144250,6 +143745,7 @@ teamliquidstarleague.com, 1 teammateworld.com, 1 teammojo.org, 1 +teammotorcycle.com, 1 teamninjaapp.com, 1 teamnissannorthparts.com, 1 teamos.tk, 1 @@ -144364,6 +143860,7 @@ teazer.tk, 1 teb-akademia.pl, 1 teb-x-1.com, 1 +tebebo.com, 1 teber.av.tr, 1 tebian.tk, 1 tebianco.net, 1 @@ -144413,7 +143910,6 @@ tech4founders.co, 1 tech4greece.gr, 1 tech506.com, 1 -tech86.com.br, 1 techaachen.de, 1 techalert.net, 1 techangel.tk, 1 @@ -144690,7 +144186,6 @@ techs.cf, 1 techsalot.com, 1 techsat.tk, 1 -techsaviours.online, 1 techsaviours.org, 1 techsecrets.tk, 1 techsee.me, 1 @@ -144737,7 +144232,6 @@ techwizard.it, 1 techwolf12.nl, 1 techwords.io, 1 -techxperts.tech, 1 techzant.com, 1 techzero.cn, 1 techzjc.com, 0 @@ -144787,6 +144281,7 @@ tecnosafra.com.br, 1 tecnoticiasdigitales.tk, 1 tecnotrattamenti.it, 1 +tecnovernicisrl.com, 1 tecnyal.com, 1 tecon.co.at, 1 tecorrs.tk, 1 @@ -144806,7 +144301,6 @@ tedamos.com, 1 tedamos.de, 1 tedankara.k12.tr, 1 -tedcell.com.br, 1 teddax.com, 1 tedder.cc, 1 teddit.net, 1 @@ -144851,7 +144345,6 @@ teenmoviesgallery.ga, 1 teenoverload.com, 1 teenpinkvideos.com, 1 -teenpussypornvid.com, 1 teenringen.nl, 1 teensexgo.com, 1 teensifynews.tk, 1 @@ -144878,7 +144371,6 @@ teeworlds-friends.de, 1 tefek.cz, 1 teffcoshop.com, 1 -tefline.ir, 1 tefly-frhaty.com, 1 tefoley.com, 1 tefwin.cf, 1 @@ -144933,7 +144425,6 @@ tekmarc.com, 1 tekme.pt, 1 teknashop.com, 1 -teknene.com, 1 teknik-sipil.tk, 1 teknikaldomain.me, 1 tekniksnack.se, 1 @@ -145046,7 +144537,6 @@ telent.com, 1 teleogistic.net, 1 teleoposiciones.es, 1 -telepedia.pl, 0 telephonedirectories.us, 1 telephoni-cdma.tk, 1 telepilote-academy.fr, 1 @@ -145059,9 +144549,8 @@ teleportweb.com.br, 1 teleradio.ga, 1 teleradio.tk, 1 -teleroute.com, 1 +teleroute.com, 0 telesales.guru, 1 -teleserce.com, 1 teleshkronja.ml, 1 teleshop.be, 1 teleskell.org, 1 @@ -145122,13 +144611,13 @@ telpotas.xyz, 1 telrock.com, 1 telsu.fi, 1 -teltru.com, 1 telugu4u.net, 1 tely360.com, 1 temaflex.tk, 1 temakel.com, 1 temariosoposiciones.tk, 1 tematicas.org, 1 +tembusulaw.com, 1 temdu.com, 0 temertysimcentre.com, 1 temirgaliev.tk, 1 @@ -145147,6 +144636,7 @@ temonews.org, 1 temp-lars.army, 1 temp.pm, 1 +tempa.com.ua, 1 tempdomain.ml, 1 tempdomain.tk, 1 tempefestivalofthearts.com, 1 @@ -145158,6 +144648,7 @@ template-help.fr, 1 templated.ga, 1 templatetrip.com, 1 +temple-eikando.fr, 1 templeandalucia.tk, 1 templelawreview.org, 1 templenh.gov, 1 @@ -145204,7 +144695,6 @@ tendanceaumasculin.fr, 1 tendanceouest.com, 1 tendapk.com, 1 -tendaqu.com, 1 tende.roma.it, 1 tender.run, 1 tendergrupp.ru, 1 @@ -145247,7 +144737,6 @@ tenniscritic.ga, 1 tennismania.tk, 1 tennismindgame.com, 1 -tennisnerd.net, 1 tennisnyi-stol.tk, 1 tennispensacola.com, 1 tennisportal.com.ua, 1 @@ -145322,7 +144811,6 @@ teran.me, 1 teran.pw, 1 teran.ru, 1 -teranacreative.com, 1 terapeutbooking.dk, 1 terapeuticaenalza.es, 1 terapiaradial.tk, 1 @@ -145332,8 +144820,6 @@ teraservice.eu, 1 teraservice.ml, 1 terass.com, 0 -terastekno.com, 1 -teratherm-energy.com, 1 terbaruberita.id, 1 terbium.ai, 1 terborg600.nl, 1 @@ -145346,6 +144832,7 @@ terenska-edinica.tk, 1 terento.org, 1 teritwarsj.org, 1 +teriva.ua, 1 term-master.ru, 1 terma.ml, 1 termator.com, 1 @@ -145385,7 +144872,6 @@ terovania.de, 1 terovania.games, 1 terpelpanama.com, 1 -terpotiz.eu, 1 terpotiz.net, 1 terra-med.ga, 1 terra-x.net, 1 @@ -145488,7 +144974,6 @@ teslamagician.com, 1 teslamate.ca, 1 teslasuit.io, 1 -teslatr.net, 1 tesorion.nl, 1 tespent.cn, 1 tesseract.wiki, 1 @@ -145634,9 +145119,6 @@ teutonia-grossenlueder.de, 1 teutonia08.de, 1 teva.com, 1 -teva.ru, 1 -tevapharm.com, 1 -tevausa.com, 1 teveblad.be, 1 teverzamelen.nl, 1 tewarilab.co.uk, 1 @@ -145688,9 +145170,7 @@ texnolog.tk, 1 texnotroniks.tk, 1 texosmotr.tk, 1 -text-to-image.ir, 1 text-to-video.ir, 1 -text-to-voice.ir, 1 text.is, 1 textadventure.tk, 1 textassistant.ga, 1 @@ -145769,7 +145249,6 @@ tfx.com.br, 1 tfxstartup.com, 1 tfxstartup.com.br, 1 -tfyre.co.za, 1 tg.pe, 1 tg2sclient.com, 1 tgb.org.uk, 1 @@ -145946,7 +145425,6 @@ the-winx.tk, 1 the-woods.org.uk, 1 the-world.tk, 1 -the-zenti.de, 1 the.fo, 1 the.gd, 1 the1.wiki, 1 @@ -145968,7 +145446,7 @@ theadamsonchronicle.tk, 1 theaddresses.com, 1 theadelaideshow.com.au, 1 -theadpharm.com, 1 +theadpharm.com, 0 theadultswiki.com, 1 theafleo.ga, 1 theafleo.gq, 1 @@ -146153,10 +145631,10 @@ theboysrepublic.tk, 1 thebracelife.com, 1 thebrag.com, 1 +thebrainfactory.eu, 1 thebraininitiative.gov, 1 thebrainwash.tk, 1 thebranddesign.gq, 1 -thebreakroom.org, 1 thebrewingtonfamily.net, 1 thebridalcollection.com, 1 thebridalstudioutah.com, 1 @@ -146183,7 +145661,6 @@ theburr.com, 1 theburst.tk, 1 thebus.top, 1 -thebusinessrelocationcoach.com, 0 thebusinesssoiree.com, 1 thebutterflyencounters.com, 1 thebuttongame.io, 1 @@ -146204,7 +145681,6 @@ thecarolingconnection.com, 1 thecarpenters.tk, 1 thecarphunter.tk, 1 -thecarriagerooms.com, 1 thecarwizusa.com, 1 thecatanddogbowl.au, 1 thecatbowl.com.au, 1 @@ -146228,6 +145704,7 @@ thecheat.tk, 1 thecheese.co.nz, 1 thechels.uk, 1 +thechelseadrugstore.ie, 1 thechemistryisdead.tk, 1 thecherryship.ch, 0 thechfdietitian.com, 1 @@ -146374,14 +145851,12 @@ thedronechart.com, 1 thedroneely.com, 1 theduchessbudapest.com, 1 -thedvc.org, 1 thedysfunctionalangel.cf, 1 thedysfunctionalangel.ga, 1 thedysfunctionalangel.gq, 1 thedysfunctionalangel.ml, 1 theeagle.com, 1 theebookkeepers.co.za, 1 -theeducationalequalityinstitute.org, 1 theeducatoronline.com, 1 theeffingyogablog.com, 1 theegyptblog.tk, 1 @@ -146401,7 +145876,6 @@ theepankar.com, 1 theepicsponge.co.uk, 1 theepicstorm.com, 1 -theequinepractice.com, 1 theerneshot.com, 1 theertcexperts.net, 1 theescapegame.com, 1 @@ -146467,7 +145941,6 @@ thefoot.tk, 1 thefordhamram.com, 1 theforkedspoon.com, 1 -theformtool.com, 1 thefountain.eu, 1 thefox.com.fr, 1 thefoxai.com, 1 @@ -146504,6 +145977,7 @@ thegamecave.co.uk, 1 thegamecollector.tk, 1 thegamekitchen.com, 1 +thegamesroom.tv, 1 thegantars.tk, 1 thegasshop.co.uk, 0 thegasshop.uk, 0 @@ -146602,7 +146076,7 @@ thehofstrachronicle.com, 1 thehollandfam.com, 0 theholloways.tk, 1 -thehomebakery.ie, 1 +thehomebakery.ie, 0 thehomemademasks.com, 1 thehomeofthefuture.com, 1 thehomeschoolsupplyco.com, 1 @@ -146663,6 +146137,7 @@ theixiangrand.gr, 1 thejacksoninstitute.com.au, 1 thejakartapost.com, 1 +thejewelhut.co.uk, 1 thejkdrebel.com, 1 thejoaustralia.com, 1 thejobhackers.org, 1 @@ -146677,7 +146152,6 @@ thekalakriti.tk, 1 thekeralastore.co.uk, 1 thekev.in, 1 -thekevinwang.com, 1 thekickassvirtualassistant.nl, 1 thekidszone.in, 1 thekillertoxin.de, 1 @@ -146729,7 +146203,6 @@ thelightbulbproject.tk, 1 thelightingstore.co.uk, 1 thelightpoints.eu, 1 -thelinfieldreview.com, 1 thelinknews.net, 1 thelinuxspace.com, 1 thelionsny.com, 1 @@ -146757,9 +146230,7 @@ theloves.com, 1 thelowell.org, 1 thelwallrangers.tk, 1 -themacateam.com, 1 themachinestarts.com, 1 -themacios.com, 1 themacollection.com, 1 themacweekly.com, 1 themadlabengineer.co.uk, 1 @@ -146895,7 +146366,6 @@ theo546.ovh, 1 theoakageexperiment.com, 1 theobg.co, 1 -theobmcircle.com, 1 theobromos.fr, 0 theoc4ever.tk, 1 theocharis.org, 1 @@ -146996,7 +146466,6 @@ thephoenixdg.com, 1 thephoenixsociety.org, 1 thephp.cc, 1 -thephwa.com, 1 thepiabo.ovh, 0 thepieslicer.com, 1 thepigwrestlers.com, 1 @@ -147005,10 +146474,8 @@ thepilotwoman.gq, 1 thepilotwoman.ml, 1 thepinecones.tk, 1 -thepioneeronline.com, 1 thepioneersgame.com, 1 thepiratebay.cf, 1 -thepiratebay.net, 1 thepiratesociety.org, 1 thepiratetourism.life, 1 thepitsurfhire.co.uk, 1 @@ -147031,6 +146498,7 @@ thepostflow.com, 1 thepowerboys.tk, 1 theprairienews.com, 1 +thepreachersportal.org, 1 thepressleygirls.com, 1 thepressurewashingdirectory.com, 1 thepriceisright.tk, 1 @@ -147236,6 +146704,7 @@ thesimplewebcompany.com, 1 thesimpsonian.com, 1 thesimsbrasil.tk, 1 +thesingaporelawyer.com, 1 thesingular.com, 1 thesinhalanews.lk, 1 thesipher.tk, 1 @@ -147245,10 +146714,8 @@ thesissurvey.gq, 1 thesistraffic.com, 1 thesiterank.com, 1 -theskepticalreviewarchive.com, 1 theskingym.co.uk, 1 theskiweek.com, 1 -thesled.net, 1 thesleepdoctor.com, 0 thesmartconsumer.com, 1 thesocialitefamily.com, 0 @@ -147261,7 +146728,6 @@ thesouthern.com, 0 thesoutherneronline.com, 1 thesouthfirst.com, 1 -thesouthride.com, 1 thespacegame.tk, 1 thespanishcollection.com, 1 thespanishcollection.es, 1 @@ -147290,8 +146756,8 @@ thestudioflasscottage.co.uk, 1 thestudioslucan.com, 1 thestudylink.com, 1 -thestyle.city, 1 thestylebouquet.com, 1 +thesubsequent.com, 1 thesubstitute.nl, 1 thesuffolkjournal.com, 1 thesugargirls.com, 1 @@ -147313,7 +146779,6 @@ thetapirsmouth.com, 1 thetassos.com, 1 thetattooedpreacher.com, 1 -theteaaffair.com, 1 theteaguemovie.tk, 1 thetebodifference.com, 1 thetechdude.ga, 1 @@ -147322,7 +146787,6 @@ theterramarket.com, 1 thetfordtwpmi.gov, 1 thetfordvt.gov, 1 -thethailandlife.com, 1 thetherapist.tk, 1 thethinktankpodcast.co, 1 thethoughtcatalogs.com, 1 @@ -147483,7 +146947,6 @@ theworldoftailor.com, 1 theworldreimagined.org, 1 theworldsend.eu, 1 -theworldswaiting.com, 1 theworldtakes.tk, 1 theworser.tk, 1 thewraithmovie.tk, 1 @@ -147559,13 +147022,11 @@ thing.vn, 1 thingformatter.net, 1 thingies.site, 1 -thinglab.org, 1 thingsandcode.com, 1 thingselectrical.co.nz, 1 thingsimplied.com, 0 thingsivesaid.com, 1 thingsof.org, 1 -thingstash.com, 1 thingswithleaves.co.uk, 1 think-ai.eu, 1 think-positive-watches.de, 1 @@ -147602,11 +147063,11 @@ thinksteroids.com, 1 thinktux.net, 1 thinkwisesoftware.com, 0 +thinkwits.com, 0 thinxtream.com, 1 thirard.com, 1 thirdbearsolutions.com, 0 thirdgenphoto.co.uk, 1 -thirdlinefp.com, 1 thirdman.auction, 0 thirdwave.tk, 1 thirdwaveanalytics.com, 1 @@ -147628,6 +147089,7 @@ thisisamericansoccer.com, 1 thisisart.ie, 1 thisisbenwoo.com, 1 +thisisgusto.com, 1 thisishugo.com, 1 thisismit.ch, 1 thisisrapt.com.au, 0 @@ -147682,6 +147144,7 @@ thomaseikel.de, 1 thomaseyck.com, 1 thomasfoster.co, 1 +thomasgriffin.com, 1 thomasgriffin.io, 1 thomashunter.name, 0 thomaskaviani.be, 1 @@ -147880,6 +147343,7 @@ thsconstructors.com, 1 thscpac.org, 1 thsecurity.cz, 1 +thtcmaps.com, 1 thtcmaps.sa, 1 thuban.me, 1 thuenhapho.com, 1 @@ -148109,7 +147573,6 @@ tiens-ib.cz, 1 tiepao.cn, 1 tier5industries.com, 1 -tierarzt-karlsruhe-durlach.de, 1 tierarztpraxis-illerwinkel.de, 1 tieredaccess.com, 1 tierfaszienation.de, 1 @@ -148125,6 +147588,7 @@ tierraprohibida.net, 1 tierschutz-niederrhein.de, 1 tiertreff24.de, 1 +tiestech.net, 1 tiestofan.tk, 1 tiete.be, 1 tietew.jp, 1 @@ -148251,7 +147715,6 @@ tiltedwindmillcrafts.com, 1 tiltedwindmillpress.com, 1 tilvids.com, 1 -tilyexpress.ug, 0 tilysthings.com, 1 tim-demisch.com, 1 tim-demisch.de, 1 @@ -148324,7 +147787,6 @@ timelycare.com, 1 timelyprovider.com, 1 timeneye.com, 1 -timentask.com, 1 timeout.co.il, 1 timeoutdoors.com, 1 timepassengers.tk, 1 @@ -148359,10 +147821,10 @@ timetravelforum.tk, 1 timetreeapp.com, 1 timeular.com, 1 -timewall.de, 1 timewasters.nl, 1 timewasters.tk, 1 timeweb.io, 1 +timewornlit.com, 1 timfiedler.net, 1 timgame.tk, 1 timi-matik.hu, 1 @@ -148377,7 +147839,6 @@ timmermansadministratie.nl, 1 timmermens.com, 1 timmish.de, 1 -timmy.ws, 1 timmyrs.de, 1 timnash.co.uk, 1 timnegocia.com.br, 1 @@ -148500,7 +147961,6 @@ tinyppt.com, 1 tinyproxy.cf, 1 tinyproxy.ga, 1 -tinyradiance.com, 1 tinyspeck.com, 1 tinyssh.org, 1 tinytanuki.com, 1 @@ -148642,7 +148102,6 @@ tjebben.tech, 1 tjgrant.com, 1 tjian.info, 1 -tjkebayi.com, 1 tjl.rocks, 0 tjmarron.co.uk, 1 tjongeling.tk, 1 @@ -148684,7 +148143,6 @@ tkpayrollsolutions.com, 1 tksainc.com, 1 tkts.cl, 1 -tkttekstil.com, 1 tkwataneya.tk, 1 tkwhongkong.tk, 1 tl.gg, 1 @@ -148727,6 +148185,7 @@ tlsrobot.se, 1 tlumaczenie.com, 1 tlv77.net, 1 +tlvgraffiti.co.il, 1 tlyphed.net, 1 tlys.de, 1 tm-its.com, 1 @@ -148789,6 +148248,7 @@ tmykymd.com, 1 tn-bb.com, 1 tn.fo, 1 +tn.nic.in, 1 tn0.club, 1 tnb-plattform.de, 1 tncourts.gov, 1 @@ -149005,7 +148465,6 @@ tokaido-kun.jp, 1 tokaido.com, 1 tokaishishisetsukanrikyokai.jp, 0 -tokarconsulting.com, 0 tokarek-translations.com, 1 tokathaberleri.tk, 1 tokdeccor.com.br, 1 @@ -149059,7 +148518,7 @@ tokyosaviva.com, 1 tokyotalk.tk, 1 tokyotimeline.com, 1 -tokyu-hoken.co.jp, 1 +tokyu-hoken.co.jp, 0 tolartx.gov, 1 tolas.lt, 1 tolboe.com, 1 @@ -149069,6 +148528,7 @@ toldosecoberturasembh.com, 1 toldst.dk, 1 toledo.tk, 1 +toledoappraiser.com, 1 toledoclassifieds.net, 1 toledoescorts.net, 1 toledohydraulic.com, 1 @@ -149202,7 +148662,6 @@ tommys.com, 1 tommytran.io, 1 tomnatt.com, 1 -tomnikkola.com, 1 tomo.gr, 0 tomoarigato.com, 1 tomodachi.tk, 1 @@ -149323,7 +148782,6 @@ tonyfanningphotography.co.uk, 1 tonygallo.tk, 1 tonyhagerlund.tk, 1 -tonykadleck.com, 1 tonykarbo.tk, 1 tonymanning.com, 1 tonysantos.tk, 1 @@ -149333,6 +148791,7 @@ tonytan.net, 1 tonyw.xyz, 1 tonywebster.com, 1 +too.com.ua, 1 too.gy, 1 tooadalsauda.kz, 1 toob.fr, 1 @@ -149483,7 +148942,6 @@ topcarehvac.ca, 1 topcash.co.il, 1 topcasinobonus.nu, 1 -topchinasupplier.com, 1 topciderska-crkva.rs, 1 topclan.tk, 1 topclassactions.com, 1 @@ -149516,6 +148974,7 @@ topeyechang.com.tw, 1 topfd.net, 1 topferta.com, 1 +topfinanzas.com, 1 topfiremedia.com, 1 topfivepercent.co.uk, 1 topfood.club, 1 @@ -149525,7 +148984,7 @@ topfx.com.sc, 1 topgallant.gq, 1 topgevelbekleding.nl, 1 -topgrading.com, 1 +topgrading.com, 0 topgshop.ru, 1 toph.co, 1 tophaiduongaz.com, 1 @@ -149586,7 +149045,6 @@ topofthefreegames.ml, 1 topographic.tk, 1 toponlinecasino.be, 1 -toponlinecasinosites.co.uk, 1 toponlinemarketing.tk, 1 topophile.net, 1 topoptics.com.ua, 1 @@ -149841,7 +149299,6 @@ totalforcegym.com, 1 totalfoundationpros.com, 1 totalhost.gq, 1 -totalinfo.in, 1 totalintegratedtherapy.com, 1 totalityservices.co.uk, 1 totallegal.com, 1 @@ -149951,7 +149408,7 @@ touristinmonteverde.com, 1 touristmaker.com, 1 touristsense.com, 1 -tourmalineskincare.com, 1 +tourmalineskincare.com, 0 tourmaster.com, 1 tournamentmgr.com, 1 tournaments.tk, 1 @@ -150002,7 +149459,6 @@ tovarypochtoj.tk, 1 toverland-tickets.nl, 1 tovp.org, 0 -tow-houston.com, 1 towardsai.net, 1 towardsthecloud.com, 1 towaway.ru, 1 @@ -150034,7 +149490,6 @@ towinglewisville.com, 1 towingmoore.com, 1 towingpasadena.com, 1 -towingstar.com, 1 town-night.jp, 1 townforge.net, 1 townfremontwi.gov, 1 @@ -150293,7 +149748,6 @@ toymania.de, 1 toymarket.tk, 1 toyonaka-bungei.com, 1 -toyonaka-choral-association.com, 1 toyonut.co.jp, 0 toyopac.com, 1 toyota-kinenkan.com, 1 @@ -150311,12 +149765,12 @@ toyschina.cf, 1 toysdrive.ru, 1 toysearcher.ml, 1 -toyshowappeal.ie, 1 toyshowthemusical.co.uk, 1 toyshowthemusical.com, 1 toyshowthemusical.ie, 1 toysperiod.com, 1 toysplace.ml, 1 +toystech.com.ar, 1 toystory3.ga, 1 toyventure.ga, 1 tozdev.com, 1 @@ -150390,13 +149844,11 @@ trabbel.org, 1 tracbelagro.com.br, 1 traccxs.com, 1 -trace.best, 1 trace.guru, 1 trace.moe, 1 trace2race.com, 1 tracebit.com, 1 traceflix.com, 1 -tracefy.com, 1 traceheatinguk.co.uk, 1 tracelight.io, 0 tracer.gg, 1 @@ -150463,7 +149915,6 @@ tradebuilders.com.au, 1 tradedesk.co.za, 0 tradeeasy.com, 1 -tradees.com, 1 tradefxp.com, 1 tradeinvent.co.uk, 1 tradeline.vn, 1 @@ -150484,7 +149935,6 @@ tradersport.tk, 1 tradersrank.ga, 1 traderssec.com, 1 -tradersvillage.com, 1 tradesbybarter.com, 1 tradesecretslaw.com, 1 tradeshift.com, 1 @@ -150545,13 +149995,14 @@ traffixdevices.com, 1 trafic-wap.tk, 1 trafic.ro, 1 +traficmusik.net, 1 trafik.tk, 1 trafiken.nu, 1 +trafomex.com.mx, 1 trafplus.tk, 1 tragamin.ca, 1 tragamonedas-gratis.biz, 1 tragaver.ga, 1 -tragedyandhope.com, 1 traghetti.tk, 1 traghettiper-corsica.it, 1 traghettiper-sicilia.it, 1 @@ -150661,6 +150112,7 @@ tranhlavender.com, 1 tranmerelectric.com, 1 trannysurprise.com, 1 +tranquilidade.ao, 1 tranquillity.se, 1 tranquillum.tk, 1 tranquiloweb.com, 1 @@ -150679,7 +150131,7 @@ transappealrights.com, 1 transbella.com, 1 transbordosarmada.cl, 1 -transcarent.com, 1 +transcarent.com, 0 transcend.org, 1 transcendmotor.sg, 1 transcendretirement.net, 1 @@ -150753,7 +150205,6 @@ translationge.com, 1 translations.com, 1 translationsfirm.tk, 1 -translationsnz.com, 1 translatorall.tk, 1 translatorglobal.tk, 1 translatoruk.co.uk, 0 @@ -150763,7 +150214,6 @@ translit.ru, 1 translitteration.com, 1 transloc.com, 1 -transmarttouring.com, 1 transmitrecordings.com, 1 transmitsecurity.com, 1 transmoni.vn, 1 @@ -150791,6 +150241,7 @@ transporticonline.com, 1 transportnews.tk, 1 transportnsw.info, 1 +transporttalent.com, 1 transsensual.com, 1 transsensualnetwork.com, 1 transservice.net.ua, 1 @@ -150803,7 +150254,6 @@ transtextim.com, 1 transtrack.net, 1 transtur.tk, 1 -transumption.com, 1 transvault.com, 1 transwank.com, 1 transwestern.com, 1 @@ -150884,7 +150334,7 @@ travel2macedonia.mk, 1 travel365.it, 1 travel4history.nl, 1 -travel4news.at, 1 +travel4news.at, 0 traveladdiction.tk, 1 traveladventure.ml, 1 travelafricamag.com, 1 @@ -151033,7 +150483,6 @@ traveltruster.com, 0 travelturbo.ga, 1 travelultra.ga, 1 -travelunicorns.com, 1 travelunique.ga, 1 travelup.com, 1 travelurban.ga, 1 @@ -151052,7 +150501,6 @@ travin.tk, 1 travis.nl, 1 traviscoesd1tx.gov, 1 -traviscountyappliancerepair.com, 1 travisf.net, 1 travisforte.io, 1 travisfranck.com, 1 @@ -151076,6 +150524,7 @@ trcont.com, 1 trctaborda.com.br, 1 trdepoist.net, 1 +treadmillrepair.co.nz, 0 treadwellgordon.co.nz, 0 treaslockbox.gov, 1 treasure-dragon.com, 1 @@ -151145,6 +150594,7 @@ treml-sturm.com, 1 tremol-spedition.com, 1 tremontil.gov, 1 +tremor-pdl.com, 1 tremors.tk, 1 trempcountywi.gov, 1 tren-counseling.nl, 1 @@ -151178,6 +150628,7 @@ trendpie.com, 1 trendreportdeals.com, 1 trends-news.tk, 1 +trendsce.com.br, 1 trendsinhr.nl, 1 trendtesettur.com, 0 trendware.de, 1 @@ -151249,7 +150700,7 @@ triamudom.org, 1 triangela.com, 1 triangela.se, 1 -triangle-energie.com, 1 +triangle-energie.com, 0 trianglecastles.co.uk, 1 trianglelawngames.com, 1 trianglepwh.com, 1 @@ -151269,6 +150720,7 @@ tribesbeekeepersassociation.com, 1 tribesindia.com, 1 tribesofneurot.tk, 1 +tribetokes.com, 1 tribetrails.com, 1 tribetribune.com, 1 tribinary.tk, 1 @@ -151324,6 +150776,7 @@ trifence.eu, 1 trifence.net, 1 trifence.org, 1 +trifiro.it, 1 trigate.io, 1 triggeredpaintz.com, 1 triggertraders.com, 1 @@ -151407,6 +150860,7 @@ tripisland.tk, 1 triple1.net, 1 tripleblossom.com, 1 +triplefork.com.ua, 1 triplekeys.net, 1 tripleone.co.uk, 1 triplerinc.ca, 1 @@ -151426,6 +150880,7 @@ tripp.xyz, 1 trippati.com, 1 trippers.info, 1 +tripport.com.do, 1 trips4foodies.com, 1 tripspoint.com, 1 triptap.ru, 1 @@ -151479,7 +150934,6 @@ trodniescis.gq, 1 troedel-trolle.de, 1 troedelhannes.at, 1 -troel.nl, 1 trofeosylogros.com, 1 trogloditas.tk, 1 troi.de, 1 @@ -151526,7 +150980,6 @@ tronlaserarena.cz, 1 tronmeo.com, 1 tronnews.best, 1 -tronnews.co, 1 tronnews.life, 1 tronnews.me, 1 tronnews.news, 1 @@ -151538,6 +150991,7 @@ troopaid.info, 1 troopers.de, 1 trophcomplewin.ml, 1 +trophee-discount.com, 1 trophies.de, 1 trophykoi.tk, 1 trophyshopinc.com, 1 @@ -151619,7 +151073,6 @@ trucchibellezza.com, 1 trucchibellezza.it, 1 truckbossdecks.com, 1 -truckcord.com, 1 truckdeal.com.ph, 1 truckerjobusa.com, 1 truckersdatabase.cf, 1 @@ -151680,7 +151133,6 @@ truelovesakuya.info, 1 trueminecraft.com, 1 truenorthartcollektive.com, 1 -truenorthseedbank.com, 1 truentumvet.it, 1 truepartner.academy, 1 truepartner.asia, 1 @@ -151794,7 +151246,6 @@ trussville.gov, 1 trust-btc.ml, 1 trust-ted.co.uk, 1 -trust.com, 1 trust.zone, 1 trust2protect.de, 1 trustarts.org, 1 @@ -151828,7 +151279,6 @@ truten.tk, 1 truth.com, 1 truth.tk, 1 -truthdancer.com, 1 truthmessages.pw, 1 truthsayer.tk, 1 truthsocial.com, 1 @@ -151845,9 +151295,9 @@ truyen-hentai.fr, 1 truyen-hentai.ru, 1 truyenfull.vn, 1 -truyenkiemhiep.com.vn, 1 truyentienhiep.com.vn, 1 trw-reseller.com, 1 +trwebmaster.com, 1 trwebtoon.com, 1 try2admin.pw, 1 try2hack.it, 1 @@ -151894,7 +151344,6 @@ trywesayyes.com, 1 trz.cz, 1 ts-farm.ru, 1 -ts-folienmontage.de, 1 ts-pro-consulting.de, 1 ts-projects.tk, 1 ts-public.tk, 1 @@ -151940,11 +151389,10 @@ tshirtgenerator.ga, 1 tshirtsangola.co.za, 1 tshirtsbotswana.co.za, 1 +tshirtscapetown.com, 1 tshirtsforsale.co.za, 1 -tshirtsjoburg.co.za, 1 tshirtslesotho.co.za, 1 tshirtsnamibia.co.za, 1 -tshirtsouthafrica.co.za, 1 tshirtsswaziland.co.za, 1 tshirtszimbabwe.com, 1 tshobbyshop.id, 1 @@ -151993,6 +151441,7 @@ tsukasa-gallery.com, 1 tsukhani.com, 1 tsukikoh.com, 1 +tsukikoh.jp, 1 tsukuba-it.net, 1 tsukuba.style, 0 tsumegumi.com, 1 @@ -152014,9 +151463,11 @@ tsuyuzakihiroyuki.com, 1 tsv-1894.de, 0 tsv-hittfeld.de, 0 +tsw.ovh, 1 tsxxlangel.com, 1 tsybanov.com, 1 tt-aepfingen.tk, 1 +tt-hardware.com, 1 tt.gt, 1 tt2966.com, 1 tt3999.com, 1 @@ -152085,7 +151536,6 @@ tube8vip.com, 1 tubebegana.com, 1 tubedesire.com, 1 -tubehall.com, 1 tubejack.nl, 1 tubeju.com, 1 tubemilf.com, 1 @@ -152253,7 +151703,6 @@ tuotromedico.com, 1 tuotteet.org, 1 tuou.xyz, 0 -tupahost.net.br, 1 tupass.pw, 1 tupatane.gq, 1 tuperiodico.soy, 0 @@ -152369,7 +151818,6 @@ turksell.ru, 1 turksite.tk, 1 turksiteleri.tk, 1 -turksohbet.com, 1 turkteam.tk, 1 turktelekomarenagolleri.tk, 1 turktree.com, 0 @@ -152423,7 +151871,7 @@ turunculevye.com, 1 tus-kikishinkyo.jp, 1 tus.si, 1 -tusaalanga.ca, 1 +tusaalanga.ca, 0 tusaludenforma.es, 1 tusar.cf, 1 tusar.ga, 1 @@ -152651,11 +152099,9 @@ tweetadder.fr, 1 tweetfinity.com, 1 tweetfinityapp.com, 1 -tweetyconnect.com, 1 twelve-inch-classics.tk, 1 twelvecolonies.tk, 1 twelvecornerspediatrics.com, 1 -twelvefeed.com, 1 twem.ddns.net, 1 twentyrising.com, 1 twentyrising.de, 1 @@ -152725,10 +152171,10 @@ twobridges.co.uk, 1 twobrothersbbq.com, 0 twocatsinacaravan.xyz, 1 +twoconnect.com, 0 twocornertiming.com, 1 twodadsgames.com, 1 twoday.com, 1 -twoddl.ws, 1 twoef.co.uk, 1 twofestivaltower.au, 1 twofestivaltower.com, 1 @@ -152758,7 +152204,6 @@ tx577.com, 1 txbooster.com, 1 txcap.org, 1 -txcheckup.com, 1 txdesignremodel.com, 1 txexcelagent.com, 1 txferretrescue.org, 1 @@ -152853,6 +152298,7 @@ typecheckapp.com, 1 typecho.site, 0 typeclasses.com, 1 +typecodes.com, 1 typegrow.com, 1 typehub.net, 0 typeof.pw, 1 @@ -152933,7 +152379,6 @@ tzsrv.com, 1 tzsrv.de, 1 tzsrv.tk, 1 -tzstamp.io, 1 tzunami.tk, 1 tzunamiblog.tk, 1 tzwe.com, 1 @@ -152944,7 +152389,6 @@ u-msg.com.au, 1 u-page.nl, 1 u-pas.com.au, 1 -u-ranking.es, 1 u-time.com.au, 1 u-watch.it, 1 u.nu, 1 @@ -153026,6 +152470,7 @@ uateach.tk, 1 uatgootax.ru, 0 uathq.com, 1 +uatuning.com.ua, 1 uatx.mx, 1 uavis.com.au, 1 ub.edu.vn, 1 @@ -153048,7 +152493,18 @@ ubermail.me, 1 uberpromocodes.us, 1 ubersmith.com, 1 +ubezpieczeniaonline.pl, 1 +ubezpieczeniazyciowe.pl, 1 +ubezpieczeniemieszkania.pl, 1 +ubezpieczenienanarty.pl, 1 +ubezpieczenienarciarskie.pl, 1 +ubezpieczenienazycie.net.pl, 1 ubezpieczeniepsa.com, 1 +ubezpieczenieturystyczne.com.pl, 1 +ubezpieczeniezycia.pl, 1 +ubezpieczeniezyciowe.pl, 1 +ubezpieczonamama.pl, 1 +ubezpieczonedziecko.pl, 1 ubicaciones-vitamina.cl, 1 ubicv.com, 1 ubill.ge, 1 @@ -153070,6 +152526,7 @@ ubun.net, 1 ubuntu-es.org, 1 ubuntu-tr.net, 1 +ubuntu-tutorials.com, 1 ubuntu18.com, 1 ubuntuproductions.fi, 1 ubutovo.ga, 1 @@ -153206,10 +152663,8 @@ ufplanets.com, 1 ufst.dk, 1 ug.gg, 1 -ugaescapes.com, 1 ugarte-zestoa.com, 1 ugbusiness.com, 1 -ugcdn.com, 1 ugeek.tk, 1 ugg.com, 1 uggedal.com, 1 @@ -153289,6 +152744,7 @@ ujvary.eu, 1 uk-halle.de, 1 uk-sands.org, 1 +uk-tesh.org, 1 uk.coop, 1 uk.search.yahoo.com, 0 ukari.hokkaido.jp, 0 @@ -153330,6 +152786,7 @@ ukpropertyretrofit.com, 1 ukraflora.ua, 1 ukrainci.com.ua, 1 +ukraine-standart.com.ua, 1 ukrainecalling.eu, 1 ukraineoversight.gov, 1 ukrainians.ch, 1 @@ -153367,7 +152824,6 @@ ulgaipbox.online, 1 uli-eckhardt.de, 1 ulickaprozivot.cz, 1 -ulike123.com, 1 ulitroyo.com, 1 ullah.se, 1 ulli.ml, 1 @@ -153404,10 +152860,6 @@ ultimategaming.tk, 1 ultimatehalo.tk, 1 ultimatelifesupport.ga, 1 -ultimatemafia.be, 1 -ultimatemafia.de, 1 -ultimatemafia.net, 1 -ultimatemafia.nl, 1 ultimatemapping.tk, 1 ultimatemotherfuckingwebsite.com, 1 ultimatempb.com.au, 1 @@ -153421,7 +152873,6 @@ ultortech.com, 1 ultra-fast.net, 1 ultra-pro.ga, 1 -ultra.education, 1 ultra.gen.tr, 1 ultra.law, 1 ultrabkk.com, 1 @@ -153508,6 +152959,7 @@ umripd.gov, 1 umsapi.com, 1 umspannwerk-leipzig.de, 1 +umtactivation.in, 1 umv.gov.co, 1 umwandeln-online.de, 1 umweltgalerie.de, 1 @@ -153522,7 +152974,6 @@ una.py, 1 unaffectedsound.tk, 1 unai-yus.tk, 1 -unaidesarrolladorweb.com, 1 unanaciounaseleccio.tk, 1 unangelturbio.tk, 1 unaone.net, 1 @@ -153550,8 +153001,6 @@ unblockit.casa, 1 unblockit.date, 1 unblockit.download, 1 -unblockit.ink, 1 -unblockit.me, 1 unblockit.name, 1 unblockit.ong, 1 unblog.ch, 1 @@ -153577,7 +153026,7 @@ uncut.wtf, 1 uncuteyes.tk, 1 uncuttype.wtf, 1 -undangan-digital.com, 1 +undanganelektronik.com, 1 undangankoo.com, 1 undawns.tk, 1 undecidable.de, 1 @@ -153587,7 +153036,6 @@ undemocracy.ga, 1 undemocracy.gq, 1 undemocracy.ml, 1 -under-tec.com, 1 under-wears.tk, 1 under15.ml, 1 undercliff.tk, 1 @@ -153823,6 +153271,7 @@ uniserve.com, 1 unisg.ch, 1 unisight.com, 1 +unison-d.com, 1 unisontech.org, 1 unistudio.it, 1 unisul.br, 1 @@ -153958,7 +153407,6 @@ uniwor.com, 1 unix.family, 1 unix.lu, 1 -unix.social, 1 unixadm.org, 1 unixapp.ml, 1 unixattic.com, 1 @@ -154027,6 +153475,7 @@ unope.ru, 1 unope.tk, 1 unoptional.tk, 1 +unoptix.com, 1 unoriginal.tk, 1 unosconotros.com, 1 unovosti.tk, 1 @@ -154037,7 +153486,6 @@ unpi38.fr, 1 unpkg.com, 1 unpleasant.tk, 1 -unpluggedcoding.com, 1 unpluggedjuice.dk, 1 unplugstore.it, 1 unply.com, 1 @@ -154118,6 +153566,7 @@ up-stage.info, 1 up-stage.jp, 1 up.com.au, 1 +up.nic.in, 1 up1s.tk, 1 up2date.com.ua, 1 up2mark.com, 0 @@ -154148,7 +153597,7 @@ upbtrbt.nl, 1 upbtrbt.org, 1 upcambio.com, 1 -upclinic.ru, 1 +upclinic.ru, 0 upcloud.cz, 1 upcwifikeys.com, 1 upcycleandcompany.com, 1 @@ -154172,6 +153621,7 @@ upgamerengine.net, 1 upgintl.com, 1 upgrade.com, 1 +upgradeguru.de, 1 upgradeit.dk, 1 upgradeloans.com, 1 upgrades-and-options.com, 1 @@ -154212,7 +153662,6 @@ upmon.com, 1 upnetwork.ml, 1 upnext.tk, 1 -upnfm.edu.hn, 1 upnorth.solutions, 1 uportal.tk, 1 uppercloud.cf, 1 @@ -154244,6 +153693,7 @@ uprep.ml, 1 upressonline.com, 1 uprh.edu, 1 +uprighttrades.com, 1 uprint.it, 1 uprisehigh.com, 1 upropay.com, 1 @@ -154251,12 +153701,12 @@ upseed.ru, 1 upsettunnel.com, 1 upshurda.com, 1 -upsihologa.com.ua, 0 upsilonsigmaphi.us, 1 upsiteseo.com, 1 upskilllearning.ml, 1 upskirtmania.tk, 1 upsocial.ga, 1 +upsocial.pp.ua, 1 upsook.com, 1 upstairs.one, 1 upstart.com, 1 @@ -154277,12 +153727,12 @@ uptrends.de, 1 uptrex.co.uk, 1 upundit.com, 1 -upupming.site, 0 upviews.tk, 1 upwardcreative.com, 1 upwardflourish.com, 1 upwardtraining.co.uk, 1 upwork.com, 1 +upyourbusiness.nl, 1 uq1k.com, 1 uqr.me, 1 uqschool.com, 1 @@ -154476,7 +153926,6 @@ us10.net, 1 us2uplumbing.com.au, 1 usa-10.com, 1 -usa-10.net, 1 usa-greencard.eu, 1 usa-reisetipps.net, 1 usa.gov, 1 @@ -154553,11 +154002,10 @@ usebosin.gq, 1 used-laptop.in, 1 used255.xyz, 1 +usedasun.com, 1 usedoilfieldhouses.com, 1 useful-thing.ru, 1 -usefuldiy.com, 1 usefulinsight.com, 1 -usehammock.com, 1 useinsider.com, 1 useloom.com, 1 usembassy.gov, 1 @@ -154608,7 +154056,6 @@ uskaria.com, 1 uskostadariksi.fi, 1 usleravnekrog.dk, 1 -uslugait.pl, 1 uslugi-advokata.ga, 1 uslugi-advokata.tk, 1 uslugi-online.pl, 1 @@ -154811,7 +154258,6 @@ uwe-r.com, 1 uwe-reimold.com, 1 uwe-reimold.de, 1 -uwe.training, 1 uwe.wtf, 1 uweeze.com, 1 uwefreund.com, 1 @@ -154831,7 +154277,6 @@ uwu.tw, 1 uwv.nl, 1 uwwsb.com, 1 -ux-designers.nl, 1 ux-solution.de, 0 ux.pub, 1 uxdesignerjobs.nl, 1 @@ -154898,7 +154343,6 @@ v0v.de, 1 v1.dk, 1 v10008.com, 1 -v139.com, 1 v1r2zz.tk, 1 v1sit0r.ru, 1 v2.digital, 1 @@ -154911,13 +154355,10 @@ v2x.sk, 1 v2xtls.org, 1 v2yes.com, 0 -v33v33.com, 1 v36533.com, 1 -v44v44.com, 1 v51365.com, 1 v5197.co, 1 v55565.com, 0 -v55v55.com, 1 v5ray.club, 1 v5ray.top, 1 v6004.com, 1 @@ -155035,7 +154476,6 @@ vahle.de, 1 vahoshop.cz, 1 vaibhavchatarkar.com, 0 -vaidasphotos.com, 1 vaidikapriya.pub, 0 vail.gov, 1 vaindil.com, 1 @@ -155047,11 +154487,9 @@ vakantiehuis-ribbers.nl, 1 vakantiehuisverzekeringen.nl, 1 vakantieinfo.tk, 1 -vakantieveilingen.be, 1 -vakantieveilingen.nl, 1 vakantieverblijfalgarve.nl, 1 +vakat.eu, 1 vakifuniver.ru, 1 -vakita.fi, 1 vakrebella.no, 1 vakuutuskanava.fi, 1 vakwinkeldemo.nl, 1 @@ -155120,13 +154558,15 @@ valeriapanarina.com, 0 valerieadolff.com, 0 valerieorsoni.com, 1 +valeriote-ead.com.br, 1 valeriya.life, 1 valeriymaleev.com, 1 valeryvenom.net, 1 +valescarodrigues.com.br, 1 valetez.com, 0 valgagym.ee, 1 valgavesi.ee, 1 -valhallaconfections.com, 1 +valhallaconfections.com, 0 valhallastrengthsthbne.com.au, 1 valiakhmetov.tk, 1 valiant.finance, 1 @@ -155139,7 +154579,6 @@ validbot.com, 1 validius.fi, 1 validius.net, 1 -validvent.com, 1 valifai.com, 1 valigate.com, 1 valigrama.ro, 1 @@ -155163,7 +154602,6 @@ valledealcudia.net, 1 valledeleresma.tk, 1 valledibraies.org, 1 -valleditrianotizie.it, 1 vallee-egoutiers.ca, 1 valleesenlutte.org, 1 vallei-veluwe.nl, 1 @@ -155247,7 +154685,6 @@ vamonospaportugal.tk, 1 vamosalvaiazere.pt, 1 vamosargentina.tk, 1 -vamoscomparar.com, 1 vamoscurarsintra.pt, 1 vamosfalardesaude.pt, 1 vampire-studios.tk, 1 @@ -155287,6 +154724,7 @@ vandalfsen.me, 1 vandals.ml, 1 vandam.io, 1 +vandanayellowpages.com, 1 vande-walle.eu, 1 vandegriftplasticsurgery.com, 1 vandemeent.eu, 1 @@ -155348,7 +154786,6 @@ vanished.tk, 1 vanitybiss.es, 1 vanitydns.com, 1 -vanityfairnapkins.com, 0 vanivi.ml, 1 vanjeveren.nl, 1 vanlierdezottegem.be, 1 @@ -155406,6 +154843,7 @@ vapecom-shop.com, 1 vapecraftinc.com, 0 vapecrunch.com, 1 +vapeforest.co.uk, 1 vapehousebh.com, 1 vapehouseksa.com, 1 vapeking.co.za, 1 @@ -155430,7 +154868,6 @@ varaani.tk, 1 varalaval.com, 1 varalwamp.com, 1 -varb.in, 1 varcare.jp, 1 varda.nl, 1 vardenafilhcl.gq, 1 @@ -155525,7 +154962,6 @@ vatlieuhay.com, 1 vatman.tk, 1 vatnik.info, 1 -vatnsnesyarn.is, 1 vato.nl, 1 vats.im, 1 vattulainen.fi, 1 @@ -155547,12 +154983,11 @@ vaultproject.io, 0 vaur.fr, 1 vaurio.tk, 1 -vavabid.be, 1 vavada.com, 1 vave.men, 1 vavel.com, 1 vawebsite.co, 1 -vawic4retailers.org, 1 +vawic4retailers.org, 0 vawlt.io, 1 vawomenshealth.com, 1 vaxbook.com, 1 @@ -155561,9 +154996,9 @@ vayavotarcolorado.gov, 1 vaygren.com, 1 vazdemelloconsultoria.com.br, 1 -vazon.pp.ua, 1 vb.com.br, 1 vbanu.com.ua, 1 +vbeem.com, 0 vbelgorode.tk, 1 vbetcn.com, 1 vbl.co.th, 1 @@ -155620,7 +155055,6 @@ vddruckwerk.de, 1 vdele.mobi, 1 vdemuzere.be, 1 -vdetecnologias.ddns.net, 1 vdheyden.net, 0 vdi.run, 1 vdim.shop, 1 @@ -155638,6 +155072,7 @@ vdownloader.com, 1 vdprotezai.lt, 1 vdrei.at, 1 +vdslux.eu, 0 vdstc.com, 1 vdu.de, 1 vdw-instruments.com, 1 @@ -155792,7 +155227,6 @@ velocityelectronics.com, 1 velocityfiber.com, 1 velocitygames.tk, 1 -velocityhost.com.au, 1 velocitytech.com, 1 velocompany.com, 1 velocompany.de, 1 @@ -155810,7 +155244,6 @@ velthuysemulder.nl, 1 veluwegroenonderhoud.nl, 1 veluwerally2002.tk, 1 -veluzian.com, 1 velvet-tarantula.tk, 1 velvetbaski.com, 1 velvetempire.tk, 1 @@ -155989,12 +155422,14 @@ vereine-weiskirchen.de, 1 vereinscheck.de, 1 vereinswahl.online, 1 +veren-group.ua, 1 verena.gallery, 1 vereshagino.tk, 1 verfassungsklage.at, 1 verge-solutions.com, 1 verge.capital, 1 vergehealth.com, 1 +vergelijksimonly.nl, 1 vergelijkwitgoed.nl, 1 vergesense.com, 1 vergessen.cn, 1 @@ -156014,10 +155449,12 @@ verificationguild.com, 1 verificationlink.ga, 1 verified.lu, 1 +verifiedcliq.com, 1 verifiedhandles.org, 1 verifiedjoseph.com, 0 verifiny.com, 1 verifize.co.za, 1 +verify-365.com, 0 verify.gov.sg, 1 verifyos.com, 1 verifyyourip.com, 1 @@ -156107,7 +155544,7 @@ versario.info, 1 versata.pt, 1 versatek.com, 1 -versatile.ai, 1 +versatile.ai, 0 versatilestructures.com.au, 1 versbesteld.nl, 1 verschil.info, 1 @@ -156129,7 +155566,6 @@ verstka.ga, 1 verstka.tk, 1 verstraetenusedcars.be, 1 -versus-hair.com, 1 versus-projects.com, 1 versusforum.tk, 1 vertanex.com, 1 @@ -156162,7 +155598,6 @@ vertikal.tk, 1 vertiko.de, 1 vertip.net, 1 -vertisamedicalwaste.com, 1 vertispro.com, 1 vertragsfix.de, 1 vertrauen.site, 1 @@ -156194,7 +155629,6 @@ verzekerdbijhema.nl, 1 verzekeringsacties.nl, 1 verzekerjebeter.nl, 1 -vesa.ro, 1 vesaviljanen.fi, 1 vescudero.net, 1 veseleruska.sk, 1 @@ -156280,7 +155714,6 @@ vetres.net.au, 1 vetruvet.com, 1 vets.gov, 1 -vets24.ae, 1 vetscore.co.za, 1 vetsite.cloud, 1 vetsmarketing.co.za, 1 @@ -156319,7 +155752,7 @@ vg-resource.com, 1 vgatest.nl, 1 vgbf.tk, 1 -vgcheat.com, 1 +vgcheat.com, 0 vgdocs.com, 1 vgerak.com, 1 vgfacts.com, 1 @@ -156328,9 +155761,7 @@ vgopilot.azurewebsites.net, 1 vgorcum.com, 1 vgpu.vladimir.ru, 1 -vgries.de, 1 vgropp.de, 1 -vgxcontactcenter.com.br, 1 vgyse.hu, 1 vgywm.com, 1 vhelio.org, 1 @@ -156343,6 +155774,7 @@ vhs-hannover.de, 1 vhumo.com, 1 vhv-gruppe.de, 1 +vhv2020.com, 1 via-labs.com, 1 via-tygo.com, 1 viabenefitsaccounts.com, 1 @@ -156404,6 +155836,7 @@ vicampo.de, 1 vicarious.cf, 1 vicdolphy.com, 1 +vicellishoes.com, 1 vicenez.agency, 1 vicentaburon.tk, 1 vicentejr.com.br, 1 @@ -156418,6 +155851,7 @@ vicicode.com, 1 vicieux.art, 1 vicinityindustrial.com.au, 1 +vicioanimal.pt, 0 viciousflora.com, 1 viciousracing.tk, 1 vicjuwelen-annelore.be, 1 @@ -156743,7 +156177,6 @@ viktor-chin-kon-sung.nl, 1 viktor-chin.com, 1 viktor-chin.nl, 1 -viktorbarzin.me, 1 viktorch.in, 1 viktorchin.com, 1 viktorchin.nl, 1 @@ -156955,7 +156388,7 @@ vinarstvimodryhrozen.cz, 1 vinaygakhar.tk, 1 vinaygarg.com, 1 -vinc.me, 1 +vinc.me, 0 vinc.name.tr, 1 vincehut.top, 1 vincejv.com, 1 @@ -157283,6 +156716,7 @@ visatitans.ca, 1 visatitans.co.uk, 1 visatitans.com, 1 +visaxplorer.com, 1 visaya.com.co, 1 visaynou.com, 1 visceralsound.ca, 1 @@ -157334,7 +156768,6 @@ visionthroughknowledge.com, 1 visiontree-beta.eu, 1 visionunit.ch, 1 -visionware.pt, 1 visionwow.ai, 1 visionxcreative.gq, 1 visionzerocfl.gov, 1 @@ -157350,7 +156783,6 @@ visit.natal.br, 1 visit1000islands.com, 1 visitabudhabi.ae, 1 -visitaltai.info, 1 visitationbvm.net, 1 visitazores.com, 1 visitbangkoktravel.com, 1 @@ -157373,7 +156805,6 @@ visitghent.eu, 1 visithuntingtonwv.org, 1 visitlouth.ie, 1 -visitmaine.com, 1 visitmo.com, 1 visitmontgomerycountyny.com, 1 visitmorelos.mx, 1 @@ -157405,13 +156836,14 @@ visoundcloud.com, 1 visp.net, 1 visscher.codes, 1 -vista-calculator.ru, 1 vista-research-group.com, 1 vista.gov, 1 vistaalegre.com, 1 vistaalmar.es, 1 vistacampus.gov, 1 vistamatic.eu, 1 +vistapaket.com.ua, 1 +vistapaket.es, 1 vistapoquei.com.br, 1 vistastylebuilder.com, 0 vistatalmidim.com.br, 1 @@ -157420,7 +156852,7 @@ vistec-support.de, 1 vistre.com, 1 visu.li, 1 -visual-cockpit.com, 0 +visual-cockpit.com, 1 visual-conversion.com, 1 visual-design.cf, 1 visual-dreams.de, 1 @@ -157452,7 +156884,6 @@ vitahost.ml, 1 vitakov.tk, 1 vital-bg.com, 1 -vital-cap.com, 1 vital-heart.com, 1 vital-tel.co.uk, 1 vital.no, 1 @@ -157467,6 +156898,7 @@ vitalitymedcenters.com, 0 vitalityscience.com, 0 vitaliyshepotkov.tk, 1 +vitaliysmagic.com, 1 vitallearning.dk, 1 vitallearning.ee, 1 vitallearning.eu, 1 @@ -157484,6 +156916,7 @@ vitalsolutions.ro, 1 vitalthings.de, 1 vitalthrills.com, 1 +vitam.de, 1 vitamedgroup.com, 1 vitamina.cl, 1 vitamina.com, 1 @@ -157502,6 +156935,7 @@ vitavista.io, 1 vitay.pl, 1 vitechteam.com, 1 +vitekvirtualsolutions.com, 1 viteleaf.com, 1 viteoscrm.ch, 0 viteragro.com.br, 0 @@ -157518,9 +156952,10 @@ vitra-vcare.co.uk, 1 vitrade.de, 1 vitrado.de, 1 +vitrerieagathoise.com, 1 vitrinachasov.cf, 1 +vitrineenligne.com, 1 vitromex.tk, 1 -vitruvianpost.com, 1 vitsearch.link, 1 vitto.tk, 1 vittoria-conseil.com, 1 @@ -157536,7 +156971,6 @@ viunge.dk, 1 viv.fi, 1 viva-family.ch, 1 -viva.ro, 1 viva.ua, 1 viva2000.com, 1 vivablogger.com, 1 @@ -157720,6 +157154,7 @@ vkusercontent.ru, 1 vkusniy.shop, 1 vkusnyashka.tk, 1 +vkustradicii.com.ua, 1 vkusvill.ru, 1 vl.cloudns.cc, 1 vl9.de, 1 @@ -157746,12 +157181,14 @@ vladsfads.com, 1 vlaggen-landen.nl, 1 vlak.hr, 1 +vlakem.net, 1 vlance.gq, 1 vlarp.nl, 1 vlasix.org, 1 vlasov.ml, 1 vlasova-sova.ml, 1 vlccrussia.ru, 1 +vlci-doupe.cz, 1 vldkn.net, 1 vldz.co, 1 vleacademy.com, 1 @@ -157782,7 +157219,6 @@ vm88.top, 0 vmagadane.tk, 1 vmath.my.id, 1 -vmautorajkot.com, 1 vmc.co.id, 1 vmccnc.com, 1 vmconnected.co.uk, 1 @@ -157874,6 +157310,7 @@ voddinteriors.com, 1 vodicak.info, 1 vodicaknapocitac.sk, 1 +voditel.ua, 1 vodotech.sk, 1 vodpay.com, 1 vodpay.net, 1 @@ -157885,7 +157322,7 @@ voetbalindestad.be, 1 voetbaloptv.nl, 1 voetbalvanavond.nl, 1 -voetbalwedden.net, 1 +voetbalwedden.net, 0 voetbalwedstrijdenvandaag.nl, 1 voetenreflexmassage.nl, 1 voetfit47.nl, 1 @@ -157973,7 +157410,6 @@ vokimberlywi.gov, 1 vokov.ml, 1 vokrug.ga, 1 -vokurka.net, 0 vokzalkursk.ru, 1 vokzalperm.ru, 1 volant.digital, 1 @@ -158130,7 +157566,6 @@ voquent.com, 1 vorbis.cz, 1 vorbrodt.blog, 1 -vorbrodt.me, 1 vorderklier.de, 1 vorlage-musterbriefe.de, 1 vorlage-mustervertrag.de, 1 @@ -158140,6 +157575,7 @@ vorm2.com, 1 vormkracht10.nl, 1 vorona.tk, 1 +vorota.com.ua, 1 vort-x.com.my, 1 vortari.tk, 1 vorte.ga, 1 @@ -158222,7 +157658,7 @@ voteseminole.gov, 1 votesjc.gov, 1 votesup.eu, 1 -votetesla.com, 1 +votetesla.com, 0 votetomgreencounty.gov, 1 voteurl.cf, 1 votewa.gov, 1 @@ -158282,6 +157718,7 @@ voyagewonders.com, 1 voyainvestments.com, 1 voyaker.tk, 1 +voyalisboa.com, 1 voyance-direct.info, 1 voyancedanslenord.com, 1 voyantatravel.com, 1 @@ -158436,6 +157873,7 @@ vrbl.pt, 1 vrbq.qld.gov.au, 1 vrbr.ch, 0 +vrcentrum.cz, 1 vrchat.community, 1 vrconk.com, 1 vrcosplayx.com, 1 @@ -158565,7 +158003,6 @@ vssnederland.nl, 1 vstavropole.tk, 1 vstrikovaci-lisy.cz, 1 -vsure.com.au, 1 vsx.ch, 1 vsz.me, 1 vszp.sk, 1 @@ -158579,7 +158016,6 @@ vtech.com, 1 vtechda.com, 1 vtescebu.com, 1 -vtexpayments.com.br, 1 vtipe-vylez.cz, 0 vtjud.gov, 1 vtklan.tk, 1 @@ -158635,7 +158071,6 @@ vulkanruhe.com, 1 vulkanruhe.de, 1 vulkanrussia-avtomat.ru, 1 -vulkanrussia-casinos.com, 1 vulkanus.com, 1 vullriede-multimedia.de, 0 vulndetect.com, 1 @@ -158746,13 +158181,13 @@ vyshivanochka.in.ua, 1 vysko.cz, 1 vyskocil.com, 1 -vyskocil.eu, 1 vysoketatry.tk, 1 vysokij-istochnik.tk, 1 vysokoe.tk, 1 vysotka.tk, 1 vysvetluju.cz, 1 vyturys.lt, 1 +vytvorsitricko.cz, 1 vyvygen.org, 1 vyzner.cz, 1 vzducho-klima.cz, 1 @@ -158810,6 +158245,7 @@ w3n14izy.tk, 1 w3punkt.de, 1 w3scan.nl, 1 +w3squad.com, 1 w3y.cc, 1 w40faktory.tk, 1 w4b.in, 1 @@ -159058,7 +158494,6 @@ wallix.com, 1 wallmanderstd.se, 1 wallmarketing.cz, 0 -wallmounttvinstallation.com, 1 wallners.se, 1 wallnj.gov, 1 wallnot.dk, 1 @@ -159184,7 +158619,6 @@ wapgame.gq, 1 wapgu.cc, 1 wapheat.tk, 1 -wapicowp.be, 1 wapkarma.tk, 1 wapkat.tk, 1 waplumber.com.au, 1 @@ -159376,7 +158810,6 @@ wasistderunterschied.com, 1 wasp.host, 1 wass.ga, 1 -wass.it, 1 wassenaar.org, 0 wasser-technik-rottal.de, 1 wassermair.net, 1 @@ -159390,7 +158823,6 @@ wataclinic.com, 1 watari-bg.com, 1 watashi.bid, 1 -wataugaonline.com, 1 wataugatx.gov, 1 watboeithet.nl, 1 watch-host.ga, 1 @@ -159413,6 +158845,7 @@ watchparts-and-tools-okayama.co.jp, 1 watchpeopledie.tv, 1 watchstyle.com, 1 +watchthedot.com, 1 watchthis-svp.com, 1 watchtogether.ch, 1 watchtolearn.co, 1 @@ -159443,7 +158876,6 @@ waterfordstoves.ie, 1 waterfordvt.gov, 1 waterfordwi.gov, 1 -waterforlifecharity.org, 1 watergate.info, 1 waterheaterleaguecity.com, 1 waterhouse.tk, 1 @@ -159543,7 +158975,6 @@ waverlytn.gov, 1 wavesboardshop.com, 1 wavesite.tk, 1 -wavin.com, 1 waw-werbeagentur.de, 1 wawak.pl, 1 wawapuquy.com, 1 @@ -159603,7 +159034,6 @@ wb256.com, 0 wb6668.net, 1 wba.or.at, 1 -wbafn.com, 1 wbaltv.com, 1 wbbauth.de, 1 wbbwbwebweb.cf, 1 @@ -159617,12 +159047,10 @@ wbeuil.com, 1 wbfisheries.in, 1 wbg.li, 1 -wbh.im, 1 wbhrb.in, 1 wbldc.in, 1 wblinks.com, 1 wbnet.eu, 1 -wboeijen.nl, 1 wbolt.com, 1 wbookcompany.com, 1 wbphed.gov.in, 1 @@ -159633,7 +159061,6 @@ wbstraining.de, 1 wbt-solutions.ch, 1 wbt-solutions.net, 1 -wbtechnologie.nl, 1 wbtenders.gov.in, 1 wbudd.com, 1 wbut.ml, 1 @@ -159648,6 +159075,7 @@ wcatherinekendall.co.uk, 1 wcboost.com, 1 wccsports.com, 1 +wccu.coop, 1 wcei.com.au, 1 wcema-ok.gov, 1 wcfauth.de, 1 @@ -159682,6 +159110,7 @@ wdic.org, 1 wdkpurple.lgbt, 1 wdmcheng.cn, 1 +wdmg.com.ua, 1 wdmleds.com, 1 wdmpa.eu.org, 1 wdmpa.org, 1 @@ -159707,7 +159136,7 @@ weakinreview.org, 1 wealthadvisorsmf.com, 1 wealthadvisorstrust.com, 1 -wealthcreation.com.au, 0 +wealthcreation.com.au, 1 wealthcreationsolutions.ga, 1 wealthengine.com, 1 wealthprofessional.ca, 1 @@ -159743,8 +159172,8 @@ wearepapermill.co, 1 wearepapermill.com, 1 wearepoo.com, 1 -wearereasonablepeople.com, 1 -wearereasonablepeople.nl, 1 +wearereasonablepeople.com, 0 +wearereasonablepeople.nl, 0 wearesolomon.com, 1 wearesuma.com, 1 wearetravellers.nl, 1 @@ -159816,6 +159245,7 @@ web-redactor.net, 1 web-ross.gq, 1 web-ross.tk, 1 +web-scraping.org, 1 web-siena.it, 1 web-smart.com, 1 web-snadno.online, 1 @@ -159961,14 +159391,14 @@ webdieta.tk, 1 webdietrolequinte.it, 0 webdig.pt, 0 +webdigital.ca, 1 webdl.org, 1 webdollarvpn.io, 1 webdoors.ge, 1 -webdrino.com, 1 webdrops.nl, 1 webdushowcase.co.uk, 1 webeast.eu, 1 -webeau.com, 0 +webeau.com, 1 webelement.sk, 0 webemployed.com, 1 webencrypt.org, 1 @@ -160172,7 +159602,6 @@ webrand.com, 1 webranko.tk, 1 webrebels.org, 0 -webreconstrike.com, 1 webregie.de, 1 webregion.tk, 1 webrepresalia.tk, 1 @@ -160385,7 +159814,6 @@ wedos.cz, 1 wedot.co.uk, 1 wedplay.host, 1 -wedshoots.com, 1 wedviser.com, 1 weeaboo.ml, 1 weeb.us, 1 @@ -160400,7 +159828,6 @@ weedworthy.com, 1 weefriendskids.com, 1 week-numbers.org, 1 -week.report, 1 weekdone.com, 1 weekend4two.ch, 1 weekendbus.pl, 1 @@ -160453,6 +159880,7 @@ wehaaserver.com, 1 wehealasone.gov.ph, 1 weho.gov, 1 +wei-mao.com.ua, 1 weibel.me, 1 weibomiaopai.com, 1 weideheuvel.org, 1 @@ -160509,18 +159937,20 @@ weitergedacht.eu, 1 weitsolutions.nl, 1 weitundbreit.ch, 1 -weitz-porzellan.de, 1 +weitz-porzellan.de, 0 weitzmangroup.com, 1 weixinjiefengla.com, 0 weizenke.im, 1 +wejv.eu, 1 wekan.hopto.org, 1 wekibe.de, 1 wekipedia.com, 1 weknowhowtodoit.com, 1 +wel.com.br, 1 weladee.com, 1 welby.cat, 1 welches-kinderfahrrad.de, 1 -welchmanhallgullybarbados.com, 1 +welchmanhallgullybarbados.com, 0 welcome-tahiti.com, 0 welcome-werkstatt.com, 1 welcome26.ch, 0 @@ -160530,7 +159960,6 @@ welcorp.com, 1 weld.gov, 1 weldersnet.tk, 1 -weldingandwelder.com, 1 weldynz.co.nz, 1 welfareness.icu, 1 welivetogether.com, 1 @@ -160541,7 +159970,6 @@ wellbe.com, 1 wellbeing360.com.au, 1 wellbutrinxlgeneric.cf, 1 -wellcardrx.com, 1 wellcarehealthsurvey.com, 1 wellcom.co.il, 1 wellcomemdhealth.com, 1 @@ -160600,7 +160028,6 @@ welspunindia.com, 1 welstrim.de, 1 welt-flaggen.de, 1 -weltderangebote.de, 1 welteneroberer.de, 1 weltengilde.de, 1 weltenhueter.de, 1 @@ -160693,6 +160120,7 @@ werkenbijdfzs.nl, 0 werkenbijejk.nl, 1 werkenbijintertoys.nl, 1 +werkenbijjunis.nl, 1 werkenbijmagentazorg.nl, 1 werkenbijpelsrijcken.nl, 1 werkenbijpromovendum.nl, 1 @@ -160795,12 +160223,10 @@ westernresourceadvocates.org, 1 westernriversidecog.gov, 1 westernskydental.com, 0 -westernsydney.com.au, 1 westernwaterca.gov, 1 westexec.com, 1 westfairleevt.gov, 1 westfordwi.gov, 1 -westfund.com.au, 1 westgatecruiseandtravel.com, 1 westhamptonma.gov, 1 westhighlandwhiteterrier.com.br, 1 @@ -160891,7 +160317,6 @@ wetthost.com, 1 wetu.com, 1 wetumpkaal.gov, 1 -wetzfunk.org, 1 wevah.com, 0 wevenues.com, 1 weviral.org, 1 @@ -161016,14 +160441,12 @@ whatisl.ovh, 1 whatismesothelioma.top, 1 whatismycountry.com, 1 -whatismycurrentipaddress.com, 1 whatismyip.net, 0 whatismypublicip.com, 1 whatisnetflow.com, 1 whatissflow.com, 1 whatisthe.cloud, 1 whatisthisapp.com, 1 -whatiswhatis.com, 1 whatmylocation.com, 1 whatsapp-plus.com, 0 whatsapp.com, 1 @@ -161322,6 +160745,7 @@ whyworldhot.com, 1 whyy.eu.org, 1 whyzeroturn.com, 1 +wi-fi.org, 1 wi-q.cloud, 1 wi-wi.co.jp, 1 wia.org, 1 @@ -161343,6 +160767,7 @@ wickedvibes.tk, 1 wickersmith.com, 1 wickerwoman.com, 0 +wicklowcountycricket.com, 1 wickrath.com, 1 wickrath.net, 1 wicstunvetgroup.co.uk, 1 @@ -161632,6 +161057,7 @@ wildernessdestinations.com, 1 wildernex.com, 1 wilderoben.com, 1 +wildeshausen272.de, 1 wildfilm.tv, 1 wildfire.gov, 1 wildfirechain.xyz, 1 @@ -161709,7 +161135,6 @@ williamboulton.co.uk, 1 williamboundsltd.com, 1 williamfeely.info, 1 -williamfry.com, 1 williamgoldberg.cf, 1 williamgoren.com, 1 williamjohngauthier.net, 1 @@ -161784,7 +161209,6 @@ wiltonmanors.gov, 1 wiltonsandstonequarry.com.au, 1 wiltrovira.com, 1 -wiltshirefarmfoods.com, 0 wiltshirehealthyschools.org, 1 wimbledon.com, 1 wimbledon.org, 1 @@ -161829,6 +161253,7 @@ wincoil.gov, 1 wind-riders.cf, 1 wind.com.do, 1 +windaero.com, 1 windandweather.com, 1 windata.de, 1 windforme.com, 1 @@ -161844,6 +161269,7 @@ windowcleaningexperts.net, 1 windowreplacement.net, 1 windows, 1 +windows101tricks.com, 0 windows11.com.br, 1 windows311.org, 1 windows7sins.org, 1 @@ -161852,7 +161278,6 @@ windowsforum.com, 1 windowsfreak.de, 0 windowsindonesia.com, 1 -windowsindonesia.id, 1 windowslatest.com, 1 windowsnerd.com, 1 windowsru.com, 0 @@ -161884,7 +161309,6 @@ wine-route.net, 1 wine.com.br, 1 wine.com.my, 1 -wine.money, 1 wine.my, 1 wineandcheeseplace.com, 1 winebrasil.com.br, 1 @@ -162023,7 +161447,6 @@ wired.co.uk, 1 wiredcolony.com, 1 wiredrelease.com, 1 -wiredroot.com, 1 wireheading.com, 1 wirekeep.com, 1 wireless-emergency-stop.com, 1 @@ -162068,7 +161491,6 @@ wisak.me, 1 wisal.org, 1 wisardcoin.tk, 1 -wisatabagus.com, 1 wischu.com, 1 wiscon.co, 1 wisconsin.condos, 1 @@ -162078,7 +161500,7 @@ wisdoj.gov, 1 wisdom-nict.jp, 1 wisdomathena1000.ru, 1 -wisdomgarden-mr.com, 0 +wisdomgarden-mr.com, 1 wisdomgeek.com, 1 wisdomise.com, 1 wisdomise.io, 1 @@ -162268,7 +161690,6 @@ wlmq10086.cn, 1 wlnk.cc, 1 wloch.me, 1 -wlolo.com, 1 wlozku.pl, 1 wlpc.com, 1 wlpvzfilmy-onlajnmlawq.tk, 1 @@ -162314,7 +161735,6 @@ wmtools.me, 1 wmustore.com, 1 wnark.com, 1 -wnav.cc, 1 wnc-frontend-alb-1765173526.ap-northeast-2.elb.amazonaws.com, 1 wndrdtfd.com, 1 wnmed.com.au, 1 @@ -162391,12 +161811,12 @@ wohnungsmarktbeobachtung.de, 1 wohnzimmer-koch.de, 1 woi.vision, 1 -wois.info, 1 woistderbus.net, 1 wojart.pl, 1 wojciechowka.pl, 1 wojciechteichert.pl, 1 wojtekmaj.pl, 1 +wojtekogrodnik.pl, 1 wokeanda.com, 1 wokfilms.pt, 1 wokinghammotorhomes.com, 1 @@ -162435,6 +161855,7 @@ wolfstreet.com, 1 wolfteam.tk, 1 wolfwings.us, 1 +wolfy.design, 1 wolfy1339.com, 1 wolkanca.com, 1 wolkanca.com.tr, 1 @@ -162443,7 +161864,6 @@ wolkenspeicher.org, 1 wolkjehosting.nl, 1 wolkoopjes.nl, 1 -wolkowitz.com, 1 wollmann.it, 1 wollongongbaptist.hopto.org, 1 wollwerk.org, 1 @@ -162455,7 +161875,6 @@ woltlab.com, 1 woltlab.de, 1 wolverine-obuv.ru, 1 -wolverinecarbide.com, 1 wolvesbanemanor.com, 1 wolvox.com, 1 wom.de, 1 @@ -162592,6 +162011,7 @@ woodwicker.cl, 1 woodwo.se, 1 woodworkcare.com, 1 +woodworkingforabeginner.com, 1 woodwormtreatment.com, 1 woody-art.eu, 1 woodyallen.tk, 1 @@ -162599,6 +162019,7 @@ woodysinstalaciones.com, 1 wooeffi.at, 1 woof.gq, 1 +woofngoof.com, 1 woofsbakery.com, 1 wooftrek.co.uk, 1 woohay.com, 1 @@ -162744,13 +162165,11 @@ workingmachine.info, 1 workingnotworking.com, 1 workingplace.xyz, 1 -workingproductkeys.info, 1 workingreporter.com, 1 workingtalent.nl, 1 workinnorway.no, 1 workiva.com, 1 -workiz.com, 1 -workjustice.com.au, 1 +workjustice.com.au, 0 workleap.com, 1 workleisure.uk, 1 worklinepc.com, 1 @@ -162799,7 +162218,6 @@ world-creator.se, 1 world-documentary.ml, 1 world-education-association.org, 1 -world-food-forum.org, 1 world-ir.international, 1 world-lolo.com, 1 world-mail.org, 1 @@ -162833,6 +162251,7 @@ worlddataexchange.au, 1 worlddataexchange.com, 1 worlddataexchange.com.au, 1 +worldejv.com, 1 worldessays.com, 1 worldeventscalendars.com, 1 worldexpo.ga, 1 @@ -162885,6 +162304,7 @@ worldnewsphoto.tk, 1 worldofarganoil.com, 1 worldofbelia.de, 1 +worldofgeekstuff.com, 1 worldofheroes.ml, 1 worldoflegion.ml, 1 worldofparties.co.uk, 1 @@ -162950,7 +162370,6 @@ wortdestages.tk, 1 worthcountyiowa.gov, 1 worthenind.com, 0 -worthingtonindustries.com, 0 worthlessingratitudecq.cf, 1 worthlessingratitudecq.gq, 1 worthlessingratitudecq.ml, 1 @@ -163053,7 +162472,7 @@ wpauctions.com, 1 wpautolistings.com, 1 wpbase.io, 1 -wpbeter.nl, 0 +wpbeter.nl, 1 wpboot.com, 1 wpboys.com, 0 wpbrigade.com, 1 @@ -163082,6 +162501,7 @@ wpg-verwaltungen.de, 1 wpginvest.com, 1 wpglossy.com, 1 +wpgplplug.com, 1 wpguvenlik.com, 1 wphelpdesk.nl, 1 wphelpwithhomework.tk, 1 @@ -163103,6 +162523,7 @@ wpmeer.com, 1 wpmeetup-berlin.de, 1 wpmet.com, 1 +wpml.org, 1 wpmu-tutorials.de, 1 wpna.fm, 1 wpnesia.id, 1 @@ -163229,13 +162650,11 @@ wroclawguide.com, 1 wrong.wang, 0 wrozbyonline.pl, 1 -wrozbyzkartklasycznych.pl, 1 wrp.gov, 1 wrtv.com, 1 wrytin.com, 1 wrzalski.com, 1 ws-01.com, 1 -ws159.com, 1 wsa.poznan.pl, 1 wsadek.ovh, 1 wsave.be, 1 @@ -163251,7 +162670,6 @@ wsdeboer.nl, 1 wselektro.de, 1 wseo.pw, 1 -wsfabrication.com.au, 1 wsgvet.com, 1 wsheffield.com, 1 wsl.sh, 1 @@ -163368,7 +162786,6 @@ wvbold.gov, 1 wvbvm.gov, 1 wvdnr.gov, 1 -wver.de, 1 wvg.myds.me, 1 wvmb.com, 1 wvpbs.ml, 1 @@ -163400,7 +162817,6 @@ wwbsb.xyz, 1 wwc.ren, 1 wwcowa.gov, 1 -wwcut.com, 1 wwe.to, 1 wwecoinio.info, 1 wwgc2011.se, 1 @@ -163578,7 +162994,6 @@ wykopylodz.ga, 1 wylark.com, 1 wyldfiresignage.com, 1 -wylog.ph, 1 wynajemautkrakow.cf, 1 wynajemautkrakow.ga, 1 wynajmijkontener.pl, 1 @@ -163619,7 +163034,6 @@ wz.pt, 1 wzajemnie.org.pl, 1 wzdh.com, 0 -wzdh.net, 0 wzh.one, 1 wzrd.in, 1 wzrd.pw, 1 @@ -163802,7 +163216,6 @@ xb937.com, 1 xb957.com, 1 xb961.com, 1 -xb962.com, 0 xb967.com, 0 xb971.com, 0 xb972.com, 1 @@ -163883,6 +163296,7 @@ xchangeinfo.com, 1 xcharge.uk, 1 xchimera.com, 1 +xchoco.com, 1 xchuan.cn, 1 xcler8.com, 1 xclirion-support.de, 1 @@ -163895,7 +163309,6 @@ xcraftsumulator.ru, 1 xcspy.org, 1 xcucu.com, 0 -xcupidon.com, 1 xcw8886.net, 0 xcw8888.net, 0 xcw8889.net, 0 @@ -164017,13 +163430,13 @@ xiao-sheng.gq, 1 xiaobude.cn, 1 xiaocg.xyz, 1 -xiaoda.fun, 1 +xiaoda.fun, 0 xiaodingyi.cn, 1 xiaoguanliandong.com, 1 xiaoguanlive.com, 1 xiaoguantv.com, 1 xiaohhh.com, 1 -xiaohui.love, 1 +xiaohui.love, 0 xiaojicdn.com, 1 xiaojiyoupin.com, 1 xiaolanglang.net, 1 @@ -164189,6 +163602,7 @@ xinlandm.com, 1 xinmeiti168.cn, 1 xinmeiti365.cn, 1 +xinnermedia.nl, 1 xinpujing198.com, 0 xinpujing200.com, 0 xinpujing518.com, 0 @@ -164211,7 +163625,6 @@ xiufeng.de, 1 xiufeng.nl, 1 xiumu.org, 1 -xiurenwang.co, 1 xiuxiu.cf, 1 xiuxiu.ga, 1 xiuxiu.gq, 1 @@ -164370,6 +163783,7 @@ xn--6btn.xn--fiqs8s, 1 xn--6btn.xn--fiqz9s, 1 xn--6kru6im1lczj.com, 1 +xn--6m1a86p.com, 1 xn--6o8h.cf, 1 xn--6qq52xuogcjfw8pwqp.ga, 1 xn--6qq62xsogfjfs8p1qp.ga, 1 @@ -164491,7 +163905,6 @@ xn--bjugrd-lua.io, 1 xn--blusastlacotalpeas-20b.online, 1 xn--bm3bl9r.com, 1 -xn--bnq37rc0nw50b.com, 1 xn--bognsroad-j3a.dk, 1 xn--brneruhr-0za.ch, 1 xn--bruno-hnel-kcb.de, 0 @@ -164572,7 +163985,6 @@ xn--eebao6b.com, 1 xn--eebao6b.net, 1 xn--eglujemy-23b.net, 1 -xn--ehq091c7jk8qq.com, 1 xn--ehqw04eq6e.jp, 1 xn--elsignificadodesoar-c4b.com, 1 xn--eo5aaa.eu.org, 1 @@ -164590,7 +164002,7 @@ xn--familie-pppinghaus-l3b.de, 1 xn--familienforschung-krau-c2b.de, 1 xn--feuerlscher-arten-4zb.de, 1 -xn--fhqs21ch1c4t0a.xn--czr694b, 1 +xn--fhqs21ch1c4t0a.xn--czr694b, 0 xn--fiqs8syvac75bffa172w.cn, 1 xn--fiqs8syvak73af2cw10h.cn, 1 xn--flskeklubben-7cb.dk, 1 @@ -164950,6 +164362,7 @@ xplozion.tk, 1 xpods.sg, 1 xponance.com, 1 +xportxpert.com, 1 xpreflect.co.uk, 1 xpress-vpn.com, 1 xpressmagazine.org, 1 @@ -165012,6 +164425,7 @@ xt.om, 1 xt177.com, 1 xt71uc.top, 1 +xtaboo3d.com, 1 xtalpi.com, 1 xtarget.ru, 1 xtdsteel.com, 1 @@ -165092,7 +164506,6 @@ xtom.xyz, 1 xtorm.ro, 1 xtournois.com, 1 -xtra.net, 1 xtrainsights.com, 1 xtralis.com, 1 xtreamfire.tk, 1 @@ -165105,7 +164518,6 @@ xtremeitu.dk, 1 xtremejetski.ae, 1 xtremers.tk, 1 -xtremotivation.com, 1 xtremyblog.com, 1 xtronic.org, 1 xtronics.com, 1 @@ -165352,7 +164764,6 @@ y89ll.com, 1 y89m.com, 1 y89n.com, 1 -y89o.com, 1 y89q.com, 0 y89r.com, 0 y89s.com, 0 @@ -165423,8 +164834,6 @@ yahtzeemanifesto.com, 1 yahvehyireh.com, 1 yahvk.moe, 1 -yaiho.com, 1 -yaiho.de, 1 yaizy.io, 1 yak-host.tk, 1 yakbett.de, 1 @@ -165445,6 +164854,7 @@ yakutsk.ml, 1 yalb.tech, 1 yalecleaners.com, 1 +yalla-ask.net, 0 yalla-kora.tv, 1 yalla-shootx.com, 1 yallamotor.com, 1 @@ -165573,6 +164983,7 @@ yarokuk.com, 1 yaroslavia.eu.org, 1 yaroslavova.tk, 1 +yarowork.jp, 1 yarplast.tk, 1 yarr.pt, 1 yarracitta.tk, 1 @@ -165630,6 +165041,7 @@ yavorivanov.com, 1 yavuzatasoy.tk, 1 yawen.me, 1 +yawnder.com, 1 yaws.cf, 1 yaxim.org, 1 yay-btcl.work, 1 @@ -165689,7 +165101,7 @@ yedekparcatedarik.com.tr, 1 yedeksubay.tk, 1 yediothamahar.co.il, 1 -yeechie.nl, 0 +yeechie.nl, 1 yeecord.com, 1 yeecord.tk, 1 yeesker.com, 1 @@ -165964,7 +165376,7 @@ yobai-grouprec.jp, 1 yobasystems.co.uk, 1 yobda.tk, 1 -yobeverages.com, 1 +yobeverages.com, 0 yobify.com, 1 yobniyulyu.tk, 1 yobst.tk, 1 @@ -165983,8 +165395,10 @@ yoga-erde.de, 1 yoga-good.fr, 1 yoga-in-aying.de, 1 +yoga-mindfulness-ibiza.com, 1 yoga-prive.de, 1 yoga-school.xyz, 1 +yoga-vakantie-ibiza.nl, 1 yoga-zentrum-narayani.de, 1 yoga.is-an-engineer.com, 1 yogaangels.ga, 1 @@ -166016,6 +165430,7 @@ yogunet.de, 1 yohanesedwin.com, 1 yohanesmario.com, 1 +yohannberger.com, 1 yohannes.tk, 1 yoimiya.pro, 1 yoitsu.moe, 1 @@ -166051,9 +165466,10 @@ yomyyomy.co.jp, 1 yon.co.il, 0 yoneda-paint.com, 1 -yonema.com, 1 yongbin.org, 1 yongkang-clinic.com.tw, 1 +yongnuo.fr, 1 +yongnuorumors.com, 1 yongseovn.net, 1 yonistap.com, 1 yonja.com, 1 @@ -166087,7 +165503,6 @@ yorkieloverdiy.com, 1 yorkiepooexpert.com, 1 yorkipoo.com, 1 -yorkmarkets.com, 1 yorkmoneyman.com, 1 yorkroadyums.com, 1 yorksc.gov, 1 @@ -166226,7 +165641,7 @@ your-melody.ru, 0 your-money.info, 1 your-out.com, 1 -your-restorer.ru, 1 +your-restorer.ru, 0 your-storageshare.de, 1 your-sussex.wedding, 1 your28days.com, 1 @@ -166301,6 +165716,7 @@ yourkit.com, 1 yourkrabivilla.com, 1 yourlanguages.de, 1 +yourlgpd.com, 1 yourlifespirit.de, 1 yourloan.gq, 1 yourlocalsecurity.com, 1 @@ -166380,7 +165796,7 @@ youth-sport.net, 1 youth.gov, 1 youthclothing.tk, 1 -youthforclimate.fr, 1 +youthforclimate.fr, 0 youthink.jp, 1 youthmarketing.com, 1 youthnews.tk, 1 @@ -166407,6 +165823,7 @@ yova.nl, 0 yoviral.net, 1 yovko.net, 0 +yoyaba.com, 1 yoyohe.com, 1 yoyojobs.tk, 1 yoyoost.duckdns.org, 1 @@ -166442,7 +165859,6 @@ yriik.ml, 1 yrityksen-perustaminen.net, 1 yritza.com, 1 -yrjanheikki.com, 1 yrx.me, 1 yryz.net, 1 ys96.org, 1 @@ -166451,7 +165867,7 @@ ysfridge.com, 1 ysicorp.com, 1 ysiekiz.xyz, 1 -yslxxhome.com, 1 +yslxxhome.com, 0 ysmedia.jp, 1 yspa.tv, 1 yspertal.party, 1 @@ -166521,7 +165937,6 @@ yuhaoskin.com.tw, 1 yuharahisako.ga, 1 yuho.vn, 1 -yui.cat, 1 yui.jp.md, 1 yuisyo.ml, 1 yujixr.net, 1 @@ -166545,6 +165960,7 @@ yukitty-yukitty.com, 1 yukkitacari.tk, 1 yukomgroup.com, 1 +yukon.ca, 1 yukonconnector.com, 1 yukonlip.com, 1 yukoslibrary.ga, 1 @@ -166609,6 +166025,7 @@ yus-azaria.tk, 1 yusa.me, 1 yushanfang.recipes, 1 +yusufkaptanoglu.com, 0 yusukekato.com, 1 yusukesakai.com, 1 yutabon.com, 0 @@ -166649,7 +166066,6 @@ yvonnewilhelmi.com, 1 ywambaguio.org, 1 ywambutuan.org, 1 -ywamphilippines.org, 1 ywamshipsphilippines.com, 1 ywyway.com, 1 yxapp10.com, 1 @@ -166819,6 +166235,7 @@ z9728.co, 1 z99944x.xyz, 1 za.search.yahoo.com, 0 +zaafinancial.com, 1 zaalleatherwear.nl, 1 zaanlijn.nl, 1 zaba.training, 1 @@ -166832,7 +166249,7 @@ zabszk.net, 1 zabszk.ovh, 1 zabukovnik.net, 1 -zaburzeniapamieci.pl, 1 +zaburzeniapamieci.pl, 0 zac.cy, 1 zacarias.com.ar, 1 zacatecasmeetings.com, 1 @@ -166846,7 +166263,6 @@ zachaysan.com, 1 zachbolinger.com, 1 zachborboa.com, 1 -zachfox.photography, 1 zachgibbens.org, 1 zachranari.tk, 1 zachschneider.ca, 1 @@ -166960,7 +166376,7 @@ zakreconysloik.com.pl, 1 zakrentus-ostrus.space, 1 zakspartiesandevents.com, 1 -zakutka.com, 0 +zakutka.com, 1 zala.ml, 1 zalaetavoleibol.tk, 1 zalan.do, 1 @@ -167050,6 +166466,7 @@ zappi.io, 1 zappingarahal.tk, 1 zappingcuraduria.tk, 1 +zappo-entertainment.de, 1 zappos, 1 zapproved.com, 1 zapreaders.cf, 1 @@ -167079,7 +166496,6 @@ zarbis.tk, 1 zarcik.pl, 1 zardain.tk, 1 -zarezerwuj-nocleg.com, 1 zarinab.com, 1 zarja.tk, 1 zarjadnik.tk, 1 @@ -167107,7 +166523,6 @@ zatp.com, 0 zatrzymanie.com.pl, 1 zatsepin.by, 1 -zauberer-bauchredner.ch, 1 zauberfloeten.de, 1 zauberwald.tk, 1 zaufanatrzeciastrona.pl, 1 @@ -167318,6 +166733,7 @@ zeitschrift-lq.com, 1 zeitschriftlq.com, 1 zeitzer-turngala.de, 1 +zejuns.com, 1 zekerheidvanparcelinternational.nl, 1 zekinteractive.com, 1 zekra.tk, 1 @@ -167343,7 +166759,6 @@ zemlyaki.ml, 1 zemlyaki.tk, 1 zemows.industries, 1 -zemtime.com, 1 zen-garden.org, 1 zen-solutions.io, 1 zen-zone.tk, 1 @@ -167377,6 +166792,7 @@ zenithstudylab.org, 1 zenithvitalcare.com.au, 1 zenitkft.hu, 1 +zenjify.com, 1 zenk-security.com, 1 zenker-hausbau.at, 1 zenki-manga.tk, 1 @@ -167404,6 +166820,7 @@ zenti.cloud, 1 zentoid.com, 1 zentouch.gq, 1 +zentoy.club, 1 zentrumfuerchemie.de, 1 zenvia.com, 1 zenvideocloud.com, 1 @@ -167509,10 +166926,8 @@ zettlmeissl.de, 1 zety.com, 1 zety.es, 1 -zety.fr, 1 zeus.gent, 1 zeus.wang, 1 -zeusch-web.de, 1 zeuscorp.ga, 1 zeusec.co.jp, 1 zeusembroidery.com.au, 1 @@ -167564,7 +166979,6 @@ zhangmenglong.cn, 1 zhangpeng.ai, 1 zhangwendao.com, 1 -zhangxiong.work, 1 zhangyiming.tech, 1 zhanxiangyang.com, 1 zhanzhangb.com, 1 @@ -167581,6 +166995,7 @@ zharfa.org, 1 zhattyt.com, 0 zhbot.org, 1 +zhbulbul.com, 1 zhceres.com, 1 zhcexo.com, 1 zhcxws.com, 1 @@ -167590,7 +167005,6 @@ zheldorinform.ga, 1 zheltyy.at, 1 zhen-chen.com, 1 -zhendingresources.com, 0 zhengjie.com, 1 zhengouwu.com, 1 zhengshu.online, 1 @@ -167653,7 +167067,6 @@ zhuktrans.msk.ru, 1 zhumadilov.kz, 1 zhunlink.com, 1 -zhuoyuelicai.com, 1 zhurnalyu.ga, 1 zhuweiwei.cn, 1 zhylon.de, 1 @@ -167669,7 +167082,6 @@ ziaiai.com, 1 ziarajoias.com.br, 1 ziaulnmonzur.tk, 1 -zidanpainting.com, 0 ziddea.com, 1 ziegenhagel.com, 1 ziegler-heizung-frankfurt.de, 1 @@ -167690,6 +167102,7 @@ zihao.me, 0 zihun.club, 1 zij-aan-zij.be, 1 +zijderlaangroup.nl, 1 zijinbor.com, 1 zijingbt.cn, 1 zijingbt.com, 1 @@ -167754,6 +167167,7 @@ zipkey.de, 1 zipmedia.eu, 1 zippie.tk, 1 +zippingus.com, 1 zippo-days.me, 0 zippricami.com, 1 zippyshare.com, 1 @@ -167831,14 +167245,14 @@ zl2020.com, 1 zl2020.vip, 1 zl2121.com, 1 -zl2727.com, 1 +zl2727.com, 0 zl2929.com, 1 zl2toy.com, 1 zl335.com, 1 zl3737.com, 1 zl4231.com, 1 -zl4290.com, 1 -zl5151.com, 1 +zl4290.com, 0 +zl5151.com, 0 zl6161.com, 1 zl6868.com, 1 zl7070.com, 1 @@ -167847,7 +167261,6 @@ zl7979.com, 1 zl850.com, 1 zl861.com, 1 -zl8686.com, 1 zl8787.com, 1 zl8824.com, 1 zl9191.com, 1 @@ -167894,6 +167307,7 @@ znachenie-sna.ml, 1 znachenie-sna.tk, 1 znaj.ua, 1 +znajdz.info, 1 znajdz.lgbt, 1 znajdzprzodka.pl, 1 znakomim.cf, 1 @@ -167962,8 +167376,8 @@ zohomon.com, 1 zoidberg.tv, 1 zoigl.club, 1 -zojadravai.com, 1 zok-ambicija.tk, 1 +zokdl.zp.ua, 1 zoki.art, 1 zoko.tk, 1 zokuomthawn.tk, 1 @@ -168088,7 +167502,6 @@ zor.com, 1 zorasvobodova.cz, 1 zorgclustertool.nl, 1 -zorgdomein.com, 1 zorgenvoorandrea.be, 1 zorgenvoorherena.be, 1 zorgenvoorjean.be, 1 @@ -168155,6 +167568,7 @@ zq.com.sg, 1 zqcollection.com, 1 zqwqz.org, 1 +zrali.com, 1 zravyobrazky.cz, 1 zravypapir.cz, 1 zrejstejna.cz, 1 @@ -168272,7 +167686,6 @@ zuu.fi, 1 zuviel.space, 1 zuyzi.com, 1 -zuzu-market.ru, 1 zuzulatomas.eu, 1 zuzumba.es, 1 zvcdn.de, 1 @@ -168282,7 +167695,6 @@ zverskij-site.tk, 1 zvezdy-porno.ml, 1 zvps.uk, 1 -zvukipro.com, 1 zvvtheboys.tk, 1 zvxr.net, 1 zvz.im, 1 Binary files /srv/release.debian.org/tmp/1Ac09eR6zb/thunderbird-128.5.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin and /srv/release.debian.org/tmp/HKQRBO7Ngj/thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin differ diff -Nru thunderbird-128.5.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json --- thunderbird-128.5.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters/addons-mlbf.bin.meta.json 2025-01-07 20:45:21.000000000 +0000 @@ -1 +1 @@ -{"schema":1730745428845,"attachment":{"hash":"b367fa073e2f50d8119023190aeb4ed8050fd28cf823cce070e240fbd7ba3e05","size":845025,"filename":"filter.bin","location":"staging/addons-bloomfilters/47758106-fb81-4eaa-86a8-f7f7d77cd192.bin","mimetype":"application/octet-stream"},"key_format":"{guid}:{version}","attachment_type":"bloomfilter-base","generation_time":1730745304840,"id":"c974fc29-bf82-4820-8d05-c1486af17be2","last_modified":1730745429265} \ No newline at end of file +{"schema":1733942181628,"attachment":{"hash":"1b8df94642abf6688b74528f1ee733e0d3f7c8a5a165be9c24b481b09c859a42","size":931343,"filename":"filter.bin","location":"staging/addons-bloomfilters/7e9f31d5-81be-4d06-94bf-a5f61dfbfb00.bin","mimetype":"application/octet-stream"},"key_format":"{guid}:{version}","attachment_type":"bloomfilter-base","generation_time":1734362843464,"id":"870ed6d2-ffe8-41b8-87be-25c0e1e13326","last_modified":1734363061859} \ No newline at end of file diff -Nru thunderbird-128.5.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json --- thunderbird-128.5.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/blocklists/addons-bloomfilters.json 2025-01-07 20:45:21.000000000 +0000 @@ -1,91 +1,35 @@ { "data": [ { - "stash": { - "blocked": [ - "{3fd86354-c73f-4395-9e26-2c5c984579bf}:1.1.0", - "{3fd86354-c73f-4395-9e26-2c5c984579bf}:1.1.1", - "{3fd86354-c73f-4395-9e26-2c5c984579bf}:1.1.4", - "{3fd86354-c73f-4395-9e26-2c5c984579bf}:1.1.3" - ], - "unblocked": [] - }, - "schema": 1731431264546, - "key_format": "{guid}:{version}", - "stash_time": 1731436505349, - "id": "5c2e87cd-70e2-4f4e-bf7e-b0230ca886c0", - "last_modified": 1731436571183 - }, - { - "stash": { - "blocked": [ - "8b2b3c9b6a7310bc@organicapolo.com:1.0" - ], - "unblocked": [] - }, - "schema": 1731090971514, - "key_format": "{guid}:{version}", - "stash_time": 1731328505156, - "id": "cf3bc9c7-69d9-4651-bfd7-21468aacd6f0", - "last_modified": 1731328570492 - }, - { - "stash": { - "blocked": [ - "{9ff90378-e398-4f0c-ae19-29b84487dd39}:3.1.6" - ], - "unblocked": [] - }, - "schema": 1730896569408, - "key_format": "{guid}:{version}", - "stash_time": 1731090905027, - "id": "b12b92a3-3222-4aa3-b1d2-3faa934a50a6", - "last_modified": 1731090971390 - }, - { - "stash": { - "blocked": [ - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.5", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.8", - "{a9649639-2ea3-43b9-a1f1-e0182bab24d2}:1.3.55", - "arxivpp@example.com:1.0", - "hsbc.glossary.extension@hsbc.com:1.0", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.10", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:24.3.2", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.3", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:24.4.1", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.6", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.9", - "{a9649639-2ea3-43b9-a1f1-e0182bab24d2}:1.3.43.2", - "{a9649639-2ea3-43b9-a1f1-e0182bab24d2}:1.3.43", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.4", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.11.7", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:23.12.1", - "{eddf1c58-948d-4e0e-9c42-e611e9050a97}:24.2.1" - ], - "unblocked": [] + "schema": 1734363060800, + "attachment": { + "hash": "e97f56fe431fbfb547a15c074ed1a2e2bff55cbb71b8ed8ba0543a41879be611", + "size": 9413, + "filename": "filter.bin", + "location": "staging/addons-bloomfilters/3ec9adc2-7c53-4ad8-b817-6127f516414a.bin", + "mimetype": "application/octet-stream" }, - "schema": 1730745429380, "key_format": "{guid}:{version}", - "stash_time": 1730896505400, - "id": "d68e9ad7-00f6-4f02-ae64-d904fdeb543d", - "last_modified": 1730896569292 + "attachment_type": "softblocks-bloomfilter-base", + "generation_time": 1734362843464, + "id": "24617a6a-8f2a-4687-a780-130c146baaa2", + "last_modified": 1734363061861 }, { - "schema": 1730745428845, + "schema": 1733942181628, "attachment": { - "hash": "b367fa073e2f50d8119023190aeb4ed8050fd28cf823cce070e240fbd7ba3e05", - "size": 845025, + "hash": "1b8df94642abf6688b74528f1ee733e0d3f7c8a5a165be9c24b481b09c859a42", + "size": 931343, "filename": "filter.bin", - "location": "staging/addons-bloomfilters/47758106-fb81-4eaa-86a8-f7f7d77cd192.bin", + "location": "staging/addons-bloomfilters/7e9f31d5-81be-4d06-94bf-a5f61dfbfb00.bin", "mimetype": "application/octet-stream" }, "key_format": "{guid}:{version}", "attachment_type": "bloomfilter-base", - "generation_time": 1730745304840, - "id": "c974fc29-bf82-4820-8d05-c1486af17be2", - "last_modified": 1730745429265 + "generation_time": 1734362843464, + "id": "870ed6d2-ffe8-41b8-87be-25c0e1e13326", + "last_modified": 1734363061859 } ], - "timestamp": 1731436571183 + "timestamp": 1734363061861 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json thunderbird-128.6.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json --- thunderbird-128.5.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/main/devtools-compatibility-browsers.json 2025-01-07 20:45:21.000000000 +0000 @@ -1,6 +1,159 @@ { "data": [ { + "name": "Opera", + "schema": 1733875503058, + "status": "beta", + "version": "116", + "browserid": "opera", + "id": "c4c6d639-2e3a-47f9-bac5-1e89d12654df", + "last_modified": 1733896859512 + }, + { + "name": "Opera Android", + "schema": 1733875503280, + "status": "current", + "version": "86", + "browserid": "opera_android", + "id": "68bb1f4a-24fc-4940-87cc-0b1cb4ff78ae", + "last_modified": 1733896859509 + }, + { + "name": "Opera", + "schema": 1733875503128, + "status": "nightly", + "version": "117", + "browserid": "opera", + "id": "23c4c5ac-a4ca-4f6c-b486-6fe64db2f72c", + "last_modified": 1733896859506 + }, + { + "name": "Opera", + "schema": 1733875502977, + "status": "current", + "version": "115", + "browserid": "opera", + "id": "fbf106ac-1d9e-459f-b97e-d6277db4d2f7", + "last_modified": 1733896859501 + }, + { + "name": "Edge", + "schema": 1733529903592, + "status": "planned", + "version": "134", + "browserid": "edge", + "id": "d23388fd-74d6-41d4-af81-5dbd58e6ca92", + "last_modified": 1733835190114 + }, + { + "name": "Edge", + "schema": 1733529903524, + "status": "nightly", + "version": "133", + "browserid": "edge", + "id": "a4608ee5-515c-4a4b-8080-7173eedbeb64", + "last_modified": 1733835190111 + }, + { + "name": "Edge", + "schema": 1733529604403, + "status": "beta", + "version": "132", + "browserid": "edge", + "id": "571146ba-02c4-478e-bc83-f5e47b52f7fa", + "last_modified": 1733835190108 + }, + { + "name": "Firefox", + "schema": 1732665907851, + "status": "planned", + "version": "136", + "browserid": "firefox", + "id": "87f08750-577a-46be-8dc1-19074b5195c9", + "last_modified": 1732897509042 + }, + { + "name": "Firefox for Android", + "schema": 1732665908209, + "status": "planned", + "version": "136", + "browserid": "firefox_android", + "id": "146488cb-e09d-45a5-8ba7-98b3015616c5", + "last_modified": 1732897509039 + }, + { + "name": "Firefox for Android", + "schema": 1732665908136, + "status": "nightly", + "version": "135", + "browserid": "firefox_android", + "id": "fc2912c0-bd89-4886-80c9-dfa627bcd04a", + "last_modified": 1732897509036 + }, + { + "name": "Firefox", + "schema": 1732665907777, + "status": "nightly", + "version": "135", + "browserid": "firefox", + "id": "2feaa9d9-e37a-4269-b131-529c7460cd79", + "last_modified": 1732897509033 + }, + { + "name": "Firefox", + "schema": 1732665907633, + "status": "current", + "version": "133", + "browserid": "firefox", + "id": "6cbaaf85-e4d8-4ac6-b4ae-40174a04c16b", + "last_modified": 1732897509031 + }, + { + "name": "Firefox for Android", + "schema": 1732665907995, + "status": "current", + "version": "133", + "browserid": "firefox_android", + "id": "ad2131cc-5a37-46df-a809-a664c655dfb3", + "last_modified": 1732897509028 + }, + { + "name": "Firefox for Android", + "schema": 1732665908064, + "status": "beta", + "version": "134", + "browserid": "firefox_android", + "id": "f59bacdc-a689-4cda-8d4b-bfc2067f801e", + "last_modified": 1732897509021 + }, + { + "name": "Firefox", + "schema": 1732665907707, + "status": "beta", + "version": "134", + "browserid": "firefox", + "id": "7c86bf3d-fb86-454d-bd16-66e1ae208816", + "last_modified": 1732897509018 + }, + { + "name": "Edge", + "schema": 1731974719865, + "status": "current", + "version": "131", + "browserid": "edge", + "id": "0813388d-12c8-4c7b-84d5-25bb100f9a6b", + "last_modified": 1732521556533 + }, + { + "name": "Samsung Internet", + "schema": 1731974720014, + "status": "current", + "version": "27.0", + "browserid": "samsunginternet_android", + "id": "e05f8a82-8aa6-4621-b1ef-3195828ccdc0", + "last_modified": 1732521556529 + }, + { "name": "Node.js", "schema": 1731456303695, "status": "esr", @@ -136,15 +289,6 @@ "last_modified": 1730702567944 }, { - "name": "Edge", - "schema": 1730505903159, - "status": "planned", - "version": "133", - "browserid": "edge", - "id": "a4608ee5-515c-4a4b-8080-7173eedbeb64", - "last_modified": 1730702567941 - }, - { "name": "WebView on iOS", "schema": 1730505904117, "status": "beta", @@ -163,96 +307,6 @@ "last_modified": 1730702567935 }, { - "name": "Firefox for Android", - "schema": 1730505903903, - "status": "planned", - "version": "135", - "browserid": "firefox_android", - "id": "fc2912c0-bd89-4886-80c9-dfa627bcd04a", - "last_modified": 1730702567932 - }, - { - "name": "Firefox", - "schema": 1730505903533, - "status": "planned", - "version": "135", - "browserid": "firefox", - "id": "2feaa9d9-e37a-4269-b131-529c7460cd79", - "last_modified": 1730702567929 - }, - { - "name": "Edge", - "schema": 1730493823318, - "status": "beta", - "version": "131", - "browserid": "edge", - "id": "0813388d-12c8-4c7b-84d5-25bb100f9a6b", - "last_modified": 1730702567926 - }, - { - "name": "Firefox", - "schema": 1730505903387, - "status": "beta", - "version": "133", - "browserid": "firefox", - "id": "6cbaaf85-e4d8-4ac6-b4ae-40174a04c16b", - "last_modified": 1730702567923 - }, - { - "name": "Firefox for Android", - "schema": 1730505903751, - "status": "beta", - "version": "133", - "browserid": "firefox_android", - "id": "ad2131cc-5a37-46df-a809-a664c655dfb3", - "last_modified": 1730702567921 - }, - { - "name": "Firefox for Android", - "schema": 1730505903680, - "status": "current", - "version": "132", - "browserid": "firefox_android", - "id": "fe0ca4e2-fbcb-4b2c-a83a-caf59f3ffe2d", - "last_modified": 1730702567918 - }, - { - "name": "Firefox", - "schema": 1730505903311, - "status": "current", - "version": "132", - "browserid": "firefox", - "id": "5377420f-f6ef-4cb7-b7c2-b410cea1d090", - "last_modified": 1730702567916 - }, - { - "name": "Firefox for Android", - "schema": 1730505903825, - "status": "nightly", - "version": "134", - "browserid": "firefox_android", - "id": "f59bacdc-a689-4cda-8d4b-bfc2067f801e", - "last_modified": 1730702567908 - }, - { - "name": "Firefox", - "schema": 1730505903459, - "status": "nightly", - "version": "134", - "browserid": "firefox", - "id": "7c86bf3d-fb86-454d-bd16-66e1ae208816", - "last_modified": 1730702567906 - }, - { - "name": "Edge", - "schema": 1730505903084, - "status": "nightly", - "version": "132", - "browserid": "edge", - "id": "571146ba-02c4-478e-bc83-f5e47b52f7fa", - "last_modified": 1730702567903 - }, - { "name": "WebView on iOS", "schema": 1730246703689, "status": "current", @@ -280,69 +334,6 @@ "last_modified": 1730271665249 }, { - "name": "Edge", - "schema": 1729296306256, - "status": "current", - "version": "130", - "browserid": "edge", - "id": "7827cb56-d1c0-4ef3-a278-75a90781f3de", - "last_modified": 1729504600765 - }, - { - "name": "Opera", - "schema": 1726617903351, - "status": "beta", - "version": "114", - "browserid": "opera", - "id": "da083354-a7e1-40f6-aca1-f5e01a237ae2", - "last_modified": 1726639148096 - }, - { - "name": "Opera", - "schema": 1726617903420, - "status": "nightly", - "version": "115", - "browserid": "opera", - "id": "fbf106ac-1d9e-459f-b97e-d6277db4d2f7", - "last_modified": 1726639148093 - }, - { - "name": "Opera Android", - "schema": 1726617903562, - "status": "current", - "version": "84", - "browserid": "opera_android", - "id": "3911449c-ce7f-4d95-a15e-1417d6236e0f", - "last_modified": 1726639148090 - }, - { - "name": "Opera", - "schema": 1726617903276, - "status": "current", - "version": "113", - "browserid": "opera", - "id": "ab0007b7-5788-4953-b488-7836ec98710f", - "last_modified": 1726639148065 - }, - { - "name": "Samsung Internet", - "schema": 1725667506267, - "status": "current", - "version": "26.0", - "browserid": "samsunginternet_android", - "id": "ddffdac8-1de9-4c43-807c-a195012da511", - "last_modified": 1725871535790 - }, - { - "name": "Samsung Internet", - "schema": 1725667506345, - "status": "beta", - "version": "27.0", - "browserid": "samsunginternet_android", - "id": "e05f8a82-8aa6-4621-b1ef-3195828ccdc0", - "last_modified": 1725871535788 - }, - { "name": "Firefox for Android", "schema": 1723593904156, "status": "esr", @@ -379,5 +370,5 @@ "last_modified": 1665656484764 } ], - "timestamp": 1731478588321 + "timestamp": 1733896859512 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/main/search-config-v2.json thunderbird-128.6.0esr/services/settings/dumps/main/search-config-v2.json --- thunderbird-128.5.0esr/services/settings/dumps/main/search-config-v2.json 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/main/search-config-v2.json 2025-01-07 20:45:21.000000000 +0000 @@ -2044,9 +2044,9 @@ }, "id": "e8e4a7e3-aead-43e3-887d-4064a186bd70", "identifier": "ecosia", - "last_modified": 1718719100319, + "last_modified": 1734364924960, "recordType": "engine", - "schema": 1718698454063, + "schema": 1734220806364, "variants": [ { "environment": { @@ -2074,6 +2074,40 @@ "partnerCode": "16eeffc4" } ] + }, + { + "environment": { + "regions": [ + "at", + "be", + "ch", + "de", + "es", + "it", + "nl", + "se" + ] + }, + "subVariants": [ + { + "environment": { + "applications": [ + "firefox-android", + "focus-android" + ] + }, + "partnerCode": "813cf1dd" + }, + { + "environment": { + "applications": [ + "firefox-ios", + "focus-ios" + ] + }, + "partnerCode": "16eeffc4" + } + ] } ] }, @@ -2701,7 +2735,7 @@ "name": "พจนานุกรม ลองดู", "urls": { "search": { - "base": "https://dict.longdo.org/", + "base": "https://dict.longdo.com/", "params": [ { "name": "src", @@ -2728,9 +2762,9 @@ }, "id": "fcc54178-e432-4d2b-820e-50f389bfb396", "identifier": "longdo", - "last_modified": 1702906502295, + "last_modified": 1734364924962, "recordType": "engine", - "schema": 1702901825919, + "schema": 1734352952859, "variants": [ { "environment": { @@ -7982,5 +8016,5 @@ "schema": 1707824831520 } ], - "timestamp": 1729004089310 + "timestamp": 1734364924962 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/main/search-telemetry-v2.json thunderbird-128.6.0esr/services/settings/dumps/main/search-telemetry-v2.json --- thunderbird-128.5.0esr/services/settings/dumps/main/search-telemetry-v2.json 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/main/search-telemetry-v2.json 2025-01-07 20:45:21.000000000 +0000 @@ -1,20 +1,20 @@ { "data": [ { - "schema": 1730764806877, + "schema": 1733932318157, "components": [ { "type": "ad_carousel", "included": { "parent": { - "selector": ".adsMvCarousel" + "selector": ".product-ads-carousel" }, "related": { - "selector": ".cr" + "selector": ".snippet__control" }, "children": [ { - "selector": ".pa_item", + "selector": ".product-ads-carousel__item", "countChildren": true } ] @@ -22,88 +22,166 @@ }, { "type": "ad_link", - "excluded": { - "parent": { - "selector": "aside" - } - }, "included": { "parent": { - "selector": ".sb_adTA" + "selector": ".ad-result" }, "children": [ { "type": "ad_sitelink", - "selector": ".b_vlist2col" + "selector": ".result__extra-content .deep-links--descriptions" } ] } }, { - "type": "ad_sidebar", + "type": "incontent_searchbox", + "topDown": true, "included": { "parent": { - "selector": "aside" + "selector": "form.search-form" + }, + "related": { + "selector": ".search-form__suggestions" }, "children": [ { - "selector": ".pa_item, .sb_adTA", + "selector": ".search-form__input, .search-form__submit" + } + ] + } + }, + { + "type": "ad_link", + "default": true + } + ], + "shoppingTab": { + "regexp": "/shopping?", + "selector": "nav li[data-test-id='search-navigation-item-shopping'] a" + }, + "taggedCodes": [ + "mzl", + "813cf1dd", + "16eeffc4" + ], + "telemetryId": "ecosia", + "organicCodes": [], + "codeParamName": "tt", + "queryParamName": "q", + "queryParamNames": [ + "q" + ], + "searchPageRegexp": "^https://www\\.ecosia\\.org/", + "filter_expression": "env.version|versionCompare(\"110.0a1\")>=0", + "searchPageMatches": [ + "https://www.ecosia.org/*" + ], + "expectedOrganicCodes": [], + "extraAdServersRegexps": [ + "^https://www\\.bing\\.com/acli?c?k" + ], + "id": "9a487171-3a06-4647-8866-36250ec84f3a", + "last_modified": 1733951403249 + }, + { + "schema": 1733932317207, + "taggedCodes": [ + "monline_dg", + "monline_3_dg", + "monline_4_dg", + "monline_7_dg" + ], + "telemetryId": "baidu", + "organicCodes": [], + "codeParamName": "tn", + "queryParamName": "wd", + "queryParamNames": [ + "wd", + "word" + ], + "searchPageRegexp": "^https://(?:m|www)\\.baidu\\.com/(?:s|baidu)", + "searchPageMatches": [ + "https://m.baidu.com/s*", + "https://m.baidu.com/baidu*", + "https://www.baidu.com/s*", + "https://www.baidu.com/baidu*" + ], + "followOnParamNames": [ + "oq" + ], + "extraAdServersRegexps": [ + "^https?://www\\.baidu\\.com/baidu\\.php?" + ], + "id": "19c434a3-d173-4871-9743-290ac92a3f6a", + "last_modified": 1733951403246 + }, + { + "schema": 1733932316283, + "components": [ + { + "type": "ad_carousel", + "included": { + "parent": { + "selector": ".module--carousel" + }, + "related": { + "selector": ".module--carousel__left, .module--carousel__right" + }, + "children": [ + { + "selector": ".module--carousel__item", "countChildren": true } ] } }, { + "type": "ad_link", + "excluded": { + "parent": { + "selector": ".js-results-sidebar" + } + }, + "included": { + "parent": { + "selector": "article[data-testid='ad']" + }, + "children": [ + { + "type": "ad_sitelink", + "selector": "ul" + } + ] + } + }, + { "type": "incontent_searchbox", "topDown": true, "included": { "parent": { - "selector": "form#sb_form" + "selector": "form#search_form" }, "related": { - "selector": "#sw_as" + "selector": "input#search_button, .search__autocomplete" }, "children": [ { - "selector": "input[name='q']" + "selector": " input#search_form_input" } ] } }, { - "type": "cookie_banner", - "topDown": true, + "type": "ad_sidebar", "included": { "parent": { - "selector": "div#bnp_cookie_banner" + "selector": ".js-results-sidebar" }, "children": [ { - "selector": "button#bnp_btn_accept", - "eventListeners": [ - { - "action": "clicked_accept", - "eventType": "click" - } - ] - }, - { - "selector": "button#bnp_btn_reject", - "eventListeners": [ - { - "action": "clicked_reject", - "eventType": "click" - } - ] - }, - { - "selector": "a#bnp_btn_preference", - "eventListeners": [ - { - "action": "clicked_more_options", - "eventType": "click" - } - ] + "selector": "article[data-testid='ad']", + "countChildren": true } ] } @@ -114,82 +192,169 @@ } ], "shoppingTab": { - "regexp": "^/shop?", - "selector": "#b-scopeListItem-shop a" + "regexp": "&iax=shopping&ia=shopping", + "selector": "#duckbar a[data-zci-link='products']" }, "taggedCodes": [ - "MOZ2", - "MOZ4", - "MOZ5", - "MOZA", - "MOZB", - "MOZD", - "MOZE", - "MOZI", - "MOZL", - "MOZM", - "MOZO", - "MOZR", - "MOZT", - "MOZW", - "MOZX", - "MZSL01", - "MZSL02", - "MZSL03" + "ffab", + "ffcm", + "ffhp", + "ffip", + "ffit", + "ffnt", + "ffocus", + "ffos", + "ffsb", + "fpas", + "fpsa", + "ftas", + "ftsa", + "lm", + "newext" ], - "telemetryId": "bing", + "telemetryId": "duckduckgo", "organicCodes": [], - "codeParamName": "pc", + "codeParamName": "t", "queryParamName": "q", - "followOnCookies": [ - { - "host": "www.bing.com", - "name": "_SS", - "codeParamName": "PC", - "extraCodePrefixes": [ - "QBRE" - ], - "extraCodeParamName": "form" - }, - { - "host": "www.bing.com", - "name": "SRCHS", - "codeParamName": "PC", - "extraCodePrefixes": [ - "QBRE" - ], - "extraCodeParamName": "form" - } - ], "queryParamNames": [ "q" ], "domainExtraction": { "ads": [ { - "method": "textContent", - "selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite" + "method": "href", + "options": { + "queryParamKey": "ad_domain" + }, + "selectors": ".products-carousel a.js-carousel-item-title, [data-testid='ad'] a[data-testid='result-title-a']" } ], "nonAds": [ { - "method": "textContent", - "selectors": "#b_results .b_algo .b_attribution cite" + "method": "href", + "selectors": "[data-layout='organic'] a[data-testid='result-title-a']" } ] }, - "searchPageRegexp": "^https://www\\.bing\\.com/search", - "nonAdsLinkRegexps": [ - "^https://www.bing.com/ck/a" + "searchPageRegexp": "^https://duckduckgo\\.com/", + "searchPageMatches": [ + "https://duckduckgo.com/*" + ], + "expectedOrganicCodes": [ + "h_", + "ha", + "hb", + "hc", + "hd", + "he", + "hf", + "hg", + "hh", + "hi", + "hj", + "hk", + "hl", + "hm", + "hn", + "ho", + "hp", + "hq", + "hr", + "hs", + "ht", + "hu", + "hv", + "hw", + "hx", + "hy", + "hz" ], "extraAdServersRegexps": [ - "^https://www\\.bing\\.com/acli?c?k" + "^https://duckduckgo.com/y\\.js?.*ad_provider\\=", + "^https://www\\.amazon\\.(?:[a-z.]{2,24}).*(?:tag=duckduckgo-)" ], - "id": "e1eec461-f1f3-40de-b94b-3b670b78108c", - "last_modified": 1731429440245 + "id": "9dfd626b-26f2-4913-9d0a-27db6cb7d8ca", + "last_modified": 1733951403244 + }, + { + "isSPA": true, + "schema": 1733932315328, + "components": [ + { + "type": "ad_image_row", + "included": { + "parent": { + "selector": "[data-testid='pam.container']" + }, + "children": [ + { + "selector": "[data-slide-index]", + "countChildren": true + } + ] + } + }, + { + "type": "ad_link", + "included": { + "parent": { + "selector": "[data-testid='adResult']" + } + } + }, + { + "type": "incontent_searchbox", + "topDown": true, + "included": { + "parent": { + "selector": "._1zdrb._1cR1n" + }, + "related": { + "selector": "#search-suggestions" + }, + "children": [ + { + "selector": "input[type='search']" + } + ] + } + }, + { + "type": "ad_link", + "default": true + } + ], + "taggedCodes": [ + "brz-moz", + "firefoxqwant" + ], + "telemetryId": "qwant", + "organicCodes": [], + "codeParamName": "client", + "queryParamName": "q", + "queryParamNames": [ + "q" + ], + "searchPageRegexp": "^https://www\\.qwant\\.com/", + "filter_expression": "env.version|versionCompare(\"124.0a1\")>=0", + "searchPageMatches": [ + "https://www.qwant.com/*" + ], + "followOnParamNames": [], + "defaultPageQueryParam": { + "key": "t", + "value": "web" + }, + "extraAdServersRegexps": [ + "^https://www\\.bing\\.com/acli?c?k", + "^https://api\\.qwant\\.com/v3/r/", + "^https://fdn\\.qwant\\.com/v3/r/" + ], + "id": "19c434a3-d173-4871-9743-290ac92a3f6b", + "last_modified": 1733951403242 }, { - "schema": 1724630408117, + "schema": 1733932313996, "components": [ { "type": "ad_popover", @@ -460,6 +625,9 @@ "nonAdsLinkRegexps": [ "^https?://www\\.google\\.(?:.+)/url?(?:.+)&url=" ], + "searchPageMatches": [ + "https://{host}/search*" + ], "adServerAttributes": [ "rw" ], @@ -475,21 +643,23 @@ "url" ], "id": "635a3325-1995-42d6-be09-dbe4b2a95453", - "last_modified": 1724867833754 + "last_modified": 1733951403239 }, { - "isSPA": true, - "schema": 1712762409532, + "schema": 1733820446478, "components": [ { - "type": "ad_image_row", + "type": "ad_carousel", "included": { "parent": { - "selector": "[data-testid='pam.container']" + "selector": ".adsMvCarousel" + }, + "related": { + "selector": ".cr" }, "children": [ { - "selector": "[data-slide-index]", + "selector": ".pa_item", "countChildren": true } ] @@ -497,126 +667,88 @@ }, { "type": "ad_link", - "included": { + "excluded": { "parent": { - "selector": "[data-testid='adResult']" + "selector": "aside" } - } - }, - { - "type": "incontent_searchbox", - "topDown": true, + }, "included": { "parent": { - "selector": "._1zdrb._1cR1n" - }, - "related": { - "selector": "#search-suggestions" + "selector": ".sb_adTA" }, "children": [ { - "selector": "input[type='search']" + "type": "ad_sitelink", + "selector": ".b_vlist2col" } ] } }, { - "type": "ad_link", - "default": true - } - ], - "taggedCodes": [ - "brz-moz", - "firefoxqwant" - ], - "telemetryId": "qwant", - "organicCodes": [], - "codeParamName": "client", - "queryParamName": "q", - "queryParamNames": [ - "q" - ], - "searchPageRegexp": "^https://www\\.qwant\\.com/", - "filter_expression": "env.version|versionCompare(\"124.0a1\")>=0", - "followOnParamNames": [], - "defaultPageQueryParam": { - "key": "t", - "value": "web" - }, - "extraAdServersRegexps": [ - "^https://www\\.bing\\.com/acli?c?k", - "^https://api\\.qwant\\.com/v3/r/", - "^https://fdn\\.qwant\\.com/v3/r/" - ], - "id": "19c434a3-d173-4871-9743-290ac92a3f6b", - "last_modified": 1713187389066 - }, - { - "schema": 1705363206938, - "components": [ - { - "type": "ad_carousel", + "type": "ad_sidebar", "included": { "parent": { - "selector": ".module--carousel" - }, - "related": { - "selector": ".module--carousel__left, .module--carousel__right" + "selector": "aside" }, "children": [ { - "selector": ".module--carousel__item", + "selector": ".pa_item, .sb_adTA", "countChildren": true } ] } }, { - "type": "ad_link", - "excluded": { - "parent": { - "selector": ".js-results-sidebar" - } - }, - "included": { - "parent": { - "selector": "article[data-testid='ad']" - }, - "children": [ - { - "type": "ad_sitelink", - "selector": "ul" - } - ] - } - }, - { "type": "incontent_searchbox", "topDown": true, "included": { "parent": { - "selector": "form#search_form" + "selector": "form#sb_form" }, "related": { - "selector": "input#search_button, .search__autocomplete" + "selector": "#sw_as" }, "children": [ { - "selector": " input#search_form_input" + "selector": "input[name='q']" } ] } }, { - "type": "ad_sidebar", + "type": "cookie_banner", + "topDown": true, "included": { "parent": { - "selector": ".js-results-sidebar" + "selector": "div#bnp_cookie_banner" }, "children": [ { - "selector": "article[data-testid='ad']", - "countChildren": true + "selector": "button#bnp_btn_accept", + "eventListeners": [ + { + "action": "clicked_accept", + "eventType": "click" + } + ] + }, + { + "selector": "button#bnp_btn_reject", + "eventListeners": [ + { + "action": "clicked_reject", + "eventType": "click" + } + ] + }, + { + "selector": "a#bnp_btn_preference", + "eventListeners": [ + { + "action": "clicked_more_options", + "eventType": "click" + } + ] } ] } @@ -627,194 +759,83 @@ } ], "shoppingTab": { - "regexp": "&iax=shopping&ia=shopping", - "selector": "#duckbar a[data-zci-link='products']" + "regexp": "^/shop?", + "selector": "#b-scopeListItem-shop a" }, "taggedCodes": [ - "ffab", - "ffcm", - "ffhp", - "ffip", - "ffit", - "ffnt", - "ffocus", - "ffos", - "ffsb", - "fpas", - "fpsa", - "ftas", - "ftsa", - "lm", - "newext" + "MOZ2", + "MOZ4", + "MOZ5", + "MOZA", + "MOZB", + "MOZD", + "MOZE", + "MOZI", + "MOZL", + "MOZM", + "MOZO", + "MOZR", + "MOZT", + "MOZW", + "MOZX", + "MZSL01", + "MZSL02", + "MZSL03" ], - "telemetryId": "duckduckgo", + "telemetryId": "bing", "organicCodes": [], - "codeParamName": "t", + "codeParamName": "pc", "queryParamName": "q", + "followOnCookies": [ + { + "host": "www.bing.com", + "name": "_SS", + "codeParamName": "PC", + "extraCodePrefixes": [ + "QBRE" + ], + "extraCodeParamName": "form" + }, + { + "host": "www.bing.com", + "name": "SRCHS", + "codeParamName": "PC", + "extraCodePrefixes": [ + "QBRE" + ], + "extraCodeParamName": "form" + } + ], "queryParamNames": [ "q" ], "domainExtraction": { "ads": [ { - "method": "href", - "options": { - "queryParamKey": "ad_domain" - }, - "selectors": ".products-carousel a.js-carousel-item-title, [data-testid='ad'] a[data-testid='result-title-a']" + "method": "textContent", + "selectors": "#b_results .b_ad .b_attribution cite, .adsMvCarousel cite, aside cite" } ], "nonAds": [ { - "method": "href", - "selectors": "[data-layout='organic'] a[data-testid='result-title-a']" + "method": "textContent", + "selectors": "#b_results .b_algo .b_attribution cite" } ] }, - "searchPageRegexp": "^https://duckduckgo\\.com/", - "expectedOrganicCodes": [ - "h_", - "ha", - "hb", - "hc", - "hd", - "he", - "hf", - "hg", - "hh", - "hi", - "hj", - "hk", - "hl", - "hm", - "hn", - "ho", - "hp", - "hq", - "hr", - "hs", - "ht", - "hu", - "hv", - "hw", - "hx", - "hy", - "hz" - ], - "extraAdServersRegexps": [ - "^https://duckduckgo.com/y\\.js?.*ad_provider\\=", - "^https://www\\.amazon\\.(?:[a-z.]{2,24}).*(?:tag=duckduckgo-)" - ], - "id": "9dfd626b-26f2-4913-9d0a-27db6cb7d8ca", - "last_modified": 1706198445456 - }, - { - "schema": 1698656464939, - "taggedCodes": [ - "monline_dg", - "monline_3_dg", - "monline_4_dg", - "monline_7_dg" - ], - "telemetryId": "baidu", - "organicCodes": [], - "codeParamName": "tn", - "queryParamName": "wd", - "queryParamNames": [ - "wd", - "word" - ], - "searchPageRegexp": "^https://(?:m|www)\\.baidu\\.com/(?:s|baidu)", - "followOnParamNames": [ - "oq" - ], - "extraAdServersRegexps": [ - "^https?://www\\.baidu\\.com/baidu\\.php?" - ], - "id": "19c434a3-d173-4871-9743-290ac92a3f6a", - "last_modified": 1698666532326 - }, - { - "schema": 1698656463945, - "components": [ - { - "type": "ad_carousel", - "included": { - "parent": { - "selector": ".product-ads-carousel" - }, - "related": { - "selector": ".snippet__control" - }, - "children": [ - { - "selector": ".product-ads-carousel__item", - "countChildren": true - } - ] - } - }, - { - "type": "ad_link", - "included": { - "parent": { - "selector": ".ad-result" - }, - "children": [ - { - "type": "ad_sitelink", - "selector": ".result__extra-content .deep-links--descriptions" - } - ] - } - }, - { - "type": "incontent_searchbox", - "topDown": true, - "included": { - "parent": { - "selector": "form.search-form" - }, - "related": { - "selector": ".search-form__suggestions" - }, - "children": [ - { - "selector": ".search-form__input, .search-form__submit" - } - ] - } - }, - { - "type": "ad_link", - "default": true - } - ], - "shoppingTab": { - "regexp": "/shopping?", - "selector": "nav li[data-test-id='search-navigation-item-shopping'] a" - }, - "taggedCodes": [ - "mzl", - "813cf1dd", - "16eeffc4" + "searchPageRegexp": "^https://www\\.bing\\.com/search", + "nonAdsLinkRegexps": [ + "^https://www.bing.com/ck/a" ], - "telemetryId": "ecosia", - "organicCodes": [], - "codeParamName": "tt", - "queryParamName": "q", - "queryParamNames": [ - "q" + "searchPageMatches": [ + "https://www.bing.com/search*" ], - "searchPageRegexp": "^https://www\\.ecosia\\.org/", - "filter_expression": "env.version|versionCompare(\"110.0a1\")>=0", - "expectedOrganicCodes": [], "extraAdServersRegexps": [ "^https://www\\.bing\\.com/acli?c?k" ], - "id": "9a487171-3a06-4647-8866-36250ec84f3a", - "last_modified": 1698666532324 + "id": "e1eec461-f1f3-40de-b94b-3b670b78108c", + "last_modified": 1733951403237 } ], - "timestamp": 1731429440245 + "timestamp": 1733951403249 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/main/translations-models.json thunderbird-128.6.0esr/services/settings/dumps/main/translations-models.json --- thunderbird-128.5.0esr/services/settings/dumps/main/translations-models.json 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/main/translations-models.json 2025-01-07 20:45:20.000000000 +0000 @@ -1,6 +1,114 @@ { "data": [ { + "name": "model.zhen.intgemm.alphas.bin", + "schema": 1734038186842, + "toLang": "en", + "version": "2.0a1", + "fileType": "model", + "fromLang": "zh-Hans", + "attachment": { + "hash": "4465041a02ecc3976f899bc2ca73181c5a3e3b286c672a72da37972262a08f87", + "size": 25461051, + "filename": "model.zhen.intgemm.alphas.bin", + "location": "main-workspace/translations-models/f669d62a-12c8-46fa-b029-0f047fe6afc6.bin", + "mimetype": "application/octet-stream" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "83050b32-791c-454f-9510-6dde401d60d4", + "last_modified": 1734046552194 + }, + { + "name": "vocab.enru.spm", + "schema": 1734038155949, + "toLang": "ru", + "version": "2.0a1", + "fileType": "vocab", + "fromLang": "en", + "attachment": { + "hash": "56ee63e14e8cb926c394242adc3ed7cc602644c3d33058cff2ce2959d52a6258", + "size": 904455, + "filename": "vocab.enru.spm", + "location": "main-workspace/translations-models/c467206e-7dce-40f4-80b1-72bd1cb81e78.spm", + "mimetype": "text/plain" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "770b7bbe-ccd9-4252-a671-093da381e50e", + "last_modified": 1734046552192 + }, + { + "name": "vocab.zhen.spm", + "schema": 1734038217113, + "toLang": "en", + "version": "2.0a1", + "fileType": "vocab", + "fromLang": "zh-Hans", + "attachment": { + "hash": "81e49ac79fd15d0cf95a0c6d190f8f77815c914598759ef9b2952048bb837506", + "size": 1332993, + "filename": "vocab.zhen.spm", + "location": "main-workspace/translations-models/1252ca3b-1520-4b62-891c-3652cab82637.spm", + "mimetype": "text/plain" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "cee2325d-d69d-4ae1-b8fe-5f0673303ffc", + "last_modified": 1734046552188 + }, + { + "name": "lex.50.50.zhen.s2t.bin", + "schema": 1734038225724, + "toLang": "en", + "version": "2.0a1", + "fileType": "lex", + "fromLang": "zh-Hans", + "attachment": { + "hash": "37e2f2feb3382155cbb750dd17d925f28a73c9ca2cd9d246f977c2b1c1928f1b", + "size": 7556580, + "filename": "lex.50.50.zhen.s2t.bin", + "location": "main-workspace/translations-models/f22c4dcb-85b2-442a-bfe0-096d207c7bea.bin", + "mimetype": "application/octet-stream" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "33e0018e-f3ac-4330-bfcb-9234e40c1f91", + "last_modified": 1734046552186 + }, + { + "name": "lex.50.50.enru.s2t.bin", + "schema": 1734038132659, + "toLang": "ru", + "version": "2.0a1", + "fileType": "lex", + "fromLang": "en", + "attachment": { + "hash": "3587f93c10c1d457f874c2ba7ff4d5e2686fdaf7f3fd179cfefeacab3c6990b9", + "size": 2768468, + "filename": "lex.50.50.enru.s2t.bin", + "location": "main-workspace/translations-models/39a1e161-2128-49e1-9316-9ad48ec5db55.bin", + "mimetype": "application/octet-stream" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "cb234c92-c42e-4155-ac17-5f3d62fe6673", + "last_modified": 1734046552183 + }, + { + "name": "model.enru.intgemm.alphas.bin", + "schema": 1734038135394, + "toLang": "ru", + "version": "2.0a1", + "fileType": "model", + "fromLang": "en", + "attachment": { + "hash": "0ef9a209c5edc46692750e7505b3695655b1c7c3ec73058b641201ef18c481ce", + "size": 42992955, + "filename": "model.enru.intgemm.alphas.bin", + "location": "main-workspace/translations-models/c058d1e9-2e44-4ec3-9f76-b79af7907465.bin", + "mimetype": "application/octet-stream" + }, + "filter_expression": "env.channel == 'default' || env.channel == 'nightly'", + "id": "4c0b082d-ccd0-4dd1-927c-d4d285136636", + "last_modified": 1734046552180 + }, + { "name": "lex.50.50.enel.s2t.bin", "schema": 1728418132946, "toLang": "el", @@ -5449,5 +5557,5 @@ "last_modified": 1701186751412 } ], - "timestamp": 1728419357989 + "timestamp": 1734046552194 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/main/translations-wasm.json thunderbird-128.6.0esr/services/settings/dumps/main/translations-wasm.json --- thunderbird-128.5.0esr/services/settings/dumps/main/translations-wasm.json 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/main/translations-wasm.json 2025-01-07 20:45:20.000000000 +0000 @@ -2,6 +2,44 @@ "data": [ { "name": "bergamot-translator", + "schema": 1734370203944, + "license": "MPL-2.0", + "release": "v0.5.0", + "version": "2.0", + "revision": "b475d25cb4568dd7bf37f80b8804030f1820bd4b", + "attachment": { + "hash": "e67e2f8be1a3fc0d9b00adce8b641cdf767bf3de90f1b3ccf732c2d711304fa3", + "size": 4956176, + "filename": "bergamot-translator.wasm", + "location": "main-workspace/translations-wasm/ec4aab08-4e7c-4a62-a7a5-ee6874a5d1a2.wasm", + "mimetype": "application/wasm" + }, + "fx_release": "135.0a1", + "filter_expression": "", + "id": "876af1dd-dfce-4766-8ca3-fd08cc067bc4", + "last_modified": 1734380308791 + }, + { + "name": "bergamot-translator", + "schema": 1733966433707, + "license": "MPL-2.0", + "release": "v0.5.0", + "version": "2.0a1", + "revision": "f9010478a45cd40bf7ad3d0aecdd62dd281ec5d6", + "attachment": { + "hash": "5430dd7f41709620b403e4628f357304c26120c9be634c732827c2ba9164d16c", + "size": 4956240, + "filename": "bergamot-translator.wasm", + "location": "main-workspace/translations-wasm/95f4c7df-7cd2-4851-be11-6414679c1089.wasm", + "mimetype": "application/wasm" + }, + "fx_release": "135.0a1", + "filter_expression": "env.channel == 'nightly' || env.channel == 'default'", + "id": "bb125732-a388-4a63-8242-ed6d0147f97a", + "last_modified": 1734380308789 + }, + { + "name": "bergamot-translator", "schema": 1705698520049, "license": "MPL-2.0", "release": "v0.4.5", @@ -74,5 +112,5 @@ "last_modified": 1681500422542 } ], - "timestamp": 1705701099603 + "timestamp": 1734380308791 } diff -Nru thunderbird-128.5.0esr/services/settings/dumps/security-state/intermediates.json thunderbird-128.6.0esr/services/settings/dumps/security-state/intermediates.json --- thunderbird-128.5.0esr/services/settings/dumps/security-state/intermediates.json 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/services/settings/dumps/security-state/intermediates.json 2025-01-07 20:45:21.000000000 +0000 @@ -1,6 +1,305 @@ { "data": [ { + "schema": 1734055372395, + "derHash": "H5J/N0cDBq/DAYqwSea+HTwKOkXKIH9k9TJRK6lp65Q=", + "attachment": { + "hash": "f11cc90aaa6001369e036b48d5c84d3be7b88037bc42858e0cbc6a48f0943da6", + "size": 2215, + "filename": "V2bMFRf8bRdaD-w9-rrUD2CErEhFrCCfZ39nZRyIuOo=.pem", + "location": "security-state-staging/intermediates/89600cf0-6c0c-40b6-affd-e5da5e63a7f0.pem", + "mimetype": "application/x-pem-file" + }, + "id": "233eab59-6b65-4ab6-a46c-02e7929ee657", + "last_modified": 1734058622679 + }, + { + "schema": 1734055371178, + "derHash": "A9oq93EjDxHEzq7ZJ4t2iNAwWrvDTMTYC8IhGsBL/cA=", + "attachment": { + "hash": "c641aa8e4e1e97f4b038acea5ae0f8af10aa82dc856e05e51735f366dec3d478", + "size": 1240, + "filename": "_2IRR0JqkIXZ0K9H-NB0g9o53AwJOpdX7m3druXjoGI=.pem", + "location": "security-state-staging/intermediates/0fcfc755-6207-4d79-8ef2-b1909b0e8e92.pem", + "mimetype": "application/x-pem-file" + }, + "id": "a34936fd-8708-49b5-af33-786b501657e6", + "last_modified": 1734058622677 + }, + { + "schema": 1734055371686, + "derHash": "WqBdxCM44W2sMwqAV0f37fKW3kZUa9y2BxhOmPFjfBo=", + "attachment": { + "hash": "6bc04d1fd950bff8bd8aa719cb2d05db6cdfd4b9e001666ea9e70e6a145a0880", + "size": 2211, + "filename": "RK3QXtkYywv53l1QhX0S_5qZ9FQiDm2vO3iPS_aKOlA=.pem", + "location": "security-state-staging/intermediates/f8cd1cda-09bf-4e86-bf68-f7e9c1882502.pem", + "mimetype": "application/x-pem-file" + }, + "id": "91aac01e-f5ec-4fe0-9bda-139865a9956c", + "last_modified": 1734058622675 + }, + { + "schema": 1734055372009, + "derHash": "7DffhJmVpTCJyYvRLsrHdAaitBR4d55cuCxfFm59+Dw=", + "attachment": { + "hash": "a9b1562e4e7ea380c25b4ab03f271487a0c11101f0ab5d86e8c20059077a92e2", + "size": 2211, + "filename": "SdiYB3Leyy2LL1jaEvUzhVf_TJMWG29_c8KEpIXMFek=.pem", + "location": "security-state-staging/intermediates/0c126609-1788-4749-b34b-3a04418807d8.pem", + "mimetype": "application/x-pem-file" + }, + "id": "57962e43-38a4-4e67-aa33-3ac31ad1de25", + "last_modified": 1734058622673 + }, + { + "schema": 1734055372724, + "derHash": "7aRdoi+G/iYMbyD56lV4tT6Vow4M+d3g7sooci6gby8=", + "attachment": { + "hash": "ba8508dac4ddb7f9f7be89c5c4411f0758659e3cca24343c5cfc859a47ab0d65", + "size": 1236, + "filename": "QgvqdK3WSI6czEdVOezmpC1ECb-xOHPD7DnEO8YItxA=.pem", + "location": "security-state-staging/intermediates/bffb971b-38ea-4f9d-9225-06ff90a6f541.pem", + "mimetype": "application/x-pem-file" + }, + "id": "e179d6ad-ec6f-46a4-9c31-13abd542f1b8", + "last_modified": 1734058622670 + }, + { + "schema": 1734055370748, + "derHash": "yprTPF7/05+3IpEjC7FXtPgF0WbVJ4JFKJ9GBqSymdc=", + "attachment": { + "hash": "b05d5e3260533a21c14c9400ce8bfb8062a1c090e3452c02ba83b38c3e29650f", + "size": 1240, + "filename": "fxyC9rbFYRxvLVGGV91oiaH7w7K9Bn9Rli2AIRhu-XU=.pem", + "location": "security-state-staging/intermediates/d61a66a5-c3ab-4d74-b480-cb67237c83ed.pem", + "mimetype": "application/x-pem-file" + }, + "id": "52d591f9-3137-49df-a42c-3a8610501bfa", + "last_modified": 1734058622667 + }, + { + "schema": 1733839372495, + "derHash": "Z/naFZtK6ztV4sN8QC6Rzv6H14TYHOlJ+lMhhGIMPP0=", + "attachment": { + "hash": "1e91ebfc5d22e5f70da9eda9d545594c16243098199142136ddc4e809cb8817d", + "size": 2365, + "filename": "9-jwxUa0hDHWVqgEKpRm6sgH2io0RB1nHDYYZUFBPIY=.pem", + "location": "security-state-staging/intermediates/438ce386-426a-4896-89b9-ae8dee560ed0.pem", + "mimetype": "application/x-pem-file" + }, + "id": "f62145a4-6ec7-48aa-826b-5b98d9b10e67", + "last_modified": 1733842622484 + }, + { + "schema": 1733839372153, + "derHash": "NVzRJfk85b8mj5WMHR+KrSif29Qbr6qFZpHbcmDyrKs=", + "attachment": { + "hash": "dff786746599b4a051d65eb108832a0230d3706972a871951936cdc1416a68b5", + "size": 1780, + "filename": "2f2CJhNzfRGOuU_3X08o7xHul9JvRYQSazV59yLP1UA=.pem", + "location": "security-state-staging/intermediates/d29cb836-fdf1-4d40-a6ed-6b7f46d55022.pem", + "mimetype": "application/x-pem-file" + }, + "id": "f5ad7e54-64bb-4eb9-a529-35199ae6c99d", + "last_modified": 1733842622482 + }, + { + "schema": 1733752981859, + "derHash": "HwVw5Bj5yJ4JTLJu2nG5K+2BrLtEayMA05jdtzmremw=", + "attachment": { + "hash": "2e96d39eff2e28904ea569ca9c004cbcc5538359d7e36fa7141196486ee3231b", + "size": 1760, + "filename": "FLMm4hSTpwwfWpEMbJwo84jftyvwNHO9s2RVeKlVPxk=.pem", + "location": "security-state-staging/intermediates/1c6fbe83-8a50-458c-a618-fff433ecc85d.pem", + "mimetype": "application/x-pem-file" + }, + "id": "90558c2c-6338-4a83-85f2-b27961e837d9", + "last_modified": 1733756222455 + }, + { + "schema": 1733752981494, + "derHash": "gduI9M3nNFsOwUDkoZNyAWPfm3h/q6CvWn7azm3DFaY=", + "attachment": { + "hash": "28163319b4dfc592a086da3b5097eb80b0828c992f3e21d80450df22c4e9b8f4", + "size": 1764, + "filename": "vic1X5FW-3ZL1wlmWbQZ87d0rcd9E9YF5kSr1cIvroA=.pem", + "location": "security-state-staging/intermediates/74d5e740-76b3-499d-9d48-35ed72235d29.pem", + "mimetype": "application/x-pem-file" + }, + "id": "9bf80464-65be-4b5d-82ac-5fe2b4256093", + "last_modified": 1733756222452 + }, + { + "schema": 1733752982193, + "derHash": "omO3zv0UkNBP0Owx2WlbruSA7oYdEhJMK/jr2KiTZS8=", + "attachment": { + "hash": "07745c84c98ebb7970bbf3c6a002278316f20242fb588499f4982394f9acac0d", + "size": 2203, + "filename": "UdjZnphaZ6tg9XcXhy3sGAbGDk565YXTy9rPRf7V4EM=.pem", + "location": "security-state-staging/intermediates/823b290f-2fc7-4967-b8ad-e4432152c1d9.pem", + "mimetype": "application/x-pem-file" + }, + "id": "a27884d9-ca9e-4742-a225-388c4ee343a0", + "last_modified": 1733756222450 + }, + { + "schema": 1733752981075, + "derHash": "xNosk3Uj1CBU+7SvaUu5D8d0PJEO4EhyYkG9hMOFCdk=", + "attachment": { + "hash": "9669f34ab9bc0ab8b676a9837a32d2d5fc167269f7d5ad3d3bcf7954a03eb102", + "size": 1760, + "filename": "jQBwC02dvh4YDZ-iyHFDRv39ao2wLtkMFCCNnQrFOQ8=.pem", + "location": "security-state-staging/intermediates/236e41b6-d4ef-439a-a908-0fcdca4a1bb9.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b2367038-6002-4510-a168-ce3d6ae19b14", + "last_modified": 1733756222447 + }, + { + "schema": 1733752980716, + "derHash": "39n7B6QugSFtZJf7xHvlPYKbv9apGIsC1cjN4p4Bz1w=", + "attachment": { + "hash": "a39801495b7f8c75860bf3bbf96ee27df73778942cc08d52b53f019de219e3d7", + "size": 2174, + "filename": "DgE-CFKz_h-0GEGS59pQsyCMXCPoIQjFo6Nv08-jL8o=.pem", + "location": "security-state-staging/intermediates/b3079614-5728-496a-8c3c-1a867df5244e.pem", + "mimetype": "application/x-pem-file" + }, + "id": "61dd5279-865c-42f6-808e-a6ad3e54e489", + "last_modified": 1733756222445 + }, + { + "schema": 1733752980363, + "derHash": "SzFu38B4AoZXHkMMCpQjGxkrRWZq9d6+5FT+CORJY4M=", + "attachment": { + "hash": "062b6b78dd575ca23121f9e2e74d32a6a2452ae4d0a84b147f3f9407ac033e55", + "size": 2203, + "filename": "y1Aed8HxdQgKKQiuDwogl5_BwcbmuuIdKyWiahN6xEE=.pem", + "location": "security-state-staging/intermediates/ca03d0a0-c200-42b0-bf6e-98ba9848089a.pem", + "mimetype": "application/x-pem-file" + }, + "id": "f75d3036-d96b-4746-bc24-225eaa47a17f", + "last_modified": 1733756222442 + }, + { + "schema": 1732802585334, + "derHash": "Z5wM2dDE6JPgBzJQMiME8Od0EGfgyS20K5D/uUFEu/s=", + "attachment": { + "hash": "2099a9c736b55fd05f5e8e5d5698d6eddb3aabef9ed8060a592670b45489d2f3", + "size": 1288, + "filename": "-I-4BAEsnvlRMJgTojDAH2wr1gtGr0V0H05guWoASqU=.pem", + "location": "security-state-staging/intermediates/1bb5c8f4-ef6d-4022-b271-6a2723fc637b.pem", + "mimetype": "application/x-pem-file" + }, + "id": "9f9b20a8-46c1-450f-8ce3-33d1ddedb0c8", + "last_modified": 1732805822694 + }, + { + "schema": 1732802585014, + "derHash": "LYFfKLJJO8Jd7qVhSOxHh53eg0i4IJb80REvpKtJAtM=", + "attachment": { + "hash": "977a26d1cb491373161dc70b09c2dc9cb298d18f56e53dc6a9a477ab0a8791c0", + "size": 2434, + "filename": "uFP6ihkMfWx9mcBXratDytZuhbue8psxFkCQ3-xp9Tk=.pem", + "location": "security-state-staging/intermediates/a07e41a1-ef0d-42a3-a299-519aeb9eefa8.pem", + "mimetype": "application/x-pem-file" + }, + "id": "caf0bd02-9539-4729-a853-d355ddf492e1", + "last_modified": 1732805822692 + }, + { + "schema": 1732802584677, + "derHash": "aIwnXojrs4Lu0Kx9j61iqNDH0HMdY6nKMaZ7axUl4ig=", + "attachment": { + "hash": "de14579c6d08bb61c0b2c0d21888d80dffd20e7d8dfe253d86cbbf9e724c6309", + "size": 1288, + "filename": "tGWZA28lF6LJg0Dsi5yFRZWGA1wpl4xIY2axjBiIA9Q=.pem", + "location": "security-state-staging/intermediates/e7b6c763-bfcc-40e5-a008-7153fb967b29.pem", + "mimetype": "application/x-pem-file" + }, + "id": "77888f0e-d626-4a3f-a474-21bba75d9ed8", + "last_modified": 1732805822689 + }, + { + "schema": 1732802584020, + "derHash": "Rs+4Mu8k/jBaUK38oRye8S8GIQxVDAroNQXwJZB5Fb4=", + "attachment": { + "hash": "0ff6ac5fbb38d3c7981c53d2280660bb23491700621e7bf3395dbf6f03b8497c", + "size": 2434, + "filename": "tQbtm3UZur5Jv1CmL4d5hpGJ3Fu3hdpnIVGHV4syVas=.pem", + "location": "security-state-staging/intermediates/8ee536ef-4eed-4f43-9dfc-c997d682ad68.pem", + "mimetype": "application/x-pem-file" + }, + "id": "23ef3a88-2cbc-47cc-9669-82fd8458aeea", + "last_modified": 1732805822687 + }, + { + "schema": 1732802584360, + "derHash": "cI6elq1c5cmx95E3Qj+pioH/sIeHm3u+PacUJXQuLuw=", + "attachment": { + "hash": "acf1111e750120c2f4b057521983b2a9aebd6537c14d53ebb137495269bc094e", + "size": 1305, + "filename": "v8dOgElborW1IUHCEbZtZwJBAhpf159YOg3KW1W40dM=.pem", + "location": "security-state-staging/intermediates/eda4fdf9-2cd8-4359-93c9-6515635f8639.pem", + "mimetype": "application/x-pem-file" + }, + "id": "95773835-86a0-44f9-a43a-31f2537f54cf", + "last_modified": 1732805822684 + }, + { + "schema": 1732176177498, + "derHash": "JJUssFsNl6nxK0WMfubD86FA9R30RiGT2XUo/YnIuM0=", + "attachment": { + "hash": "f50c8383b5eed51a25fce0ee2681eb4965770c7d9076fab5de96782f87a64fec", + "size": 2016, + "filename": "o2_siJu_zTENWStYTizlNZt0pVqMm2IvyyFrTLCRiPg=.pem", + "location": "security-state-staging/intermediates/827cbd02-cc89-433d-8418-13d9c00d172b.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b58f7ec3-dcdf-4999-ae45-0f117dd17df9", + "last_modified": 1732179422564 + }, + { + "schema": 1732176177179, + "derHash": "qaS+/Ns0mTlFLSLz3Yv95MhAVCtXuu7YiyKhHHvH+Ys=", + "attachment": { + "hash": "3325ee6eaf8f964b9e67ef77081eaedd5e90957491d9fa74712ed755b3bc0b1f", + "size": 2381, + "filename": "0-mUMQbESXcIvNqBA2apUhin-tJq023oiSJmFYEW2vE=.pem", + "location": "security-state-staging/intermediates/a310d18c-3138-4618-9d82-36c841fbb69e.pem", + "mimetype": "application/x-pem-file" + }, + "id": "03ae77fe-5956-42f5-beac-5c6a95cf3bdc", + "last_modified": 1732179422562 + }, + { + "schema": 1732176176867, + "derHash": "unZRFlzhuC3Ed8u8UBvhr2fN4YLyMyYv710gXxl3OMY=", + "attachment": { + "hash": "263542172c939488b88e8a3f5a183f342aae548eb537203d51f57bc368c7ef2c", + "size": 2016, + "filename": "5TroSz406n6q0L54rsgHx3C3VGbttufpE3m9wsrvLNk=.pem", + "location": "security-state-staging/intermediates/2786c6b7-0473-403b-b3da-c7cf200295c6.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b49fefa7-5707-44cc-8237-d9f3420c8ff3", + "last_modified": 1732179422559 + }, + { + "schema": 1732176176264, + "derHash": "BV15swa6wiAaAMcF0ndFx+nPPX9DeazRPYY50sT5TfQ=", + "attachment": { + "hash": "06272e934710900785a90b33e144866a4b979fae2253490231c56fa24e801996", + "size": 2361, + "filename": "Hzuym9uXM3kB_4GXsa8PPs6k0ojbzYphjiCyXI1DILc=.pem", + "location": "security-state-staging/intermediates/553b41b2-23a6-4358-9d6b-974986c5589e.pem", + "mimetype": "application/x-pem-file" + }, + "id": "b0a10364-cc15-44a1-be12-b74d389e9b9b", + "last_modified": 1732179422557 + }, + { "schema": 1731333793175, "derHash": "3aZGNedV0Iwc8TgK/+cOQSlxuPfPCRdUCCbwRXCgDLg=", "attachment": { @@ -694,24 +993,6 @@ "last_modified": 1727449022563 }, { - "schema": 1727359367642, - "derHash": "mRJfFyJitdkynpozEqzSnZEYG5YZ/Nl0YAA9yq+aRRg=", - "subject": "CN=Subordinate Advanced CA G2,O=SECOM Trust Systems CO.\\,LTD.,C=JP", - "subjectDN": "MFkxCzAJBgNVBAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSMwIQYDVQQDExpTdWJvcmRpbmF0ZSBBZHZhbmNlZCBDQSBHMg==", - "whitelist": false, - "attachment": { - "hash": "e3896d3938201db83ae3c49709e98348d05fcfde10e2e25b273c99a8c358e7e1", - "size": 2694, - "filename": "dyr_8he3by16VTzT7yTET3jRYKwLMbcDBal3P6gRoZI=.pem", - "location": "security-state-staging/intermediates/db85e469-23bc-4f83-8795-f88f767b17e8.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "dyr/8he3by16VTzT7yTET3jRYKwLMbcDBal3P6gRoZI=", - "crlite_enrolled": false, - "id": "9817472e-74db-4295-b363-51a551d29ba3", - "last_modified": 1727362622549 - }, - { "schema": 1727359367325, "derHash": "bM9Sdls7NbR2Aw8W7OJCedyH/BDMeEvA4EkZ6QTSVAc=", "subject": "CN=Subordinate Advanced ECC CA G2,O=SECOM Trust Systems CO.\\,LTD.,C=JP", @@ -10810,24 +11091,6 @@ "last_modified": 1666727874713 }, { - "schema": 1666727402518, - "derHash": "4fLpUAD4FeEcgUkEMLXQLI2B0NJWyF32i1FtbCd2GSY=", - "subject": "CN=SECOM Passport for Web EV 2.0 CA,O=SECOM Trust Systems CO.\\,LTD.,C=JP", - "subjectDN": "MF8xCzAJBgNVBAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSkwJwYDVQQDEyBTRUNPTSBQYXNzcG9ydCBmb3IgV2ViIEVWIDIuMCBDQQ==", - "whitelist": false, - "attachment": { - "hash": "11b2cc7c19c9ea658d73d93b55ba2118401c64553f83df52d6c23d8bb092eba4", - "size": 1618, - "filename": "Wa2FjlVfGKwvkiH0LYWh-y-ihHlaTmVQ-gqZEsR3RwY=.pem", - "location": "security-state-staging/intermediates/13abab2d-5558-442e-9c8c-9f54f283182e.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "Wa2FjlVfGKwvkiH0LYWh+y+ihHlaTmVQ+gqZEsR3RwY=", - "crlite_enrolled": false, - "id": "7310f222-43d0-494d-aa65-443d9a816261", - "last_modified": 1666727874698 - }, - { "schema": 1666727340433, "derHash": "ykOJyJ3fwxvsJsdLRKhJjFiy2DhRb6AbFPE5NinlikA=", "subject": "CN=AffirmTrust Certificate Authority - DV1,OU=See www.affirmtrust.com/repository,O=AffirmTrust,C=CA", @@ -14572,24 +14835,6 @@ "last_modified": 1666727870476 }, { - "schema": 1666727383752, - "derHash": "sU1QiQecHY92SduaXTzvsarAb2avxJIlxb4qoZ/UGjU=", - "subject": "CN=Entrust Certification Authority - L1N,OU=See www.entrust.net/legal-terms+OU=(c) 2014 Entrust\\, Inc. - for authorized use only,O=Entrust\\, Inc.,C=US", - "subjectDN": "MIG6MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTQgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MS4wLAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gTDFO", - "whitelist": false, - "attachment": { - "hash": "2a107eb8056c22e82435858002ab7da59ecfe298d1cafd19ef86a74343e7a1bb", - "size": 2207, - "filename": "vJyqpf--OgJrh0WkGBWAggmVgZ5-o9t2KvyRdPxvIhs=.pem", - "location": "security-state-staging/intermediates/119f868d-4224-48fa-aca4-4e950d595c12.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "vJyqpf++OgJrh0WkGBWAggmVgZ5+o9t2KvyRdPxvIhs=", - "crlite_enrolled": false, - "id": "b03bf780-0b68-4f48-9034-834ec2d038db", - "last_modified": 1666727870460 - }, - { "schema": 1666727349051, "derHash": "HIhGxAasYpT68NMqWhTnnIQThaV/EVm2HpAUYF435ek=", "subject": "CN=DigiCert Assured ID G3 TLS ECC384 SHA384 2022 CA1,O=DigiCert\\, Inc.,C=US", @@ -14770,24 +15015,6 @@ "last_modified": 1666727870268 }, { - "schema": 1666727366231, - "derHash": "yikDieDYxipAg/Yoo59S/j84tzGZz/r3wDcjeKRA+2o=", - "subject": "CN=Entrust Certification Authority - L1M,OU=See www.entrust.net/legal-terms+OU=(c) 2014 Entrust\\, Inc. - for authorized use only,O=Entrust\\, Inc.,C=US", - "subjectDN": "MIG6MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9sZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMTQgRW50cnVzdCwgSW5jLiAtIGZvciBhdXRob3JpemVkIHVzZSBvbmx5MS4wLAYDVQQDEyVFbnRydXN0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gTDFN", - "whitelist": false, - "attachment": { - "hash": "02e23f9b06e438417e4e71c8b9fb42a8e2da31ad266ad1ca50792fd36d7251b9", - "size": 1829, - "filename": "VYZwGiJkq3NNo1YRI2RGiSTI1mqTWG8zDcRf1_KAN6I=.pem", - "location": "security-state-staging/intermediates/75652090-686b-4e77-99f1-1f4effac785a.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "VYZwGiJkq3NNo1YRI2RGiSTI1mqTWG8zDcRf1/KAN6I=", - "crlite_enrolled": false, - "id": "e7ad797a-d41f-4eb9-b47a-1af34311a9d1", - "last_modified": 1666727870255 - }, - { "schema": 1666727352489, "derHash": "Iy9jZ89WHgDIPhgKn8qFRrN3H7RQ68tKBSb4NJyMoTk=", "subject": "CN=Entrust Certification Authority - L1E,OU=www.entrust.net/rpa is incorporated by reference+OU=(c) 2009 Entrust\\, Inc.,O=Entrust\\, Inc.,C=US", @@ -16228,42 +16455,6 @@ "last_modified": 1666727868851 }, { - "schema": 1666727355222, - "derHash": "NleScpC2H2zJgSsAJDFTm5c0y2WpaFdnUMdr8kll6Wo=", - "subject": "CN=Subordinate Advanced CA G2,O=SECOM Trust Systems CO.\\,LTD.,C=JP", - "subjectDN": "MFkxCzAJBgNVBAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSMwIQYDVQQDExpTdWJvcmRpbmF0ZSBBZHZhbmNlZCBDQSBHMg==", - "whitelist": false, - "attachment": { - "hash": "355fc1cf56560cdcbf8000b8509f7b2fc16a064ba5dea3c43d58de658976aa33", - "size": 2743, - "filename": "dyr_8he3by16VTzT7yTET3jRYKwLMbcDBal3P6gRoZI=.pem", - "location": "security-state-staging/intermediates/0e978755-a60b-4319-b5ad-f0fcaf263c15.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "dyr/8he3by16VTzT7yTET3jRYKwLMbcDBal3P6gRoZI=", - "crlite_enrolled": false, - "id": "d93d6c20-5a06-4148-afda-0f012b264687", - "last_modified": 1666727868824 - }, - { - "schema": 1666727364137, - "derHash": "vb8Gzp5WxFB/wk7X/h++uqm2yDpcbXwiw5kR2fUSXlo=", - "subject": "CN=Subordinate Advanced ECC CA G2,O=SECOM Trust Systems CO.\\,LTD.,C=JP", - "subjectDN": "MF0xCzAJBgNVBAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScwJQYDVQQDEx5TdWJvcmRpbmF0ZSBBZHZhbmNlZCBFQ0MgQ0EgRzI=", - "whitelist": false, - "attachment": { - "hash": "9c5d31af488a6e6044a329488b4aa4e584216fba8e146cc8f01e162a53a1718d", - "size": 1638, - "filename": "1b-hdhDYKpJwO40m1GtAqNkn5luo7V8AYgKzz-dZ_YY=.pem", - "location": "security-state-staging/intermediates/90767168-53c0-470a-8f7c-94c792877b69.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "1b+hdhDYKpJwO40m1GtAqNkn5luo7V8AYgKzz+dZ/YY=", - "crlite_enrolled": false, - "id": "d0f63dec-c1ea-4622-bb0a-f75cc3b93ee7", - "last_modified": 1666727868811 - }, - { "schema": 1666727332142, "derHash": "gc0DBnJS/+hJskDcwkVmZ4Z34/X+3ExUDXomytLAgcg=", "subject": "CN=NII Open Domain CA - G7 ECC,O=SECOM Trust Systems CO.\\,LTD.,C=JP", @@ -17146,24 +17337,6 @@ "last_modified": 1666727867999 }, { - "schema": 1666727362933, - "derHash": "Ie5tT1/uSFrHoDXx1l3i/E3Q7SiXrNwqO2ecBNRZmug=", - "subject": "CN=DOMENY SSL EV Certification Authority,OU=Controlled by COMODO exclusively for DOMENY.PL sp. z o.o,O=DOMENY.PL sp. z o.o,L=Kraków,ST=Małopolskie,C=PL", - "subjectDN": "MIHHMQswCQYDVQQGEwJQTDEVMBMGA1UECAwMTWHFgm9wb2xza2llMRAwDgYDVQQHDAdLcmFrw7N3MRwwGgYDVQQKExNET01FTlkuUEwgc3AuIHogby5vMUEwPwYDVQQLEzhDb250cm9sbGVkIGJ5IENPTU9ETyBleGNsdXNpdmVseSBmb3IgRE9NRU5ZLlBMIHNwLiB6IG8ubzEuMCwGA1UEAxMlRE9NRU5ZIFNTTCBFViBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eQ==", - "whitelist": false, - "attachment": { - "hash": "f3d76494c4464919cce63ecb05bf14fb950df9c35a2cf3ec14c5145510e1f8a7", - "size": 2292, - "filename": "QKMgYhV5InRJvYzUJ1ylX-BvwC9fUdLVL_e6cCnbdGM=.pem", - "location": "security-state-staging/intermediates/8de6e42d-be0e-493e-aa2b-55eca748c560.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "QKMgYhV5InRJvYzUJ1ylX+BvwC9fUdLVL/e6cCnbdGM=", - "crlite_enrolled": false, - "id": "47e09ae9-961e-4b44-84d8-2c5399f6d183", - "last_modified": 1666727867986 - }, - { "schema": 1666727442801, "derHash": "J38PyiY+EoVtuqTdCt8EIE9/mM/XLOnJOAfjd+NMiHY=", "subject": "CN=GEANT eScience SSL CA 4,O=GEANT Vereniging,C=NL", @@ -17236,24 +17409,6 @@ "last_modified": 1666727867921 }, { - "schema": 1666727375856, - "derHash": "myLn+gjT+MbW6fQg2PdWx5E15m0bLXCweQNyHwPb5bY=", - "subject": "CN=DOMENY SSL OV Certification Authority,O=DOMENY.PL sp. z o.o,L=Kraków,ST=Małopolskie,C=PL", - "subjectDN": "MIGEMQswCQYDVQQGEwJQTDEVMBMGA1UECAwMTWHFgm9wb2xza2llMRAwDgYDVQQHDAdLcmFrw7N3MRwwGgYDVQQKExNET01FTlkuUEwgc3AuIHogby5vMS4wLAYDVQQDEyVET01FTlkgU1NMIE9WIENlcnRpZmljYXRpb24gQXV0aG9yaXR5", - "whitelist": false, - "attachment": { - "hash": "33d3f9f98124a1520b06103eebe50e0a09b8bb366086d1c8d77eda1100020b3d", - "size": 2154, - "filename": "y6RI9X1eeUkKidF2MrXM7RymKK9CUcax6TB8EJO15E4=.pem", - "location": "security-state-staging/intermediates/34069b00-c339-4852-bd44-2c39ed72658f.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "y6RI9X1eeUkKidF2MrXM7RymKK9CUcax6TB8EJO15E4=", - "crlite_enrolled": false, - "id": "5c84d921-ec2c-4b16-9bf3-a681d07e7c21", - "last_modified": 1666727867895 - }, - { "schema": 1666727382857, "derHash": "cpVqHFql2RrGnNYxB6JaoYQ4Gd3CHFEI7B2X8yKWA84=", "subject": "CN=USERTrust ECC Domain Validation Secure Server CA,O=The USERTRUST Network,L=Jersey City,ST=New Jersey,C=US", @@ -17488,24 +17643,6 @@ "last_modified": 1666727867664 }, { - "schema": 1666727438009, - "derHash": "E8a3OVvGT8Bs7yzlP2bUuYAMUs2IFu43Uy86skuBZcw=", - "subject": "CN=K Software Certificate Authority (DV) 2,O=K Software,L=Ashland,ST=KY,C=US", - "subjectDN": "MHMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJLWTEQMA4GA1UEBxMHQXNobGFuZDETMBEGA1UEChMKSyBTb2Z0d2FyZTEwMC4GA1UEAxMnSyBTb2Z0d2FyZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKERWKSAy", - "whitelist": false, - "attachment": { - "hash": "8a9e6bebf2554efd82de42d3c7090d73dc04c0146db9127f01bd780acb523629", - "size": 2138, - "filename": "fL2WqC2l5uf2-UsREkC4vpvX1l1w6N47XmmbDTOPHoM=.pem", - "location": "security-state-staging/intermediates/3b00536b-80c7-4c64-bba2-a88d43f70ca9.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "fL2WqC2l5uf2+UsREkC4vpvX1l1w6N47XmmbDTOPHoM=", - "crlite_enrolled": false, - "id": "79193cb6-7022-434a-a082-26cbef2aec89", - "last_modified": 1666727867651 - }, - { "schema": 1666727340086, "derHash": "N4NPpepA+/e2EZaVWWLhygVYhyQ15CBmU9P2IN2OmI4=", "subject": "CN=GEANT OV RSA CA 4,O=GEANT Vereniging,C=NL", @@ -17794,24 +17931,6 @@ "last_modified": 1666727867371 }, { - "schema": 1666727423605, - "derHash": "GUzCtbBkk8DvCwqfqDdvlYviQqJ0ral0rLyRAjNoeNw=", - "subject": "CN=DOMENY SSL DV Certification Authority,O=DOMENY.PL sp. z o.o,L=Kraków,ST=Małopolskie,C=PL", - "subjectDN": "MIGEMQswCQYDVQQGEwJQTDEVMBMGA1UECAwMTWHFgm9wb2xza2llMRAwDgYDVQQHDAdLcmFrw7N3MRwwGgYDVQQKExNET01FTlkuUEwgc3AuIHogby5vMS4wLAYDVQQDEyVET01FTlkgU1NMIERWIENlcnRpZmljYXRpb24gQXV0aG9yaXR5", - "whitelist": false, - "attachment": { - "hash": "ad32d53b83760d3ca2c18007c1e9dd8203dc16f07bd3a8bac0b99701a5b796f3", - "size": 2154, - "filename": "c4Z4xm0MVOlxzaOy4OXC86lTgsofdZML4CYOmaSpWYM=.pem", - "location": "security-state-staging/intermediates/b332d168-1bb8-4058-95fd-56aaad43101b.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "c4Z4xm0MVOlxzaOy4OXC86lTgsofdZML4CYOmaSpWYM=", - "crlite_enrolled": false, - "id": "de87f0b6-9d2d-4592-8c45-a439301c4776", - "last_modified": 1666727867357 - }, - { "schema": 1666727419907, "derHash": "hg+OSYT8qqp4yH8HE/IDGBtX17VW/tl5zhTcoB/6SlQ=", "subject": "CN=GEANT EV ECC CA 4,O=GEANT Vereniging,C=NL", @@ -18370,24 +18489,6 @@ "last_modified": 1666727866912 }, { - "schema": 1666727367394, - "derHash": "vrjv6bGnPIQbN1qQ5f/4BIhI46KvZvbE3XuTjW/oxdg=", - "subject": "CN=TERENA SSL CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MGQxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEYMBYGA1UEAxMPVEVSRU5BIFNTTCBDQSAz", - "whitelist": false, - "attachment": { - "hash": "e4ac7ab94f676f44055d2f3516028ed222a17a914725519dd8ff9d3afb675e0d", - "size": 1788, - "filename": "8651wEkMkH5ftiaLp57oqmx3KHTFzDgp7ZeJXR0ToBs=.pem", - "location": "security-state-staging/intermediates/cf430545-b753-4480-94fd-67f3f032f9af.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "8651wEkMkH5ftiaLp57oqmx3KHTFzDgp7ZeJXR0ToBs=", - "crlite_enrolled": false, - "id": "6a7c2942-3cb4-418e-9ebd-9506dda57955", - "last_modified": 1666727866898 - }, - { "schema": 1666727336331, "derHash": "QD4GKiZTBZETKFuvgKDUrkIshIyfePrQH8lLxbh/7xo=", "subject": "CN=DigiCert SHA2 Extended Validation Server CA,OU=www.digicert.com,O=DigiCert Inc,C=US", @@ -18802,24 +18903,6 @@ "last_modified": 1666727866585 }, { - "schema": 1666727419395, - "derHash": "XSh2HL8wTq/NEns01hT+F5rHdE8VUq8cMSmEJa0FonU=", - "subject": "CN=Aetna Inc. Secure CA2,O=Aetna Inc,C=US", - "subjectDN": "MEExCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlBZXRuYSBJbmMxHjAcBgNVBAMTFUFldG5hIEluYy4gU2VjdXJlIENBMg==", - "whitelist": false, - "attachment": { - "hash": "c2cdb82c5e1bf5ef4193f5ea83b80439de8011541cd0db0c76e1bb7ec0b468fd", - "size": 1683, - "filename": "NIgvyyhcGFo7vlL_K_w6cn8iFWO9ftJXWrIU77O5hMI=.pem", - "location": "security-state-staging/intermediates/ed4bff44-19e6-498e-9259-91ec361a7b9e.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "NIgvyyhcGFo7vlL/K/w6cn8iFWO9ftJXWrIU77O5hMI=", - "crlite_enrolled": false, - "id": "2d046223-ab4e-46b2-986d-e3da4c0832c8", - "last_modified": 1666727866572 - }, - { "schema": 1666727412018, "derHash": "FesKdcZzq/vc0vr8AoI8kf5svDbgB4hELIdU1yvsNxc=", "subject": "CN=Encryption Everywhere DV TLS CA - G1,OU=www.digicert.com,O=DigiCert Inc,C=US", @@ -18892,24 +18975,6 @@ "last_modified": 1666727866519 }, { - "schema": 1666727354717, - "derHash": "oUSKAV4TmcWokYEvDojG2EeyIdIfkyamYmukOg62Etk=", - "subject": "CN=Aetna Inc. Secure EV CA,O=Aetna Inc,C=US", - "subjectDN": "MEMxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlBZXRuYSBJbmMxIDAeBgNVBAMTF0FldG5hIEluYy4gU2VjdXJlIEVWIENB", - "whitelist": false, - "attachment": { - "hash": "b397cd1ec073303b2d5236a77c1446f20ccf4a85eaeca51549c6aa6108d92da2", - "size": 1804, - "filename": "0rv4XQwSpZni_0C8FcOJhSJNEzvghB5GUVNKhM-UmQE=.pem", - "location": "security-state-staging/intermediates/e66dd7a1-3bd1-42ac-98c6-daeefd436477.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "0rv4XQwSpZni/0C8FcOJhSJNEzvghB5GUVNKhM+UmQE=", - "crlite_enrolled": false, - "id": "cc712069-0be1-4f40-9cbd-38ca7c1847a7", - "last_modified": 1666727866506 - }, - { "schema": 1666727395258, "derHash": "y1ez/yBAyyaUl2JbyQ+p17TtSTjG9g9C9pr99QisKZM=", "subject": "CN=DigiCert Basic RSA CN CA G2,O=DigiCert Inc,C=US", @@ -19270,24 +19335,6 @@ "last_modified": 1666727866217 }, { - "schema": 1666727418046, - "derHash": "3cu08wUdbmATEOsORrW7mcXouZ96U542eph96gMOMY4=", - "subject": "CN=Aetna Inc. Secure CA2,O=Aetna Inc,C=US", - "subjectDN": "MEExCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlBZXRuYSBJbmMxHjAcBgNVBAMTFUFldG5hIEluYy4gU2VjdXJlIENBMg==", - "whitelist": false, - "attachment": { - "hash": "fef5a3bae1ed2ec43c7ac48315dd5848dcddc98565757b54e37a4e6a8cfd8a99", - "size": 1800, - "filename": "NIgvyyhcGFo7vlL_K_w6cn8iFWO9ftJXWrIU77O5hMI=.pem", - "location": "security-state-staging/intermediates/36301512-ecda-409a-9af9-1adcd3291550.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "NIgvyyhcGFo7vlL/K/w6cn8iFWO9ftJXWrIU77O5hMI=", - "crlite_enrolled": false, - "id": "92ded146-e18a-48f3-b504-3ec6efe36e7d", - "last_modified": 1666727866203 - }, - { "schema": 1666727341626, "derHash": "A86bxxuR/bfLPFI1yuBwHLSGu9Yo1KreWEH8XwqjekY=", "subject": "CN=DigiCert CN RSA CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US", @@ -19378,24 +19425,6 @@ "last_modified": 1666727866135 }, { - "schema": 1666727422551, - "derHash": "ChY2AGMb1mJn+3rq0lxTiyt9cq1kFqK70oX2VLtkL20=", - "subject": "CN=Aetna Inc. Secure EV CA,O=Aetna Inc,C=US", - "subjectDN": "MEMxCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlBZXRuYSBJbmMxIDAeBgNVBAMTF0FldG5hIEluYy4gU2VjdXJlIEVWIENB", - "whitelist": false, - "attachment": { - "hash": "99945b8fb1ff89697427d104cf744cf70ff8fc7f21b7ea991a9d7a97932b449b", - "size": 1687, - "filename": "0rv4XQwSpZni_0C8FcOJhSJNEzvghB5GUVNKhM-UmQE=.pem", - "location": "security-state-staging/intermediates/1d1ab64c-f64a-4919-aace-65e8529d7d55.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "0rv4XQwSpZni/0C8FcOJhSJNEzvghB5GUVNKhM+UmQE=", - "crlite_enrolled": false, - "id": "5958f121-2009-4512-9ba6-82063db5ad3a", - "last_modified": 1666727866121 - }, - { "schema": 1666727389863, "derHash": "rshjiY8oTWzUxqP2w+ZSNICjWcM9r2b60zgYSbi7AYs=", "subject": "CN=Cloudflare Inc RSA CA-2,O=Cloudflare\\, Inc.,C=US", @@ -20656,24 +20685,6 @@ "last_modified": 1664326625917 }, { - "schema": 1664326313287, - "derHash": "vmoNnh0RXyKT9qvxGz7I6ILiRCbu6wmqpQNZeZPneiU=", - "subject": "CN=TERENA SSL High Assurance CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MHMxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEnMCUGA1UEAxMeVEVSRU5BIFNTTCBIaWdoIEFzc3VyYW5jZSBDQSAz", - "whitelist": false, - "attachment": { - "hash": "8d237604a604b6c114352fe34117c1f80898239bdf21d1f81d2411892a0eec27", - "size": 1752, - "filename": "XaQOs7GKv4Gx4JRA8ZmihabSl9wxIPx-hQBmJ54WmCs=.pem", - "location": "security-state-staging/intermediates/8a739887-2661-4e6d-8937-838e82255c56.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "XaQOs7GKv4Gx4JRA8ZmihabSl9wxIPx+hQBmJ54WmCs=", - "crlite_enrolled": false, - "id": "4060e977-0298-41b1-8f3d-af34a82c520d", - "last_modified": 1664326625909 - }, - { "schema": 1664326308953, "derHash": "JOnyCsFnu48J3ooemWjMU/C186SUj1G4ZHtAsYbHXr4=", "subject": "CN=DigiCert Secure Auth CA,OU=www.digicert.com,O=DigiCert Inc,C=US", @@ -20746,24 +20757,6 @@ "last_modified": 1664326625855 }, { - "schema": 1664326298513, - "derHash": "wSP1r6zJ+QloCYUDVeW/eMqTdzSBEbUWepZN3twETek=", - "subject": "CN=TERENA Personal CA 3 G3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MGwxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEgMB4GA1UEAxMXVEVSRU5BIFBlcnNvbmFsIENBIDMgRzM=", - "whitelist": false, - "attachment": { - "hash": "ceaf99503d454e0bfc760c2d329942b0bb190599c2bd759df53ac0525ba6632e", - "size": 1561, - "filename": "YT82u8O68j48N4ShltJlLRPwW9t8uCpdZikMmWEu9ro=.pem", - "location": "security-state-staging/intermediates/9181fd99-fc3d-43be-ad3e-d1efb285d5ae.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "YT82u8O68j48N4ShltJlLRPwW9t8uCpdZikMmWEu9ro=", - "crlite_enrolled": false, - "id": "2d2d71d8-63a8-4ebf-b9ff-41fc7de6502f", - "last_modified": 1664326625832 - }, - { "schema": 1664326299399, "derHash": "A2oY9fDrndXuAreFTfXDOEVgHYk5z7e2B/adFCwB2Qk=", "subject": "CN=TrustAsia TLS RSA CA G8,OU=Domain Validated SSL,O=TrustAsia Technologies\\, Inc.,C=CN", @@ -21070,24 +21063,6 @@ "last_modified": 1664326625561 }, { - "schema": 1664326265639, - "derHash": "3U4MF5APP8Klt7dzrkAhitcyFrXOXShev/zogw0PA0o=", - "subject": "CN=TERENA Personal CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MGkxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEdMBsGA1UEAxMUVEVSRU5BIFBlcnNvbmFsIENBIDM=", - "whitelist": false, - "attachment": { - "hash": "5f70131626f90ff117b3f4e144a4104cefc2a25ad3b7b24ebbe7571cb6e9d37a", - "size": 1792, - "filename": "HOqz19sqhyR0ujgIsU9ml1UZS9cRaphqC_kcr3CVOg0=.pem", - "location": "security-state-staging/intermediates/5519208e-d7cc-40b7-9360-9aaec642f07a.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "HOqz19sqhyR0ujgIsU9ml1UZS9cRaphqC/kcr3CVOg0=", - "crlite_enrolled": false, - "id": "70744846-a620-4a6e-8867-00bb0c2bd5dd", - "last_modified": 1664326625515 - }, - { "schema": 1664326264787, "derHash": "ctD3y/RSm4DDSny7Q4vR0OH8JugOWcvU/XMU/N3w6ZQ=", "subject": "CN=DigiCert High Assurance Trust Service EV CA,O=DigiCert Inc,C=US", @@ -21430,24 +21405,6 @@ "last_modified": 1664326625222 }, { - "schema": 1664326220594, - "derHash": "ydaRPz/t3v8YTJ7h1+F8WuyQiG7tXMPW6YEFgxyMDgs=", - "subject": "CN=TERENA SSL CA 3 G3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MGcxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEbMBkGA1UEAxMSVEVSRU5BIFNTTCBDQSAzIEcz", - "whitelist": false, - "attachment": { - "hash": "c34e8e1124aac0817764c399d00072c6d60abb9d90bfcb222a2db90df6f1633f", - "size": 1557, - "filename": "CZ7AmTfjAN5e7IHESKlD7oZew2o25fDM7eqsgsH2OSk=.pem", - "location": "security-state-staging/intermediates/18fe6fa8-0078-4269-8b40-c399a6523419.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "CZ7AmTfjAN5e7IHESKlD7oZew2o25fDM7eqsgsH2OSk=", - "crlite_enrolled": false, - "id": "6f73b567-3c48-499d-a69e-5da61f1aafb8", - "last_modified": 1664326625160 - }, - { "schema": 1664326217988, "derHash": "iR7i4jKC5QdsmukEfejqkA4Gb4HW3Nm4Q8WQeLDxBbw=", "subject": "CN=WoSign EV SSL Pro CA,O=WoSign CA Limited,C=CN", @@ -21754,24 +21711,6 @@ "last_modified": 1664326624788 }, { - "schema": 1664326178045, - "derHash": "/alHIIv6MgOmxXuHFKZHtwCeUWjoiVE0VFCx0tP5Gn0=", - "subject": "CN=TERENA eScience Personal CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MHIxCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEmMCQGA1UEAxMdVEVSRU5BIGVTY2llbmNlIFBlcnNvbmFsIENBIDM=", - "whitelist": false, - "attachment": { - "hash": "a948cf8f30ccb800e35bb069018109f31bedbe3743067ced32cb2e79edefc532", - "size": 1804, - "filename": "D4s14JIoSBMzTNeUUcWADRb_-SykkRSe9uuLuoU5ots=.pem", - "location": "security-state-staging/intermediates/fef5346e-9b0a-48da-a507-622c76da1104.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "D4s14JIoSBMzTNeUUcWADRb/+SykkRSe9uuLuoU5ots=", - "crlite_enrolled": false, - "id": "0478cf5c-b32a-4100-a960-ec6421916beb", - "last_modified": 1664326624749 - }, - { "schema": 1664326176323, "derHash": "raGI+DDDE/YEZIjsNB8e1K95PG3CjFhgBEXfvrQWN0Y=", "subject": "CN=Thawte CN RSA EV CA G1,OU=www.digicert.com,O=DigiCert Inc,C=US", @@ -22060,24 +21999,6 @@ "last_modified": 1664326624540 }, { - "schema": 1664326154269, - "derHash": "4b5ru7cPWiQec2/ETGohYL9s4ZuV7dZ7976JboN3h0U=", - "subject": "CN=TERENA eScience SSL CA 3,O=TERENA,L=Amsterdam,ST=Noord-Holland,C=NL", - "subjectDN": "MG0xCzAJBgNVBAYTAk5MMRYwFAYDVQQIEw1Ob29yZC1Ib2xsYW5kMRIwEAYDVQQHEwlBbXN0ZXJkYW0xDzANBgNVBAoTBlRFUkVOQTEhMB8GA1UEAxMYVEVSRU5BIGVTY2llbmNlIFNTTCBDQSAz", - "whitelist": false, - "attachment": { - "hash": "a08076a84bc8fe3155ddd8623e80fc94436c26827325f7ef4693220388fe0c0f", - "size": 1800, - "filename": "mNPoBotkTew6fh29COIk7FfA9rKbI3N7z9F5Tl9pcMQ=.pem", - "location": "security-state-staging/intermediates/e3b599ad-6468-4e78-8fb0-d42803115117.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "mNPoBotkTew6fh29COIk7FfA9rKbI3N7z9F5Tl9pcMQ=", - "crlite_enrolled": false, - "id": "a1dac4ca-f74a-4c2a-82ab-dbee042b2786", - "last_modified": 1664326624531 - }, - { "schema": 1664304522729, "derHash": "51J+MNRzrsOxYq/cRwlUSdLdVJTOhi4v5PQ2wIEmL2Q=", "subject": "CN=OCLC TLS Issuing RSA SubCA R1,O=OCLC\\, Inc.,C=US", @@ -23122,24 +23043,6 @@ "last_modified": 1663786625694 }, { - "schema": 1663786282117, - "derHash": "6UL/g/YzoI29ZeQ7VxmkNA3hPbfGG9aofNywuph1qWg=", - "subject": "CN=K Software Certificate Authority (OV) 2,O=K Software,L=Ashland,ST=KY,C=US", - "subjectDN": "MHMxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJLWTEQMA4GA1UEBxMHQXNobGFuZDETMBEGA1UEChMKSyBTb2Z0d2FyZTEwMC4GA1UEAxMnSyBTb2Z0d2FyZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgKE9WKSAy", - "whitelist": false, - "attachment": { - "hash": "6b5d6d13ec9593e3b5105f745119087884482867ef84044045a62c1495667b19", - "size": 2138, - "filename": "afXDX7F7Ynjqxjg6ewL0PMjH-QIuDGSiQQ1PAGTTkE4=.pem", - "location": "security-state-staging/intermediates/4aa0f861-18da-4875-b438-9abb6a514d4e.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "afXDX7F7Ynjqxjg6ewL0PMjH+QIuDGSiQQ1PAGTTkE4=", - "crlite_enrolled": false, - "id": "4723b4a1-0b24-4bf8-8290-9b009135c88f", - "last_modified": 1663786625687 - }, - { "schema": 1663786281224, "derHash": "MkC4HG31Uq6hbXAinb/v8k1Q6qmiJyORiI9lvpW0UOM=", "subject": "CN=CertCenter Enterprise RSA OV CA,O=CertCenter AG,L=Giessen,ST=Hessen,C=DE", @@ -24130,24 +24033,6 @@ "last_modified": 1663786624754 }, { - "schema": 1663721326517, - "derHash": "DphDOXJKJnwqPcT8yNAgs7S6MpoK1+OQz7926Igj4Rs=", - "subject": "CN=SECOM TimeStamping CA3,O=SECOM Trust Systems CO.\\,LTD.,C=JP", - "subjectDN": "MFUxCzAJBgNVBAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMR8wHQYDVQQDExZTRUNPTSBUaW1lU3RhbXBpbmcgQ0Ez", - "whitelist": false, - "attachment": { - "hash": "463cf2757c6416cb2cc917556944e96af398c0a00905ed5979f163df8747f2e4", - "size": 2312, - "filename": "IC2V_Sr9amKWi2B5ADjjgWQL0_t8lvVPSo8xpR6Kl48=.pem", - "location": "security-state-staging/intermediates/f4319f13-4e4e-4657-b0f9-510490c561d4.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "IC2V/Sr9amKWi2B5ADjjgWQL0/t8lvVPSo8xpR6Kl48=", - "crlite_enrolled": false, - "id": "1f70454b-9d50-45a0-beff-4f2288a42660", - "last_modified": 1663721823295 - }, - { "schema": 1663699718906, "derHash": "LBcQZNv6KAofKU9y4qH8JMhhEbI3I9uTddMASyfnszs=", "subject": "CN=DigiCert G5 TLS EU ECC P-384 SHA384 2022 CA1,O=DigiCert Ireland Limited,C=IE", @@ -28090,24 +27975,6 @@ "last_modified": 1610999846060 }, { - "schema": 1606678892869, - "derHash": "ROvwEj4n/x2wSXvS2uGBVbKkFOa82cbI+49IOYRJuek=", - "subject": "CN=TeleSec Business CA 1,OU=T-Systems Trust Center,O=T-Systems International GmbH,C=DE", - "subjectDN": "MHUxCzAJBgNVBAYTAkRFMSUwIwYDVQQKExxULVN5c3RlbXMgSW50ZXJuYXRpb25hbCBHbWJIMR8wHQYDVQQLExZULVN5c3RlbXMgVHJ1c3QgQ2VudGVyMR4wHAYDVQQDExVUZWxlU2VjIEJ1c2luZXNzIENBIDE=", - "whitelist": false, - "attachment": { - "hash": "5f456791aae0975819a267a4b01e2b4e0fcb12b375c5334b5a72562eefa58948", - "size": 1947, - "filename": "XmXOT9NXQoum_vwr876xEH0qCXmA3ZncBDyibtkXpQU=.pem", - "location": "security-state-staging/intermediates/085cace9-264b-4a9a-9330-f554e6585359.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "XmXOT9NXQoum/vwr876xEH0qCXmA3ZncBDyibtkXpQU=", - "crlite_enrolled": false, - "id": "eda28108-1b54-44e6-b8c5-1b6afcf10b67", - "last_modified": 1606744671982 - }, - { "schema": 1605123695624, "derHash": "yTGg+FoFKQEjSlT9Rg1BfxqLY8OMSBH3m5jzrhwv6fs=", "subject": "CN=SECOM Passport for Member PUB CA5,OU=SECOM Passport for Member 2.0 PUB,O=SECOM Trust Systems CO.\\,LTD.,C=JP", @@ -30358,24 +30225,6 @@ "last_modified": 1562025021653 }, { - "schema": 1562025007428, - "derHash": "klO/tmjz50OlJeSLX3UKimYDX4Bil8JfgTTcisljW9g=", - "subject": "CN=JCSI TLSSign Public CA,O=Cybertrust Japan Co.\\,Ltd.,C=JP", - "subjectDN": "MFIxCzAJBgNVBAYTAkpQMSIwIAYDVQQKExlDeWJlcnRydXN0IEphcGFuIENvLixMdGQuMR8wHQYDVQQDExZKQ1NJIFRMU1NpZ24gUHVibGljIENB", - "whitelist": false, - "attachment": { - "hash": "b6c1ba4e4707652fffa0f770954eae8f4d1bb58417950efc707c48d89d30379b", - "size": 2044, - "filename": "qU78sJ3fTvtBYPBxk_PfpIZWlA7ptK9MTP1UDx9LWdc=.pem", - "location": "security-state-staging/intermediates/27590e7a-01bd-4184-a4db-a987fa097a73.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "qU78sJ3fTvtBYPBxk/PfpIZWlA7ptK9MTP1UDx9LWdc=", - "crlite_enrolled": false, - "id": "2038b122-978e-4534-b273-996f254ac1a8", - "last_modified": 1562025008171 - }, - { "schema": 1562024987874, "derHash": "xW8PKGYYweew4RLJe57pb+tNceeUlsFR+h/oqM69Bs0=", "subject": "CN=NetLock CodeSign CA,OU=Certification Services,O=NetLock Ltd.,L=Budapest,C=HU", @@ -30826,24 +30675,6 @@ "last_modified": 1559866973381 }, { - "schema": 1559866970155, - "derHash": "zx6hXcnAWrxyrw5ixI2TQ0rgJxsapDGL41RBJtJLYYQ=", - "subject": "CN=Certum Extended Validation CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL", - "subjectDN": "MIGCMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSYwJAYDVQQDEx1DZXJ0dW0gRXh0ZW5kZWQgVmFsaWRhdGlvbiBDQQ==", - "whitelist": false, - "attachment": { - "hash": "e34ed85d8f7cd8d8572bc535cef388fdeca726b0b1f570db12ecb2c658c3cfaf", - "size": 1727, - "filename": "M9jfvUTOEXqakcClNZh0xICWc12quCpR9R8l41FetpI=.pem", - "location": "security-state-staging/intermediates/aa0b4687-ec1c-483c-878f-31363ebb0565.pem", - "mimetype": "application/x-pem-file" - }, - "pubKeyHash": "M9jfvUTOEXqakcClNZh0xICWc12quCpR9R8l41FetpI=", - "crlite_enrolled": false, - "id": "52a1bed3-2ae3-4c96-8566-936ef8a25df3", - "last_modified": 1559866970939 - }, - { "schema": 1559866925659, "derHash": "PUUR0KgKqUmm2ZslOhc0cXl8RFkYemMp5zbDfLVJPkY=", "subject": "CN=emSign ECC Device CA - C3,OU=emSign PKI,O=eMudhra Inc,C=US", @@ -30898,5 +30729,5 @@ "last_modified": 1559865884636 } ], - "timestamp": 1731855422437 + "timestamp": 1734364622432 } diff -Nru thunderbird-128.5.0esr/servo/components/selectors/context.rs thunderbird-128.6.0esr/servo/components/selectors/context.rs --- thunderbird-128.5.0esr/servo/components/selectors/context.rs 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/servo/components/selectors/context.rs 2025-01-07 20:45:20.000000000 +0000 @@ -398,7 +398,7 @@ F: FnOnce(&mut Self) -> R, { let old_in_negation = self.in_negation; - self.in_negation = true; + self.in_negation = !self.in_negation; let result = self.nest(f); self.in_negation = old_in_negation; result diff -Nru thunderbird-128.5.0esr/servo/components/style/values/generics/calc.rs thunderbird-128.6.0esr/servo/components/style/values/generics/calc.rs --- thunderbird-128.5.0esr/servo/components/style/values/generics/calc.rs 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/servo/components/style/values/generics/calc.rs 2025-01-07 20:45:21.000000000 +0000 @@ -664,7 +664,7 @@ } /// Tries to merge one node into another using the sum, that is, perform `x` + `y`. - fn try_sum_in_place(&mut self, other: &Self) -> Result<(), ()> { + pub fn try_sum_in_place(&mut self, other: &Self) -> Result<(), ()> { match (self, other) { (&mut CalcNode::Leaf(ref mut one), &CalcNode::Leaf(ref other)) => { one.try_sum_in_place(other) diff -Nru thunderbird-128.5.0esr/servo/components/style/values/specified/calc.rs thunderbird-128.6.0esr/servo/components/style/values/specified/calc.rs --- thunderbird-128.5.0esr/servo/components/style/values/specified/calc.rs 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/servo/components/style/values/specified/calc.rs 2025-01-07 20:45:21.000000000 +0000 @@ -766,12 +766,17 @@ } match *input.next()? { Token::Delim('+') => { - sum.push(Self::parse_product(context, input, allowed_units)?); + let rhs = Self::parse_product(context, input, allowed_units)?; + if sum.last_mut().unwrap().try_sum_in_place(&rhs).is_err() { + sum.push(rhs); + } }, Token::Delim('-') => { let mut rhs = Self::parse_product(context, input, allowed_units)?; rhs.negate(); - sum.push(rhs); + if sum.last_mut().unwrap().try_sum_in_place(&rhs).is_err() { + sum.push(rhs); + } }, _ => { input.reset(&start); diff -Nru thunderbird-128.5.0esr/sourcestamp.txt thunderbird-128.6.0esr/sourcestamp.txt --- thunderbird-128.5.0esr/sourcestamp.txt 2024-11-25 20:20:56.000000000 +0000 +++ thunderbird-128.6.0esr/sourcestamp.txt 2025-01-07 20:46:13.000000000 +0000 @@ -1,3 +1,3 @@ -20241125170630 -https://hg.mozilla.org/releases/comm-esr128/rev/5aa787475f1ff704f48d561dd2ba209b092f8336 -https://hg.mozilla.org/releases/mozilla-esr128/rev/68352da82b95d7114af99b268c179195fd2fead0 +20250107005646 +https://hg.mozilla.org/releases/comm-esr128/rev/ae3d6df4c922bfec881437177690a3115d85b469 +https://hg.mozilla.org/releases/mozilla-esr128/rev/4f008c71b12e001ae54b7fcd4787b266764c28bf diff -Nru thunderbird-128.5.0esr/taskcluster/docker/debian-repackage/Dockerfile thunderbird-128.6.0esr/taskcluster/docker/debian-repackage/Dockerfile --- thunderbird-128.5.0esr/taskcluster/docker/debian-repackage/Dockerfile 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/debian-repackage/Dockerfile 2025-01-07 20:45:21.000000000 +0000 @@ -40,4 +40,7 @@ dpkg --add-architecture arm64 && \ apt-get update && \ apt-get install -y libasound2:arm64 libgtk-3-0:arm64 libx11-xcb1:arm64 libxtst6:arm64" && \ - /usr/local/sbin/clean_packages.sh $DOCKER_IMAGE_PACKAGES + /usr/local/sbin/clean_packages.sh $DOCKER_IMAGE_PACKAGES && \ + # Alter the symbols file for libgdk-pixbuf to handle the transition to libgdk-pixbuf-2.0-0 + # This is only necessary until we upgrade to something newer than buster as sysroot. + find /srv/ -name libgdk-pixbuf2.0-0*symbols | xargs sed -i "/libgdk-pixbuf2.0-0/s/libgdk-pixbuf2.0-0/libgdk-pixbuf2.0-0 #MINVER# | libgdk-pixbuf-2.0-0/" diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/Dockerfile thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Dockerfile --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/Dockerfile 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Dockerfile 1970-01-01 00:00:00.000000000 +0000 @@ -1,71 +0,0 @@ -## The below code is from snapcraft/docker/stable.Dockerfile -## The modifications done are part of the documentation for enabling core18 snaps. -## https://snapcraft.io/docs/t/creating-docker-images-for-snapcraft/11739 - -# /!\ The base image must follow the version of the `coreXX` package -# https://forum.snapcraft.io/t/issues-dockerizing-a-snapcraft-build-process/30294/5 -FROM ubuntu:focal - -ENV LANG='en_US.UTF-8' \ - LANGUAGE='en_US:en' \ - LC_ALL='en_US.UTF-8' \ - PATH="/snap/bin:$PATH" \ - SNAP='/snap/snapcraft/current' \ - SNAP_NAME='snapcraft' \ - SNAP_ARCH='amd64' \ - TERM='dumb' \ - TZ='Etc/UTC' - -RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone - -# Grab dependencies. snapd is now required per https://github.com/snapcore/snapcraft/pull/3210 -RUN apt-get update && \ - apt-get dist-upgrade --yes && \ - apt-get install --yes \ - curl \ - jq \ - squashfs-tools \ - locales \ - bzip2 \ - curl \ - gcc \ - git \ - python3 \ - locales \ - snapd \ - sudo \ - && \ -locale-gen "$LANG" - -COPY download_and_install_snap.sh . - -RUN bash download_and_install_snap.sh 'core20' -RUN bash download_and_install_snap.sh 'gnome-3-38-2004' -RUN bash download_and_install_snap.sh 'gnome-3-38-2004-sdk' -RUN bash download_and_install_snap.sh 'snapcraft' - -# Fix Python3 installation: Make sure we use the interpreter from -# the snapcraft snap: -RUN unlink /snap/snapcraft/current/usr/bin/python3 && \ - ln -s /snap/snapcraft/current/usr/bin/python3.* /snap/snapcraft/current/usr/bin/python3 && \ - echo /snap/snapcraft/current/lib/python3.*/site-packages >> /snap/snapcraft/current/usr/lib/python3/dist-packages/site-packages.pth - -# Create a snapcraft runner (TODO: move version detection to the core of snapcraft). -RUN mkdir -p /snap/bin -RUN echo "#!/bin/sh" > /snap/bin/snapcraft -RUN snap_version="$(awk '/^version:/{print $2}' /snap/snapcraft/current/meta/snap.yaml)" && echo "export SNAP_VERSION=\"$snap_version\"" >> /snap/bin/snapcraft -RUN echo 'exec "$SNAP/usr/bin/python3" "$SNAP/bin/snapcraft" "$@"' >> /snap/bin/snapcraft -RUN chmod +x /snap/bin/snapcraft - -RUN mkdir /scripts/ -WORKDIR /scripts/ -# Copy everything in the docker/firefox-snap folder but the Dockerfile -# -# XXX The following pattern is neither a regex nor a glob one. It's -# documented at https://golang.org/pkg/path/filepath/#Match. There's no -# way of explicitly filtering out "Dockerfile". If one day, someone needs -# to add a file starting with "D", then we must revisit the pattern below. -COPY [^D]* /scripts/ - -# Set a default command useful for debugging -CMD ["/bin/bash", "--login"] diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/Makefile thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Makefile --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/Makefile 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/Makefile 1970-01-01 00:00:00.000000000 +0000 @@ -1,12 +0,0 @@ -DOCKERIO_USERNAME =$(error DOCKERIO_USERNAME should be set) -IMAGE_NAME = firefox-snapcraft -FULL_IMAGE_NAME = $(DOCKERIO_USERNAME)/$(IMAGE_NAME) - -build: - docker build -t $(FULL_IMAGE_NAME) --no-cache --rm . - -push: - docker push $(FULL_IMAGE_NAME):latest - -pull: - docker pull $(FULL_IMAGE_NAME):latest diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/download_and_install_snap.sh thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/download_and_install_snap.sh --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/download_and_install_snap.sh 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/download_and_install_snap.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,27 +0,0 @@ -#!/bin/bash - -set -ex - -SNAP_NAME="$1" -SNAP_CHANNEL="${2:-stable}" -SNAP_INSTALL_LOCATION="${3:-/snap}" - -SNAP_METADATA="$(curl --header 'X-Ubuntu-Series: 16' "https://api.snapcraft.io/api/v1/snaps/details/$SNAP_NAME?channel=$SNAP_CHANNEL")" - -set +x -SNAP_SHA512="$(echo "$SNAP_METADATA" | jq '.download_sha512' -r)" -SNAP_DOWNLOAD_URL="$(echo "$SNAP_METADATA" | jq '.download_url' -r)" -SNAP_LAST_UPDATED="$(echo "$SNAP_METADATA" | jq '.last_updated' -r)" -SNAP_REVISION="$(echo "$SNAP_METADATA" | jq '.revision' -r)" -SNAP_VERSION="$(echo "$SNAP_METADATA" | jq '.version' -r)" -set -x - -echo "Downloading $SNAP_NAME, version $SNAP_VERSION, revision $SNAP_REVISION (last updated: $SNAP_LAST_UPDATED)..." -curl --location "$SNAP_DOWNLOAD_URL" --output "$SNAP_NAME.snap" -sha512sum -c <(echo "$SNAP_SHA512 $SNAP_NAME.snap") - -mkdir -p "$SNAP_INSTALL_LOCATION/$SNAP_NAME" -unsquashfs -d "$SNAP_INSTALL_LOCATION/$SNAP_NAME/current" "$SNAP_NAME.snap" -rm "$SNAP_NAME.snap" - -echo "$SNAP_NAME version $SNAP_VERSION has correctly been uploaded and installed." \ No newline at end of file diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/extract_locales_from_l10n_json.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,15 +0,0 @@ -#!/usr/bin/env python3 -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. - - -import json -import sys - -l10n_changesets_json_path = sys.argv[1] -with open(l10n_changesets_json_path) as f: - locales = json.load(f).keys() -linux_locales = [l for l in locales if l != "ja-JP-mac"] - -print("\n".join(sorted(linux_locales))) diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/firefox.snapcraft.yaml.in thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/firefox.snapcraft.yaml.in --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/firefox.snapcraft.yaml.in 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/firefox.snapcraft.yaml.in 1970-01-01 00:00:00.000000000 +0000 @@ -1,91 +0,0 @@ -name: firefox -version: @VERSION@-@BUILD_NUMBER@ -summary: Mozilla Firefox web browser -description: Firefox is a powerful, extensible web browser with support for modern web application technologies. -confinement: strict -grade: stable -base: core20 -compression: lzo - -apps: - firefox: - command: firefox - command-chain: [tmpdir] - desktop: distribution/firefox.desktop - extensions: [gnome-3-38] - environment: - HOME: "$SNAP_USER_COMMON" - GTK_USE_PORTAL: 1 - slots: - - dbus-daemon - - mpris - plugs: - - avahi-observe - - browser-sandbox - - camera - - cups-control - - gsettings - - hardware-observe - - home - - joystick - - network - - network-observe - - opengl - - pulseaudio - - removable-media - - screen-inhibit-control - - system-packages-doc - - u2f-devices - - unity7 - - upower-observe - -plugs: - browser-sandbox: - interface: browser-support - allow-sandbox: true - etc-firefox-policies: - interface: system-files - read: [/etc/firefox/policies] - -layout: - /usr/share/libdrm: - bind: $SNAP/gnome-platform/usr/share/libdrm - -parts: - firefox: - plugin: dump - source: source - stage-packages: - - libxt6 - - libasound2 - - libpci3 - - libpulse0 - - libgl1-mesa-dri - - libgl1-mesa-glx - - libmirclient9 - - desktop-file-utils - - ffmpeg - - libc-bin - - locales-all - - libcurl3-gnutls - prime: - - -usr/lib/*/libharfbuzz* - - -usr/lib/*/*pango* - - # Find files provided by the base and platform snap and ensure they aren't - # duplicated in this snap - cleanup: - after: [firefox] - plugin: nil - build-snaps: [core20, gnome-3-38-2004] - override-prime: | - set -eux - for snap in "core20" "gnome-3-38-2004"; do - cd "/snap/$snap/current" && find . -type f,l -exec rm -f "$SNAPCRAFT_PRIME/{}" \; - done - -slots: - dbus-daemon: - interface: dbus - bus: session - name: org.mozilla.firefox diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/policies.json thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/policies.json --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/policies.json 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/policies.json 1970-01-01 00:00:00.000000000 +0000 @@ -1,5 +0,0 @@ -{ - "policies": { - "DisableAppUpdate": true - } -} diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/runme.sh thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/runme.sh --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/runme.sh 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/runme.sh 1970-01-01 00:00:00.000000000 +0000 @@ -1,104 +0,0 @@ -#!/bin/bash - -set -xe - -# Thunderbird Snap builds will set this to "thunderbird" -: PRODUCT "${PRODUCT:=firefox}" - -# Required env variables -test "$VERSION" -test "$BUILD_NUMBER" -test "$CANDIDATES_DIR" -test "$L10N_CHANGESETS" - -# Optional env variables -: WORKSPACE "${WORKSPACE:=/home/worker/workspace}" -: ARTIFACTS_DIR "${ARTIFACTS_DIR:=/home/worker/artifacts}" -: PUSH_TO_CHANNEL "" - -SCRIPT_DIRECTORY="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -TARGET="target.snap" -TARGET_FULL_PATH="$ARTIFACTS_DIR/$TARGET" -SOURCE_DEST="${WORKSPACE}/source" - -mkdir -p "$ARTIFACTS_DIR" -rm -rf "$SOURCE_DEST" && mkdir -p "$SOURCE_DEST" - -CURL="curl --location --retry 10 --retry-delay 10" - -# Download and extract en-US linux64 binary -$CURL -o "${WORKSPACE}/${PRODUCT}.tar.bz2" \ - "${CANDIDATES_DIR}/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/en-US/${PRODUCT}-${VERSION}.tar.bz2" -tar -C "$SOURCE_DEST" -xf "${WORKSPACE}/${PRODUCT}.tar.bz2" --strip-components=1 - -DISTRIBUTION_DIR="$SOURCE_DEST/distribution" -if [[ "$PRODUCT" == "firefox" ]]; then - # Get Ubuntu configuration - PARTNER_CONFIG_DIR="$WORKSPACE/partner_config" - git clone https://github.com/mozilla-partners/canonical.git "$PARTNER_CONFIG_DIR" - mv "$PARTNER_CONFIG_DIR/desktop/ubuntu/distribution" "$DISTRIBUTION_DIR" -else - mkdir -p "$DISTRIBUTION_DIR" -fi - -cp -v "$SCRIPT_DIRECTORY/${PRODUCT}.desktop" "$DISTRIBUTION_DIR" - -# Add a group policy file to disable app updates, as those are handled by snapd -cp -v "$SCRIPT_DIRECTORY/policies.json" "$DISTRIBUTION_DIR" - -# Use list of locales to fetch L10N XPIs -$CURL -o "${WORKSPACE}/l10n_changesets.json" "$L10N_CHANGESETS" -locales=$(python3 "$SCRIPT_DIRECTORY/extract_locales_from_l10n_json.py" "${WORKSPACE}/l10n_changesets.json") - -mkdir -p "$DISTRIBUTION_DIR/extensions" -for locale in $locales; do - $CURL -o "$SOURCE_DEST/distribution/extensions/langpack-${locale}@${PRODUCT}.mozilla.org.xpi" \ - "$CANDIDATES_DIR/${VERSION}-candidates/build${BUILD_NUMBER}/linux-x86_64/xpi/${locale}.xpi" -done - -# In addition to the packages downloaded below, snapcraft fetches deb packages from ubuntu.com, -# when a snap is built,. They may bump packages there and remove the old ones. Updating the -# database allows snapcraft to find the latest packages. -# For more context, see 1448239 -apt-get update - -# Extract gtk30.mo from Ubuntu language packs -apt download language-pack-gnome-*-base -for i in *.deb; do - # shellcheck disable=SC2086 - dpkg-deb --fsys-tarfile $i | tar xv -C "$SOURCE_DEST" --wildcards "./usr/share/locale-langpack/*/LC_MESSAGES/gtk30.mo" || true -done - -# Add wrapper script to set TMPDIR appropriate for the snap -cp -v "$SCRIPT_DIRECTORY/tmpdir" "$SOURCE_DEST" - -# Generate snapcraft manifest -sed -e "s/@VERSION@/${VERSION}/g" -e "s/@BUILD_NUMBER@/${BUILD_NUMBER}/g" "${PRODUCT}.snapcraft.yaml.in" > "${WORKSPACE}/snapcraft.yaml" -cd "${WORKSPACE}" - -# Make sure snapcraft knows we're building amd64, even though we may not be on this arch. -export SNAP_ARCH='amd64' - -snapcraft - -mv -- *.snap "$TARGET_FULL_PATH" - -cd "$ARTIFACTS_DIR" - -# Generate checksums file -size=$(stat --printf="%s" "$TARGET_FULL_PATH") -sha=$(sha512sum "$TARGET_FULL_PATH" | awk '{print $1}') -echo "$sha sha512 $size $TARGET" > "$TARGET.checksums" - -echo "Generating signing manifest" -hash=$(sha512sum "$TARGET.checksums" | awk '{print $1}') - -cat << EOF > signing_manifest.json -[{"file_to_sign": "$TARGET.checksums", "hash": "$hash"}] -EOF - -# For posterity -find . -ls -cat "$TARGET.checksums" -cat signing_manifest.json diff -Nru thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/tmpdir thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/tmpdir --- thunderbird-128.5.0esr/taskcluster/docker/firefox-snap/tmpdir 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docker/firefox-snap/tmpdir 1970-01-01 00:00:00.000000000 +0000 @@ -1,6 +0,0 @@ -#!/bin/bash - -# Set TMPDIR to be under the user's default Downloads dir -export TMPDIR=$(xdg-user-dir DOWNLOAD)/firefox.tmp - -exec "$@" diff -Nru thunderbird-128.5.0esr/taskcluster/docs/attributes.rst thunderbird-128.6.0esr/taskcluster/docs/attributes.rst --- thunderbird-128.5.0esr/taskcluster/docs/attributes.rst 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docs/attributes.rst 2025-01-07 20:45:21.000000000 +0000 @@ -243,6 +243,11 @@ ================== For toolchain jobs, this is the path to the artifact for that toolchain. +toolchain-extract +================= +Control whether toolchain should be automatically extracted after download. +Default is true. + toolchain-alias =============== An alias that can be used instead of the real toolchain job name in fetch diff -Nru thunderbird-128.5.0esr/taskcluster/docs/kinds.rst thunderbird-128.6.0esr/taskcluster/docs/kinds.rst --- thunderbird-128.5.0esr/taskcluster/docs/kinds.rst 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/docs/kinds.rst 2025-01-07 20:45:21.000000000 +0000 @@ -240,10 +240,6 @@ candidates directory to the release directory. This is part of release promotion. -beetmover-snap --------------- -Beetmover-source publishes Ubuntu's snap. This is part of release promotion. - beetmover-source ---------------- Beetmover-source publishes release source. This is part of release promotion. @@ -310,10 +306,6 @@ Binary transparency creates a publicly verifiable log of binary shas for downstream release auditing. https://wiki.mozilla.org/Security/Binary_Transparency -release-snap-repackage ----------------------- -Generate an installer using Ubuntu's Snap format. - release-flatpak-repackage ------------------------- Generate an installer using Flathub's Flatpak format. diff -Nru thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/beetmover.py thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover.py --- thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/beetmover.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover.py 2025-01-07 20:45:21.000000000 +0000 @@ -86,13 +86,6 @@ ) dependencies = {dep_job.kind: dep_job.label} - - # XXX release snap-repackage has a variable number of dependencies, depending on how many - # "post-beetmover-dummy" jobs there are in the graph. - if dep_job.kind != "release-snap-repackage" and len(dep_job.dependencies) > 1: - raise NotImplementedError( - "Can't beetmove a signing task with multiple dependencies" - ) signing_dependencies = dep_job.dependencies dependencies.update(signing_dependencies) @@ -152,9 +145,7 @@ valid_beetmover_job = len(job["dependencies"]) == 2 and any( ["signing" in j for j in job["dependencies"]] ) - # XXX release snap-repackage has a variable number of dependencies, depending on how many - # "post-beetmover-dummy" jobs there are in the graph. - if "-snap-" not in job["label"] and not valid_beetmover_job: + if not valid_beetmover_job: raise NotImplementedError("Beetmover must have two dependencies.") locale = job["attributes"].get("locale") diff -Nru thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/beetmover_snap.py thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover_snap.py --- thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/beetmover_snap.py 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/beetmover_snap.py 1970-01-01 00:00:00.000000000 +0000 @@ -1,42 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. -""" -Transform the snap beetmover kind into an actual task description. -""" - - -from taskgraph.transforms.base import TransformSequence - -transforms = TransformSequence() - - -@transforms.add -def leave_snap_repackage_dependencies_only(config, jobs): - for job in jobs: - # XXX: We delete the build dependency because, unlike the other beetmover - # tasks, source doesn't depend on any build task at all. This hack should - # go away when we rewrite beetmover transforms to allow more flexibility in deps - - job["dependencies"] = { - key: value - for key, value in job["dependencies"].items() - if key == "release-snap-repackage" - } - - job["worker"]["upstream-artifacts"] = [ - upstream_artifact - for upstream_artifact in job["worker"]["upstream-artifacts"] - if upstream_artifact["taskId"]["task-reference"] - == "" - ] - - yield job - - -@transforms.add -def set_custom_treeherder_job_name(config, jobs): - for job in jobs: - job.get("treeherder", {})["symbol"] = "Snap(BM)" - - yield job diff -Nru thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/job/__init__.py thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/__init__.py --- thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/job/__init__.py 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/__init__.py 2025-01-07 20:45:21.000000000 +0000 @@ -239,7 +239,7 @@ """Get `attribute_name` from the given `attributes` dict, and if there is a corresponding value, set `key` in `dict` to that value.""" value = attributes.get(attribute_name) - if value: + if value is not None: dict[key] = value @@ -282,6 +282,7 @@ def use_fetches(config, jobs): artifact_names = {} extra_env = {} + should_extract = {} aliases = {} tasks = [] @@ -299,6 +300,9 @@ artifact_names, task["label"], task["attributes"], f"{kind}-artifact" ) get_attribute(extra_env, task["label"], task["attributes"], f"{kind}-env") + get_attribute( + should_extract, task["label"], task["attributes"], f"{kind}-extract" + ) value = task["attributes"].get(f"{kind}-alias") if not value: value = [] @@ -348,7 +352,7 @@ { "artifact": path, "task": f"<{label}>", - "extract": True, + "extract": should_extract.get(label, True), } ) diff -Nru thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/job/toolchain.py thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/toolchain.py --- thunderbird-128.5.0esr/taskcluster/gecko_taskgraph/transforms/job/toolchain.py 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/gecko_taskgraph/transforms/job/toolchain.py 2025-01-07 20:45:21.000000000 +0000 @@ -5,7 +5,6 @@ Support for running toolchain-building jobs via dedicated scripts """ - import os import taskgraph @@ -63,6 +62,11 @@ "toolchain-env", description="Additional env variables to add to the worker when using this toolchain", ): {str: object}, + Optional( + "toolchain-extract", + description="Whether the toolchain should be extracted after it is fetched " + + "(default: True)", + ): bool, # Base work directory used to set up the task. Optional("workdir"): str, } @@ -157,6 +161,8 @@ attributes["toolchain-alias"] = alias if "toolchain-env" in run: attributes["toolchain-env"] = run.pop("toolchain-env") + if "toolchain-extract" in run: + attributes["toolchain-extract"] = run.pop("toolchain-extract") # Allow the job to specify where artifacts come from, but add # public/build if it's not there already. diff -Nru thunderbird-128.5.0esr/taskcluster/kinds/docker-image/kind.yml thunderbird-128.6.0esr/taskcluster/kinds/docker-image/kind.yml --- thunderbird-128.5.0esr/taskcluster/kinds/docker-image/kind.yml 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/kinds/docker-image/kind.yml 2025-01-07 20:45:21.000000000 +0000 @@ -204,8 +204,6 @@ periodic-updates: symbol: I(file) parent: debian12-base - firefox-snap: - symbol: I(snap) firefox-flatpak: symbol: I(flatpak) webrender: diff -Nru thunderbird-128.5.0esr/taskcluster/kinds/release-snap-repackage/kind.yml thunderbird-128.6.0esr/taskcluster/kinds/release-snap-repackage/kind.yml --- thunderbird-128.5.0esr/taskcluster/kinds/release-snap-repackage/kind.yml 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/kinds/release-snap-repackage/kind.yml 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -# This Source Code Form is subject to the terms of the Mozilla Public -# License, v. 2.0. If a copy of the MPL was not distributed with this -# file, You can obtain one at http://mozilla.org/MPL/2.0/. ---- -loader: taskgraph.loader.transform:loader - -transforms: - - gecko_taskgraph.transforms.release_deps:transforms - - gecko_taskgraph.transforms.release_snap_repackage:transforms - - gecko_taskgraph.transforms.task:transforms - -kind-dependencies: - - post-beetmover-dummy - - post-langpack-dummy - -task-defaults: - description: Generates snap image - run-on-projects: [] # to make sure this never runs as part of CI - shipping-phase: promote - scopes: [] - treeherder: - platform: linux64-shippable/opt - kind: build - tier: 2 - worker-type: b-linux-gcp - worker: - implementation: docker-worker - os: linux - max-run-time: 7200 - docker-image: {in-tree: firefox-snap} - artifacts: - - name: public/build - type: directory - path: /home/worker/artifacts/ - command: - - /bin/bash - - -cx - - ./runme.sh - env: - VERSION: "{release_config[version]}" - BUILD_NUMBER: "{release_config[build_number]}" - CANDIDATES_DIR: - by-release-level: - staging: - https://ftp.stage.mozaws.net/pub/{task[shipping-product]}/candidates - production: - https://archive.mozilla.org/pub/{task[shipping-product]}/candidates - LC_ALL: C.UTF-8 - LANG: C.UTF-8 - L10N_CHANGESETS: "{config_params[head_repository]}/raw-file/{config_params[head_rev]}/browser/locales/l10n-changesets.json" - chain-of-trust: true - -tasks: - firefox: - shipping-product: firefox - attributes: - build_platform: linux64-shippable - build_type: opt - treeherder: - symbol: Snap(r) diff -Nru thunderbird-128.5.0esr/taskcluster/kinds/toolchain/dist-toolchains.yml thunderbird-128.6.0esr/taskcluster/kinds/toolchain/dist-toolchains.yml --- thunderbird-128.5.0esr/taskcluster/kinds/toolchain/dist-toolchains.yml 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/kinds/toolchain/dist-toolchains.yml 2025-01-07 20:45:21.000000000 +0000 @@ -19,6 +19,7 @@ run: arguments: ['clang'] toolchain-artifact: public/build/clang-dist-toolchain.tar.xz + toolchain-extract: false use-sccache: true fetches: toolchain: @@ -33,6 +34,7 @@ run: arguments: ['rustc'] toolchain-artifact: public/build/rustc-dist-toolchain.tar.xz + toolchain-extract: false use-sccache: true fetches: toolchain: diff -Nru thunderbird-128.5.0esr/taskcluster/scripts/misc/build-custom-car.sh thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-car.sh --- thunderbird-128.5.0esr/taskcluster/scripts/misc/build-custom-car.sh 2024-11-25 20:12:40.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-car.sh 2025-01-07 20:45:21.000000000 +0000 @@ -22,6 +22,10 @@ # Setup depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH="$PATH:$CUSTOM_CAR_DIR/depot_tools" +# Bug 1901936 changes to config upstream for depot tools path +if [[ $(uname -s) == "Linux" ]]; then + export XDG_CONFIG_HOME=$CUSTOM_CAR_DIR +fi # Log the current revision of depot tools for easier tracking in the future DEPOT_TOOLS_REV=$(cd depot_tools && git rev-parse HEAD && cd ..) diff -Nru thunderbird-128.5.0esr/taskcluster/scripts/misc/build-custom-v8.sh thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-v8.sh --- thunderbird-128.5.0esr/taskcluster/scripts/misc/build-custom-v8.sh 2024-11-25 20:12:39.000000000 +0000 +++ thunderbird-128.6.0esr/taskcluster/scripts/misc/build-custom-v8.sh 2025-01-07 20:45:21.000000000 +0000 @@ -24,6 +24,8 @@ # Setup depot_tools git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git export PATH=$PATH:$GECKO_PATH/depot_tools +# Bug 1901936 changes to config upstream for depot tools path +export XDG_CONFIG_HOME=$GECKO_PATH # Get v8 source code and dependencies fetch --force v8 diff -Nru thunderbird-128.5.0esr/testing/web-platform/meta/css/css-page/pseudo-first-margin-004-print.html.ini thunderbird-128.6.0esr/testing/web-platform/meta/css/css-page/pseudo-first-margin-004-print.html.ini --- thunderbird-128.5.0esr/testing/web-platform/meta/css/css-page/pseudo-first-margin-004-print.html.ini 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/meta/css/css-page/pseudo-first-margin-004-print.html.ini 2025-01-07 20:45:21.000000000 +0000 @@ -0,0 +1,2 @@ +[pseudo-first-margin-004-print.html] + fuzzy: maxDifference=0-20;totalPixels=0-500 diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/css-values/round-function.html thunderbird-128.6.0esr/testing/web-platform/tests/css/css-values/round-function.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/css-values/round-function.html 2024-11-25 20:12:44.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/css-values/round-function.html 2025-01-07 20:45:25.000000000 +0000 @@ -246,4 +246,9 @@ test_minus_zero("round(down, -1 * 0, infinity)"); test_plus_zero("round(down, 0, infinity)"); test_plus_zero("round(down, 1, infinity)"); - \ No newline at end of file + +// In this test if the multiplication is factored into the sum first, the +// result of the round will be incorrect, because of floating point inprecision. +// round(down, 2.3333333 - 0.33333334, 1) = round(down, 1.99999996, 1) = 1 +test_math_used('round(down, (7 - 1) / 3, 1)', '2', {type:'number'}); + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-first-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,33 @@ + + + + + + + + +
+
Hidden
+
Shown
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-always-matches-negated-last-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,33 @@ + + + + + + + + +
+
Shown
+
Hidden
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,9 @@ + + + +
Shown
+
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-first-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + +
+
Shown
+
Shown
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,9 @@ + + + +
Shown
+
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-always-matches-negated-last-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + +
+
Shown
+
Shown
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-first-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,33 @@ + + + + + + + + +
+
Hidden
+
Shown
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-is-never-matches-negated-last-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,33 @@ + + + + + + + + +
+
Shown
+
Hidden
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-first-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,34 @@ + + + + + + + + + +
+
Hidden
+
Shown
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,8 @@ + + + +
Shown
diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-negated-last-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,34 @@ + + + + + + + + + +
+
Shown
+
Hidden
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,2 @@ + + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-first-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + +
+
Hidden
+
Hidden
+
+ + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes-ref.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes-ref.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes-ref.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes-ref.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,2 @@ + + diff -Nru thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html --- thunderbird-128.5.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html 1970-01-01 00:00:00.000000000 +0000 +++ thunderbird-128.6.0esr/testing/web-platform/tests/css/selectors/invalidation/negated-never-matches-negated-last-of-type-when-ancestor-changes.html 2025-01-07 20:45:25.000000000 +0000 @@ -0,0 +1,30 @@ + + + + + + + + +
+
Hidden
+
Hidden
+
+ + diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/af/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/af/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/af/manifest.json 2024-11-26 15:03:24.209835300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/af/manifest.json 2025-01-08 17:00:21.545888400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Afrikaans", "description": "Thunderbird Language Pack for Afrikaans (af)", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "af": { - "version": "20241125175703", + "version": "20250107030544", "chrome_resources": { "alerts": "chrome/af/locale/af/alerts/", "autoconfig": "chrome/af/locale/af/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ar/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ar/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ar/manifest.json 2024-11-26 15:03:24.289816900 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ar/manifest.json 2025-01-08 17:00:21.641888100 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: العربية (Arabic)", "description": "Thunderbird Language Pack for العربية (ar) – Arabic", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ar": { - "version": "20241125175745", + "version": "20250107030626", "chrome_resources": { "alerts": "chrome/ar/locale/ar/alerts/", "autoconfig": "chrome/ar/locale/ar/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ast/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ast/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ast/manifest.json 2024-11-26 15:03:24.361800200 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ast/manifest.json 2025-01-08 17:00:21.725888000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Asturianu (Asturian)", "description": "Thunderbird Language Pack for Asturianu (ast) – Asturian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ast": { - "version": "20241125175827", + "version": "20250107030708", "chrome_resources": { "alerts": "chrome/ast/locale/ast/alerts/", "autoconfig": "chrome/ast/locale/ast/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/be/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/be/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/be/manifest.json 2024-11-26 15:03:24.441781500 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/be/manifest.json 2025-01-08 17:00:21.813887800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Беларуская (Belarusian)", "description": "Thunderbird Language Pack for Беларуская (be) – Belarusian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "be": { - "version": "20241125175909", + "version": "20250107030751", "chrome_resources": { "alerts": "chrome/be/locale/be/alerts/", "autoconfig": "chrome/be/locale/be/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/bg/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/bg/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/bg/manifest.json 2024-11-26 15:03:24.521763000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/bg/manifest.json 2025-01-08 17:00:21.901887700 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Български (Bulgarian)", "description": "Thunderbird Language Pack for Български (bg) – Bulgarian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "bg": { - "version": "20241125175953", + "version": "20250107030835", "chrome_resources": { "alerts": "chrome/bg/locale/bg/alerts/", "autoconfig": "chrome/bg/locale/bg/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/br/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/br/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/br/manifest.json 2024-11-26 15:03:24.597745700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/br/manifest.json 2025-01-08 17:00:21.985887500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Brezhoneg (Breton)", "description": "Thunderbird Language Pack for Brezhoneg (br) – Breton", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "br": { - "version": "20241125175708", + "version": "20250107030538", "chrome_resources": { "alerts": "chrome/br/locale/br/alerts/", "autoconfig": "chrome/br/locale/br/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ca/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ca/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ca/manifest.json 2024-11-26 15:03:24.677727000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ca/manifest.json 2025-01-08 17:00:22.081887500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Català (Catalan)", "description": "Thunderbird Language Pack for Català (ca) – Catalan", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ca": { - "version": "20241125175751", + "version": "20250107030620", "chrome_resources": { "alerts": "chrome/ca/locale/ca/alerts/", "autoconfig": "chrome/ca/locale/ca/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/cak/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/cak/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/cak/manifest.json 2024-11-26 15:03:24.757708500 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/cak/manifest.json 2025-01-08 17:00:22.165887000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Kaqchikel", "description": "Thunderbird Language Pack for Kaqchikel (cak)", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "cak": { - "version": "20241125175834", + "version": "20250107030703", "chrome_resources": { "alerts": "chrome/cak/locale/cak/alerts/", "autoconfig": "chrome/cak/locale/cak/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/cs/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/cs/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/cs/manifest.json 2024-11-26 15:03:24.833691100 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/cs/manifest.json 2025-01-08 17:00:22.257887100 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Čeština (Czech)", "description": "Thunderbird Language Pack for Čeština (cs) – Czech", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "cs": { - "version": "20241125175918", + "version": "20250107030746", "chrome_resources": { "alerts": "chrome/cs/locale/cs/alerts/", "autoconfig": "chrome/cs/locale/cs/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/cy/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/cy/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/cy/manifest.json 2024-11-26 15:03:24.909673500 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/cy/manifest.json 2025-01-08 17:00:22.345887000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Cymraeg (Welsh)", "description": "Thunderbird Language Pack for Cymraeg (cy) – Welsh", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "cy": { - "version": "20241125180002", + "version": "20250107030829", "chrome_resources": { "alerts": "chrome/cy/locale/cy/alerts/", "autoconfig": "chrome/cy/locale/cy/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/da/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/da/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/da/manifest.json 2024-11-26 15:03:24.985656000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/da/manifest.json 2025-01-08 17:00:22.429886800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Dansk (Danish)", "description": "Thunderbird Language Pack for Dansk (da) – Danish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "da": { - "version": "20241125175701", + "version": "20250107030536", "chrome_resources": { "alerts": "chrome/da/locale/da/alerts/", "autoconfig": "chrome/da/locale/da/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/de/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/de/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/de/manifest.json 2024-11-26 15:03:25.057639400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/de/manifest.json 2025-01-08 17:00:22.529886500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Deutsch (German)", "description": "Thunderbird Language Pack for Deutsch (de) – German", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "de": { - "version": "20241125175744", + "version": "20250107030619", "chrome_resources": { "alerts": "chrome/de/locale/de/alerts/", "autoconfig": "chrome/de/locale/de/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/dsb/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/dsb/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/dsb/manifest.json 2024-11-26 15:03:25.133622200 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/dsb/manifest.json 2025-01-08 17:00:22.621886500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Dolnoserbšćina (Lower Sorbian)", "description": "Thunderbird Language Pack for Dolnoserbšćina (dsb) – Lower Sorbian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "dsb": { - "version": "20241125175827", + "version": "20250107030702", "chrome_resources": { "alerts": "chrome/dsb/locale/dsb/alerts/", "autoconfig": "chrome/dsb/locale/dsb/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/el/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/el/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/el/manifest.json 2024-11-26 15:03:25.213604000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/el/manifest.json 2025-01-08 17:00:22.741886100 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Ελληνικά (Greek)", "description": "Thunderbird Language Pack for Ελληνικά (el) – Greek", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "el": { - "version": "20241125175912", + "version": "20250107030746", "chrome_resources": { "alerts": "chrome/el/locale/el/alerts/", "autoconfig": "chrome/el/locale/el/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/en-CA/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/en-CA/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/en-CA/manifest.json 2024-11-26 15:03:25.285587800 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/en-CA/manifest.json 2025-01-08 17:00:22.833886000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: English (CA)", "description": "Thunderbird Language Pack for English (CA) (en-CA)", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "en-CA": { - "version": "20241125175957", + "version": "20250107030831", "chrome_resources": { "alerts": "chrome/en-CA/locale/en-CA/alerts/", "autoconfig": "chrome/en-CA/locale/en-CA/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/en-GB/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/en-GB/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/en-GB/manifest.json 2024-11-26 15:03:25.361570400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/en-GB/manifest.json 2025-01-08 17:00:22.921886000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: English (GB)", "description": "Thunderbird Language Pack for English (GB) (en-GB)", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "en-GB": { - "version": "20241125175703", + "version": "20250107030549", "chrome_resources": { "alerts": "chrome/en-GB/locale/en-GB/alerts/", "autoconfig": "chrome/en-GB/locale/en-GB/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/es-AR/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/es-AR/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/es-AR/manifest.json 2024-11-26 15:03:25.437553200 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/es-AR/manifest.json 2025-01-08 17:00:23.009885800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Español (AR) (Spanish, Argentina)", "description": "Thunderbird Language Pack for Español (AR) (es-AR) – Spanish, Argentina", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "es-AR": { - "version": "20241125175746", + "version": "20250107030633", "chrome_resources": { "alerts": "chrome/es-AR/locale/es-AR/alerts/", "autoconfig": "chrome/es-AR/locale/es-AR/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/es-ES/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/es-ES/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/es-ES/manifest.json 2024-11-26 15:03:25.509536700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/es-ES/manifest.json 2025-01-08 17:00:23.097885600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Español (ES) (Spanish, Spain)", "description": "Thunderbird Language Pack for Español (ES) (es-ES) – Spanish, Spain", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "es-ES": { - "version": "20241125175830", + "version": "20250107030717", "chrome_resources": { "alerts": "chrome/es-ES/locale/es-ES/alerts/", "autoconfig": "chrome/es-ES/locale/es-ES/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/es-MX/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/es-MX/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/es-MX/manifest.json 2024-11-26 15:03:25.585519600 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/es-MX/manifest.json 2025-01-08 17:00:23.185885400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Español (MX) (Spanish, Mexico)", "description": "Thunderbird Language Pack for Español (MX) (es-MX) – Spanish, Mexico", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "es-MX": { - "version": "20241125175914", + "version": "20250107030802", "chrome_resources": { "alerts": "chrome/es-MX/locale/es-MX/alerts/", "autoconfig": "chrome/es-MX/locale/es-MX/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/et/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/et/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/et/manifest.json 2024-11-26 15:03:25.653504100 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/et/manifest.json 2025-01-08 17:00:23.273885300 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Eesti (Estonian)", "description": "Thunderbird Language Pack for Eesti (et) – Estonian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "et": { - "version": "20241125175957", + "version": "20250107030847", "chrome_resources": { "alerts": "chrome/et/locale/et/alerts/", "autoconfig": "chrome/et/locale/et/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/eu/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/eu/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/eu/manifest.json 2024-11-26 15:03:25.725487700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/eu/manifest.json 2025-01-08 17:00:23.365885000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Euskara (Basque)", "description": "Thunderbird Language Pack for Euskara (eu) – Basque", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "eu": { - "version": "20241125175658", + "version": "20250107030557", "chrome_resources": { "alerts": "chrome/eu/locale/eu/alerts/", "autoconfig": "chrome/eu/locale/eu/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/fi/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/fi/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/fi/manifest.json 2024-11-26 15:03:25.825465000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/fi/manifest.json 2025-01-08 17:00:23.457885000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Suomi (Finnish)", "description": "Thunderbird Language Pack for Suomi (fi) – Finnish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "fi": { - "version": "20241125175741", + "version": "20250107030641", "chrome_resources": { "alerts": "chrome/fi/locale/fi/alerts/", "autoconfig": "chrome/fi/locale/fi/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/fr/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/fr/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/fr/manifest.json 2024-11-26 15:03:25.925442200 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/fr/manifest.json 2025-01-08 17:00:23.557884700 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Français (French)", "description": "Thunderbird Language Pack for Français (fr) – French", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "fr": { - "version": "20241125175824", + "version": "20250107030726", "chrome_resources": { "alerts": "chrome/fr/locale/fr/alerts/", "autoconfig": "chrome/fr/locale/fr/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/fy-NL/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/fy-NL/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/fy-NL/manifest.json 2024-11-26 15:03:26.001425000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/fy-NL/manifest.json 2025-01-08 17:00:23.649884700 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Frysk (Frisian)", "description": "Thunderbird Language Pack for Frysk (fy-NL) – Frisian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "fy-NL": { - "version": "20241125175908", + "version": "20250107030812", "chrome_resources": { "alerts": "chrome/fy-NL/locale/fy-NL/alerts/", "autoconfig": "chrome/fy-NL/locale/fy-NL/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ga-IE/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ga-IE/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ga-IE/manifest.json 2024-11-26 15:03:26.065410600 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ga-IE/manifest.json 2025-01-08 17:00:23.733884300 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Gaeilge (Irish)", "description": "Thunderbird Language Pack for Gaeilge (ga-IE) – Irish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ga-IE": { - "version": "20241125175952", + "version": "20250107030858", "chrome_resources": { "alerts": "chrome/ga-IE/locale/ga-IE/alerts/", "autoconfig": "chrome/ga-IE/locale/ga-IE/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/gd/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/gd/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/gd/manifest.json 2024-11-26 15:03:26.137394700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/gd/manifest.json 2025-01-08 17:00:23.821884400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Gàidhlig (Scottish Gaelic)", "description": "Thunderbird Language Pack for Gàidhlig (gd) – Scottish Gaelic", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "gd": { - "version": "20241125175704", + "version": "20250107030538", "chrome_resources": { "alerts": "chrome/gd/locale/gd/alerts/", "autoconfig": "chrome/gd/locale/gd/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/gl/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/gl/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/gl/manifest.json 2024-11-26 15:03:26.209378500 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/gl/manifest.json 2025-01-08 17:00:23.909884200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Galego (Galician)", "description": "Thunderbird Language Pack for Galego (gl) – Galician", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "gl": { - "version": "20241125175745", + "version": "20250107030623", "chrome_resources": { "alerts": "chrome/gl/locale/gl/alerts/", "autoconfig": "chrome/gl/locale/gl/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/he/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/he/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/he/manifest.json 2024-11-26 15:03:26.281362500 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/he/manifest.json 2025-01-08 17:00:23.997884000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: עברית (Hebrew)", "description": "Thunderbird Language Pack for עברית (he) – Hebrew", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "he": { - "version": "20241125175827", + "version": "20250107030709", "chrome_resources": { "alerts": "chrome/he/locale/he/alerts/", "autoconfig": "chrome/he/locale/he/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/hr/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/hr/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/hr/manifest.json 2024-11-26 15:03:26.353346300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/hr/manifest.json 2025-01-08 17:00:24.081884000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Hrvatski (Croatian)", "description": "Thunderbird Language Pack for Hrvatski (hr) – Croatian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "hr": { - "version": "20241125175910", + "version": "20250107030755", "chrome_resources": { "alerts": "chrome/hr/locale/hr/alerts/", "autoconfig": "chrome/hr/locale/hr/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/hsb/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/hsb/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/hsb/manifest.json 2024-11-26 15:03:26.425330400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/hsb/manifest.json 2025-01-08 17:00:24.177883600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Hornjoserbšćina (Upper Sorbian)", "description": "Thunderbird Language Pack for Hornjoserbšćina (hsb) – Upper Sorbian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "hsb": { - "version": "20241125175954", + "version": "20250107030842", "chrome_resources": { "alerts": "chrome/hsb/locale/hsb/alerts/", "autoconfig": "chrome/hsb/locale/hsb/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/hu/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/hu/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/hu/manifest.json 2024-11-26 15:03:26.501313200 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/hu/manifest.json 2025-01-08 17:00:24.273883600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Magyar (Hungarian)", "description": "Thunderbird Language Pack for Magyar (hu) – Hungarian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "hu": { - "version": "20241125175657", + "version": "20250107030536", "chrome_resources": { "alerts": "chrome/hu/locale/hu/alerts/", "autoconfig": "chrome/hu/locale/hu/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/hy-AM/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/hy-AM/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/hy-AM/manifest.json 2024-11-26 15:03:26.569298000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/hy-AM/manifest.json 2025-01-08 17:00:24.361883400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: հայերեն (Armenian)", "description": "Thunderbird Language Pack for հայերեն (hy-AM) – Armenian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "hy-AM": { - "version": "20241125175739", + "version": "20250107030618", "chrome_resources": { "alerts": "chrome/hy-AM/locale/hy-AM/alerts/", "autoconfig": "chrome/hy-AM/locale/hy-AM/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/id/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/id/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/id/manifest.json 2024-11-26 15:03:26.641282000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/id/manifest.json 2025-01-08 17:00:24.453883200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Indonesia (Indonesian)", "description": "Thunderbird Language Pack for Indonesia (id) – Indonesian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "id": { - "version": "20241125175821", + "version": "20250107030700", "chrome_resources": { "alerts": "chrome/id/locale/id/alerts/", "autoconfig": "chrome/id/locale/id/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/is/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/is/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/is/manifest.json 2024-11-26 15:03:26.753257000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/is/manifest.json 2025-01-08 17:00:24.545883000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Islenska (Icelandic)", "description": "Thunderbird Language Pack for Islenska (is) – Icelandic", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "is": { - "version": "20241125175905", + "version": "20250107030743", "chrome_resources": { "alerts": "chrome/is/locale/is/alerts/", "autoconfig": "chrome/is/locale/is/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/it/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/it/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/it/manifest.json 2024-11-26 15:03:26.837238300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/it/manifest.json 2025-01-08 17:00:24.633883000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Italiano (Italian)", "description": "Thunderbird Language Pack for Italiano (it) – Italian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "it": { - "version": "20241125175952", + "version": "20250107030827", "chrome_resources": { "alerts": "chrome/it/locale/it/alerts/", "autoconfig": "chrome/it/locale/it/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ja/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ja/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ja/manifest.json 2024-11-26 15:03:26.921219600 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ja/manifest.json 2025-01-08 17:00:24.725882800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: 日本語 (Japanese)", "description": "Thunderbird Language Pack for 日本語 (ja) – Japanese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ja": { - "version": "20241125175657", + "version": "20250107030534", "chrome_resources": { "alerts": "chrome/ja/locale/ja/alerts/", "autoconfig": "chrome/ja/locale/ja/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ka/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ka/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ka/manifest.json 2024-11-26 15:03:27.005200900 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ka/manifest.json 2025-01-08 17:00:24.813882600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: ქართული (Georgian)", "description": "Thunderbird Language Pack for ქართული (ka) – Georgian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ka": { - "version": "20241125175739", + "version": "20250107030617", "chrome_resources": { "alerts": "chrome/ka/locale/ka/alerts/", "autoconfig": "chrome/ka/locale/ka/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/kab/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/kab/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/kab/manifest.json 2024-11-26 15:03:27.113177000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/kab/manifest.json 2025-01-08 17:00:24.901882400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Taqbaylit (Kabyle)", "description": "Thunderbird Language Pack for Taqbaylit (kab) – Kabyle", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "kab": { - "version": "20241125175821", + "version": "20250107030700", "chrome_resources": { "alerts": "chrome/kab/locale/kab/alerts/", "autoconfig": "chrome/kab/locale/kab/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/kk/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/kk/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/kk/manifest.json 2024-11-26 15:03:27.201157800 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/kk/manifest.json 2025-01-08 17:00:24.993882200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: қазақ тілі (Kazakh)", "description": "Thunderbird Language Pack for қазақ тілі (kk) – Kazakh", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "kk": { - "version": "20241125175904", + "version": "20250107030744", "chrome_resources": { "alerts": "chrome/kk/locale/kk/alerts/", "autoconfig": "chrome/kk/locale/kk/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ko/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ko/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ko/manifest.json 2024-11-26 15:03:27.277141000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ko/manifest.json 2025-01-08 17:00:25.081882200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: 한국어 (Korean)", "description": "Thunderbird Language Pack for 한국어 (ko) – Korean", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ko": { - "version": "20241125175948", + "version": "20250107030828", "chrome_resources": { "alerts": "chrome/ko/locale/ko/alerts/", "autoconfig": "chrome/ko/locale/ko/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/lt/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/lt/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/lt/manifest.json 2024-11-26 15:03:27.357123400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/lt/manifest.json 2025-01-08 17:00:25.185881900 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Lietuvių (Lithuanian)", "description": "Thunderbird Language Pack for Lietuvių (lt) – Lithuanian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "lt": { - "version": "20241125175659", + "version": "20250107030532", "chrome_resources": { "alerts": "chrome/lt/locale/lt/alerts/", "autoconfig": "chrome/lt/locale/lt/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/lv/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/lv/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/lv/manifest.json 2024-11-26 15:03:27.429107700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/lv/manifest.json 2025-01-08 17:00:25.285881800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Latviešu (Latvian)", "description": "Thunderbird Language Pack for Latviešu (lv) – Latvian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "lv": { - "version": "20241125175741", + "version": "20250107030614", "chrome_resources": { "alerts": "chrome/lv/locale/lv/alerts/", "autoconfig": "chrome/lv/locale/lv/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ms/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ms/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ms/manifest.json 2024-11-26 15:03:27.505091000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ms/manifest.json 2025-01-08 17:00:25.369881600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Melayu (Malay)", "description": "Thunderbird Language Pack for Melayu (ms) – Malay", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ms": { - "version": "20241125175823", + "version": "20250107030656", "chrome_resources": { "alerts": "chrome/ms/locale/ms/alerts/", "autoconfig": "chrome/ms/locale/ms/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/nb-NO/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/nb-NO/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/nb-NO/manifest.json 2024-11-26 15:03:27.613067400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/nb-NO/manifest.json 2025-01-08 17:00:25.457881500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Norsk Bokmål (Norwegian Bokmål)", "description": "Thunderbird Language Pack for Norsk Bokmål (nb-NO) – Norwegian Bokmål", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "nb-NO": { - "version": "20241125175906", + "version": "20250107030739", "chrome_resources": { "alerts": "chrome/nb-NO/locale/nb-NO/alerts/", "autoconfig": "chrome/nb-NO/locale/nb-NO/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/nl/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/nl/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/nl/manifest.json 2024-11-26 15:03:27.693049700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/nl/manifest.json 2025-01-08 17:00:25.557881400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Nederlands (Dutch)", "description": "Thunderbird Language Pack for Nederlands (nl) – Dutch", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "nl": { - "version": "20241125175950", + "version": "20250107030822", "chrome_resources": { "alerts": "chrome/nl/locale/nl/alerts/", "autoconfig": "chrome/nl/locale/nl/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/nn-NO/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/nn-NO/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/nn-NO/manifest.json 2024-11-26 15:03:27.765034000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/nn-NO/manifest.json 2025-01-08 17:00:25.645881200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Nynorsk (Norwegian Nynorsk)", "description": "Thunderbird Language Pack for Nynorsk (nn-NO) – Norwegian Nynorsk", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "nn-NO": { - "version": "20241125175700", + "version": "20250107030752", "chrome_resources": { "alerts": "chrome/nn-NO/locale/nn-NO/alerts/", "autoconfig": "chrome/nn-NO/locale/nn-NO/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/pa-IN/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/pa-IN/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/pa-IN/manifest.json 2024-11-26 15:03:27.833019000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/pa-IN/manifest.json 2025-01-08 17:00:25.733881000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: ਪੰਜਾਬੀ (Punjabi)", "description": "Thunderbird Language Pack for ਪੰਜਾਬੀ (pa-IN) – Punjabi", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "pa-IN": { - "version": "20241125175742", + "version": "20250107030835", "chrome_resources": { "alerts": "chrome/pa-IN/locale/pa-IN/alerts/", "autoconfig": "chrome/pa-IN/locale/pa-IN/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/pl/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/pl/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/pl/manifest.json 2024-11-26 15:03:27.905003000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/pl/manifest.json 2025-01-08 17:00:25.821880800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Polski (Polish)", "description": "Thunderbird Language Pack for Polski (pl) – Polish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "pl": { - "version": "20241125175825", + "version": "20250107030919", "chrome_resources": { "alerts": "chrome/pl/locale/pl/alerts/", "autoconfig": "chrome/pl/locale/pl/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/pt-BR/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/pt-BR/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/pt-BR/manifest.json 2024-11-26 15:03:27.972988100 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/pt-BR/manifest.json 2025-01-08 17:00:25.913880800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Português (BR)", "description": "Thunderbird Language Pack for Português (BR) (pt-BR) – Brazilian Portuguese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "pt-BR": { - "version": "20241125175909", + "version": "20250107031004", "chrome_resources": { "alerts": "chrome/pt-BR/locale/pt-BR/alerts/", "autoconfig": "chrome/pt-BR/locale/pt-BR/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/pt-PT/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/pt-PT/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/pt-PT/manifest.json 2024-11-26 15:03:28.044972700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/pt-PT/manifest.json 2025-01-08 17:00:26.001880600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Português (PT) (Portuguese)", "description": "Thunderbird Language Pack for Português (PT) (pt-PT) – Portuguese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "pt-PT": { - "version": "20241125175953", + "version": "20250107031048", "chrome_resources": { "alerts": "chrome/pt-PT/locale/pt-PT/alerts/", "autoconfig": "chrome/pt-PT/locale/pt-PT/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/rm/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/rm/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/rm/manifest.json 2024-11-26 15:03:28.112958000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/rm/manifest.json 2025-01-08 17:00:26.089880500 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Rumantsch (Romansh)", "description": "Thunderbird Language Pack for Rumantsch (rm) – Romansh", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "rm": { - "version": "20241125175657", + "version": "20250107030546", "chrome_resources": { "alerts": "chrome/rm/locale/rm/alerts/", "autoconfig": "chrome/rm/locale/rm/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ro/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ro/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ro/manifest.json 2024-11-26 15:03:28.180943300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ro/manifest.json 2025-01-08 17:00:26.177880300 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Română (Romanian)", "description": "Thunderbird Language Pack for Română (ro) – Romanian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ro": { - "version": "20241125175740", + "version": "20250107030628", "chrome_resources": { "alerts": "chrome/ro/locale/ro/alerts/", "autoconfig": "chrome/ro/locale/ro/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/ru/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/ru/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/ru/manifest.json 2024-11-26 15:03:28.252927800 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/ru/manifest.json 2025-01-08 17:00:26.269880000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Русский (Russian)", "description": "Thunderbird Language Pack for Русский (ru) – Russian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "ru": { - "version": "20241125175823", + "version": "20250107030712", "chrome_resources": { "alerts": "chrome/ru/locale/ru/alerts/", "autoconfig": "chrome/ru/locale/ru/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/sk/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/sk/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/sk/manifest.json 2024-11-26 15:03:28.324912000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/sk/manifest.json 2025-01-08 17:00:26.361880000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Slovenčina (Slovak)", "description": "Thunderbird Language Pack for Slovenčina (sk) – Slovak", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "sk": { - "version": "20241125175907", + "version": "20250107030756", "chrome_resources": { "alerts": "chrome/sk/locale/sk/alerts/", "autoconfig": "chrome/sk/locale/sk/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/sl/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/sl/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/sl/manifest.json 2024-11-26 15:03:28.408894000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/sl/manifest.json 2025-01-08 17:00:26.457879800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Slovenščina (Slovenian)", "description": "Thunderbird Language Pack for Slovenščina (sl) – Slovenian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "sl": { - "version": "20241125175951", + "version": "20250107030840", "chrome_resources": { "alerts": "chrome/sl/locale/sl/alerts/", "autoconfig": "chrome/sl/locale/sl/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/sq/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/sq/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/sq/manifest.json 2024-11-26 15:03:28.504873300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/sq/manifest.json 2025-01-08 17:00:26.585879600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Shqip (Albanian)", "description": "Thunderbird Language Pack for Shqip (sq) – Albanian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "sq": { - "version": "20241125175659", + "version": "20250107030535", "chrome_resources": { "alerts": "chrome/sq/locale/sq/alerts/", "autoconfig": "chrome/sq/locale/sq/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/sr/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/sr/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/sr/manifest.json 2024-11-26 15:03:28.580856800 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/sr/manifest.json 2025-01-08 17:00:26.693879400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Cрпски (Serbian)", "description": "Thunderbird Language Pack for Cрпски (sr) – Serbian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "sr": { - "version": "20241125175741", + "version": "20250107030617", "chrome_resources": { "alerts": "chrome/sr/locale/sr/alerts/", "autoconfig": "chrome/sr/locale/sr/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/sv-SE/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/sv-SE/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/sv-SE/manifest.json 2024-11-26 15:03:28.664838800 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/sv-SE/manifest.json 2025-01-08 17:00:26.797879200 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Svenska (Swedish)", "description": "Thunderbird Language Pack for Svenska (sv-SE) – Swedish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "sv-SE": { - "version": "20241125175825", + "version": "20250107030701", "chrome_resources": { "alerts": "chrome/sv-SE/locale/sv-SE/alerts/", "autoconfig": "chrome/sv-SE/locale/sv-SE/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/th/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/th/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/th/manifest.json 2024-11-26 15:03:28.736823300 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/th/manifest.json 2025-01-08 17:00:26.897879100 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: ไทย (Thai)", "description": "Thunderbird Language Pack for ไทย (th) – Thai", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "th": { - "version": "20241125175908", + "version": "20250107030745", "chrome_resources": { "alerts": "chrome/th/locale/th/alerts/", "autoconfig": "chrome/th/locale/th/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/tr/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/tr/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/tr/manifest.json 2024-11-26 15:03:28.804808600 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/tr/manifest.json 2025-01-08 17:00:26.985879000 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Türkçe (Turkish)", "description": "Thunderbird Language Pack for Türkçe (tr) – Turkish", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "tr": { - "version": "20241125175951", + "version": "20250107030829", "chrome_resources": { "alerts": "chrome/tr/locale/tr/alerts/", "autoconfig": "chrome/tr/locale/tr/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/uk/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/uk/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/uk/manifest.json 2024-11-26 15:03:28.888790400 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/uk/manifest.json 2025-01-08 17:00:27.073878800 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Українська (Ukrainian)", "description": "Thunderbird Language Pack for Українська (uk) – Ukrainian", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "uk": { - "version": "20241125175903", + "version": "20250107030553", "chrome_resources": { "alerts": "chrome/uk/locale/uk/alerts/", "autoconfig": "chrome/uk/locale/uk/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/uz/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/uz/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/uz/manifest.json 2024-11-26 15:03:28.964774100 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/uz/manifest.json 2025-01-08 17:00:27.149878700 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: O‘zbek (Uzbek)", "description": "Thunderbird Language Pack for O‘zbek (uz) – Uzbek", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "uz": { - "version": "20241125175945", + "version": "20250107030635", "chrome_resources": { "alerts": "chrome/uz/locale/uz/alerts/", "autoconfig": "chrome/uz/locale/uz/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/vi/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/vi/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/vi/manifest.json 2024-11-26 15:03:29.040758000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/vi/manifest.json 2025-01-08 17:00:27.237878600 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: Tiếng Việt (Vietnamese)", "description": "Thunderbird Language Pack for Tiếng Việt (vi) – Vietnamese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "vi": { - "version": "20241125180027", + "version": "20250107030718", "chrome_resources": { "alerts": "chrome/vi/locale/vi/alerts/", "autoconfig": "chrome/vi/locale/vi/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/zh-CN/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/zh-CN/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/zh-CN/manifest.json 2024-11-26 15:03:29.120741000 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/zh-CN/manifest.json 2025-01-08 17:00:27.321878400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: 简体中文 (Simplified Chinese)", "description": "Thunderbird Language Pack for 简体中文 (zh-CN) – Simplified Chinese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "zh-CN": { - "version": "20241125180110", + "version": "20250107030801", "chrome_resources": { "alerts": "chrome/zh-CN/locale/zh-CN/alerts/", "autoconfig": "chrome/zh-CN/locale/zh-CN/autoconfig/", diff -Nru thunderbird-128.5.0esr/thunderbird-l10n/zh-TW/manifest.json thunderbird-128.6.0esr/thunderbird-l10n/zh-TW/manifest.json --- thunderbird-128.5.0esr/thunderbird-l10n/zh-TW/manifest.json 2024-11-26 15:03:29.196724700 +0000 +++ thunderbird-128.6.0esr/thunderbird-l10n/zh-TW/manifest.json 2025-01-08 17:00:27.401878400 +0000 @@ -10,10 +10,10 @@ }, "name": "Language: 正體中文 (Traditional Chinese)", "description": "Thunderbird Language Pack for 正體中文 (zh-TW) – Traditional Chinese", - "version": "128.5.20241125.170630", + "version": "128.6.20250107.5646", "languages": { "zh-TW": { - "version": "20241125180153", + "version": "20250107030845", "chrome_resources": { "alerts": "chrome/zh-TW/locale/zh-TW/alerts/", "autoconfig": "chrome/zh-TW/locale/zh-TW/autoconfig/", diff -Nru thunderbird-128.5.0esr/toolkit/actors/WebChannelChild.sys.mjs thunderbird-128.6.0esr/toolkit/actors/WebChannelChild.sys.mjs --- thunderbird-128.5.0esr/toolkit/actors/WebChannelChild.sys.mjs 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/actors/WebChannelChild.sys.mjs 2025-01-07 20:45:29.000000000 +0000 @@ -3,27 +3,8 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -import { XPCOMUtils } from "resource://gre/modules/XPCOMUtils.sys.mjs"; - import { ContentDOMReference } from "resource://gre/modules/ContentDOMReference.sys.mjs"; -// Preference containing the list (space separated) of origins that are -// allowed to send non-string values through a WebChannel, mainly for -// backwards compatability. See bug 1238128 for more information. -const URL_WHITELIST_PREF = "webchannel.allowObject.urlWhitelist"; - -let _cachedWhitelist = null; - -const CACHED_PREFS = {}; -XPCOMUtils.defineLazyPreferenceGetter( - CACHED_PREFS, - "URL_WHITELIST", - URL_WHITELIST_PREF, - "", - // Null this out so we update it. - () => (_cachedWhitelist = null) -); - export class WebChannelChild extends JSWindowActorChild { handleEvent(event) { if (event.type === "WebChannelMessageToChrome") { @@ -39,37 +20,11 @@ return undefined; } - _getWhitelistedPrincipals() { - if (!_cachedWhitelist) { - let urls = CACHED_PREFS.URL_WHITELIST.split(/\s+/); - _cachedWhitelist = urls.map(origin => - Services.scriptSecurityManager.createContentPrincipalFromOrigin(origin) - ); - } - return _cachedWhitelist; - } - _onMessageToChrome(e) { - // If target is window then we want the document principal, otherwise fallback to target itself. - let principal = e.target.nodePrincipal - ? e.target.nodePrincipal - : e.target.document.nodePrincipal; - if (e.detail) { if (typeof e.detail != "string") { - // Check if the principal is one of the ones that's allowed to send - // non-string values for e.detail. They're whitelisted by site origin, - // so we compare on originNoSuffix in order to avoid other origin attributes - // that are not relevant here, such as containers or private browsing. - let objectsAllowed = this._getWhitelistedPrincipals().some( - whitelisted => principal.originNoSuffix == whitelisted.originNoSuffix - ); - if (!objectsAllowed) { - console.error( - "WebChannelMessageToChrome sent with an object from a non-whitelisted principal" - ); - return; - } + console.error("WebChannelMessageToChrome must only send strings"); + return; } let eventTarget = @@ -79,7 +34,6 @@ this.sendAsyncMessage("WebChannelMessageToChrome", { contentData: e.detail, eventTarget, - principal, }); } else { console.error("WebChannel message failed. No message detail."); diff -Nru thunderbird-128.5.0esr/toolkit/actors/WebChannelParent.sys.mjs thunderbird-128.6.0esr/toolkit/actors/WebChannelParent.sys.mjs --- thunderbird-128.5.0esr/toolkit/actors/WebChannelParent.sys.mjs 2024-11-25 20:12:47.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/actors/WebChannelParent.sys.mjs 2025-01-07 20:45:29.000000000 +0000 @@ -5,7 +5,9 @@ import { WebChannelBroker } from "resource://gre/modules/WebChannel.sys.mjs"; -const ERRNO_MISSING_PRINCIPAL = 1; +// Note: ERRNO 1 deprecated and unused. +// We used to err for cases where the child did not send a principal, +// but now we infer it from the actor. const ERRNO_NO_SUCH_CHANNEL = 2; export class WebChannelParent extends JSWindowActorParent { @@ -15,7 +17,7 @@ browsingContext: this.browsingContext, browser: this.browsingContext.top.embedderElement, eventTarget: msg.data.eventTarget, - principal: msg.data.principal, + principal: this.manager.documentPrincipal, }; // data must be a string except for a few legacy origins allowed by browser-content.js. if (typeof data == "string") { @@ -28,28 +30,19 @@ } if (data && data.id) { - if (!msg.data.principal) { + let validChannelFound = WebChannelBroker.tryToDeliver( + data, + sendingContext + ); + + // if no valid origins send an event that there is no such valid channel + if (!validChannelFound) { this._sendErrorEventToContent( data.id, sendingContext, - ERRNO_MISSING_PRINCIPAL, - "Message principal missing" - ); - } else { - let validChannelFound = WebChannelBroker.tryToDeliver( - data, - sendingContext + ERRNO_NO_SUCH_CHANNEL, + "No Such Channel" ); - - // if no valid origins send an event that there is no such valid channel - if (!validChannelFound) { - this._sendErrorEventToContent( - data.id, - sendingContext, - ERRNO_NO_SUCH_CHANNEL, - "No Such Channel" - ); - } } } else { console.error("WebChannel channel id missing"); diff -Nru thunderbird-128.5.0esr/toolkit/components/extensions/test/mochitest/test_ext_protocolHandlers.html thunderbird-128.6.0esr/toolkit/components/extensions/test/mochitest/test_ext_protocolHandlers.html --- thunderbird-128.5.0esr/toolkit/components/extensions/test/mochitest/test_ext_protocolHandlers.html 2024-11-25 20:12:47.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/components/extensions/test/mochitest/test_ext_protocolHandlers.html 2025-01-07 20:45:29.000000000 +0000 @@ -531,6 +531,48 @@ await extension.unload(); }); +// Test that the tabs.onUpdated event is fired for extension protocol handlers, +// even if the protocol handler does not exist and opens the error page for +// "The address wasn’t understood". +add_task(async function test_protocolHandler_onUpdated_missing_handler() { + let extensionData = { + manifest: { + permissions: ["tabs"] + }, + + background() { + let urlSeen = false; + let tabPromise = Promise.withResolvers(); + const updateListener = async (tabId, changeInfo) => { + let tab = await tabPromise.promise; + if (tab.id != tabId) { + return; + } + browser.test.log(`tabs.onUpdated fired with changeInfo ${JSON.stringify(changeInfo)}`); + if (!urlSeen && changeInfo.url == "ext+missing:test") { + urlSeen = true; + } + if (urlSeen && changeInfo.status == "complete") { + browser.tabs.onUpdated.removeListener(updateListener); + await browser.tabs.remove(tabId); + browser.test.notifyPass(); + } + }; + browser.tabs.onUpdated.addListener(updateListener); + + browser.test.log("Waiting for tabs.onUpdated event for 'ext+missing:test' with `complete` status."); + browser.tabs.create({ url: "ext+missing:test" }).then( + tab => tabPromise.resolve(tab) + ); + }, + }; + + let extension = ExtensionTestUtils.loadExtension(extensionData); + await extension.startup(); + await extension.awaitFinish(); + await extension.unload(); +}); + // Test that a protocol handler will work if ftp is enabled add_task(async function test_ftp_protocolHandler() { await SpecialPowers.pushPrefEnv({ diff -Nru thunderbird-128.5.0esr/toolkit/components/search/tests/xpcshell/searchconfigs/test_ecosia.js thunderbird-128.6.0esr/toolkit/components/search/tests/xpcshell/searchconfigs/test_ecosia.js --- thunderbird-128.5.0esr/toolkit/components/search/tests/xpcshell/searchconfigs/test_ecosia.js 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/components/search/tests/xpcshell/searchconfigs/test_ecosia.js 2025-01-07 20:45:28.000000000 +0000 @@ -14,6 +14,9 @@ { locales: ["de"], }, + { + regions: ["at", "be", "ch", "de", "es", "it", "nl", "se"], + }, ], }, details: [ diff -Nru thunderbird-128.5.0esr/toolkit/content/gmp-sources/openh264.json thunderbird-128.6.0esr/toolkit/content/gmp-sources/openh264.json --- thunderbird-128.5.0esr/toolkit/content/gmp-sources/openh264.json 2024-11-25 20:12:48.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/content/gmp-sources/openh264.json 2025-01-07 20:45:29.000000000 +0000 @@ -7,26 +7,31 @@ "platforms": { "Darwin_aarch64-gcc3": { "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 477938, "hashValue": "391efb184373d533713a9e99a9e63c3bbaf614e8d8bdfdd84d4d5e53b9a737e75032187309dd00e58b58bb1033ab68d199f994744f6add57dd08f5fbb654d2f3" }, "Darwin_x86_64-gcc3": { "fileUrl": "http://ciscobinary.openh264.org/openh264-macosx64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 552074, "hashValue": "c649bfa20c48406ccbae1917d7478773cd5250ef995828b58cc56cc4db0a3c7ce3f89eb187bd1b3d26cda0e5e65322b710cfd66a2953adeea0e4361c51488add" }, "Linux_aarch64-gcc3": { "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 537296, "hashValue": "eab3fca253c10739c4930bdaf83ca7a9a0a3580937e0e945dde3a45bcdb39b6240ae0d7133ebfb10029442322f4ce6e8647917d15afea601351dc8a5f0dbf3ec" }, "Linux_x86-gcc3": { "fileUrl": "http://ciscobinary.openh264.org/openh264-linux32-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 623151, "hashValue": "d80508260c6419acc09c9fde539b18e9231899786df549bc8c86e564d1fb8c500327adb96bba204a386326dd5213ae907108c9ca4fc64ae385fbb2291e0e8cc5" }, "Linux_x86_64-gcc3": { "fileUrl": "http://ciscobinary.openh264.org/openh264-linux64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 583674, "hashValue": "53a58bfb4c8124ad4f7655b99bfdea290033a085e0796b19245b33b91c0948fdac9f0c3e817130b352493a65d9a7a0fc8a7c1eedc618cdaa2b4580734a11cd9c" }, @@ -35,11 +40,13 @@ }, "WINNT_aarch64-msvc-aarch64": { "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-aarch64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 412806, "hashValue": "cc3306873d6ad8ea6a27096c8ce75831463633a530d8f1794ae3eba3efd4a572459b6b0f3ac73f46552a7d6c7a29b152e299d862a2f76420eee07d1d39979182" }, "WINNT_x86-msvc": { "fileUrl": "http://ciscobinary.openh264.org/openh264-win32-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 472465, "hashValue": "b5c8290bbee9503b6f9d2fcc3cbcf94f9b2d4e8ee143e37cfc8c68de593c8189aecfe447b811accecdb564c8788bd05e116f4eda62ac29b3c6b8a6fa5f564ee0" }, @@ -51,6 +58,7 @@ }, "WINNT_x86_64-msvc": { "fileUrl": "http://ciscobinary.openh264.org/openh264-win64-31c4d2e4a037526fd30d4e5c39f60885986cf865.zip", + "mirrorUrls": [], "filesize": 491284, "hashValue": "b667086ed49579592d435df2b486fe30ba1b62ddd169f19e700cd079239747dd3e20058c285fa9c10a533e34f22b5198ed9b1f92ae560a3067f3e3feacc724f1" }, diff -Nru thunderbird-128.5.0esr/toolkit/content/gmp-sources/widevinecdm.json thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm.json --- thunderbird-128.5.0esr/toolkit/content/gmp-sources/widevinecdm.json 2024-11-25 20:12:48.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm.json 2025-01-07 20:45:29.000000000 +0000 @@ -1,40 +1,55 @@ { "hashFunction": "sha512", - "name": "Widevine-4.10.2710.0", + "name": "Widevine-4.10.2830.0", "schema_version": 1000, "vendors": { "gmp-widevinecdm": { "platforms": { "Darwin_aarch64-gcc3": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-mac-arm64.zip", - "filesize": 14190373, - "hashValue": "3aa1e3e34abffb781fbbcb411a0381a4eb641793042987a8b6bcffdb2c366b52b0cb059c36dceff7146e80fbb98c5ccb2f98af726ce2619fa7bbd4b1d388414e" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/dhuvyipbjqknanqk7f3zqnv4ku_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_mac_arm64_lt3covpsgi3bctnfic74bafcxa.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/dhuvyipbjqknanqk7f3zqnv4ku_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_mac_arm64_lt3covpsgi3bctnfic74bafcxa.crx3" + ], + "filesize": 14171021, + "hashValue": "b960132db31c5ca04f678992a970d415deae3dc8f90b37c61d2d4b67e7a41588f69c08c59476f0a92c765f0d18733bc90ee0786eece936122007a51e609020d6" }, "Darwin_x86_64-gcc3": { "alias": "Darwin_x86_64-gcc3-u-i386-x86_64" }, "Darwin_x86_64-gcc3-u-i386-x86_64": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-mac-x64.zip", - "filesize": 14934332, - "hashValue": "02e2e5d30cd35d74c8a32192d48b35863bcc71756a323eab84a3c71acfd41dcb56bbb18a0555139cd111f74f7d18dcd821a89f3be0a34b7517fadeaf8b535ac0" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/huwtmpvskwwuqnqp6gacinr2pu_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_mac64_ldaompc5meaw6wtyokr33tsf2u.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/huwtmpvskwwuqnqp6gacinr2pu_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_mac64_ldaompc5meaw6wtyokr33tsf2u.crx3" + ], + "filesize": 14873746, + "hashValue": "681cc2da76bdf84a3dd53aad1b93dd96dc9ce0e75d3297bfc82c09c336ccf022cefdcf327d27f60a514e1f71f373f18812bf632cedf40105dfa6821426853020" }, "Linux_x86_64-gcc3": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-linux-x64.zip", - "filesize": 13922119, - "hashValue": "661ad969099a89a278384f56a17ae912c3542d585ea4981f3b9a3c6e1a07f8da6ffad9db29cee194bf7834adc3ca258c775cd2b0980e3e6cb7ee8b39600dad58" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/pjnu5jyln4kujhcmwstuyyvyyu_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_linux_ace35m3jiw32bj5wzzow5nia7yta.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/pjnu5jyln4kujhcmwstuyyvyyu_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_linux_ace35m3jiw32bj5wzzow5nia7yta.crx3" + ], + "filesize": 14157618, + "hashValue": "9f1fe2c912897bc644f936170eaa6a2cb13772e9456e377ebcb489ae58b85ce8095d7584c8e51658857e90e06b33f7e8005af58f6e91fe93bae752f3fe561ec6" }, "Linux_x86_64-gcc3-asan": { "alias": "Linux_x86_64-gcc3" }, "WINNT_aarch64-msvc-aarch64": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-win-arm64.zip", - "filesize": 13900511, - "hashValue": "0f42c5dc0e040036653501fe32cb646123a1018804af4d8890d71bbd716c4e379a81a7d70c0cc5ca4b6ec3aa9cc2612cbc7599f63cbee5c82b03de499df3742e" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/jglkcuy6uzlia2enwfqikazvyq_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win_arm64_hoeiownwxmiaevbnk2xz3nasri.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/jglkcuy6uzlia2enwfqikazvyq_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win_arm64_hoeiownwxmiaevbnk2xz3nasri.crx3" + ], + "filesize": 13934163, + "hashValue": "2057c7cfe61b0a55a46db7895aa25fc9a69daed5b924590c6e89700dd41914f22adaa1fec284577e615b0af3da83986d5ee19d405aa2ca57bf13c0b6afabd03d" }, "WINNT_x86-msvc": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-win-x86.zip", - "filesize": 14250607, - "hashValue": "5e4b8672e9fd6bf7db4c85d7d49bf28a5ca2ed352238fe93610205d16c9af67855aa0b02c71b7410ad45716410fa540ddf5046201f0ff052b2c2374b4c9a4760" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/adwxj5t3i5sknzmzrdcts2ahocna_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win32_pi7fbtgomadufx37pziz5b3buy.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/adwxj5t3i5sknzmzrdcts2ahocna_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win32_pi7fbtgomadufx37pziz5b3buy.crx3" + ], + "filesize": 14087836, + "hashValue": "986aa5c6e07e121176e05e1408241f8f3b7288c10ef154a270b0c327a8b0aeb867c963a5235bf80c244457a3e98833ef4a943a91e6bb9af7c52e13343738ac63" }, "WINNT_x86-msvc-x64": { "alias": "WINNT_x86-msvc" @@ -43,9 +58,12 @@ "alias": "WINNT_x86-msvc" }, "WINNT_x86_64-msvc": { - "fileUrl": "https://redirector.gvt1.com/edgedl/widevine-cdm/4.10.2710.0-win-x64.zip", - "filesize": 14485862, - "hashValue": "59521f8c61236641b3299ab460c58c8f5f26fa67e828de853c2cf372f9614d58b9f541aae325b1600ec4f3a47953caacb8122b0dfce7481acfec81045735947d" + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/acccxbt6wwsvpxzpob4hojndwkqq_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win64_dldxogwi36sxwpr57ta4lg57z4.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/acccxbt6wwsvpxzpob4hojndwkqq_4.10.2830.0/oimompecagnajdejgnnjijobebaeigek_4.10.2830.0_win64_dldxogwi36sxwpr57ta4lg57z4.crx3" + ], + "filesize": 14507539, + "hashValue": "03105dcf804e4713b6ed7c281ad0343ac6d6eb2aed57a897c6a09515a8c7f3e06b344563e224365dc9159cfd8ed3ef665d6aec18cc07aaad66eed0dc4957dde3" }, "WINNT_x86_64-msvc-x64": { "alias": "WINNT_x86_64-msvc" @@ -54,7 +72,7 @@ "alias": "WINNT_x86_64-msvc" } }, - "version": "4.10.2710.0" + "version": "4.10.2830.0" } } } diff -Nru thunderbird-128.5.0esr/toolkit/content/gmp-sources/widevinecdm_l1.json thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm_l1.json --- thunderbird-128.5.0esr/toolkit/content/gmp-sources/widevinecdm_l1.json 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/content/gmp-sources/widevinecdm_l1.json 2025-01-07 20:45:28.000000000 +0000 @@ -6,7 +6,10 @@ "gmp-widevinecdm-l1": { "platforms": { "WINNT_x86_64-msvc": { - "fileUrl": "https://redirector.gvt1.com/edgedl/release2/chrome_component/imoffpf67hel7kbknqflao2oo4_1.0.2738.0/neifaoindggfcjicffkgpmnlppeffabd_1.0.2738.0_win64_kj4dp5kifwxbdodqls7e5nzhtm.crx3", + "fileUrl": "https://edgedl.me.gvt1.com/edgedl/release2/chrome_component/imoffpf67hel7kbknqflao2oo4_1.0.2738.0/neifaoindggfcjicffkgpmnlppeffabd_1.0.2738.0_win64_kj4dp5kifwxbdodqls7e5nzhtm.crx3", + "mirrorUrls": [ + "https://www.google.com/dl/release2/chrome_component/imoffpf67hel7kbknqflao2oo4_1.0.2738.0/neifaoindggfcjicffkgpmnlppeffabd_1.0.2738.0_win64_kj4dp5kifwxbdodqls7e5nzhtm.crx3" + ], "filesize": 1181927, "hashValue": "4fd27594c459fb1cd94a857be10f7d1d6216dbf202cd43e8a3fa395a268c72fc5f5c456c9cb314f2220d766af741db469c8bb106acbed419149a44a3b87619f1" }, diff -Nru thunderbird-128.5.0esr/toolkit/library/build/dependentlibs.py thunderbird-128.6.0esr/toolkit/library/build/dependentlibs.py --- thunderbird-128.5.0esr/toolkit/library/build/dependentlibs.py 2024-11-25 20:12:48.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/library/build/dependentlibs.py 2025-01-07 20:45:29.000000000 +0000 @@ -95,6 +95,24 @@ return deps +def is_skiplisted(dep): + # Skip the ICU data DLL because preloading it at startup + # leads to startup performance problems because of its excessive + # size (around 10MB). + if dep.startswith("icu"): + return True + # Skip the MSVC Runtimes. See bug #1921713. + if substs.get("WIN32_REDIST_DIR"): + for runtime in [ + "MSVC_C_RUNTIME_DLL", + "MSVC_C_RUNTIME_1_DLL", + "MSVC_CXX_RUNTIME_DLL", + ]: + dll = substs.get(runtime) + if dll and dep == dll: + return True + + def dependentlibs(lib, libpaths, func): """For a given library, returns the list of recursive dependencies that can be found in the given list of paths, followed by the library itself.""" @@ -108,10 +126,7 @@ deppath = os.path.join(dir, dep) if os.path.exists(deppath): deps.update(dependentlibs(deppath, libpaths, func)) - # Black list the ICU data DLL because preloading it at startup - # leads to startup performance problems because of its excessive - # size (around 10MB). - if not dep.startswith(("icu")): + if not is_skiplisted(dep): deps[dep] = deppath break diff -Nru thunderbird-128.5.0esr/toolkit/modules/GMPInstallManager.sys.mjs thunderbird-128.6.0esr/toolkit/modules/GMPInstallManager.sys.mjs --- thunderbird-128.5.0esr/toolkit/modules/GMPInstallManager.sys.mjs 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/modules/GMPInstallManager.sys.mjs 2025-01-07 20:45:29.000000000 +0000 @@ -137,6 +137,7 @@ return { id: conf.id, URL: details.fileUrl, + mirrorURLs: details.mirrorUrls, hashFunction: addons.hashFunction, hashValue: details.hashValue, version: addons.vendors[conf.id].version, @@ -521,6 +522,7 @@ // Update the addon with the final URL and the extracted version. gmpAddon.URL = redirectUrl; + gmpAddon.mirrorURLs = []; gmpAddon.version = version; gmpAddon.usedChromiumUpdate = true; diff -Nru thunderbird-128.5.0esr/toolkit/modules/tests/browser/browser_web_channel.js thunderbird-128.6.0esr/toolkit/modules/tests/browser/browser_web_channel.js --- thunderbird-128.5.0esr/toolkit/modules/tests/browser/browser_web_channel.js 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/modules/tests/browser/browser_web_channel.js 2025-01-07 20:45:29.000000000 +0000 @@ -425,14 +425,13 @@ }, }, { - desc: "WebChannel disallows non-string message from non-whitelisted origin", + desc: "WebChannel disallows non-string messages", async run() { /** * This test ensures that non-string messages can't be sent via WebChannels. - * We create a page (on a non-whitelisted origin) which should send us two - * messages immediately. The first message has an object for it's detail, - * and the second has a string. We check that we only get the second - * message. + * We create a page which should send us two messages immediately. The first + * message has an object for its detail, and the second has a string. We + * check that we only get the second message. */ let channel = new WebChannel("objects", Services.io.newURI(HTTP_PATH)); let testDonePromise = new Promise(resolve => { @@ -452,51 +451,6 @@ channel.stopListening(); } ); - }, - }, - { - desc: "WebChannel allows both string and non-string message from whitelisted origin", - async run() { - /** - * Same process as above, but we whitelist the origin before loading the page, - * and expect to get *both* messages back (each exactly once). - */ - let channel = new WebChannel("objects", Services.io.newURI(HTTP_PATH)); - - let testDonePromise = new Promise((resolve, reject) => { - let sawObject = false; - let sawString = false; - channel.listen((id, message) => { - is(id, "objects"); - if (message.type === "object") { - ok(!sawObject); - sawObject = true; - } else if (message.type === "string") { - ok(!sawString); - sawString = true; - } else { - reject(new Error(`Unknown message type: ${message.type}`)); - } - if (sawObject && sawString) { - resolve(); - } - }); - }); - const webchannelWhitelistPref = "webchannel.allowObject.urlWhitelist"; - let origWhitelist = Services.prefs.getCharPref(webchannelWhitelistPref); - let newWhitelist = origWhitelist + " " + HTTP_PATH; - Services.prefs.setCharPref(webchannelWhitelistPref, newWhitelist); - await BrowserTestUtils.withNewTab( - { - gBrowser, - url: HTTP_PATH + HTTP_ENDPOINT + "?object", - }, - async function () { - await testDonePromise; - Services.prefs.setCharPref(webchannelWhitelistPref, origWhitelist); - channel.stopListening(); - } - ); }, }, { diff -Nru thunderbird-128.5.0esr/toolkit/modules/tests/xpcshell/test_GMPInstallManager.js thunderbird-128.6.0esr/toolkit/modules/tests/xpcshell/test_GMPInstallManager.js --- thunderbird-128.5.0esr/toolkit/modules/tests/xpcshell/test_GMPInstallManager.js 2024-11-25 20:12:50.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/modules/tests/xpcshell/test_GMPInstallManager.js 2025-01-07 20:45:29.000000000 +0000 @@ -577,16 +577,34 @@ // Smoke test the results are as expected. // If the checkForAddons fails we'll get a fallback config, // so we'll get incorrect addons and these asserts will fail. - Assert.equal(res.addons.length, 5); + Assert.equal(res.addons.length, 7); Assert.equal(res.addons[0].id, "test1"); Assert.equal(res.addons[0].usedFallback, false); + Assert.deepEqual(res.addons[0].mirrorURLs, []); Assert.equal(res.addons[1].id, "test2"); Assert.equal(res.addons[1].usedFallback, false); + Assert.deepEqual(res.addons[1].mirrorURLs, []); Assert.equal(res.addons[2].id, "test3"); Assert.equal(res.addons[2].usedFallback, false); + Assert.deepEqual(res.addons[2].mirrorURLs, []); Assert.equal(res.addons[3].id, "test4"); Assert.equal(res.addons[3].usedFallback, false); + Assert.deepEqual(res.addons[3].mirrorURLs, []); Assert.equal(res.addons[4].id, undefined); + Assert.equal(res.addons[4].usedFallback, false); + Assert.deepEqual(res.addons[4].mirrorURLs, []); + Assert.equal(res.addons[5].id, "test6"); + Assert.equal(res.addons[5].usedFallback, false); + Assert.deepEqual(res.addons[5].mirrorURLs, [ + "http://alt.example.com/test6.xpi", + ]); + Assert.equal(res.addons[5].mirrorURLs.length, 1); + Assert.equal(res.addons[6].id, "test7"); + Assert.equal(res.addons[6].usedFallback, false); + Assert.deepEqual(res.addons[6].mirrorURLs, [ + "http://alt.example.com/test7.xpi", + "http://alt2.example.com/test7.xpi", + ]); } catch (e) { Assert.ok(false, "checkForAddons should succeed"); } @@ -646,14 +664,33 @@ if (res.addons.length == 1) { Assert.equal(res.addons[0].id, "gmp-widevinecdm"); Assert.equal(res.addons[0].usedFallback, true); + Assert.ok(res.addons[0].URL.startsWith("https://edgedl.me.gvt1.com")); + Assert.equal(res.addons[0].mirrorURLs.length, 1); + Assert.ok( + res.addons[0].mirrorURLs[0].startsWith("https://www.google.com") + ); } else { Assert.equal(res.addons[0].id, "gmp-gmpopenh264"); Assert.equal(res.addons[0].usedFallback, true); + Assert.ok( + res.addons[0].URL.startsWith("http://ciscobinary.openh264.org") + ); + Assert.deepEqual(res.addons[0].mirrorURLs, []); Assert.equal(res.addons[1].id, "gmp-widevinecdm"); Assert.equal(res.addons[1].usedFallback, true); + Assert.ok(res.addons[1].URL.startsWith("https://edgedl.me.gvt1.com")); + Assert.equal(res.addons[1].mirrorURLs.length, 1); + Assert.ok( + res.addons[1].mirrorURLs[0].startsWith("https://www.google.com") + ); if (res.addons.length >= 3) { Assert.equal(res.addons[2].id, "gmp-widevinecdm-l1"); Assert.equal(res.addons[2].usedFallback, true); + Assert.ok(res.addons[2].URL.startsWith("https://edgedl.me.gvt1.com")); + Assert.equal(res.addons[2].mirrorURLs.length, 1); + Assert.ok( + res.addons[2].mirrorURLs[0].startsWith("https://www.google.com") + ); } } } catch (e) { @@ -1019,17 +1056,27 @@ */ async function test_checkForAddons_installAddon( id, - includeSize, - wantInstallReject + sizeConfig, + defaultConfig, + mirrorConfig, + secondMirrorConfig, + expectedError ) { info( "Running installAddon for id: " + id + - ", includeSize: " + - includeSize + - " and wantInstallReject: " + - wantInstallReject + ", sizeConfig: " + + sizeConfig + + ", defaultConfig: " + + defaultConfig + + ", mirrorConfig: " + + mirrorConfig + + ", secondMirrorConfig: " + + secondMirrorConfig + + ", expectedError: " + + expectedError ); + let httpServer = new HttpServer(); let dir = FileUtils.getDir("TmpD", []); httpServer.registerDirectory("/", dir); @@ -1045,10 +1092,45 @@ let hashFunc = "sha256"; let expectedDigest = await IOUtils.computeHexDigest(zipFile.path, hashFunc); let fileSize = zipFile.fileSize; - if (wantInstallReject) { + if (sizeConfig === "mismatch") { fileSize = 1; } + let badZipURL; + let badZipFileName; + let badZipFile; + if ( + defaultConfig === "mismatch" || + mirrorConfig === "mismatch" || + secondMirrorConfig === "mismatch" + ) { + let badData = "e~=0.5772156648"; + badZipFileName = "test_" + id + "_bad_GMP.zip"; + badZipFile = createNewZipFile(badZipFileName, badData); + badZipURL = URL_HOST + ":" + testserverPort + "/" + badZipFileName; + } + + let missingZipURL = zipURL + ".missing"; + + function selectUrl(config) { + switch (config) { + case "success": + return zipURL; + case "not_found": + return missingZipURL; + case "mismatch": + return badZipURL; + case "none": + return null; + default: + throw new Error("bad config " + config); + } + } + + let defaultURL = selectUrl(defaultConfig); + let mirrorURL = selectUrl(mirrorConfig); + let secondMirrorURL = selectUrl(secondMirrorConfig); + let responseXML = '' + "" + @@ -1056,17 +1138,20 @@ ' ' + + (sizeConfig !== "none" ? ' size="' + fileSize + '"' : "") + + ' version="1.1">' + + (mirrorURL ? ' ' : "") + + (secondMirrorURL + ? ' ' + : "") + + " " + " " + ""; @@ -1082,7 +1167,7 @@ try { let extractedPaths = await installManager.installAddon(gmpAddon); - if (wantInstallReject) { + if (sizeConfig === "mismatch") { Assert.ok(false); // installAddon() should have thrown. } Assert.equal(extractedPaths.length, 1); @@ -1120,20 +1205,333 @@ // Cleanup extractedFile.parent.remove(true); - zipFile.remove(false); httpServer.stop(function () {}); installManager.uninit(); + Assert.equal(expectedError, null, "Succeeded without errors"); } catch (ex) { + Assert.ok( + ex?.message?.match(expectedError), + ex?.message + " matches " + expectedError + ); + } finally { zipFile.remove(false); - if (!wantInstallReject) { - do_throw("install update should not reject " + ex.message); + if (badZipFile) { + badZipFile.remove(false); } } } -add_task(test_checkForAddons_installAddon.bind(null, "1", true, false)); -add_task(test_checkForAddons_installAddon.bind(null, "2", false, false)); -add_task(test_checkForAddons_installAddon.bind(null, "3", true, true)); +add_task( + async function test_checkForAddons_installAddon_includeSize_successURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_successURL_noMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "success", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_successURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_successURL_noMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "success", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_mismatchSize_successURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "mismatchSize_successURL_noMirror", + /* sizeConfig */ "mismatch", + /* defaultConfig */ "success", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ /Downloaded file was \d+ bytes but expected \d+ bytes/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_notFoundURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_notFoundURL_noMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ /File download failed/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_notFoundURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_notFoundURL_noMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ /File download failed/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_mismatchURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_mismatchURL_noMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ /Hash was [\w`]+ but expected [\w`]+/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_mismatchURL_noMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_mismatchURL_noMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "none", + /* secondMirrorConfig */ "none", + /* expectedError */ /Hash was [\w`]+ but expected [\w`]+/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_successURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_successURL_successMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "success", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_successURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_successURL_successMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "success", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_mismatchSize_successURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "mismatchSize_successURL_successMirror", + /* sizeConfig */ "mismatch", + /* defaultConfig */ "success", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ /Downloaded file was \d+ bytes but expected \d+ bytes/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_notFoundURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_notFoundURL_successMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_notFoundURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_notFoundURL_successMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_mismatchSize_notFoundURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "mismatchSize_notFoundURL_successMirror", + /* sizeConfig */ "mismatch", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ /File download failed/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_mismatchURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_mismatchURL_successMirror", + /* sizeConfig */ "include", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_mismatchURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_mismatchURL_successMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_mismatchSize_mismatchURL_successMirror() { + await test_checkForAddons_installAddon( + /* id */ "mismatchSize_mismatchURL_successMirror", + /* sizeConfig */ "mismatch", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "none", + /* expectedError */ /Downloaded file was \d+ bytes but expected \d+ bytes/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_mismatchURL_mismatchMirror() { + await test_checkForAddons_installAddon( + /* id */ "noSize_mismatchURL_mismatchMirror", + /* sizeConfig */ "none", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "mismatch", + /* secondMirrorConfig */ "none", + /* expectedError */ /Hash was [\w`]+ but expected [\w`]+/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_notFoundURL_notFoundMirrors() { + await test_checkForAddons_installAddon( + /* id */ "noSize_notFoundURL_notFoundMirrors", + /* sizeConfig */ "none", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "not_found", + /* secondMirrorConfig */ "not_found", + /* expectedError */ /File download failed/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_notFoundURL_notFoundAndSuccessMirrors() { + await test_checkForAddons_installAddon( + /* id */ "noSize_notFoundURL_notFoundAndSuccessMirrors", + /* sizeConfig */ "none", + /* defaultConfig */ "not_found", + /* mirrorConfig */ "not_found", + /* secondMirrorConfig */ "success", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_mismatchURL_mismatchMirrors() { + await test_checkForAddons_installAddon( + /* id */ "noSize_mismatchURL_mismatchMirrors", + /* sizeConfig */ "none", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "mismatch", + /* secondMirrorConfig */ "mismatch", + /* expectedError */ /Hash was [\w`]+ but expected [\w`]+/ + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_noSize_mismatchURL_mismatchAndSuccessMirrors() { + await test_checkForAddons_installAddon( + /* id */ "noSize_mismatchURL_mismatchAndSuccessMirrors", + /* sizeConfig */ "none", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "mismatch", + /* secondMirrorConfig */ "success", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_successURL_notFoundMirrors() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_successURL_notFoundMirrors", + /* sizeConfig */ "include", + /* defaultConfig */ "success", + /* mirrorConfig */ "not_found", + /* secondMirrorConfig */ "not_found", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_successURL_mismatchMirrors() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_successURL_mismatchMirrors", + /* sizeConfig */ "include", + /* defaultConfig */ "success", + /* mirrorConfig */ "mismatch", + /* secondMirrorConfig */ "mismatch", + /* expectedError */ null + ); + } +); + +add_task( + async function test_checkForAddons_installAddon_includeSize_mismatchURL_successAndMismatchMirrors() { + await test_checkForAddons_installAddon( + /* id */ "includeSize_mismatchURL_successAndMismatchMirrors", + /* sizeConfig */ "include", + /* defaultConfig */ "mismatch", + /* mirrorConfig */ "success", + /* secondMirrorConfig */ "mismatch", + /* expectedError */ null + ); + } +); /** * Tests simpleCheckAndInstall when autoupdate is disabled for a GMP @@ -1633,7 +2031,7 @@ // `cat toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml | ./mach python security/manager/ssl/tests/unit/test_content_signing/pysign.py` // If test certificates are regenerated, this signature must also be. const goodXmlContentSignature = - "7QYnPqFoOlS02BpDdIRIljzmPr6BFwPs1z1y8KJUBlnU7EVG6FbnXmVVt5Op9wDzgvhXX7th8qFJvpPOZs_B_tHRDNJ8SK0HN95BAN15z3ZW2r95SSHmU-fP2JgoNOR3"; + "7QYnPqFoOlS02BpDdIRIljzmPr6BFwPs1z1y8KJUBlnU7EVG6FbnXmVVt5Op9wDzHeN7pJOM7ANmTqU50IbHnV8q87wmY83QL4p6NZzjsFnWolFmwK2ZjlLnhyxFcVSz"; // Setup endpoint to handle x5u lookups correctly. const validX5uPath = "/valid_x5u"; diff -Nru thunderbird-128.5.0esr/toolkit/mozapps/extensions/internal/ProductAddonChecker.sys.mjs thunderbird-128.6.0esr/toolkit/mozapps/extensions/internal/ProductAddonChecker.sys.mjs --- thunderbird-128.5.0esr/toolkit/mozapps/extensions/internal/ProductAddonChecker.sys.mjs 2024-11-25 20:12:50.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/mozapps/extensions/internal/ProductAddonChecker.sys.mjs 2025-01-07 20:45:29.000000000 +0000 @@ -386,7 +386,7 @@ let results = []; let addonList = document.querySelectorAll("updates:root > addons > addon"); for (let addonElement of addonList) { - let addon = {}; + let addon = { mirrorURLs: [] }; for (let name of [ "id", @@ -402,6 +402,13 @@ } addon.size = Number(addon.size) || undefined; + let mirrorList = addonElement.querySelectorAll("mirror"); + for (let mirrorElement of mirrorList) { + if (mirrorElement.hasAttribute("URL")) { + addon.mirrorURLs.push(mirrorElement.getAttribute("URL")); + } + } + results.push(addon); } @@ -479,6 +486,26 @@ }); } +async function downloadAndVerifyFile(addon, url, options) { + logger.info(`Try to download addon ${addon.id} from ${url}`); + let path; + try { + path = await downloadFile(url, options); + } catch (e) { + logger.warn(`Failed to download addon ${addon.id} from ${url}: ${e}`); + throw e; + } + + try { + await verifyFile(addon, path); + return path; + } catch (e) { + logger.warn(`Failed to verify addon ${addon.id} from ${url}: ${e}`); + await IOUtils.remove(path); + throw e; + } +} + /** * Verifies that a downloaded file matches what was expected. * @@ -577,12 +604,16 @@ * with a JS exception in case of error. */ async downloadAddon(addon, options = { httpsOnlyNoUpgrade: false }) { - let path = await downloadFile(addon.URL, options); try { - await verifyFile(addon, path); - return path; + return await downloadAndVerifyFile(addon, addon.URL, options); } catch (e) { - await IOUtils.remove(path); + for (const url of addon.mirrorURLs) { + try { + return await downloadAndVerifyFile(addon, url, options); + } catch { + // Already logged; ignore error and continue. + } + } throw e; } }, diff -Nru thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml --- thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml 2025-01-07 20:45:29.000000000 +0000 @@ -7,5 +7,12 @@ + + + + + + + diff -Nru thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker.js thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker.js --- thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker.js 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker.js 2025-01-07 20:45:29.000000000 +0000 @@ -124,8 +124,7 @@ let res = await ProductAddonChecker.getProductAddonList(root + "good.xml"); Assert.ok(Array.isArray(res.addons)); - // There are three valid entries in the XML - Assert.equal(res.addons.length, 5); + Assert.equal(res.addons.length, 7); let addon = res.addons[0]; Assert.equal(addon.id, "test1"); @@ -134,6 +133,7 @@ Assert.equal(addon.hashValue, undefined); Assert.equal(addon.version, undefined); Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, []); addon = res.addons[1]; Assert.equal(addon.id, "test2"); @@ -142,6 +142,7 @@ Assert.equal(addon.hashValue, "djhfgsjdhf"); Assert.equal(addon.version, undefined); Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, []); addon = res.addons[2]; Assert.equal(addon.id, "test3"); @@ -150,6 +151,7 @@ Assert.equal(addon.hashValue, undefined); Assert.equal(addon.version, "1.0"); Assert.equal(addon.size, 45); + Assert.deepEqual(addon.mirrorURLs, []); addon = res.addons[3]; Assert.equal(addon.id, "test4"); @@ -158,6 +160,7 @@ Assert.equal(addon.hashValue, undefined); Assert.equal(addon.version, undefined); Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, []); addon = res.addons[4]; Assert.equal(addon.id, undefined); @@ -166,6 +169,28 @@ Assert.equal(addon.hashValue, undefined); Assert.equal(addon.version, undefined); Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, []); + + addon = res.addons[5]; + Assert.equal(addon.id, "test6"); + Assert.equal(addon.URL, "http://example.com/test6.xpi"); + Assert.equal(addon.hashFunction, undefined); + Assert.equal(addon.hashValue, undefined); + Assert.equal(addon.version, undefined); + Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, ["http://alt.example.com/test6.xpi"]); + + addon = res.addons[6]; + Assert.equal(addon.id, "test7"); + Assert.equal(addon.URL, "http://example.com/test7.xpi"); + Assert.equal(addon.hashFunction, undefined); + Assert.equal(addon.hashValue, undefined); + Assert.equal(addon.version, undefined); + Assert.equal(addon.size, undefined); + Assert.deepEqual(addon.mirrorURLs, [ + "http://alt.example.com/test7.xpi", + "http://alt2.example.com/test7.xpi", + ]); }); add_task(async function test_download_nourl() { @@ -195,6 +220,20 @@ } }); +add_task(async function test_download_mirror_missing() { + try { + let path = await ProductAddonChecker.downloadAddon({ + URL: root + "nofile.xpi", + mirrorURLs: [root + "nofile.xpi"], + }); + + await IOUtils.remove(path); + do_throw("Should not have downloaded a missing file"); + } catch (e) { + Assert.ok(true, "Should have thrown when downloading a missing file."); + } +}); + add_task(async function test_download_noverify() { let path = await ProductAddonChecker.downloadAddon({ URL: root + "unsigned.xpi", @@ -293,6 +332,29 @@ size: 452, hashFunction: "sha256", hashValue: + "9b9abf7ddfc1a6d7ffc7e0247481dcc202363e4445ad3494fb22036f1698c7f3", + }); + + let stat = await IOUtils.stat(path); + Assert.ok(stat.type !== "directory"); + + Assert.ok( + compareFiles( + do_get_file("data/productaddons/unsigned.xpi"), + new LocalFile(path) + ) + ); + + await IOUtils.remove(path); +}); + +add_task(async function test_download_mirror_works() { + let path = await ProductAddonChecker.downloadAddon({ + URL: root + "nofile.xpi", + mirrorURLs: [root + "unsigned.xpi"], + size: 452, + hashFunction: "sha256", + hashValue: "9b9abf7ddfc1a6d7ffc7e0247481dcc202363e4445ad3494fb22036f1698c7f3", }); diff -Nru thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker_signatures.js thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker_signatures.js --- thunderbird-128.5.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker_signatures.js 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/mozapps/extensions/test/xpcshell/test_ProductAddonChecker_signatures.js 2025-01-07 20:45:29.000000000 +0000 @@ -49,7 +49,7 @@ // `cat toolkit/mozapps/extensions/test/xpcshell/data/productaddons/good.xml | ./mach python security/manager/ssl/tests/unit/test_content_signing/pysign.py` // If test certificates are regenerated, this signature must also be. const goodXmlContentSignature = - "7QYnPqFoOlS02BpDdIRIljzmPr6BFwPs1z1y8KJUBlnU7EVG6FbnXmVVt5Op9wDzgvhXX7th8qFJvpPOZs_B_tHRDNJ8SK0HN95BAN15z3ZW2r95SSHmU-fP2JgoNOR3"; + "7QYnPqFoOlS02BpDdIRIljzmPr6BFwPs1z1y8KJUBlnU7EVG6FbnXmVVt5Op9wDzHeN7pJOM7ANmTqU50IbHnV8q87wmY83QL4p6NZzjsFnWolFmwK2ZjlLnhyxFcVSz"; const goodXmlPath = "/good.xml"; // Requests use query strings to test different signature states. diff -Nru thunderbird-128.5.0esr/toolkit/xre/dllservices/mozglue/WindowsDllBlocklistDefs.in thunderbird-128.6.0esr/toolkit/xre/dllservices/mozglue/WindowsDllBlocklistDefs.in --- thunderbird-128.5.0esr/toolkit/xre/dllservices/mozglue/WindowsDllBlocklistDefs.in 2024-11-25 20:12:48.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/xre/dllservices/mozglue/WindowsDllBlocklistDefs.in 2025-01-07 20:45:29.000000000 +0000 @@ -347,6 +347,9 @@ # old AMD JPEG decoder DLLs (bug 1328838) DllBlocklistEntry("amf-wic-jpeg-decoder64.dll", ALL_VERSIONS), DllBlocklistEntry("amf-wic-jpeg-decoder32.dll", ALL_VERSIONS), + + # Qihoo 360 Total Security (bug 1934258) + DllBlocklistEntry("chromesafe64.dll", (2, 0, 0, 26)), ] CHILD_PROCESSES += [ diff -Nru thunderbird-128.5.0esr/toolkit/xre/nsAppRunner.cpp thunderbird-128.6.0esr/toolkit/xre/nsAppRunner.cpp --- thunderbird-128.5.0esr/toolkit/xre/nsAppRunner.cpp 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/toolkit/xre/nsAppRunner.cpp 2025-01-07 20:45:29.000000000 +0000 @@ -2657,6 +2657,10 @@ rv = xpcom.SetWindowCreator(aNative); NS_ENSURE_SUCCESS(rv, NS_ERROR_FAILURE); +# ifdef XP_MACOSX + InitializeMacApp(); +# endif + { // extra scoping is needed so we release these components before xpcom // shutdown nsCOMPtr sbs = @@ -2687,7 +2691,7 @@ return NS_ERROR_ABORT; } -#endif // MOZ_WIDGET_ANDROID +#endif // MOZ_WIDGET_ANDROID } static ReturnAbortOnError ProfileLockedDialog(nsIFile* aProfileDir, @@ -3241,6 +3245,10 @@ rv = xpcom.SetWindowCreator(aNative); NS_ENSURE_SUCCESS(rv, rv); +# ifdef XP_MACOSX + InitializeMacApp(); +# endif + { // extra scoping is needed so we release these components before xpcom // shutdown bool hasSync = false; diff -Nru thunderbird-128.5.0esr/tools/lint/rejected-words.yml thunderbird-128.6.0esr/tools/lint/rejected-words.yml --- thunderbird-128.5.0esr/tools/lint/rejected-words.yml 2024-11-25 20:12:50.000000000 +0000 +++ thunderbird-128.6.0esr/tools/lint/rejected-words.yml 2025-01-07 20:45:29.000000000 +0000 @@ -35,7 +35,6 @@ - browser/app/winlauncher/LauncherProcessWin.cpp - browser/base/content/browser.js - browser/base/content/contentTheme.js - - browser/base/content/test/general/browser_remoteTroubleshoot.js - browser/base/content/test/general/browser_tab_drag_drop_perwindow.js - browser/base/content/test/performance/browser_preferences_usage.js - browser/base/content/test/protectionsUI/browser_protectionsUI_cryptominers.js @@ -234,7 +233,6 @@ - testing/raptor/browsertime/browsertime_scenario.js - testing/web-platform/tests/tools/manifest/tests/test_manifest.py - toolkit/actors/RemotePageChild.sys.mjs - - toolkit/actors/WebChannelChild.sys.mjs - toolkit/components/antitracking/docs/tracking-lists/index.md - toolkit/components/antitracking/test/browser/browser_socialtracking_save_image.js - toolkit/components/reputationservice/ApplicationReputation.cpp @@ -270,7 +268,6 @@ - toolkit/content/tests/browser/browser_delay_autoplay_webAudio.js - toolkit/modules/PermissionsUtils.sys.mjs - toolkit/modules/tests/browser/browser_AsyncPrefs.js - - toolkit/modules/tests/browser/browser_web_channel.js - toolkit/modules/tests/xpcshell/test_PermissionsUtils.js - toolkit/modules/third_party/jsesc/jsesc.mjs - toolkit/modules/Troubleshoot.sys.mjs diff -Nru thunderbird-128.5.0esr/widget/gtk/nsDragService.cpp thunderbird-128.6.0esr/widget/gtk/nsDragService.cpp --- thunderbird-128.5.0esr/widget/gtk/nsDragService.cpp 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/widget/gtk/nsDragService.cpp 2025-01-07 20:45:29.000000000 +0000 @@ -62,7 +62,7 @@ using namespace mozilla::gfx; // The maximum time to wait for a "drag_received" arrived in microseconds. -#define NS_DND_TIMEOUT (5 * 1000000) +#define NS_DND_TIMEOUT (1 * 1000000) // The maximum time to wait before temporary files resulting // from drag'n'drop events will be removed in miliseconds. @@ -480,6 +480,18 @@ DragData::DragData(GdkAtom aDataFlavor, gchar** aDragUris) : mDataFlavor(aDataFlavor), mAsURIData(true), mDragUris(aDragUris) {} +bool DragData::IsDataValid() const { + if (mDragData) { + return mDragData.get() && mDragDataLen; + } else if (mDragUris) { + return !!(mDragUris.get()[0]); + } else if (mUris.Length()) { + return mUris.Length(); + } else { + return false; + } +} + #ifdef MOZ_LOGGING void DragData::Print() const { if (mDragData) { @@ -1469,18 +1481,32 @@ aContext, GUniquePtr(gdk_atom_name(target)).get(), mWaitingForDragDataRequests); - auto cacheClear = MakeScopeExit([&] { - LOGDRAGSERVICE(" failed to get data, MIME %s", - GUniquePtr(gdk_atom_name(target)).get()); - mCachedDragData.Remove(target); + RefPtr dragData; + + auto saveData = MakeScopeExit([&] { + if (dragData && !dragData->IsDataValid()) { + dragData = nullptr; + } + if (!dragData) { + LOGDRAGSERVICE(" failed to get data, MIME %s", + GUniquePtr(gdk_atom_name(target)).get()); + return; + } + mCachedDragData.InsertOrUpdate(target, dragData); }); - RefPtr dragData; - if (gtk_targets_include_uri(&target, 1)) { + if (target == sTextUriListTypeAtom || target == sPortalFileAtom || + target == sPortalFileTransferAtom) { + // Direct replace gtk_targets_include_uri() with explicit check. + // gtk_targets_include_uri() on old Gtk3 systems doesn't support + // portal filetypes. if (target == sPortalFileAtom || target == sPortalFileTransferAtom) { const guchar* data = gtk_selection_data_get_data(aSelectionData); if (!data || data[0] == '\0') { - LOGDRAGSERVICE(" TargetDataReceived() failed"); + LOGDRAGSERVICE( + "nsDragSession::TargetDataReceived() failed to get file portal data" + " (%s)", + GUniquePtr(gdk_atom_name(target)).get()); return; } @@ -1528,9 +1554,6 @@ #if MOZ_LOGGING dragData->Print(); #endif - - cacheClear.release(); - mCachedDragData.InsertOrUpdate(target, dragData); } static void TargetArrayAddTarget(nsTArray& aTargetArray, diff -Nru thunderbird-128.5.0esr/widget/gtk/nsDragService.h thunderbird-128.6.0esr/widget/gtk/nsDragService.h --- thunderbird-128.5.0esr/widget/gtk/nsDragService.h 2024-11-25 20:12:48.000000000 +0000 +++ thunderbird-128.6.0esr/widget/gtk/nsDragService.h 2025-01-07 20:45:29.000000000 +0000 @@ -58,6 +58,8 @@ int GetURIsNum() const; + bool IsDataValid() const; + #ifdef MOZ_LOGGING void Print() const; #endif diff -Nru thunderbird-128.5.0esr/widget/windows/WinUtils.cpp thunderbird-128.6.0esr/widget/windows/WinUtils.cpp --- thunderbird-128.5.0esr/widget/windows/WinUtils.cpp 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/widget/windows/WinUtils.cpp 2025-01-07 20:45:29.000000000 +0000 @@ -7,6 +7,7 @@ #include "WinUtils.h" #include +#include #include #include "gfxPlatform.h" @@ -2070,6 +2071,23 @@ : nullptr; } +nsresult WinUtils::GetProcessImageName(DWORD aProcessId, nsAString& aName) { + nsAutoHandle procHandle( + ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, aProcessId)); + if (!procHandle) { + return NS_ERROR_NOT_AVAILABLE; + } + + wchar_t path[MAX_PATH] = {L'\0'}; + auto len = ::GetProcessImageFileNameW(procHandle, path, std::size(path)); + if (!len) { + return NS_ERROR_FAILURE; + } + + aName = path; + return NS_OK; +} + // Note to testers and/or test-authors: on Windows 10, and possibly on other // versions as well, supplying the `WS_EX_LAYOUTRTL` flag here has no effect // whatsoever on child common-dialogs **unless the system UI locale is also set diff -Nru thunderbird-128.5.0esr/widget/windows/WinUtils.h thunderbird-128.6.0esr/widget/windows/WinUtils.h --- thunderbird-128.5.0esr/widget/windows/WinUtils.h 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/widget/windows/WinUtils.h 2025-01-07 20:45:29.000000000 +0000 @@ -566,6 +566,8 @@ static void GetClipboardFormatAsString(UINT aFormat, nsAString& aOutput); + static nsresult GetProcessImageName(DWORD aProcessId, nsAString& aName); + private: static WhitelistVec BuildWhitelist(); diff -Nru thunderbird-128.5.0esr/widget/windows/nsClipboard.cpp thunderbird-128.6.0esr/widget/windows/nsClipboard.cpp --- thunderbird-128.5.0esr/widget/windows/nsClipboard.cpp 2024-11-25 20:12:49.000000000 +0000 +++ thunderbird-128.6.0esr/widget/windows/nsClipboard.cpp 2025-01-07 20:45:29.000000000 +0000 @@ -393,6 +393,35 @@ } } +static void MaybeLogClipboardCurrentOwner( + const HRESULT aHres, const mozilla::StaticString& aMethodName) { + if (!MOZ_CLIPBOARD_LOG_ENABLED()) { + return; + } + + if (aHres != CLIPBRD_E_CANT_OPEN) { + return; + } + auto hwnd = ::GetOpenClipboardWindow(); + if (!hwnd) { + MOZ_CLIPBOARD_LOG( + "IDataObject::%s | Clipboard already opened by unknown process", + aMethodName.get()); + return; + } + DWORD procId; + DWORD threadId = ::GetWindowThreadProcessId(hwnd, &procId); + NS_ENSURE_TRUE_VOID(threadId); + nsAutoString procName; + NS_ENSURE_SUCCESS_VOID( + mozilla::widget::WinUtils::GetProcessImageName(procId, procName)); + MOZ_CLIPBOARD_LOG( + "IDataObject::%s | Clipboard already opened by HWND: %p | " + "Process ID: %lu | Thread ID: %lu | App name: %s", + aMethodName.get(), hwnd, procId, threadId, + NS_ConvertUTF16toUTF8(procName).get()); +} + // See // . static void LogOleGetClipboardResult(const HRESULT aHres) { @@ -400,6 +429,7 @@ nsAutoCString hresString; OleGetClipboardResultToString(aHres, hresString); MOZ_CLIPBOARD_LOG("OleGetClipboard result: %s", hresString.get()); + MaybeLogClipboardCurrentOwner(aHres, "OleGetClipboard"); } } @@ -438,6 +468,7 @@ nsAutoCString hresString; OleSetClipboardResultToString(aHres, hresString); MOZ_CLIPBOARD_LOG("OleSetClipboard result: %s", hresString.get()); + MaybeLogClipboardCurrentOwner(aHres, "OleSetClipboard"); } } @@ -459,7 +490,9 @@ break; } - std::this_thread::sleep_for(std::chrono::milliseconds(kDelayInMs)); + // TODO: This was formerly std::sleep_for, which wasn't actually sleeping + // in tests (bug 1927664). + ::SleepEx(kDelayInMs, TRUE); } return hres; @@ -603,12 +636,13 @@ // See methods listed at // . static void LogIDataObjectMethodResult(const HRESULT aHres, - const nsCString& aMethodName) { + mozilla::StaticString aMethodName) { if (MOZ_CLIPBOARD_LOG_ENABLED()) { nsAutoCString hresString; IDataObjectMethodResultToString(aHres, hresString); MOZ_CLIPBOARD_LOG("IDataObject::%s result : %s", aMethodName.get(), hresString.get()); + MaybeLogClipboardCurrentOwner(aHres, aMethodName); } } @@ -623,8 +657,7 @@ LPSTGMEDIUM pSTM) { return RepeatedlyTry( [&aDataObject, &pFE, &pSTM]() { return aDataObject.GetData(pFE, pSTM); }, - std::bind(LogIDataObjectMethodResult, std::placeholders::_1, - "GetData"_ns)); + [](HRESULT hres) { LogIDataObjectMethodResult(hres, "GetData"); }); } //------------------------------------------------------------------------- @@ -638,7 +671,7 @@ // memory HRESULT hres = S_FALSE; hres = aDataObject->QueryGetData(pFE); - LogIDataObjectMethodResult(hres, "QueryGetData"_ns); + LogIDataObjectMethodResult(hres, "QueryGetData"); if (S_OK == hres) { hres = RepeatedlyTryGetData(*aDataObject, pFE, pSTM); }