diff --git a/.github/workflows/end-to-end.yml b/.github/workflows/end-to-end.yml index ebf4aaad18..de34f5fd98 100644 --- a/.github/workflows/end-to-end.yml +++ b/.github/workflows/end-to-end.yml @@ -44,46 +44,38 @@ jobs: -derivedDataPath "DerivedData" \ | tee xcodebuild.log - - name: Setup tests - run: bundle install && bundle exec fastlane setup_e2e_tests - - name: Release tests - uses: mobile-dev-inc/action-maestro-cloud@v1.2.3 + uses: mobile-dev-inc/action-maestro-cloud@v1.4.1 with: api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }} app-file: DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app - workspace: .maestro/release_tests + workspace: .maestro + include-tags: release - name: Privacy tests - uses: mobile-dev-inc/action-maestro-cloud@v1.2.3 + uses: mobile-dev-inc/action-maestro-cloud@v1.4.1 with: api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }} app-file: DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app - workspace: .maestro/privacy_tests + workspace: .maestro + include-tags: privacy - name: Ad Click Detection Flow tests - uses: mobile-dev-inc/action-maestro-cloud@v1.2.3 + uses: mobile-dev-inc/action-maestro-cloud@v1.4.1 with: api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }} app-file: DerivedData/Build/Products/Debug-iphonesimulator/DuckDuckGo.app - workspace: .maestro/privacy_tests + workspace: .maestro + include-tags: adClick - name: Create Asana task when workflow failed if: ${{ failure() }} run: | curl -s "https://app.asana.com/api/1.0/tasks" \ - -H "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \ - --data ' \ - { \ - data: " \ - "name": "GH Workflow Failure - End to end tests", \ - "workspace": ${{ vars.GH_ASANA_WORKSPACE_ID }}, \ - "projects": [ \ - ${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }} \ - ], \ - "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}", \ - " \ - }' + --header "Accept: application/json" \ + --header "Authorization: Bearer ${{ secrets.ASANA_ACCESS_TOKEN }}" \ + --header "Content-Type: application/json" \ + --data ' { "data": { "name": "GH Workflow Failure - End to end tests", "workspace": "${{ vars.GH_ASANA_WORKSPACE_ID }}", "projects": [ "${{ vars.GH_ASANA_IOS_APP_PROJECT_ID }}" ], "notes" : "The end to end workflow has failed. See https://github.com/duckduckgo/iOS/actions/runs/${{ github.run_id }}" } }' - name: Upload logs when workflow failed uses: actions/upload-artifact@v3 diff --git a/.maestro/ad_click_detection_flow_tests/01_yjs_heuristic_no_ad_domain_param_u3_param_included.yaml b/.maestro/ad_click_detection_flow_tests/01_yjs_heuristic_no_ad_domain_param_u3_param_included.yaml index 70c1ded221..9765f58cab 100644 --- a/.maestro/ad_click_detection_flow_tests/01_yjs_heuristic_no_ad_domain_param_u3_param_included.yaml +++ b/.maestro/ad_click_detection_flow_tests/01_yjs_heuristic_no_ad_domain_param_u3_param_included.yaml @@ -1,6 +1,7 @@ -# yjs_heuristic_no_ad_domain_param_u3_param_included.yaml - appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-1" - pressKey: Enter # Manage onboarding @@ -27,9 +28,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test Ad1 - assertVisible: diff --git a/.maestro/ad_click_detection_flow_tests/02_mjs_heuristic_no_ad_domain_param_dsl_param_included.yaml b/.maestro/ad_click_detection_flow_tests/02_mjs_heuristic_no_ad_domain_param_dsl_param_included.yaml index 0d701735f2..25b2f615f9 100644 --- a/.maestro/ad_click_detection_flow_tests/02_mjs_heuristic_no_ad_domain_param_dsl_param_included.yaml +++ b/.maestro/ad_click_detection_flow_tests/02_mjs_heuristic_no_ad_domain_param_dsl_param_included.yaml @@ -1,6 +1,7 @@ -# mjs_heuristic_no_ad_domain_param_dsl_param_included.yaml - appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-2" - pressKey: Enter # Manage onboarding @@ -27,9 +28,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test Ad2 - assertVisible: diff --git a/.maestro/ad_click_detection_flow_tests/03_yjs_heuristic_no_ad_domain_param_but_missing_u3_param.yaml b/.maestro/ad_click_detection_flow_tests/03_yjs_heuristic_no_ad_domain_param_but_missing_u3_param.yaml index 5b329e95c2..7f624b5bba 100644 --- a/.maestro/ad_click_detection_flow_tests/03_yjs_heuristic_no_ad_domain_param_but_missing_u3_param.yaml +++ b/.maestro/ad_click_detection_flow_tests/03_yjs_heuristic_no_ad_domain_param_but_missing_u3_param.yaml @@ -1,6 +1,7 @@ -# yjs_heuristic_no_ad_domain_param_but_missing_u3_param.yaml - appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-3" - pressKey: Enter # Manage onboarding @@ -27,9 +28,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test Ad3 - assertVisible: diff --git a/.maestro/ad_click_detection_flow_tests/04_mjs_heuristic_no_ad_domain_param_but_missing_dsl_param.yaml b/.maestro/ad_click_detection_flow_tests/04_mjs_heuristic_no_ad_domain_param_but_missing_dsl_param.yaml index 1ef6042990..0c708a1a9c 100644 --- a/.maestro/ad_click_detection_flow_tests/04_mjs_heuristic_no_ad_domain_param_but_missing_dsl_param.yaml +++ b/.maestro/ad_click_detection_flow_tests/04_mjs_heuristic_no_ad_domain_param_but_missing_dsl_param.yaml @@ -1,6 +1,7 @@ -# _mjs_heuristic_no_ad_domain_param_but_missing_dsl_param.yaml - appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-4" - pressKey: Enter # Manage onboarding @@ -27,15 +28,8 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml -# Test Ad4 -- swipe: - start: 400, 200 - end: 400, 0 - duration: 200 - assertVisible: text: "[Ad 4] Shopping Tab Ad (heuristic)" - tapOn: diff --git a/.maestro/ad_click_detection_flow_tests/05_yjs_heuristic_ad_domain_provided_but_empty_u3_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/05_yjs_heuristic_ad_domain_provided_but_empty_u3_not_needed.yaml index 6ca3db68f6..a40e33dae0 100644 --- a/.maestro/ad_click_detection_flow_tests/05_yjs_heuristic_ad_domain_provided_but_empty_u3_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/05_yjs_heuristic_ad_domain_provided_but_empty_u3_not_needed.yaml @@ -1,6 +1,7 @@ -# yjs_heuristic_ad_domain_provided_but_empty_u3_not_needed.yaml - appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -27,15 +28,8 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml -# Test Ad5 -- swipe: - start: 400, 200 - end: 400, 0 - duration: 200 - assertVisible: text: "[Ad 5] SERP Ad (heuristic)" - tapOn: diff --git a/.maestro/ad_click_detection_flow_tests/06_mjs_heuristic_ad_domain_provided_but_empty_dsl_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/06_mjs_heuristic_ad_domain_provided_but_empty_dsl_not_needed.yaml index 364124bb17..f55bdff711 100644 --- a/.maestro/ad_click_detection_flow_tests/06_mjs_heuristic_ad_domain_provided_but_empty_dsl_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/06_mjs_heuristic_ad_domain_provided_but_empty_dsl_not_needed.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- - clearState - launchApp @@ -7,14 +10,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-6" - pressKey: Enter # Manage onboarding @@ -23,15 +26,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad6 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 6] Shopping Tab Ad (heuristic)" diff --git a/.maestro/ad_click_detection_flow_tests/07_yjs_bing-provided_ad_domain_provided_u3_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/07_yjs_bing-provided_ad_domain_provided_u3_not_needed.yaml index 33e5d389d6..4d37ae8f4b 100644 --- a/.maestro/ad_click_detection_flow_tests/07_yjs_bing-provided_ad_domain_provided_u3_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/07_yjs_bing-provided_ad_domain_provided_u3_not_needed.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- - clearState - launchApp @@ -7,14 +10,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-7" - pressKey: Enter # Manage onboarding @@ -23,15 +26,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad7 -- swipe: - start: 200, 250 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 7] SERP Ad (SERP-provided)" diff --git a/.maestro/ad_click_detection_flow_tests/08_mjs_bing-provided_ad_domain_provided_dsl_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/08_mjs_bing-provided_ad_domain_provided_dsl_not_needed.yaml index c379a4d28b..1443b604a9 100644 --- a/.maestro/ad_click_detection_flow_tests/08_mjs_bing-provided_ad_domain_provided_dsl_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/08_mjs_bing-provided_ad_domain_provided_dsl_not_needed.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- - clearState - launchApp @@ -7,14 +10,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-8" - pressKey: Enter # Manage onboarding @@ -23,19 +26,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad8 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 8] Shopping Tab Ad (SERP-provided)" diff --git a/.maestro/ad_click_detection_flow_tests/09_yjs_bing-provided_ad_domain_provided_but_incorrect_u3_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/09_yjs_bing-provided_ad_domain_provided_but_incorrect_u3_not_needed.yaml index 0e415654fa..672eb8e2b8 100644 --- a/.maestro/ad_click_detection_flow_tests/09_yjs_bing-provided_ad_domain_provided_but_incorrect_u3_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/09_yjs_bing-provided_ad_domain_provided_but_incorrect_u3_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-9" - pressKey: Enter # Manage onboarding @@ -23,20 +27,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test Ad9 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 - - assertVisible: text: "[Ad 9] SERP Ad (SERP-provided)" - tapOn: diff --git a/.maestro/ad_click_detection_flow_tests/10_mjs_bing-provided_ad_domain_provided_but_incorrect_dsl_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/10_mjs_bing-provided_ad_domain_provided_but_incorrect_dsl_not_needed.yaml index 41d31a2bed..479b962c3d 100644 --- a/.maestro/ad_click_detection_flow_tests/10_mjs_bing-provided_ad_domain_provided_but_incorrect_dsl_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/10_mjs_bing-provided_ad_domain_provided_but_incorrect_dsl_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-10" - pressKey: Enter # Manage onboarding @@ -23,23 +27,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad10 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 10] Shopping Tab Ad (SERP-provided)" diff --git a/.maestro/ad_click_detection_flow_tests/11_yjs_bing-provided_ad_domain_provided_but_its_not_a_domain_u3_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/11_yjs_bing-provided_ad_domain_provided_but_its_not_a_domain_u3_not_needed.yaml index 694b0477a0..0fbc199b64 100644 --- a/.maestro/ad_click_detection_flow_tests/11_yjs_bing-provided_ad_domain_provided_but_its_not_a_domain_u3_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/11_yjs_bing-provided_ad_domain_provided_but_its_not_a_domain_u3_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-11" - pressKey: Enter # Manage onboarding @@ -23,23 +27,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad11 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 11] SERP Ad (heuristic)" diff --git a/.maestro/ad_click_detection_flow_tests/12_mjs_bing-provided_ad_domain_provided_but_its_not_a_domain_dsl_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/12_mjs_bing-provided_ad_domain_provided_but_its_not_a_domain_dsl_not_needed.yaml index 0fa42f8694..f6a7a4816b 100644 --- a/.maestro/ad_click_detection_flow_tests/12_mjs_bing-provided_ad_domain_provided_but_its_not_a_domain_dsl_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/12_mjs_bing-provided_ad_domain_provided_but_its_not_a_domain_dsl_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-12" - pressKey: Enter # Manage onboarding @@ -23,23 +27,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad12 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 12] Shopping Tab Ad (heuristic)" diff --git a/.maestro/ad_click_detection_flow_tests/13_yjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_u3_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/13_yjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_u3_not_needed.yaml index 1c46a73f43..ca0834351f 100644 --- a/.maestro/ad_click_detection_flow_tests/13_yjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_u3_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/13_yjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_u3_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-13" - pressKey: Enter # Manage onboarding @@ -23,27 +27,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad13 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 13] SERP Ad (SERP-provided)" diff --git a/.maestro/ad_click_detection_flow_tests/14_mjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_dsl_not_needed.yaml b/.maestro/ad_click_detection_flow_tests/14_mjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_dsl_not_needed.yaml index 805327bcb1..e6bf86893c 100644 --- a/.maestro/ad_click_detection_flow_tests/14_mjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_dsl_not_needed.yaml +++ b/.maestro/ad_click_detection_flow_tests/14_mjs_bing-provided_ad_domain_provided_but_its_a_subdomain_of_advertiser_dsl_not_needed.yaml @@ -1,5 +1,9 @@ appId: com.duckduckgo.mobile.ios +tags: + - adClick + --- + - clearState - launchApp - runFlow: @@ -7,14 +11,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-14" - pressKey: Enter # Manage onboarding @@ -23,27 +27,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" - -# Test Ad13 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 -- swipe: - start: 200, 200 - end: 200, 0 - duration: 200 + file: ../shared/onboarding_browsing.yaml - assertVisible: text: "[Ad 14] Shopping Tab Ad (SERP-provided)" diff --git a/.maestro/config.yaml b/.maestro/config.yaml index eae90d6ee7..b74550e22c 100644 --- a/.maestro/config.yaml +++ b/.maestro/config.yaml @@ -2,3 +2,5 @@ appStartup: enabled: false appSize: enabled: false +flows: + - "**" \ No newline at end of file diff --git a/.maestro/privacy_tests/01_single-site_single-tab_session.yaml b/.maestro/privacy_tests/01_single-site_single-tab_session.yaml index 2a70691bbf..bfb22d5973 100644 --- a/.maestro/privacy_tests/01_single-site_single-tab_session.yaml +++ b/.maestro/privacy_tests/01_single-site_single-tab_session.yaml @@ -1,6 +1,7 @@ -# single_site-single_tab.yaml - appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -11,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -27,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: "Publisher site" diff --git a/.maestro/privacy_tests/02_single-site_new_tab_session.yaml b/.maestro/privacy_tests/02_single-site_new_tab_session.yaml index 26d162f525..c6b72bf028 100644 --- a/.maestro/privacy_tests/02_single-site_new_tab_session.yaml +++ b/.maestro/privacy_tests/02_single-site_new_tab_session.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - longPressOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/03_single-site_new-tab_session_variant_two.yaml b/.maestro/privacy_tests/03_single-site_new-tab_session_variant_two.yaml index c51af8ae80..3d56674a16 100644 --- a/.maestro/privacy_tests/03_single-site_new-tab_session_variant_two.yaml +++ b/.maestro/privacy_tests/03_single-site_new-tab_session_variant_two.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/04_single-site_multi-tab_session.yaml b/.maestro/privacy_tests/04_single-site_multi-tab_session.yaml index 14d8aee917..071716d320 100644 --- a/.maestro/privacy_tests/04_single-site_multi-tab_session.yaml +++ b/.maestro/privacy_tests/04_single-site_multi-tab_session.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/05_multi-site_single-tab_session.yaml b/.maestro/privacy_tests/05_multi-site_single-tab_session.yaml index 487b232ebc..34afabb5cc 100644 --- a/.maestro/privacy_tests/05_multi-site_single-tab_session.yaml +++ b/.maestro/privacy_tests/05_multi-site_single-tab_session.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/06_multi-tab.yaml b/.maestro/privacy_tests/06_multi-tab.yaml index 3097f33422..b55aa36cbc 100644 --- a/.maestro/privacy_tests/06_multi-tab.yaml +++ b/.maestro/privacy_tests/06_multi-tab.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: @@ -70,10 +70,8 @@ appId: com.duckduckgo.mobile.ios - tapOn: "Done" - assertVisible: text: "Publisher site" -- assertVisible: - id: "Tabs" -- tapOn: - id: "Tabs" +- assertVisible: Tab Switcher +- tapOn: Tab Switcher - assertVisible: id: "Add" - tapOn: diff --git a/.maestro/privacy_tests/07_browser_restart_mid-session.yaml b/.maestro/privacy_tests/07_browser_restart_mid-session.yaml index b598aee466..e0e8cf0516 100644 --- a/.maestro/privacy_tests/07_browser_restart_mid-session.yaml +++ b/.maestro/privacy_tests/07_browser_restart_mid-session.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,10 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml + file: ../shared/onboarding_browsing.yaml -- assertVisible: "Search engine" # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/08_navigation_with_back_forward.yaml b/.maestro/privacy_tests/08_navigation_with_back_forward.yaml index 9048df1f86..c8cbd3f381 100644 --- a/.maestro/privacy_tests/08_navigation_with_back_forward.yaml +++ b/.maestro/privacy_tests/08_navigation_with_back_forward.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/privacy_tests/09_navigation_with_refresh.yaml b/.maestro/privacy_tests/09_navigation_with_refresh.yaml index 03441fdaa0..30d58f8db4 100644 --- a/.maestro/privacy_tests/09_navigation_with_refresh.yaml +++ b/.maestro/privacy_tests/09_navigation_with_refresh.yaml @@ -1,4 +1,7 @@ appId: com.duckduckgo.mobile.ios +tags: + - privacy + --- # Set up @@ -9,14 +12,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://www.search-company.site/" +- inputText: "https://www.search-company.site/#ad-id-5" - pressKey: Enter # Manage onboarding @@ -25,12 +28,9 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml - -- assertVisible: "Search engine" + file: ../shared/onboarding_browsing.yaml # Test -- scroll - assertVisible: "[Ad 5] SERP Ad (heuristic)" - tapOn: "[Ad 5] SERP Ad (heuristic)" - assertVisible: diff --git a/.maestro/release_tests/bookmarks.yaml b/.maestro/release_tests/bookmarks.yaml index e9a2c19add..56a81943e9 100644 --- a/.maestro/release_tests/bookmarks.yaml +++ b/.maestro/release_tests/bookmarks.yaml @@ -1,7 +1,10 @@ # bookmarks.yaml - appId: com.duckduckgo.mobile.ios +tags: + - release + --- + # Set up - clearState - launchApp @@ -10,7 +13,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: @@ -26,7 +29,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml + file: ../shared/onboarding_browsing.yaml # Bookmark site - assertVisible: "Browsing menu" diff --git a/.maestro/release_tests/browsing.yaml b/.maestro/release_tests/browsing.yaml index a49e77fe7e..3be02ab923 100644 --- a/.maestro/release_tests/browsing.yaml +++ b/.maestro/release_tests/browsing.yaml @@ -1,7 +1,10 @@ # browsing.yaml - appId: com.duckduckgo.mobile.ios +tags: + - release + --- + # Set up - clearState - launchApp @@ -10,7 +13,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: diff --git a/.maestro/release_tests/favorites.yaml b/.maestro/release_tests/favorites.yaml index d258be84ad..f33ae3bff7 100644 --- a/.maestro/release_tests/favorites.yaml +++ b/.maestro/release_tests/favorites.yaml @@ -1,7 +1,10 @@ # favorites.yaml - appId: com.duckduckgo.mobile.ios +tags: + - release + --- + # Set up - clearState - launchApp @@ -10,7 +13,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: @@ -26,7 +29,7 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml + file: ../shared/onboarding_browsing.yaml # Add site to favorites from menu - assertVisible: "Browsing menu" diff --git a/.maestro/release_tests/tabs.yaml b/.maestro/release_tests/tabs.yaml index c0a4aa085f..fd9b7460fe 100644 --- a/.maestro/release_tests/tabs.yaml +++ b/.maestro/release_tests/tabs.yaml @@ -1,7 +1,10 @@ # tabs.yaml - appId: com.duckduckgo.mobile.ios +tags: + - release + --- + # Set up - clearState - launchApp @@ -10,14 +13,14 @@ appId: com.duckduckgo.mobile.ios visible: text: "Let’s Do It!" index: 0 - file: ./shared/onboarding.yaml + file: ../shared/onboarding.yaml # Load Site - assertVisible: id: "searchEntry" - tapOn: id: "searchEntry" -- inputText: "https://privacy-test-pages.glitch.me" +- inputText: "https://privacy-test-pages.site" - pressKey: Enter # Manage onboarding @@ -26,15 +29,13 @@ appId: com.duckduckgo.mobile.ios visible: text: "Got It" index: 0 - file: ./shared/onboarding_browsing.yaml + file: ../shared/onboarding_browsing.yaml - assertVisible: ".*Privacy Test Pages.*" # Add tab -- assertVisible: - id: "Tabs" -- tapOn: - id: "Tabs" +- assertVisible: Tab Switcher +- tapOn: Tab Switcher - assertVisible: ".*Privacy Test Pages.*" - assertVisible: id: "Add" @@ -49,23 +50,19 @@ appId: com.duckduckgo.mobile.ios - assertVisible: "Search engine" # Switch Tab -- assertVisible: - id: "Tabs" -- tapOn: - id: "Tabs" +- assertVisible: Tab Switcher +- tapOn: Tab Switcher - assertVisible: ".*Privacy Test Pages.*" - assertVisible: ".*Ad Click Flow.*" - assertVisible: "2 Private Tabs" -- tapOn: "Open \"Privacy Test Pages - Home\" at privacy-test-pages.glitch.me" +- tapOn: "Open \"Privacy Test Pages - Home\" at privacy-test-pages.site" - assertNotVisible: ".*Ad Click Flow.*" - assertVisible: ".*Privacy Test Pages.*" - tapOn: "Refresh Page" # Close Tab -- assertVisible: - id: "Tabs" -- tapOn: - id: "Tabs" +- assertVisible: Tab Switcher +- tapOn: Tab Switcher - assertVisible: ".*Privacy Test Pages.*" - assertVisible: ".*Ad Click Flow.*" - assertVisible: "2 Private Tabs" diff --git a/Configuration/Version.xcconfig b/Configuration/Version.xcconfig index 86866ee7eb..13569f4d38 100644 --- a/Configuration/Version.xcconfig +++ b/Configuration/Version.xcconfig @@ -1 +1 @@ -MARKETING_VERSION = 7.92.0 +MARKETING_VERSION = 7.94.0 diff --git a/Core/AppPrivacyConfigurationDataProvider.swift b/Core/AppPrivacyConfigurationDataProvider.swift index 56755c581d..1bb935f009 100644 --- a/Core/AppPrivacyConfigurationDataProvider.swift +++ b/Core/AppPrivacyConfigurationDataProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppPrivacyConfigurationDataProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"54efb258435567856e087913f93d43df\"" - public static let embeddedDataSHA = "d0f9c70c5baba23a0966b277f8b4c949ecf01612558a50d2bda720fe1919b43f" + public static let embeddedDataETag = "\"34b6806ec63c85144adb71af7e899b40\"" + public static let embeddedDataSHA = "167fdf9054fd7a0f8b2e9b5f84a8dae7d569752b0278d82b6a394380531f61e5" } public var embeddedDataEtag: String { diff --git a/Core/AppTrackerDataSetProvider.swift b/Core/AppTrackerDataSetProvider.swift index edcbbad058..625fe0a39b 100644 --- a/Core/AppTrackerDataSetProvider.swift +++ b/Core/AppTrackerDataSetProvider.swift @@ -23,8 +23,8 @@ import BrowserServicesKit final public class AppTrackerDataSetProvider: EmbeddedDataProvider { public struct Constants { - public static let embeddedDataETag = "\"a1bb76901a395eb251cd6f30f54037f1\"" - public static let embeddedDataSHA = "53cad742076d1382fba8db0e508307668eb0609738d526cb16cbc623b50410fc" + public static let embeddedDataETag = "\"3b73923ebfd4702c33aea682db0bac11\"" + public static let embeddedDataSHA = "16e1e52530db19badfefc9a07d76620f9c608c12dc144f67020da8a9a4ddb0fa" } public var embeddedDataEtag: String { diff --git a/Core/AppURLs.swift b/Core/AppURLs.swift index 6feb8e7407..e7ebfa07f1 100644 --- a/Core/AppURLs.swift +++ b/Core/AppURLs.swift @@ -33,6 +33,9 @@ public extension URL { static let aboutLink = URL(string: AppDeepLinkSchemes.quickLink.appending("\(ddg.host!)/about"))! static let surrogates = URL(string: "\(staticBase)/surrogates.txt")! + + // The following URLs shall match the ones in update_embedded.sh. + // Danger checks that the URLs match on every PR. If the code changes, the regex that Danger uses may need an update. static let privacyConfig = URL(string: "\(staticBase)/trackerblocking/config/v3/ios-config.json")! static let trackerDataSet = URL(string: "\(staticBase)/trackerblocking/v5/current/ios-tds.json")! static let bloomFilter = URL(string: "\(staticBase)/https/https-mobile-v2-bloom.bin")! diff --git a/Core/DefaultVariantManager.swift b/Core/DefaultVariantManager.swift index 1f0a250f4e..7539b2981b 100644 --- a/Core/DefaultVariantManager.swift +++ b/Core/DefaultVariantManager.swift @@ -25,6 +25,8 @@ import BrowserServicesKit extension FeatureName { // Define your feature e.g.: // public static let experimentalFeature = FeatureName(rawValue: "experimentalFeature") + + public static let fixedUserAgent = FeatureName(rawValue: "fixedUserAgent") } public struct VariantIOS: Variant { @@ -59,6 +61,8 @@ public struct VariantIOS: Variant { VariantIOS(name: "sc", weight: doNotAllocate, isIncluded: When.always, features: []), VariantIOS(name: "sd", weight: doNotAllocate, isIncluded: When.always, features: []), VariantIOS(name: "se", weight: doNotAllocate, isIncluded: When.always, features: []), + VariantIOS(name: "me", weight: 1, isIncluded: When.always, features: []), + VariantIOS(name: "mf", weight: 1, isIncluded: When.always, features: [.fixedUserAgent]), returningUser ] diff --git a/Core/FeatureFlag.swift b/Core/FeatureFlag.swift index 69269aa99c..c31da129d1 100644 --- a/Core/FeatureFlag.swift +++ b/Core/FeatureFlag.swift @@ -28,6 +28,7 @@ public enum FeatureFlag: String { case autofillInlineIconCredentials case autofillAccessCredentialManagement case autofillPasswordGeneration + case autofillOnByDefault case incontextSignup case appTrackingProtection case networkProtection @@ -48,6 +49,8 @@ extension FeatureFlag: FeatureFlagSourceProviding { return .remoteReleasable(.subfeature(AutofillSubfeature.accessCredentialManagement)) case .autofillPasswordGeneration: return .remoteReleasable(.subfeature(AutofillSubfeature.autofillPasswordGeneration)) + case .autofillOnByDefault: + return .remoteReleasable(.subfeature(AutofillSubfeature.onByDefault)) case .incontextSignup: return .remoteReleasable(.feature(.incontextSignup)) } diff --git a/Core/NetworkProtectionNotificationIdentifier.swift b/Core/NetworkProtectionNotificationIdentifier.swift index 66a29dcebd..20e1a7631a 100644 --- a/Core/NetworkProtectionNotificationIdentifier.swift +++ b/Core/NetworkProtectionNotificationIdentifier.swift @@ -20,9 +20,7 @@ import Foundation public enum NetworkProtectionNotificationIdentifier: String { - case reconnecting = "network-protection.notification.reconnecting" - case reconnected = "network-protection.notification.reconnected" - case connectionFailure = "network-protection.notification.connection-failure" + case connection = "network-protection.notification.connection" case superseded = "network-protection.notification.superseded" case test = "network-protection.notification.test" } diff --git a/Core/Pixel.swift b/Core/Pixel.swift index 5c24bee78b..d358707618 100644 --- a/Core/Pixel.swift +++ b/Core/Pixel.swift @@ -126,6 +126,8 @@ public struct PixelParameters { public static let returnUserErrorCode = "error_code" public static let returnUserOldATB = "old_atb" public static let returnUserNewATB = "new_atb" + + public static let autofillDefaultState = "default_state" } public struct PixelValues { diff --git a/Core/PixelEvent.swift b/Core/PixelEvent.swift index d050a4d9e3..e3b1b8dc82 100644 --- a/Core/PixelEvent.swift +++ b/Core/PixelEvent.swift @@ -245,6 +245,9 @@ extension Pixel { case autofillJSPixelFired(_ pixel: AutofillUserScript.JSPixel) + case navigationbarPositionBottom + case navigationBarPositionTop + case secureVaultInitError case secureVaultError @@ -502,7 +505,6 @@ extension Pixel { case emailIncontextModalExitEarlyContinue case compilationFailed - case incrementalRolloutTest } } @@ -577,7 +579,10 @@ extension Pixel.Event { case .autocompleteSelectedLocal: return "m_au_l" case .autocompleteSelectedRemote: return "m_au_r" - + + case .navigationbarPositionBottom: return "m_seturlbar_bottom" + case .navigationBarPositionTop: return "m_seturlbar_top" + case .feedbackPositive: return "mfbs_positive_submit" case .feedbackNegativePrefix(category: let category): return "mfbs_negative_\(category)" @@ -985,8 +990,6 @@ extension Pixel.Event { case .debugReturnUserAddATB: return "m_debug_return_user_add_atb" case .debugReturnUserReadATB: return "m_debug_return_user_read_atb" case .debugReturnUserUpdateATB: return "m_debug_return_user_update_atb" - - case .incrementalRolloutTest: return "m_autofill_incremental_rollout_test" } } diff --git a/Core/UserAgentManager.swift b/Core/UserAgentManager.swift index 577922f317..0e03659e2e 100644 --- a/Core/UserAgentManager.swift +++ b/Core/UserAgentManager.swift @@ -130,7 +130,7 @@ struct UserAgent { private let applicationComponent = "DuckDuckGo/\(AppVersion.shared.majorVersionNumber)" private let statistics: StatisticsStore private let isTesting: Bool = ProcessInfo().arguments.contains("testing") - + init(defaultAgent: String = Constants.fallbackDefaultAgent, statistics: StatisticsStore = StatisticsUserDefaults()) { versionComponent = UserAgent.createVersionComponent(fromAgent: defaultAgent) baseAgent = UserAgent.createBaseAgent(fromAgent: defaultAgent, versionComponent: versionComponent) @@ -181,6 +181,7 @@ struct UserAgent { return versions } + // swiftlint:disable:next cyclomatic_complexity public func agent(forUrl url: URL?, isDesktop: Bool, privacyConfig: PrivacyConfiguration = ContentBlocking.shared.privacyConfigurationManager.privacyConfig) -> String { @@ -209,6 +210,10 @@ struct UserAgent { return ddgFixedLogic(forUrl: url, isDesktop: isDesktop, privacyConfig: privacyConfig) } + if DefaultVariantManager().isSupported(feature: .fixedUserAgent) { + return ddgFixedLogic(forUrl: url, isDesktop: isDesktop, privacyConfig: privacyConfig) + } + switch defaultPolicy(forConfig: privacyConfig) { case .ddg: return oldLogic(forUrl: url, isDesktop: isDesktop, privacyConfig: privacyConfig) case .ddgFixed: return ddgFixedLogic(forUrl: url, isDesktop: isDesktop, privacyConfig: privacyConfig) diff --git a/Core/UserDefaultsPropertyWrapper.swift b/Core/UserDefaultsPropertyWrapper.swift index 0d657b9533..7949c231c3 100644 --- a/Core/UserDefaultsPropertyWrapper.swift +++ b/Core/UserDefaultsPropertyWrapper.swift @@ -99,6 +99,9 @@ public struct UserDefaultsWrapper { case syncEnvironment = "com.duckduckgo.ios.sync-environment" case networkProtectionDebugOptionAlwaysOnDisabled = "com.duckduckgo.network-protection.always-on.disabled" + + case addressBarPosition = "com.duckduckgo.ios.addressbarposition" + case showFullSiteAddress = "com.duckduckgo.ios.showfullsiteaddress" } private let key: Key diff --git a/Core/ios-config.json b/Core/ios-config.json index b9847b8298..6c63a428f3 100644 --- a/Core/ios-config.json +++ b/Core/ios-config.json @@ -1,6 +1,6 @@ { "readme": "https://github.com/duckduckgo/privacy-configuration", - "version": 1695828991975, + "version": 1697654992169, "features": { "adClickAttribution": { "readme": "https://help.duckduckgo.com/duckduckgo-help-pages/privacy/web-tracking-protections/#3rd-party-tracker-loading-protection", @@ -100,7 +100,6 @@ ], "keywords": [ "=amp", - "amp=", "&", "amp&", "/amp", @@ -115,7 +114,7 @@ ] }, "state": "enabled", - "hash": "87198c8b0bc8c044f0773599845fa371" + "hash": "cf1e1726876b6f6510eae65e2bc37047" }, "autoconsent": { "exceptions": [ @@ -313,66 +312,6 @@ { "domain": "roll20.net", "reason": "Performance issue for too many fields." - }, - { - "domain": "amazon.ca", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.cn", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.co.jp", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.com", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.com.au", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.com.mx", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.co.uk", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.de", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.es", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.eu", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.fr", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.in", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.it", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.nl", - "reason": "Performance issue, infinite loop." - }, - { - "domain": "amazon.sa", - "reason": "Performance issue, infinite loop." } ], "state": "enabled", @@ -396,9 +335,20 @@ "autofillPasswordGeneration": { "state": "enabled", "minSupportedVersion": "7.75.0" + }, + "onByDefault": { + "state": "enabled", + "minSupportedVersion": "7.93.0", + "rollout": { + "steps": [ + { + "percent": 1 + } + ] + } } }, - "hash": "c427670d1be007f3bd4af4c0e83addfb" + "hash": "555acbcb681d4f9b342dd2539c8e2c40" }, "clickToLoad": { "exceptions": [ @@ -1198,6 +1148,10 @@ "domain": "iamexpat.nl", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1247" }, + { + "domain": "pocketbook.digital", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1368" + }, { "domain": "earth.google.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" @@ -1230,7 +1184,7 @@ } }, "state": "disabled", - "hash": "396f535f481c52cc31108ac8a0f7e53a" + "hash": "282361b69a7a17fbd3a6c53cdfba6b97" }, "clickToPlay": { "exceptions": [ @@ -1274,6 +1228,18 @@ "domain": "welt.de", "reason": "Video pauses at about 13-15 seconds in. Playing the video again results in a single frame rendering without progressing to the next frame." }, + { + "domain": "optout.aboutads.info", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1377" + }, + { + "domain": "optout.networkadvertising.org", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1377" + }, + { + "domain": "ads.google.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1401" + }, { "domain": "earth.google.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" @@ -1291,7 +1257,7 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1085" } ], - "hash": "acdaea57d6585b8b4c15750545c477ff" + "hash": "f94b331bc97d678adbd90ed74feb40b2" }, "cookie": { "settings": { @@ -1325,6 +1291,14 @@ "domain": "nespresso.com", "reason": "Clicking 'Continue' after filling out details for account creation yields an error." }, + { + "domain": "optout.aboutads.info", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1377" + }, + { + "domain": "optout.networkadvertising.org", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1377" + }, { "domain": "earth.google.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" @@ -1343,10 +1317,145 @@ } ], "state": "disabled", - "hash": "d391a768cdcd83fe39d2229cfca7239c" + "hash": "ee691572b20893705632f670a2f72801" }, "customUserAgent": { "settings": { + "defaultPolicy": "ddg", + "ddgFixedSites": [], + "ddgDefaultSites": [ + { + "domain": "duckduckgo.com", + "reason": "Internal exclusion to roll out experiment" + } + ], + "ddgFixedUserAgent": { + "versions": [ + "391", + "389", + "388", + "386", + "383", + "382", + "379", + "377", + "376", + "374", + "371", + "370", + "367", + "365", + "364", + "361", + "360", + "358", + "356", + "353", + "351", + "349", + "348", + "345", + "343", + "341", + "340", + "338", + "336", + "334", + "332", + "330", + "327", + "325", + "324", + "322", + "319", + "317", + "316", + "314", + "311", + "310", + "307", + "305", + "303", + "301", + "299", + "297", + "296", + "294", + "292", + "290", + "288", + "286", + "283", + "282", + "280", + "277", + "275", + "273", + "272", + "270", + "267", + "265", + "264", + "261", + "259", + "258", + "255", + "253", + "252", + "250", + "247", + "246", + "243", + "242", + "240", + "237", + "235", + "233", + "231", + "229", + "227", + "225", + "224", + "221", + "219", + "217", + "216", + "214", + "212", + "210", + "207", + "206", + "204", + "201", + "200", + "198", + "195", + "193", + "192", + "189", + "188", + "186", + "183", + "181", + "179", + "177", + "175", + "174", + "172", + "170", + "168", + "166", + "164", + "162", + "159", + "158", + "156", + "153", + "151", + "149", + "147" + ] + }, "omitApplicationSites": [ { "domain": "thingiverse.com", @@ -1384,10 +1493,6 @@ "domain": "crunchynihongo.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1201" }, - { - "domain": "hulu.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1145" - }, { "domain": "vsp.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1292" @@ -1416,6 +1521,10 @@ "domain": "facebook.com", "reason": "When going to the main login page, there is a banner at the top which warns of an 'Unsupported browser'." }, + { + "domain": "hulu.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1145" + }, { "domain": "instagram.com", "reason": "A banner at the bottom which warns of an 'Unsupported browser' and interferes with rest of the UI." @@ -1466,7 +1575,7 @@ }, "exceptions": [], "state": "enabled", - "hash": "8b39b35be3b5b92c999539eb1ebc252f" + "hash": "10c9207834e45150fb4fa54cc22a9b92" }, "duckPlayer": { "exceptions": [], @@ -1780,6 +1889,10 @@ "selector": "#topBanner", "type": "hide-empty" }, + { + "selector": ".top-ad", + "type": "hide-empty" + }, { "selector": ".ad-banner-container", "type": "hide-empty" @@ -2001,6 +2114,10 @@ { "domain": "github.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1058" + }, + { + "domain": "pocketbook.digital", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1365" } ], "hideTimeouts": [ @@ -2009,13 +2126,16 @@ 300, 500, 1000, + 1500, 2000, - 3000 + 3000, + 5000 ], "unhideTimeouts": [ 1250, 2250, - 3000 + 3250, + 5250 ], "mediaAndFormSelectors": "video,canvas,embed,object,audio,map,form,input,textarea,select,option", "adLabelStrings": [ @@ -2026,6 +2146,7 @@ "advertisements", "advertisment", "advertisementclose", + "advertisementadvertisement", "advertisementcontinue reading the main story", "advertisement\ncontinue reading the main story", "advertisement\n\ncontinue reading the main story", @@ -2044,6 +2165,7 @@ "sponsored", "sponsorisé", "story continues below advertisement", + "story continues below advertisementadvertisement", "publicité", "publicidade", "reklama", @@ -2963,6 +3085,15 @@ } ] }, + { + "domain": "refinery29.com", + "rules": [ + { + "selector": ".section-ad", + "type": "hide-empty" + } + ] + }, { "domain": "reuters.com", "rules": [ @@ -3049,6 +3180,15 @@ } ] }, + { + "domain": "slate.com", + "rules": [ + { + "selector": ".slate-ad", + "type": "hide-empty" + } + ] + }, { "domain": "snopes.com", "rules": [ @@ -3058,6 +3198,23 @@ } ] }, + { + "domain": "spanishdict.com", + "rules": [ + { + "selector": "[id*='adSide']", + "type": "hide-empty" + }, + { + "selector": "[id*='adTop']", + "type": "hide-empty" + }, + { + "selector": "[id*='adMiddle']", + "type": "hide-empty" + } + ] + }, { "domain": "spankbang.com", "rules": [ @@ -3272,6 +3429,10 @@ { "selector": "#cx-what-to-read-next", "type": "closest-empty" + }, + { + "selector": "[class*='WSJTheme--adWrapper']", + "type": "hide-empty" } ] }, @@ -3299,6 +3460,10 @@ { "selector": ".darla", "type": "closest-empty" + }, + { + "selector": "[data-content='Advertisement']", + "type": "hide-empty" } ] }, @@ -3392,27 +3557,6 @@ } ] }, - { - "domain": "privacy-test-pages.glitch.me", - "rules": [ - { - "selector": ".hide-test", - "type": "hide" - }, - { - "selector": ".hide-empty-test", - "type": "hide-empty" - }, - { - "selector": ".closest-empty-test", - "type": "closest-empty" - }, - { - "selector": "[class^='ad-container']", - "type": "override" - } - ] - }, { "domain": "privacy-test-pages.site", "rules": [ @@ -3437,7 +3581,7 @@ ] }, "state": "enabled", - "hash": "d0034c140c0ee9ce9015b74b428523b3" + "hash": "b14a407a0c2cb050996646dfaadaf2db" }, "exceptionHandler": { "exceptions": [ @@ -3680,190 +3824,6 @@ "domain": "hyatt.com", "reason": "Site loads blank and does not proceed." }, - { - "domain": "bank.marksandspencer.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "www7.marksandspencer.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "fidelity.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "citi.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "americanexpress.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "capitalone.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "marcus.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bankofamerica.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "wellsfargo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "usbank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "citizensbankonline.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "sofi.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "regions.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "usaa.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "boh.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "santander.com.br", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "pnc.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "edwardjones.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ally.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "metrobank.com.ph", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "key.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "synchronybank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "oldglorybank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "santander.com.mx", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "secureinternetbank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bankfirst.com.au", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "fnbo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "salliemae.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bnc.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "kanza.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "prosperity.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "firstwestern.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "penncrest.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "northwest.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bell.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "dollar.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "dellsbank.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "rcbbank.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ebt.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "mybct.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "wells.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "365.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "atom.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ibanking-services.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bmo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "tsb.co.uk", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, { "domain": "earth.google.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" @@ -3882,7 +3842,7 @@ } ], "state": "enabled", - "hash": "f28bbd2f54f441ea5f830398df41f45e" + "hash": "c2469977eaaaf117362492d2c993fd1c" }, "fingerprintingScreenSize": { "settings": { @@ -3924,190 +3884,6 @@ "domain": "secureserver.net", "reason": "After entering login details and clicking to log in, the site shows an adwall and prevents login." }, - { - "domain": "bank.marksandspencer.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "www7.marksandspencer.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "fidelity.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "citi.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - }, - { - "domain": "americanexpress.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "capitalone.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "marcus.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bankofamerica.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "wellsfargo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "usbank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "citizensbankonline.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "sofi.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "regions.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "usaa.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "boh.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "santander.com.br", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "pnc.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "edwardjones.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ally.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "metrobank.com.ph", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "key.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "synchronybank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "oldglorybank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "santander.com.mx", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "secureinternetbank.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bankfirst.com.au", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "fnbo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "salliemae.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bnc.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "kanza.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "prosperity.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "firstwestern.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "penncrest.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "northwest.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bell.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "dollar.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "dellsbank.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "rcbbank.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ebt.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "mybct.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "wells.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "365.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "atom.bank", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "ibanking-services.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "bmo.com", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, - { - "domain": "tsb.co.uk", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1265" - }, { "domain": "earth.google.com", "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1099" @@ -4126,7 +3902,7 @@ } ], "state": "enabled", - "hash": "702a26f39577785255f35af7fc7f2578" + "hash": "27afff6e74517f41184f4d3df479c53b" }, "fingerprintingTemporaryStorage": { "exceptions": [ @@ -4230,11 +4006,10 @@ "globalprivacycontrol.org", "washingtonpost.com", "nytimes.com", - "privacy-test-pages.glitch.me", "privacy-test-pages.site" ] }, - "hash": "9962dbae2a6a668fbdae3b20f02bcbad" + "hash": "402a82434b6f2b8a5321d9f004a7c33f" }, "harmfulApis": { "settings": { @@ -4361,7 +4136,15 @@ "exceptions": [ { "domain": "act.alz.org", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1158" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1392" + }, + { + "domain": "amica.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1392" + }, + { + "domain": "jp.square-enix.com", + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1392" }, { "domain": "earth.google.com", @@ -4380,7 +4163,7 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1085" } ], - "hash": "8de33b0e54940edad6504523c8db58ff" + "hash": "2b7a26bbc23127a7ce24cc992066ad14" }, "incontextSignup": { "exceptions": [], @@ -4395,11 +4178,18 @@ "state": "disabled", "features": { "rollout": { - "state": "disabled" + "state": "enabled", + "rollout": { + "steps": [ + { + "percent": 0.5 + } + ] + } } }, "exceptions": [], - "hash": "c1293c7b2687c8a2f7c5433a4d7a330d" + "hash": "429cea8d27316dc62af04159ec7c42b5" }, "navigatorInterface": { "exceptions": [ @@ -4435,10 +4225,13 @@ "features": { "waitlist": { "state": "disabled" + }, + "waitlistBetaActive": { + "state": "disabled" } }, "exceptions": [], - "hash": "bf4c9cd751a7626bd89136f6cc98ccf1" + "hash": "ba52a36920a4a76343fc3c44d98936f9" }, "newTabContinueSetUp": { "exceptions": [], @@ -4470,6 +4263,19 @@ "state": "disabled", "hash": "81f357de4bfc7abeddf1a3a3fb1fc7a9" }, + "privacyDashboard": { + "exceptions": [], + "features": { + "highlightedProtectionsToggle": { + "state": "disabled", + "rollout": { + "steps": [] + } + } + }, + "state": "disabled", + "hash": "dede7e70939822f5ecb9eb5fae577fa3" + }, "referrer": { "exceptions": [ { @@ -5106,6 +4912,48 @@ }, "connatix.com": { "rules": [ + { + "rule": "cd.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, + { + "rule": "cds.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, + { + "rule": "cdn.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, + { + "rule": "capi.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, + { + "rule": "vid.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, + { + "rule": "img.connatix.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/768" + }, { "rule": "connatix.com", "domains": [ @@ -5365,6 +5213,17 @@ } ] }, + "eccmp.com": { + "rules": [ + { + "rule": "eccmp.com/sts/scripts/conversen-SDK.js", + "domains": [ + "pch.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1344" + } + ] + }, "edgekey.net": { "rules": [ { @@ -5667,9 +5526,10 @@ "rule": "google-analytics.com/analytics.js", "domains": [ "doterra.com", - "easyjet.com" + "easyjet.com", + "worlddutyfree.com" ], - "reason": "doterra.com - For doterra.com/login/loading, the page shows a loading indicator and never redirects.,easyjet.com - Clicking 'Show Worldwide flights' after entering parameters for a worldwide flight in the flight viewing form does nothing." + "reason": "doterra.com - For doterra.com/login/loading, the page shows a loading indicator and never redirects.,easyjet.com - Clicking 'Show Worldwide flights' after entering parameters for a worldwide flight in the flight viewing form does nothing.,worlddutyfree.com - https://github.com/duckduckgo/privacy-configuration/issues/1380" }, { "rule": "www.google-analytics.com/plugins/ua/ecommerce.js", @@ -6193,7 +6053,8 @@ { "rule": "static.klaviyo.com/onsite/js/klaviyo.js", "domains": [ - "kidsguide.com" + "kidsguide.com", + "urbanebikes.com" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1277" }, @@ -6216,6 +6077,13 @@ "andieswim.com" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1285" + }, + { + "rule": "lightboxcdn.com/vendor/.*/user.js", + "domains": [ + "nascar.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1373" } ] }, @@ -6492,6 +6360,13 @@ "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/529" + }, + { + "rule": "cmp.osano.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1398" } ] }, @@ -6786,6 +6661,17 @@ } ] }, + "rokt.com": { + "rules": [ + { + "rule": "rokt.com/wsdk/integrations/snippet.js", + "domains": [ + "pch.com" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1344" + } + ] + }, "rumble.com": { "rules": [ { @@ -6954,6 +6840,17 @@ } ] }, + "succeedscene.com": { + "rules": [ + { + "rule": "succeedscene.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1396" + } + ] + }, "tealiumiq.com": { "rules": [ { @@ -7001,25 +6898,18 @@ "tiqcdn.com": { "rules": [ { - "rule": "tags.tiqcdn.com/utag/bofa/main/prod/utag.sync.js", - "domains": [ - "bankofamerica.com" - ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/798" - }, - { - "rule": "tags.tiqcdn.com/utag/lgi/vm-uk/prod/utag.77.js", + "rule": "tags.tiqcdn.com/utag/.*/utag.js", "domains": [ - "virginmedia.com" + "" ], - "reason": "Chat button appears faded and cannot be interacted with." + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/379" }, { - "rule": "tags.tiqcdn.com/utag/rccl/gdp/prod/utag.js", + "rule": "tags.tiqcdn.com/utag/.*/utag..*.js", "domains": [ - "royalcaribbean.com" + "" ], - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1255" + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/379" } ] }, @@ -7196,6 +7086,13 @@ "" ], "reason": "https://github.com/duckduckgo/privacy-configuration/issues/366" + }, + { + "rule": "yandex.ru/map-widget/", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1384" } ] }, @@ -7268,6 +7165,17 @@ } ] }, + "zopim.com": { + "rules": [ + { + "rule": "zopim.com", + "domains": [ + "" + ], + "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1360" + } + ] + }, "citi.com": { "rules": [ { @@ -7329,6 +7237,17 @@ "reason": "CNAME ENTRY GENERATED FROM: qualtrics.com" } ] + }, + "yandex.tm": { + "rules": [ + { + "rule": "mc.yandex.tm/map-widget/", + "domains": [ + "" + ], + "reason": "CNAME ENTRY GENERATED FROM: yandex.ru" + } + ] } } }, @@ -7350,7 +7269,7 @@ "reason": "https://github.com/duckduckgo/privacy-configuration/issues/1085" } ], - "hash": "f9b5279848f985f769d973e76d09b28b" + "hash": "8cae71738e23bfd2e355653290f048b4" }, "trackingCookies1p": { "settings": { @@ -7555,22 +7474,7 @@ "exceptions": [], "state": "enabled", "hash": "52857469413a66e8b0c7b00de5589162" - }, - "incrementalRolloutTest2": { - "state": "enabled", - "features": { - "rollout": { - "state": "disabled" - } - }, - "exceptions": [], - "hash": "54776d4aa010391dc14a53ad69cd1777" } }, - "unprotectedTemporary": [ - { - "domain": "vinted.fr", - "reason": "https://github.com/duckduckgo/privacy-configuration/issues/794" - } - ] + "unprotectedTemporary": [] } \ No newline at end of file diff --git a/Core/trackerData.json b/Core/trackerData.json index 3de737a946..18ddb15be4 100644 --- a/Core/trackerData.json +++ b/Core/trackerData.json @@ -1,6 +1,6 @@ { "_builtWith": { - "tracker-radar": "6eb8582c70d4e62ccb4b23113fc8bfdeb9b945b8ba986a60e71ab693af87e755-4013b4e91930c643394cb31c6c745356f133b04f", + "tracker-radar": "29f80529aa526f0a0f8daadb1c8717d6dccdbb1a45f98477de48e8a8d213d386-4013b4e91930c643394cb31c6c745356f133b04f", "tracker-surrogates": "d61691a2fdf9f4dc062a8d248fd1e78c20b5b892" }, "readme": "https://github.com/duckduckgo/tracker-blocklists", @@ -482,7 +482,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -493,7 +493,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -539,7 +539,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2417,7 +2417,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2428,7 +2428,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2472,7 +2472,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2483,7 +2483,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2506,7 +2506,7 @@ "default": "block", "rules": [ { - "rule": "amazon-adsystem\\.com\\/aax2\\/amzn_ads\\.js", + "rule": "amazon-adsystem\\.com/aax2/amzn_ads\\.js", "surrogate": "amzn_ads.js" }, { @@ -2610,7 +2610,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2749,7 +2749,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -2760,7 +2760,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3079,7 +3079,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3206,7 +3206,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3330,7 +3330,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3714,7 +3714,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3725,7 +3725,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3736,7 +3736,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3747,7 +3747,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3813,7 +3813,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3865,7 +3865,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -3876,7 +3876,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4013,7 +4013,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4364,7 +4364,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4399,7 +4399,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4850,7 +4850,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -4861,7 +4861,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5063,7 +5063,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5105,7 +5105,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5128,7 +5128,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5163,7 +5163,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5192,7 +5192,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5480,7 +5480,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5505,11 +5505,11 @@ "default": "block", "rules": [ { - "rule": "chartbeat\\.com\\/chartbeat\\.js", + "rule": "chartbeat\\.com/chartbeat\\.js", "surrogate": "chartbeat.js" }, { - "rule": "chartbeat\\.com\\/js\\/chartbeat\\.js", + "rule": "chartbeat\\.com/js/chartbeat\\.js", "surrogate": "chartbeat.js" } ] @@ -5597,7 +5597,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5608,7 +5608,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5619,7 +5619,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5630,7 +5630,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5667,7 +5667,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -5722,7 +5722,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6258,7 +6258,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6417,7 +6417,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6733,7 +6733,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6744,7 +6744,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -6868,7 +6868,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7064,7 +7064,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7100,7 +7100,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7111,7 +7111,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7122,7 +7122,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7705,7 +7705,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7716,7 +7716,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7727,7 +7727,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7803,7 +7803,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7926,7 +7926,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -7937,7 +7937,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8015,7 +8015,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8026,7 +8026,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8141,7 +8141,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8214,7 +8214,7 @@ "surrogate": "gpt.js" }, { - "rule": "doubleclick\\.net\\/tag\\/js\\/gpt\\.js", + "rule": "doubleclick\\.net/tag/js/gpt\\.js", "surrogate": "gpt.js" }, { @@ -8284,7 +8284,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8295,7 +8295,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8821,7 +8821,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8832,7 +8832,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -8873,7 +8873,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9289,7 +9289,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9899,7 +9899,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9910,7 +9910,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9921,7 +9921,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -9961,7 +9961,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10003,7 +10003,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10077,7 +10077,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10145,7 +10145,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10156,7 +10156,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10204,7 +10204,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10330,7 +10330,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10490,7 +10490,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10501,7 +10501,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10512,7 +10512,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10539,7 +10539,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10589,7 +10589,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -10636,7 +10636,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11115,7 +11115,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11155,7 +11155,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11220,7 +11220,7 @@ "default": "block", "rules": [ { - "rule": "google-analytics\\.com\\/ga\\.js", + "rule": "google-analytics\\.com/ga\\.js", "surrogate": "ga.js" }, { @@ -11235,19 +11235,19 @@ } }, { - "rule": "google-analytics\\.com\\/inpage_linkid\\.js", + "rule": "google-analytics\\.com/inpage_linkid\\.js", "surrogate": "inpage_linkid.js" }, { - "rule": "google-analytics\\.com\\/plugins\\/ga\\/inpage_linkid\\.js", + "rule": "google-analytics\\.com/plugins/ga/inpage_linkid\\.js", "surrogate": "inpage_linkid.js" }, { - "rule": "google-analytics\\.com\\/cx\\/api\\.js", + "rule": "google-analytics\\.com/cx/api\\.js", "surrogate": "api.js" }, { - "rule": "google-analytics\\.com\\/gtm\\/js", + "rule": "google-analytics\\.com/gtm/js", "surrogate": "gtm.js" } ] @@ -11616,11 +11616,11 @@ "default": "block", "rules": [ { - "rule": "googlesyndication\\.com\\/adsbygoogle\\.js", + "rule": "googlesyndication\\.com/adsbygoogle\\.js", "surrogate": "adsbygoogle.js" }, { - "rule": "googlesyndication\\.com\\/pagead\\/js\\/adsbygoogle\\.js", + "rule": "googlesyndication\\.com/pagead/js/adsbygoogle\\.js", "surrogate": "adsbygoogle.js" } ] @@ -11815,7 +11815,7 @@ "default": "block", "rules": [ { - "rule": "googletagservices\\.com\\/gpt\\.js", + "rule": "googletagservices\\.com/gpt\\.js", "surrogate": "gpt.js" }, { @@ -11848,7 +11848,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11935,7 +11935,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -11946,7 +11946,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12178,7 +12178,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12218,7 +12218,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12229,7 +12229,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12240,7 +12240,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12251,7 +12251,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12577,7 +12577,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12588,7 +12588,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -12599,7 +12599,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -14522,7 +14522,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15207,7 +15207,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15282,7 +15282,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -15333,7 +15333,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16155,7 +16155,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16166,7 +16166,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16194,7 +16194,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16413,7 +16413,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16721,7 +16721,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16732,7 +16732,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16917,7 +16917,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -16966,7 +16966,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17240,7 +17240,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17251,7 +17251,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -17814,7 +17814,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18126,7 +18126,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18265,7 +18265,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18615,7 +18615,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -18845,7 +18845,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20023,7 +20023,7 @@ "default": "block", "rules": [ { - "rule": "outbrain\\.com\\/outbrain\\.js", + "rule": "outbrain\\.com/outbrain\\.js", "surrogate": "outbrain.js" } ] @@ -20034,7 +20034,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20255,7 +20255,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20266,7 +20266,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20277,7 +20277,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20385,7 +20385,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20862,7 +20862,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20891,7 +20891,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20902,7 +20902,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20913,7 +20913,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -20977,7 +20977,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21057,7 +21057,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21105,7 +21105,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21116,7 +21116,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21161,7 +21161,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21172,7 +21172,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21207,7 +21207,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21218,7 +21218,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21351,7 +21351,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21442,7 +21442,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21913,7 +21913,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21924,7 +21924,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -21935,7 +21935,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22005,7 +22005,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22016,7 +22016,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22169,7 +22169,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22180,7 +22180,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22222,7 +22222,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22233,7 +22233,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22244,7 +22244,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22514,7 +22514,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22525,7 +22525,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22586,7 +22586,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22644,7 +22644,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22655,7 +22655,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22755,7 +22755,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22778,7 +22778,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -22789,7 +22789,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23130,7 +23130,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23234,7 +23234,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23631,7 +23631,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23706,7 +23706,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23717,7 +23717,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23761,7 +23761,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23772,7 +23772,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23783,7 +23783,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23794,7 +23794,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23874,7 +23874,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23896,7 +23896,7 @@ "default": "block", "rules": [ { - "rule": "scorecardresearch\\.com\\/beacon\\.js", + "rule": "scorecardresearch\\.com/beacon\\.js", "surrogate": "beacon.js" } ] @@ -23907,7 +23907,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -23958,7 +23958,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24094,7 +24094,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24223,7 +24223,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24234,7 +24234,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24481,7 +24481,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24492,7 +24492,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24503,7 +24503,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24784,7 +24784,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24819,7 +24819,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24860,7 +24860,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24976,7 +24976,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -24987,7 +24987,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25016,7 +25016,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25112,7 +25112,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25169,7 +25169,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25180,7 +25180,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25301,7 +25301,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25458,7 +25458,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25484,7 +25484,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25495,7 +25495,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25558,7 +25558,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25569,7 +25569,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25580,7 +25580,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25811,7 +25811,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25838,7 +25838,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25849,7 +25849,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25860,7 +25860,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25890,7 +25890,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25901,7 +25901,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25929,7 +25929,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -25940,7 +25940,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26028,7 +26028,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26076,7 +26076,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26087,7 +26087,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26098,7 +26098,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26109,7 +26109,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26120,7 +26120,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26131,7 +26131,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26203,7 +26203,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26214,7 +26214,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26268,7 +26268,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26470,7 +26470,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26778,7 +26778,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26789,7 +26789,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -26800,7 +26800,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27051,7 +27051,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27062,7 +27062,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -27427,7 +27427,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28284,7 +28284,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28414,7 +28414,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28425,7 +28425,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28558,7 +28558,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28641,7 +28641,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -28652,7 +28652,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29012,7 +29012,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29308,7 +29308,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29319,7 +29319,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29445,7 +29445,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -29456,7 +29456,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -31190,7 +31190,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -31494,7 +31494,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32654,7 +32654,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32665,7 +32665,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32676,7 +32676,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32687,7 +32687,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32698,7 +32698,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32709,7 +32709,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32720,7 +32720,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32731,7 +32731,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "adamantsnail.com": { + "domain": "adamantsnail.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32742,7 +32753,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32753,7 +32764,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32764,7 +32775,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32775,7 +32786,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32786,7 +32797,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32797,7 +32808,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32808,7 +32819,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32819,7 +32830,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32830,7 +32841,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32841,7 +32852,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32852,7 +32863,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32863,7 +32874,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32874,7 +32885,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32885,7 +32896,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32896,7 +32907,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32907,7 +32918,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32918,7 +32929,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32929,7 +32940,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32940,7 +32951,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32951,7 +32962,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32962,7 +32973,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32973,7 +32984,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32984,7 +32995,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -32995,7 +33006,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33006,7 +33017,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33017,7 +33028,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33028,7 +33039,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33039,7 +33050,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33050,7 +33061,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33061,7 +33072,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33072,7 +33083,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33083,7 +33094,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33094,7 +33105,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33105,7 +33116,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33116,7 +33127,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33127,7 +33138,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33138,7 +33149,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33149,7 +33160,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33160,7 +33171,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33171,7 +33182,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33182,7 +33193,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33193,7 +33204,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33204,7 +33215,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33215,7 +33226,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33226,7 +33237,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33237,7 +33248,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33248,7 +33259,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33259,7 +33270,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33270,7 +33281,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33281,7 +33292,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33292,7 +33303,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33303,7 +33314,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33314,7 +33325,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33325,7 +33336,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33336,7 +33347,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33347,7 +33358,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33358,7 +33369,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "chalkoil.com": { + "domain": "chalkoil.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33369,7 +33391,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33380,7 +33402,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33391,7 +33413,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33402,7 +33424,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33413,7 +33435,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33424,7 +33446,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33435,7 +33457,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33446,7 +33468,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33457,7 +33479,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33468,7 +33490,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33479,7 +33501,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33490,7 +33512,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33501,7 +33523,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33512,7 +33534,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33523,7 +33545,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33534,7 +33556,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33545,7 +33567,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33556,7 +33578,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33567,7 +33589,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33578,7 +33600,29 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "cozyhillside.com": { + "domain": "cozyhillside.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "crimsonmeadow.com": { + "domain": "crimsonmeadow.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33589,7 +33633,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33600,7 +33644,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "crystalboulevard.com": { + "domain": "crystalboulevard.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33611,7 +33666,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33622,7 +33677,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33633,7 +33688,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33644,7 +33699,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33655,7 +33710,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33666,7 +33721,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33677,7 +33732,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33688,7 +33743,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33699,7 +33754,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33710,7 +33765,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33721,7 +33776,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33732,7 +33787,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "delicatecascade.com": { + "domain": "delicatecascade.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33743,7 +33809,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33754,7 +33820,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33765,7 +33831,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33776,7 +33842,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33787,7 +33853,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33798,7 +33864,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33809,7 +33875,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33820,7 +33886,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33831,7 +33897,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33842,7 +33908,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33853,7 +33919,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33864,7 +33930,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33875,7 +33941,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33886,7 +33952,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "ethereallagoon.com": { + "domain": "ethereallagoon.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33897,7 +33974,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33908,7 +33985,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33919,7 +33996,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33930,7 +34007,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33941,7 +34018,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33952,7 +34029,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33963,7 +34040,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33974,7 +34051,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33985,7 +34062,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -33996,7 +34073,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34007,7 +34084,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34018,7 +34095,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34029,7 +34106,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34040,7 +34117,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34051,7 +34128,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34062,7 +34139,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34073,7 +34150,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34084,7 +34161,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34095,7 +34172,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34106,7 +34183,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34117,7 +34194,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34128,7 +34205,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34139,7 +34216,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "forgetfulsnail.com": { + "domain": "forgetfulsnail.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34150,7 +34238,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34161,7 +34249,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34172,7 +34260,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34183,7 +34271,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34194,7 +34282,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34205,7 +34293,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34216,7 +34304,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34227,7 +34315,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34238,7 +34326,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34249,7 +34337,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34260,7 +34348,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34271,7 +34359,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34282,7 +34370,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34293,7 +34381,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34304,7 +34392,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34315,7 +34403,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34326,7 +34414,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34337,7 +34425,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34348,7 +34436,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34359,7 +34447,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34370,7 +34458,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34381,7 +34469,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34392,7 +34480,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34403,7 +34491,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34414,7 +34502,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34425,7 +34513,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34436,7 +34524,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34447,7 +34535,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34458,7 +34546,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "headydegree.com": { + "domain": "headydegree.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34469,7 +34568,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34480,7 +34579,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34491,7 +34590,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34502,7 +34601,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34513,7 +34612,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34524,7 +34623,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34535,7 +34634,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34546,7 +34645,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34557,7 +34656,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34568,7 +34667,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34579,7 +34678,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34590,7 +34689,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34601,7 +34700,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34612,7 +34711,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34623,7 +34722,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34634,7 +34733,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "jubilantcanyon.com": { + "domain": "jubilantcanyon.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34645,7 +34755,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34656,7 +34766,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34667,7 +34777,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34678,7 +34788,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34689,7 +34799,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34700,7 +34810,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34711,7 +34821,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34722,7 +34832,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34733,7 +34843,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34744,7 +34854,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34755,7 +34865,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34766,7 +34876,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34777,7 +34887,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34788,7 +34898,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34799,7 +34909,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34810,7 +34920,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34821,7 +34931,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34832,7 +34942,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34843,7 +34953,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34854,7 +34964,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34865,7 +34975,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34876,7 +34986,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34887,7 +34997,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34898,7 +35008,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34909,7 +35019,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34920,7 +35030,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34931,7 +35041,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34942,7 +35052,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34953,7 +35063,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34964,7 +35074,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34975,7 +35085,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34986,7 +35096,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -34997,7 +35107,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35008,7 +35118,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35019,7 +35129,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35030,7 +35140,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35041,7 +35151,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35052,7 +35162,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35063,7 +35173,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35074,7 +35184,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35085,7 +35195,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35096,7 +35206,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35107,7 +35217,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35118,7 +35228,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35129,7 +35239,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35140,7 +35250,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35151,7 +35261,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35162,7 +35272,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35173,7 +35283,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35184,7 +35294,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35195,7 +35305,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35206,7 +35316,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35217,7 +35327,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35228,7 +35338,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35239,7 +35349,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35250,7 +35360,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35261,7 +35371,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35272,7 +35382,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35283,7 +35393,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35294,7 +35404,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35305,7 +35415,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35316,7 +35426,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35327,7 +35437,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35338,7 +35448,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35349,7 +35459,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35360,7 +35470,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35371,7 +35481,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35382,7 +35492,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35393,7 +35503,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35404,7 +35514,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35415,7 +35525,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35426,7 +35536,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35437,7 +35547,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35448,7 +35558,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35459,7 +35569,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35470,7 +35580,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35481,7 +35591,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35492,7 +35602,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35503,7 +35613,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35514,7 +35624,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35525,7 +35635,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35536,7 +35646,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35547,7 +35657,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35558,7 +35668,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35569,7 +35679,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35580,7 +35690,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35591,7 +35701,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35602,7 +35712,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35613,7 +35723,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35624,7 +35734,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35635,7 +35745,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35646,7 +35756,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35657,7 +35767,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35668,7 +35778,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35679,7 +35789,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35690,7 +35800,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35701,7 +35811,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35712,7 +35822,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35723,7 +35833,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35734,7 +35844,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35745,7 +35855,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35756,7 +35866,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35767,7 +35877,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35778,7 +35888,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35789,7 +35899,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35800,7 +35910,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35811,7 +35921,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35822,7 +35932,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35833,7 +35943,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35844,7 +35954,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35855,7 +35965,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35866,7 +35976,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35877,7 +35987,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35888,7 +35998,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35899,7 +36009,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35910,7 +36020,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35921,7 +36031,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35932,7 +36042,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35943,7 +36053,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35954,7 +36064,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35965,7 +36075,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35976,7 +36086,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35987,7 +36097,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -35998,7 +36108,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "smilingswim.com": { + "domain": "smilingswim.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36009,7 +36130,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36020,7 +36141,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36031,7 +36152,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36042,7 +36163,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36053,7 +36174,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36064,7 +36185,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36075,7 +36196,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36086,7 +36207,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36097,7 +36218,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36108,7 +36229,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36119,7 +36240,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36130,7 +36251,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36141,7 +36262,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36152,7 +36273,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36163,7 +36284,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36174,7 +36295,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36185,7 +36306,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36196,7 +36317,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36207,7 +36328,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36218,7 +36339,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36229,7 +36350,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36240,7 +36361,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36251,7 +36372,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36262,7 +36383,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36273,7 +36394,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36284,7 +36405,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36295,7 +36416,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36306,7 +36427,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36317,7 +36438,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "succeedscene.com": { + "domain": "succeedscene.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36328,7 +36460,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36339,7 +36471,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36350,7 +36482,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36361,7 +36493,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36372,7 +36504,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36383,7 +36515,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36394,7 +36526,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36405,7 +36537,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36416,7 +36548,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36427,7 +36559,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36438,7 +36570,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36449,7 +36581,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36460,7 +36592,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36471,7 +36603,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36482,7 +36614,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36493,7 +36625,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36504,7 +36636,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36515,7 +36647,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36526,7 +36658,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36537,7 +36669,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36548,7 +36680,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36559,7 +36691,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36570,7 +36702,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36581,7 +36713,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36592,7 +36724,18 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, + "fingerprinting": 1, + "cookies": 0.01, + "default": "block" + }, + "tranquilcanyon.com": { + "domain": "tranquilcanyon.com", + "owner": { + "name": "Leven Labs, Inc. DBA Admiral", + "displayName": "Admiral" + }, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36603,7 +36746,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36614,7 +36757,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36625,7 +36768,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36636,7 +36779,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36647,7 +36790,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36658,7 +36801,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36669,7 +36812,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36680,7 +36823,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36691,7 +36834,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36702,7 +36845,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36713,7 +36856,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36724,7 +36867,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36735,7 +36878,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36746,7 +36889,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36757,7 +36900,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36768,7 +36911,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36779,7 +36922,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36790,7 +36933,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36801,7 +36944,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36812,7 +36955,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36823,7 +36966,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36834,7 +36977,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36845,7 +36988,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36856,7 +36999,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36867,7 +37010,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36878,7 +37021,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36889,7 +37032,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36900,7 +37043,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36911,7 +37054,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -36922,7 +37065,7 @@ "name": "Leven Labs, Inc. DBA Admiral", "displayName": "Admiral" }, - "prevalence": 0.0138, + "prevalence": 0.0144, "fingerprinting": 1, "cookies": 0.01, "default": "block" @@ -46961,6 +47104,7 @@ "actoramusement.com", "actuallysnake.com", "actuallything.com", + "adamantsnail.com", "adorableanger.com", "adventurousamount.com", "agreeablearch.com", @@ -47045,6 +47189,7 @@ "cautiouscherries.com", "cautiouscredit.com", "ceciliavenus.com", + "chalkoil.com", "chargecracker.com", "charmingplate.com", "cherriescare.com", @@ -47074,11 +47219,14 @@ "consciousdirt.com", "courageousbaby.com", "coverapparatus.com", + "cozyhillside.com", "crabbychin.com", "cratecamera.com", + "crimsonmeadow.com", "critictruck.com", "crookedcreature.com", "crowdedmass.com", + "crystalboulevard.com", "cubchannel.com", "cumbersomecarpenter.com", "currentcollar.com", @@ -47099,6 +47247,7 @@ "decisivedrawer.com", "decisiveducks.com", "deerbeginner.com", + "delicatecascade.com", "detailedkitten.com", "detectdiscovery.com", "devilishdinner.com", @@ -47123,6 +47272,7 @@ "entertainskin.com", "enviousshape.com", "equablekettle.com", + "ethereallagoon.com", "evanescentedge.com", "eventexistence.com", "exampleshake.com", @@ -47156,6 +47306,7 @@ "floweryflavor.com", "flutteringfireman.com", "followborder.com", + "forgetfulsnail.com", "fortunatemark.com", "frailfruit.com", "franticroof.com", @@ -47202,6 +47353,7 @@ "haplessland.com", "harborcaption.com", "hatefulrequest.com", + "headydegree.com", "heartbreakingmind.com", "hearthorn.com", "heavyplayground.com", @@ -47222,6 +47374,7 @@ "inquisitiveice.com", "internalsink.com", "j93557g.com", + "jubilantcanyon.com", "kaputquill.com", "knitstamp.com", "knottyswing.com", @@ -47429,6 +47582,7 @@ "slopesoap.com", "smashquartz.com", "smashsurprise.com", + "smilingswim.com", "smoggysnakes.com", "smoggysongs.com", "soggysponge.com", @@ -47479,6 +47633,7 @@ "stupendoussleet.com", "stupendoussnow.com", "stupidscene.com", + "succeedscene.com", "sugarfriction.com", "suggestionbridge.com", "sulkycook.com", @@ -47515,6 +47670,7 @@ "tidymitten.com", "tiredthroat.com", "tiresomethunder.com", + "tranquilcanyon.com", "tremendousearthquake.com", "tremendousplastic.com", "tritebadge.com", @@ -47558,7 +47714,7 @@ "zipperxray.com", "zlp6s.pw" ], - "prevalence": 0.0138, + "prevalence": 0.0144, "displayName": "Admiral" } }, @@ -48288,6 +48444,7 @@ "actoramusement.com": "Leven Labs, Inc. DBA Admiral", "actuallysnake.com": "Leven Labs, Inc. DBA Admiral", "actuallything.com": "Leven Labs, Inc. DBA Admiral", + "adamantsnail.com": "Leven Labs, Inc. DBA Admiral", "adorableanger.com": "Leven Labs, Inc. DBA Admiral", "adventurousamount.com": "Leven Labs, Inc. DBA Admiral", "agreeablearch.com": "Leven Labs, Inc. DBA Admiral", @@ -48372,6 +48529,7 @@ "cautiouscherries.com": "Leven Labs, Inc. DBA Admiral", "cautiouscredit.com": "Leven Labs, Inc. DBA Admiral", "ceciliavenus.com": "Leven Labs, Inc. DBA Admiral", + "chalkoil.com": "Leven Labs, Inc. DBA Admiral", "chargecracker.com": "Leven Labs, Inc. DBA Admiral", "charmingplate.com": "Leven Labs, Inc. DBA Admiral", "cherriescare.com": "Leven Labs, Inc. DBA Admiral", @@ -48401,11 +48559,14 @@ "consciousdirt.com": "Leven Labs, Inc. DBA Admiral", "courageousbaby.com": "Leven Labs, Inc. DBA Admiral", "coverapparatus.com": "Leven Labs, Inc. DBA Admiral", + "cozyhillside.com": "Leven Labs, Inc. DBA Admiral", "crabbychin.com": "Leven Labs, Inc. DBA Admiral", "cratecamera.com": "Leven Labs, Inc. DBA Admiral", + "crimsonmeadow.com": "Leven Labs, Inc. DBA Admiral", "critictruck.com": "Leven Labs, Inc. DBA Admiral", "crookedcreature.com": "Leven Labs, Inc. DBA Admiral", "crowdedmass.com": "Leven Labs, Inc. DBA Admiral", + "crystalboulevard.com": "Leven Labs, Inc. DBA Admiral", "cubchannel.com": "Leven Labs, Inc. DBA Admiral", "cumbersomecarpenter.com": "Leven Labs, Inc. DBA Admiral", "currentcollar.com": "Leven Labs, Inc. DBA Admiral", @@ -48426,6 +48587,7 @@ "decisivedrawer.com": "Leven Labs, Inc. DBA Admiral", "decisiveducks.com": "Leven Labs, Inc. DBA Admiral", "deerbeginner.com": "Leven Labs, Inc. DBA Admiral", + "delicatecascade.com": "Leven Labs, Inc. DBA Admiral", "detailedkitten.com": "Leven Labs, Inc. DBA Admiral", "detectdiscovery.com": "Leven Labs, Inc. DBA Admiral", "devilishdinner.com": "Leven Labs, Inc. DBA Admiral", @@ -48450,6 +48612,7 @@ "entertainskin.com": "Leven Labs, Inc. DBA Admiral", "enviousshape.com": "Leven Labs, Inc. DBA Admiral", "equablekettle.com": "Leven Labs, Inc. DBA Admiral", + "ethereallagoon.com": "Leven Labs, Inc. DBA Admiral", "evanescentedge.com": "Leven Labs, Inc. DBA Admiral", "eventexistence.com": "Leven Labs, Inc. DBA Admiral", "exampleshake.com": "Leven Labs, Inc. DBA Admiral", @@ -48483,6 +48646,7 @@ "floweryflavor.com": "Leven Labs, Inc. DBA Admiral", "flutteringfireman.com": "Leven Labs, Inc. DBA Admiral", "followborder.com": "Leven Labs, Inc. DBA Admiral", + "forgetfulsnail.com": "Leven Labs, Inc. DBA Admiral", "fortunatemark.com": "Leven Labs, Inc. DBA Admiral", "frailfruit.com": "Leven Labs, Inc. DBA Admiral", "franticroof.com": "Leven Labs, Inc. DBA Admiral", @@ -48529,6 +48693,7 @@ "haplessland.com": "Leven Labs, Inc. DBA Admiral", "harborcaption.com": "Leven Labs, Inc. DBA Admiral", "hatefulrequest.com": "Leven Labs, Inc. DBA Admiral", + "headydegree.com": "Leven Labs, Inc. DBA Admiral", "heartbreakingmind.com": "Leven Labs, Inc. DBA Admiral", "hearthorn.com": "Leven Labs, Inc. DBA Admiral", "heavyplayground.com": "Leven Labs, Inc. DBA Admiral", @@ -48549,6 +48714,7 @@ "inquisitiveice.com": "Leven Labs, Inc. DBA Admiral", "internalsink.com": "Leven Labs, Inc. DBA Admiral", "j93557g.com": "Leven Labs, Inc. DBA Admiral", + "jubilantcanyon.com": "Leven Labs, Inc. DBA Admiral", "kaputquill.com": "Leven Labs, Inc. DBA Admiral", "knitstamp.com": "Leven Labs, Inc. DBA Admiral", "knottyswing.com": "Leven Labs, Inc. DBA Admiral", @@ -48756,6 +48922,7 @@ "slopesoap.com": "Leven Labs, Inc. DBA Admiral", "smashquartz.com": "Leven Labs, Inc. DBA Admiral", "smashsurprise.com": "Leven Labs, Inc. DBA Admiral", + "smilingswim.com": "Leven Labs, Inc. DBA Admiral", "smoggysnakes.com": "Leven Labs, Inc. DBA Admiral", "smoggysongs.com": "Leven Labs, Inc. DBA Admiral", "soggysponge.com": "Leven Labs, Inc. DBA Admiral", @@ -48806,6 +48973,7 @@ "stupendoussleet.com": "Leven Labs, Inc. DBA Admiral", "stupendoussnow.com": "Leven Labs, Inc. DBA Admiral", "stupidscene.com": "Leven Labs, Inc. DBA Admiral", + "succeedscene.com": "Leven Labs, Inc. DBA Admiral", "sugarfriction.com": "Leven Labs, Inc. DBA Admiral", "suggestionbridge.com": "Leven Labs, Inc. DBA Admiral", "sulkycook.com": "Leven Labs, Inc. DBA Admiral", @@ -48842,6 +49010,7 @@ "tidymitten.com": "Leven Labs, Inc. DBA Admiral", "tiredthroat.com": "Leven Labs, Inc. DBA Admiral", "tiresomethunder.com": "Leven Labs, Inc. DBA Admiral", + "tranquilcanyon.com": "Leven Labs, Inc. DBA Admiral", "tremendousearthquake.com": "Leven Labs, Inc. DBA Admiral", "tremendousplastic.com": "Leven Labs, Inc. DBA Admiral", "tritebadge.com": "Leven Labs, Inc. DBA Admiral", diff --git a/DuckDuckGo.xcodeproj/project.pbxproj b/DuckDuckGo.xcodeproj/project.pbxproj index 65d30c5fef..e789ab6c55 100644 --- a/DuckDuckGo.xcodeproj/project.pbxproj +++ b/DuckDuckGo.xcodeproj/project.pbxproj @@ -374,6 +374,7 @@ 853273B624FFE0BB00E3C778 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8512EA4E24ED30D20073EE19 /* WidgetKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 8536A1C8209AF2410050739E /* MockVariantManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8536A1C7209AF2410050739E /* MockVariantManager.swift */; }; 8536A1CA209AF6490050739E /* HomeRowReminderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8536A1C9209AF6480050739E /* HomeRowReminderTests.swift */; }; + 8536A1FD2ACF114B003AC5BA /* Theme+DesignSystem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8536A1FC2ACF114B003AC5BA /* Theme+DesignSystem.swift */; }; 85371D242121B9D500920548 /* new_tab.json in Resources */ = {isa = PBXBuildFile; fileRef = 85371D232121B9D400920548 /* new_tab.json */; }; 85372447220DD103009D09CD /* UIKeyCommandExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85372446220DD103009D09CD /* UIKeyCommandExtension.swift */; }; 85374D3821AC419800FF5A1E /* NavigationSearchHomeViewSectionRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85374D3721AC419800FF5A1E /* NavigationSearchHomeViewSectionRenderer.swift */; }; @@ -405,6 +406,7 @@ 85514FFD2372DA0100DBC528 /* ios13-home-row.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 85514FFC2372DA0000DBC528 /* ios13-home-row.mp4 */; }; 8551912724746EDC0010FDD0 /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8551912624746EDC0010FDD0 /* SnapshotHelper.swift */; }; 85582E0029D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85582DFF29D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift */; }; + 855D45D32ACD7DD1008F7AC6 /* AddressBarPositionSettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 855D45D22ACD7DD1008F7AC6 /* AddressBarPositionSettingsViewController.swift */; }; 855D914D2063EF6A00C4B448 /* TabSwitcherTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = 855D914C2063EF6A00C4B448 /* TabSwitcherTransition.swift */; }; 8563A03C1F9288D600F04442 /* BrowserChromeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8563A03B1F9288D600F04442 /* BrowserChromeManager.swift */; }; 8565A34B1FC8D96B00239327 /* LaunchTabNotification.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8565A34A1FC8D96B00239327 /* LaunchTabNotification.swift */; }; @@ -501,7 +503,6 @@ 981CA7EA2617797500E119D5 /* MainViewController+AddFavoriteFlow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981CA7E92617797500E119D5 /* MainViewController+AddFavoriteFlow.swift */; }; 981FED692201FE69008488D7 /* AutoClearSettingsScreenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED682201FE69008488D7 /* AutoClearSettingsScreenTests.swift */; }; 981FED6E22025151008488D7 /* BlankSnapshotViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED6C22025151008488D7 /* BlankSnapshotViewController.swift */; }; - 981FED712202519C008488D7 /* BlankSnapshot.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 981FED702202519C008488D7 /* BlankSnapshot.storyboard */; }; 981FED7422046017008488D7 /* AutoClearTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED7322046017008488D7 /* AutoClearTests.swift */; }; 981FED76220464EF008488D7 /* AutoClearSettingsModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 981FED75220464EF008488D7 /* AutoClearSettingsModel.swift */; }; 9820EAF522613CD30089094D /* WebProgressWorker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9820EAF422613CD30089094D /* WebProgressWorker.swift */; }; @@ -693,12 +694,10 @@ C17B59592A03AAD30055F2D1 /* PasswordGenerationPromptViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17B59562A03AAD30055F2D1 /* PasswordGenerationPromptViewModel.swift */; }; C17B595A2A03AAD30055F2D1 /* PasswordGenerationPromptViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17B59572A03AAD30055F2D1 /* PasswordGenerationPromptViewController.swift */; }; C17B595B2A03AAD30055F2D1 /* PasswordGenerationPromptView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C17B59582A03AAD30055F2D1 /* PasswordGenerationPromptView.swift */; }; - C18ED43C2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */; }; C18ED43A2AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18ED4392AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift */; }; + C18ED43C2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */; }; C1963863283794A000298D4D /* BookmarksCachingSearch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1963862283794A000298D4D /* BookmarksCachingSearch.swift */; }; - C1B0F63E2AB08904001EAF05 /* PhasedRolloutFeatureFlagTester.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B0F63D2AB08904001EAF05 /* PhasedRolloutFeatureFlagTester.swift */; }; C1B0F6422AB08BE9001EAF05 /* MockPrivacyConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B0F6412AB08BE9001EAF05 /* MockPrivacyConfiguration.swift */; }; - C1B0F6442AB0D47A001EAF05 /* PhasedRolloutFeatureFlagTesterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B0F63F2AB08A53001EAF05 /* PhasedRolloutFeatureFlagTesterTests.swift */; }; C1B7B51C28941E980098FD6A /* HomeMessageViewModelBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B7B51B28941E980098FD6A /* HomeMessageViewModelBuilder.swift */; }; C1B7B52328941F2A0098FD6A /* RemoteMessagingStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B7B51F28941F2A0098FD6A /* RemoteMessagingStore.swift */; }; C1B7B52428941F2A0098FD6A /* RemoteMessageRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1B7B52028941F2A0098FD6A /* RemoteMessageRequest.swift */; }; @@ -765,6 +764,7 @@ EE7A92872AC6DE4700832A36 /* NetworkProtectionNotificationIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE7A92862AC6DE4700832A36 /* NetworkProtectionNotificationIdentifier.swift */; }; EE8594992A44791C008A6D06 /* NetworkProtectionTunnelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE8594982A44791C008A6D06 /* NetworkProtectionTunnelController.swift */; }; EE8E568A2A56BCE400F11DCA /* NetworkProtection in Frameworks */ = {isa = PBXBuildFile; productRef = EE8E56892A56BCE400F11DCA /* NetworkProtection */; }; + EE9D68D12AE00CF300B55EF4 /* NetworkProtectionVPNSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE9D68D02AE00CF300B55EF4 /* NetworkProtectionVPNSettingsView.swift */; }; EEDFE2DA2AC6ED4F00F0E19C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = EEDFE2DC2AC6ED4F00F0E19C /* Localizable.strings */; }; EEEB80A32A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEEB80A22A421CE600386378 /* NetworkProtectionPacketTunnelProvider.swift */; }; EEF0F8CC2ABC832300630031 /* NetworkProtectionDebugFeatures.swift in Sources */ = {isa = PBXBuildFile; fileRef = EEF0F8CB2ABC832200630031 /* NetworkProtectionDebugFeatures.swift */; }; @@ -1297,7 +1297,6 @@ 6AC6DAB228804F97002723C0 /* BarsAnimator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarsAnimator.swift; sourceTree = ""; }; 6AC98418288055C1005FA9CA /* BarsAnimatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BarsAnimatorTests.swift; sourceTree = ""; }; 6FB030C7234331B400A10DB9 /* Configuration.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Configuration.xcconfig; path = Configuration/Configuration.xcconfig; sourceTree = ""; }; - 7B5E1F9D2AB9E1E900DA1172 /* NetworkProtectionDebugFeatures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionDebugFeatures.swift; sourceTree = ""; }; 83004E7F2193BB8200DA013C /* WKNavigationExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WKNavigationExtension.swift; sourceTree = ""; }; 83004E832193E14C00DA013C /* UIAlertControllerExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UIAlertControllerExtension.swift; path = ../Core/UIAlertControllerExtension.swift; sourceTree = ""; }; 83004E852193E5ED00DA013C /* TabViewControllerBrowsingMenuExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabViewControllerBrowsingMenuExtension.swift; sourceTree = ""; }; @@ -1378,6 +1377,7 @@ 853273B124FF114700E3C778 /* DeepLinks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeepLinks.swift; sourceTree = ""; }; 8536A1C7209AF2410050739E /* MockVariantManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockVariantManager.swift; sourceTree = ""; }; 8536A1C9209AF6480050739E /* HomeRowReminderTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeRowReminderTests.swift; sourceTree = ""; }; + 8536A1FC2ACF114B003AC5BA /* Theme+DesignSystem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Theme+DesignSystem.swift"; sourceTree = ""; }; 85371D232121B9D400920548 /* new_tab.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = new_tab.json; sourceTree = ""; }; 85372446220DD103009D09CD /* UIKeyCommandExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIKeyCommandExtension.swift; sourceTree = ""; }; 85374D3721AC419800FF5A1E /* NavigationSearchHomeViewSectionRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NavigationSearchHomeViewSectionRenderer.swift; sourceTree = ""; }; @@ -1411,6 +1411,7 @@ 85519124247468580010FDD0 /* TrackerRadarIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackerRadarIntegrationTests.swift; sourceTree = ""; }; 8551912624746EDC0010FDD0 /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = fastlane/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; }; 85582DFF29D7409700E9AE35 /* SyncSettingsViewController+PDFRendering.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SyncSettingsViewController+PDFRendering.swift"; sourceTree = ""; }; + 855D45D22ACD7DD1008F7AC6 /* AddressBarPositionSettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddressBarPositionSettingsViewController.swift; sourceTree = ""; }; 855D914C2063EF6A00C4B448 /* TabSwitcherTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabSwitcherTransition.swift; sourceTree = ""; }; 8563A03B1F9288D600F04442 /* BrowserChromeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowserChromeManager.swift; sourceTree = ""; }; 8565A34A1FC8D96B00239327 /* LaunchTabNotification.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LaunchTabNotification.swift; sourceTree = ""; }; @@ -1546,7 +1547,6 @@ 981DCA992521EFAB00CD4C18 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/Localizable.strings; sourceTree = ""; }; 981FED682201FE69008488D7 /* AutoClearSettingsScreenTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearSettingsScreenTests.swift; sourceTree = ""; }; 981FED6C22025151008488D7 /* BlankSnapshotViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlankSnapshotViewController.swift; sourceTree = ""; }; - 981FED702202519C008488D7 /* BlankSnapshot.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = BlankSnapshot.storyboard; sourceTree = ""; }; 981FED7322046017008488D7 /* AutoClearTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearTests.swift; sourceTree = ""; }; 981FED75220464EF008488D7 /* AutoClearSettingsModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutoClearSettingsModel.swift; sourceTree = ""; }; 9820A5D522B1C0B20024E37C /* DDG Trace.tracetemplate */ = {isa = PBXFileReference; lastKnownFileType = file.bplist; path = "DDG Trace.tracetemplate"; sourceTree = ""; }; @@ -2267,11 +2267,9 @@ C17B59562A03AAD30055F2D1 /* PasswordGenerationPromptViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordGenerationPromptViewModel.swift; sourceTree = ""; }; C17B59572A03AAD30055F2D1 /* PasswordGenerationPromptViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordGenerationPromptViewController.swift; sourceTree = ""; }; C17B59582A03AAD30055F2D1 /* PasswordGenerationPromptView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordGenerationPromptView.swift; sourceTree = ""; }; - C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTextPreviewDebugViewController.swift; sourceTree = ""; }; C18ED4392AB6F77600BF3805 /* AutofillSettingsEnableFooterView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AutofillSettingsEnableFooterView.swift; sourceTree = ""; }; + C18ED43B2AB8364400BF3805 /* FileTextPreviewDebugViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTextPreviewDebugViewController.swift; sourceTree = ""; }; C1963862283794A000298D4D /* BookmarksCachingSearch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BookmarksCachingSearch.swift; sourceTree = ""; }; - C1B0F63D2AB08904001EAF05 /* PhasedRolloutFeatureFlagTester.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhasedRolloutFeatureFlagTester.swift; sourceTree = ""; }; - C1B0F63F2AB08A53001EAF05 /* PhasedRolloutFeatureFlagTesterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhasedRolloutFeatureFlagTesterTests.swift; sourceTree = ""; }; C1B0F6412AB08BE9001EAF05 /* MockPrivacyConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockPrivacyConfiguration.swift; sourceTree = ""; }; C1B7B51B28941E980098FD6A /* HomeMessageViewModelBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HomeMessageViewModelBuilder.swift; sourceTree = ""; }; C1B7B51F28941F2A0098FD6A /* RemoteMessagingStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RemoteMessagingStore.swift; sourceTree = ""; }; @@ -2334,6 +2332,7 @@ EE7917902A83DE93008DFF28 /* CombineTestUtilities.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CombineTestUtilities.swift; sourceTree = ""; }; EE7A92862AC6DE4700832A36 /* NetworkProtectionNotificationIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionNotificationIdentifier.swift; sourceTree = ""; }; EE8594982A44791C008A6D06 /* NetworkProtectionTunnelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionTunnelController.swift; sourceTree = ""; }; + EE9D68D02AE00CF300B55EF4 /* NetworkProtectionVPNSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkProtectionVPNSettingsView.swift; sourceTree = ""; }; EEB8FDB92A990AEE00EBEDCF /* Configuration-Alpha.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Configuration-Alpha.xcconfig"; path = "Configuration/Configuration-Alpha.xcconfig"; sourceTree = ""; }; EEDFE2DB2AC6ED4F00F0E19C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; EEDFE2DD2AC6ED5B00F0E19C /* bg */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bg; path = bg.lproj/Localizable.strings; sourceTree = ""; }; @@ -3535,7 +3534,6 @@ 83ED3B8D1FA8E63700B47556 /* README.md */, 83ED3B8C1FA8E61D00B47556 /* ManualTestsScript.md */, 85A313962028E78A00327D00 /* release_notes.txt */, - EEF0F8CA2ABC82E100630031 /* Recovered References */, ); sourceTree = ""; }; @@ -3688,19 +3686,20 @@ isa = PBXGroup; children = ( F1CDD3F11F16911700BE0581 /* AboutViewController.swift */, - 1E865AEF272042DB001C74F3 /* TextSizeSettingsViewController.swift */, + 855D45D22ACD7DD1008F7AC6 /* AddressBarPositionSettingsViewController.swift */, AA3D854623D9E88E00788410 /* AppIconSettingsCell.swift */, AA3D854423D9942200788410 /* AppIconSettingsViewController.swift */, 98F0FC1F21FF18E700CE77AB /* AutoClearSettingsViewController.swift */, + 1EE7C298294227EC0026C8CB /* AutoconsentSettingsViewController.swift */, + 02C57C4A2514FEFB009E5129 /* DoNotSellSettingsViewController.swift */, F456B3B425810BB900B79B90 /* FireButtonAnimationSettingsViewController.swift */, 85449EF423FDA02800512AAF /* KeyboardSettingsViewController.swift */, 8540BD5523D9E9C20057FDD2 /* PreserveLoginsSettingsViewController.swift */, F176699D1E40BC86003D3222 /* Settings.storyboard */, F1AB2B411E3F7D5C00868554 /* SettingsViewController.swift */, + 1E865AEF272042DB001C74F3 /* TextSizeSettingsViewController.swift */, 9881439B23326DC200573F7C /* ThemeSettingsViewController.swift */, 8531A08D1F9950E6000484F0 /* UnprotectedSitesViewController.swift */, - 02C57C4A2514FEFB009E5129 /* DoNotSellSettingsViewController.swift */, - 1EE7C298294227EC0026C8CB /* AutoconsentSettingsViewController.swift */, ); name = UI; sourceTree = ""; @@ -4071,6 +4070,7 @@ 98DA6EC92181E41F00E65433 /* ThemeManager.swift */, 98F3A1D9217B37200011A0D4 /* LightTheme.swift */, 98F3A1DB217B373E0011A0D4 /* DarkTheme.swift */, + 8536A1FC2ACF114B003AC5BA /* Theme+DesignSystem.swift */, ); name = Themes; sourceTree = ""; @@ -4413,9 +4413,18 @@ name = NetworkProtection; sourceTree = ""; }; + EE9D68CF2AE00CE000B55EF4 /* VPNSettings */ = { + isa = PBXGroup; + children = ( + EE9D68D02AE00CF300B55EF4 /* NetworkProtectionVPNSettingsView.swift */, + ); + name = VPNSettings; + sourceTree = ""; + }; EECD94B22A28B8580085C66E /* NetworkProtection */ = { isa = PBXGroup; children = ( + EE9D68CF2AE00CE000B55EF4 /* VPNSettings */, EE458D122ABB651500FC651A /* Debug */, EE0153E22A6FE031002A8B26 /* Root */, EE0153DF2A6EABAF002A8B26 /* Helpers */, @@ -4435,14 +4444,6 @@ name = Status; sourceTree = ""; }; - EEF0F8CA2ABC82E100630031 /* Recovered References */ = { - isa = PBXGroup; - children = ( - 7B5E1F9D2AB9E1E900DA1172 /* NetworkProtectionDebugFeatures.swift */, - ); - name = "Recovered References"; - sourceTree = ""; - }; EEFD562D2A65B68B00DAEC48 /* Invite */ = { isa = PBXGroup; children = ( @@ -4937,7 +4938,6 @@ children = ( 984147B624F0264B00362052 /* Authentication.storyboard */, F1AE54E71F0425FC00D9A700 /* AuthenticationViewController.swift */, - 981FED702202519C008488D7 /* BlankSnapshot.storyboard */, 981FED6C22025151008488D7 /* BlankSnapshotViewController.swift */, F1CA3C3A1F045B65005FADB3 /* Authenticator.swift */, F1CA3C361F045878005FADB3 /* PrivacyStore.swift */, @@ -5148,7 +5148,6 @@ C1BF0BA629B63E0400482B73 /* AutofillLoginUI */, F40F843528C938370081AE75 /* AutofillLoginListViewModelTests.swift */, C1D21E2E293A599C006E5A05 /* AutofillLoginSessionTests.swift */, - C1B0F63F2AB08A53001EAF05 /* PhasedRolloutFeatureFlagTesterTests.swift */, ); name = Autofill; sourceTree = ""; @@ -5167,7 +5166,6 @@ C17B59552A03AAC40055F2D1 /* PasswordGeneration */, 31951E9328230D8900CAF535 /* Shared */, F407605428131923006B1E0B /* SaveLogin */, - C1B0F63D2AB08904001EAF05 /* PhasedRolloutFeatureFlagTester.swift */, ); name = Autofill; sourceTree = ""; @@ -5715,7 +5713,6 @@ 1E16260B296845120004127F /* cookie-banner-illustration-animated.json in Resources */, AA4D6AD323DE4D27007E8790 /* AppIconPurple29x29@2x.png in Resources */, AA4D6AA123DE4CC4007E8790 /* AppIconBlue60x60@3x.png in Resources */, - 981FED712202519C008488D7 /* BlankSnapshot.storyboard in Resources */, 984147A824F0259000362052 /* Onboarding.storyboard in Resources */, AA4D6AF723DF0312007E8790 /* AppIconRed60x60@2x.png in Resources */, AA4D6AE923DE4D33007E8790 /* AppIconGreen29x29@3x.png in Resources */, @@ -6076,6 +6073,7 @@ 9820FF502244FECC008D4782 /* UIScrollViewExtension.swift in Sources */, 8540BD5423D8D5080057FDD2 /* PreserveLoginsAlert.swift in Sources */, 1E87615928A1517200C7C5CE /* PrivacyDashboardViewController.swift in Sources */, + EE9D68D12AE00CF300B55EF4 /* NetworkProtectionVPNSettingsView.swift in Sources */, 319A371028299A850079FBCE /* PasswordHider.swift in Sources */, 982C87C42255559A00919035 /* UITableViewCellExtension.swift in Sources */, B623C1C42862CD670043013E /* WKDownloadSession.swift in Sources */, @@ -6172,6 +6170,7 @@ F4147354283BF834004AA7A5 /* AutofillContentScopeFeatureToggles.swift in Sources */, 986DA94A24884B18004A7E39 /* WebViewTransition.swift in Sources */, 31B524572715BB23002225AB /* WebJSAlert.swift in Sources */, + 8536A1FD2ACF114B003AC5BA /* Theme+DesignSystem.swift in Sources */, F114C55B1E66EB020018F95F /* NibLoading.swift in Sources */, C10CB5F32A1A5BDF0048E503 /* AutofillViews.swift in Sources */, 982E5630222C3D5B008D861B /* FeedbackPickerViewController.swift in Sources */, @@ -6354,7 +6353,6 @@ 98B31292218CCB8C00E54DE1 /* AppDependencyProvider.swift in Sources */, 02C57C4B2514FEFB009E5129 /* DoNotSellSettingsViewController.swift in Sources */, 02A54A9C2A097C95000C8FED /* AppTPHomeViewSectionRenderer.swift in Sources */, - C1B0F63E2AB08904001EAF05 /* PhasedRolloutFeatureFlagTester.swift in Sources */, 8540BBA22440857A00017FE4 /* PreserveLoginsWorker.swift in Sources */, 85DFEDF924CF3D0E00973FE7 /* TabsBarCell.swift in Sources */, F17922DB1E717C8D006E3D97 /* Suggestion.swift in Sources */, @@ -6395,6 +6393,7 @@ 027F48782A4B663C001A1C6C /* AppTPFAQView.swift in Sources */, 02A4EACA29B0F464009BE006 /* AppTPToggleViewModel.swift in Sources */, 4B6484EE27FD1E350050A7A1 /* WindowsBrowserWaitlistDebugViewController.swift in Sources */, + 855D45D32ACD7DD1008F7AC6 /* AddressBarPositionSettingsViewController.swift in Sources */, F1D796EE1E7AF2EB0019D451 /* UIViewControllerExtension.swift in Sources */, 1EE411F12857C3640003FE64 /* TrackerAnimationImageProvider.swift in Sources */, 1E7A711C2934EEBC00B7EA19 /* OmniBarNotification.swift in Sources */, @@ -6512,7 +6511,6 @@ 987130C5294AAB9F00AB05E0 /* BookmarkEditorViewModelTests.swift in Sources */, 8341D807212D5E8D000514C2 /* HashExtensionTest.swift in Sources */, C1D21E2F293A599C006E5A05 /* AutofillLoginSessionTests.swift in Sources */, - C1B0F6442AB0D47A001EAF05 /* PhasedRolloutFeatureFlagTesterTests.swift in Sources */, 85D2187924BF6B8B004373D2 /* FaviconSourcesProviderTests.swift in Sources */, 1E8146AD28C8ABF000D1AF63 /* TrackerAnimationLogicTests.swift in Sources */, B6AD9E3A28D456820019CDE9 /* PrivacyConfigurationManagerMock.swift in Sources */, @@ -7629,7 +7627,7 @@ CODE_SIGN_ENTITLEMENTS = PacketTunnelProvider/PacketTunnelProvider.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; GENERATE_INFOPLIST_FILE = YES; @@ -7666,7 +7664,7 @@ CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -7758,7 +7756,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = ShareExtension/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -7785,7 +7783,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -7933,7 +7931,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -7957,7 +7955,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGo.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; INFOPLIST_FILE = DuckDuckGo/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -8021,7 +8019,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = Widgets/Info.plist; @@ -8056,7 +8054,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -8090,7 +8088,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; GCC_C_LANGUAGE_STANDARD = gnu11; INFOPLIST_FILE = OpenAction/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( @@ -8120,7 +8118,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8407,7 +8405,7 @@ CODE_SIGN_ENTITLEMENTS = DuckDuckGo/DuckDuckGoAlpha.entitlements; CODE_SIGN_IDENTITY = "iPhone Distribution"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_ASSET_PATHS = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -8433,7 +8431,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8465,7 +8463,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8502,7 +8500,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEAD_CODE_STRIPPING = NO; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; @@ -8538,7 +8536,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = HKE973VLUW; GCC_C_LANGUAGE_STANDARD = gnu11; @@ -8573,11 +8571,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -8751,11 +8749,11 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -8784,10 +8782,10 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = ""; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 0; + CURRENT_PROJECT_VERSION = 2; DEFINES_MODULE = YES; DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 0; + DYLIB_CURRENT_VERSION = 2; DYLIB_INSTALL_NAME_BASE = "@rpath"; INFOPLIST_FILE = Core/Info.plist; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; @@ -8973,7 +8971,7 @@ repositoryURL = "https://github.com/DuckDuckGo/BrowserServicesKit"; requirement = { kind = exactVersion; - version = 80.4.1; + version = 82.0.1; }; }; C14882EB27F211A000D59F0C /* XCRemoteSwiftPackageReference "SwiftSoup" */ = { @@ -8989,7 +8987,7 @@ repositoryURL = "https://github.com/duckduckgo/DesignResourcesKit"; requirement = { kind = exactVersion; - version = 1.1.1; + version = 2.0.0; }; }; F486D2EF25069482002D07D7 /* XCRemoteSwiftPackageReference "Kingfisher" */ = { diff --git a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved index 10ef7c2de8..42760f18a2 100644 --- a/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -15,8 +15,8 @@ "repositoryURL": "https://github.com/DuckDuckGo/BrowserServicesKit", "state": { "branch": null, - "revision": "9dea0583dc6269971fb4728bd3efa1ed53f88306", - "version": "80.4.1" + "revision": "8f7a94a70812862203955b3d2bbb909420fa55dd", + "version": "82.0.1" } }, { @@ -33,8 +33,8 @@ "repositoryURL": "https://github.com/duckduckgo/content-scope-scripts", "state": { "branch": null, - "revision": "8def15fe8a4c2fb76730f640507e9fd1d6c1f8a7", - "version": "4.32.0" + "revision": "254b23cf292140498650421bb31fd05740f4579b", + "version": "4.40.0" } }, { @@ -42,8 +42,8 @@ "repositoryURL": "https://github.com/duckduckgo/DesignResourcesKit", "state": { "branch": null, - "revision": "5de78d59358ff60651b2cf9322c74a2297927b4e", - "version": "1.1.1" + "revision": "d7ea2561ec7624c224f52e1c9b349075ddf1c782", + "version": "2.0.0" } }, { @@ -51,8 +51,8 @@ "repositoryURL": "https://github.com/duckduckgo/duckduckgo-autofill.git", "state": { "branch": null, - "revision": "55466f10a339843cb79a27af62d5d61c030740b2", - "version": "8.4.1" + "revision": "c8e895c8fd50dc76e8d8dc827a636ad77b7f46ff", + "version": "9.0.0" } }, { @@ -105,8 +105,8 @@ "repositoryURL": "https://github.com/duckduckgo/privacy-dashboard", "state": { "branch": null, - "revision": "51e2b46f413bf3ef18afefad631ca70f2c25ef70", - "version": "1.4.0" + "revision": "b4ac92a444e79d5651930482623b9f6dc9265667", + "version": "2.0.0" } }, { @@ -156,7 +156,7 @@ }, { "package": "TrackerRadarKit", - "repositoryURL": "https://github.com/duckduckgo/TrackerRadarKit", + "repositoryURL": "https://github.com/duckduckgo/TrackerRadarKit.git", "state": { "branch": null, "revision": "4684440d03304e7638a2c8086895367e90987463", diff --git a/DuckDuckGo/ActionMessageView.swift b/DuckDuckGo/ActionMessageView.swift index 37e86221b5..57ff705e6e 100644 --- a/DuckDuckGo/ActionMessageView.swift +++ b/DuckDuckGo/ActionMessageView.swift @@ -22,9 +22,9 @@ import UIKit extension ActionMessageView: NibLoading {} class ActionMessageView: UIView { - + enum PresentationLocation { - case withBottomBar + case withBottomBar(andAddressBarBottom: Bool) case withoutBottomBar } @@ -45,6 +45,11 @@ class ActionMessageView: UIView { return 70 } + + static var windowBottomPaddingWithAddressBar: CGFloat { + return windowBottomPaddingWithBottomBar + 52 + } + static var windowBottomPaddingWithoutBottomBar: CGFloat { return 0 } @@ -53,8 +58,8 @@ class ActionMessageView: UIView { private static func bottomPadding(for location: PresentationLocation) -> CGFloat { switch location { - case .withBottomBar: - return Constants.windowBottomPaddingWithBottomBar + case .withBottomBar(let isAddressBarBottom): + return isAddressBarBottom ? Constants.windowBottomPaddingWithAddressBar : Constants.windowBottomPaddingWithBottomBar case .withoutBottomBar: return Constants.windowBottomPaddingWithoutBottomBar } @@ -84,7 +89,7 @@ class ActionMessageView: UIView { static func present(message: NSAttributedString, numberOfLines: Int = 0, actionTitle: String? = nil, - presentationLocation: PresentationLocation = .withBottomBar, + presentationLocation: PresentationLocation = .withBottomBar(andAddressBarBottom: false), onAction: @escaping () -> Void = {}, onDidDismiss: @escaping () -> Void = {}) { let messageView = loadFromXib() @@ -100,7 +105,7 @@ class ActionMessageView: UIView { static func present(message: String, actionTitle: String? = nil, - presentationLocation: PresentationLocation = .withBottomBar, + presentationLocation: PresentationLocation = .withBottomBar(andAddressBarBottom: false), onAction: @escaping () -> Void = {}, onDidDismiss: @escaping () -> Void = {}) { let messageView = loadFromXib() @@ -116,7 +121,7 @@ class ActionMessageView: UIView { private static func present(messageView: ActionMessageView, message: String, actionTitle: String? = nil, - presentationLocation: PresentationLocation = .withBottomBar, + presentationLocation: PresentationLocation = .withBottomBar(andAddressBarBottom: false), onAction: @escaping () -> Void = {}, onDidDismiss: @escaping () -> Void = {}) { guard let window = UIApplication.shared.windows.filter({ $0.isKeyWindow }).first else { return } diff --git a/DuckDuckGo/AddressBarPositionSettingsViewController.swift b/DuckDuckGo/AddressBarPositionSettingsViewController.swift new file mode 100644 index 0000000000..b7df80ab5e --- /dev/null +++ b/DuckDuckGo/AddressBarPositionSettingsViewController.swift @@ -0,0 +1,99 @@ +// +// AddressBarPositionSettingsViewController.swift +// DuckDuckGo +// +// Copyright © 2023 DuckDuckGo. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// + +import UIKit +import Core + +class AddressBarPositionSettingsViewController: UITableViewController { + + private lazy var appSettings = AppDependencyProvider.shared.appSettings + + private lazy var options = AddressBarPosition.allCases + + override func viewDidLoad() { + super.viewDidLoad() + + applyTheme(ThemeManager.shared.currentTheme) + } + + override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return options.count + } + + override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + return tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) + } + + override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + let theme = ThemeManager.shared.currentTheme + cell.backgroundColor = theme.tableCellBackgroundColor + cell.setHighlightedStateBackgroundColor(theme.tableCellHighlightedBackgroundColor) + + cell.tintColor = theme.buttonTintColor + cell.textLabel?.textColor = theme.tableCellTextColor + + cell.textLabel?.text = options[indexPath.row].descriptionText + cell.accessoryType = appSettings.currentAddressBarPosition.descriptionText == cell.textLabel?.text ? .checkmark : .none + } + + override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + appSettings.currentAddressBarPosition = AddressBarPosition.allCases[indexPath.row] + + switch appSettings.currentAddressBarPosition { + case .top: + Pixel.fire(pixel: .navigationBarPositionTop) + case .bottom: + Pixel.fire(pixel: .navigationbarPositionBottom) + } + + tableView.performBatchUpdates { + tableView.reloadSections(IndexSet(integer: 0), with: .automatic) + tableView.deselectRow(at: indexPath, animated: true) + } + } +} + +extension AddressBarPositionSettingsViewController: Themable { + + func decorate(with theme: Theme) { + + tableView.backgroundColor = theme.backgroundColor + tableView.separatorColor = theme.tableCellSeparatorColor + + tableView.reloadData() + } +} + +enum AddressBarPosition: String, CaseIterable { + case top + case bottom + + var isBottom: Bool { + self == .bottom + } + + var descriptionText: String { + switch self { + case .top: + return UserText.addressBarPositionTop + case .bottom: + return UserText.addressBarPositionBottom + } + } +} diff --git a/DuckDuckGo/AppDelegate.swift b/DuckDuckGo/AppDelegate.swift index 854b0440c6..3b97107c8b 100644 --- a/DuckDuckGo/AppDelegate.swift +++ b/DuckDuckGo/AppDelegate.swift @@ -34,6 +34,10 @@ import Networking import DDGSync import SyncDataProviders +#if NETWORK_PROTECTION +import NetworkProtection +#endif + // swiftlint:disable file_length // swiftlint:disable type_body_length @@ -45,6 +49,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { private struct ShortcutKey { static let clipboard = "com.duckduckgo.mobile.ios.clipboard" + +#if NETWORK_PROTECTION + static let openVPNSettings = "com.duckduckgo.mobile.ios.vpn.open-settings" +#endif } private var testing = false @@ -82,6 +90,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { // Can be removed after a couple of versions cleanUpMacPromoExperiment2() + cleanUpIncrementalRolloutPixelTest() APIRequest.Headers.setUserAgent(DefaultUserAgentManager.duckDuckGoUserAgent) Configuration.setURLProvider(AppConfigurationURLProvider()) @@ -213,7 +222,8 @@ class AppDelegate: UIResponder, UIApplicationDelegate { bookmarksDatabaseCleaner: syncDataProviders.bookmarksAdapter.databaseCleaner, appTrackingProtectionDatabase: appTrackingProtectionDatabase, syncService: syncService, - syncDataProviders: syncDataProviders) + syncDataProviders: syncDataProviders, + appSettings: AppDependencyProvider.shared.appSettings) main.loadViewIfNeeded() window = UIWindow(frame: UIScreen.main.bounds) @@ -239,6 +249,12 @@ class AppDelegate: UIResponder, UIApplicationDelegate { ThemeManager.shared.updateUserInterfaceStyle(window: window) appIsLaunching = true + + // Temporary logic for rollout of Autofill as on by default for new installs only + if AppDependencyProvider.shared.appSettings.autofillIsNewInstallForOnByDefault == nil { + AppDependencyProvider.shared.appSettings.setAutofillIsNewInstallForOnByDefault() + } + return true } @@ -246,6 +262,10 @@ class AppDelegate: UIResponder, UIApplicationDelegate { UserDefaults.standard.removeObject(forKey: "com.duckduckgo.ios.macPromoMay23.exp2.cohort") } + private func cleanUpIncrementalRolloutPixelTest() { + UserDefaults.standard.removeObject(forKey: "network-protection.incremental-feature-flag-test.has-sent-pixel") + } + private func clearTmp() { let tmp = FileManager.default.temporaryDirectory do { @@ -264,12 +284,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate { }) } - // Temporary feature flag tester, to validate that phased rollouts are working as intended. - // This is to be removed before the end of August 2023. - lazy var featureFlagTester: PhasedRolloutFeatureFlagTester = { - return PhasedRolloutFeatureFlagTester() - }() - func applicationDidBecomeActive(_ application: UIApplication) { guard !testing else { return } @@ -323,7 +337,11 @@ class AppDelegate: UIResponder, UIApplicationDelegate { syncService.scheduler.notifyAppLifecycleEvent() fireFailedCompilationsPixelIfNeeded() - featureFlagTester.sendFeatureFlagEnabledPixelIfNecessary() + refreshShortcuts() + } + + func applicationWillResignActive(_ application: UIApplication) { + refreshShortcuts() } private func fireAppLaunchPixel() { @@ -543,9 +561,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate { overlayWindow = UIWindow(frame: frame) overlayWindow?.windowLevel = UIWindow.Level.alert - let overlay = BlankSnapshotViewController.loadFromStoryboard() + let overlay = BlankSnapshotViewController(appSettings: AppDependencyProvider.shared.appSettings) overlay.delegate = self - + overlayWindow?.rootViewController = overlay overlayWindow?.makeKeyAndVisible() window?.isHidden = true @@ -590,11 +608,20 @@ class AppDelegate: UIResponder, UIApplicationDelegate { private func handleShortCutItem(_ shortcutItem: UIApplicationShortcutItem) { os_log("Handling shortcut item: %s", log: .generalLog, type: .debug, shortcutItem.type) - mainViewController?.clearNavigationStack() + autoClear?.applicationWillMoveToForeground() - if shortcutItem.type == ShortcutKey.clipboard, let query = UIPasteboard.general.string { + + if shortcutItem.type == ShortcutKey.clipboard, let query = UIPasteboard.general.string { + mainViewController?.clearNavigationStack() mainViewController?.loadQueryInNewTab(query) + return } + +#if NETWORK_PROTECTION + if shortcutItem.type == ShortcutKey.openVPNSettings { + presentNetworkProtectionStatusSettingsModal() + } +#endif } private func removeEmailWaitlistState() { @@ -622,6 +649,25 @@ class AppDelegate: UIResponder, UIApplicationDelegate { private var mainViewController: MainViewController? { return window?.rootViewController as? MainViewController } + + func refreshShortcuts() { +#if NETWORK_PROTECTION + guard NetworkProtectionKeychainTokenStore().isFeatureActivated else { + return + } + + let items = [ + UIApplicationShortcutItem(type: ShortcutKey.openVPNSettings, + localizedTitle: UserText.netPOpenVPNQuickAction, + localizedSubtitle: nil, + icon: UIApplicationShortcutIcon(templateImageName: "VPN-16"), + userInfo: nil) + ] + + UIApplication.shared.shortcutItems = items +#endif + } + } extension AppDelegate: BlankSnapshotViewRecoveringDelegate { @@ -697,14 +743,29 @@ extension AppDelegate: UNUserNotificationCenterDelegate { #if NETWORK_PROTECTION private func presentNetworkProtectionStatusSettingsModal() { - let networkProtectionRoot = NetworkProtectionRootViewController() - presentSettings(with: networkProtectionRoot) + if #available(iOS 15, *) { + let networkProtectionRoot = NetworkProtectionRootViewController() + presentSettings(with: networkProtectionRoot) + } } #endif private func presentSettings(with viewController: UIViewController) { guard let window = window, let rootViewController = window.rootViewController as? MainViewController else { return } + if let navigationController = rootViewController.presentedViewController as? UINavigationController { + if let lastViewController = navigationController.viewControllers.last, lastViewController.isKind(of: type(of: viewController)) { + // Avoid presenting dismissing and re-presenting the view controller if it's already visible: + return + } else { + // Otherwise, replace existing view controllers with the presented one: + navigationController.popToRootViewController(animated: false) + navigationController.pushViewController(viewController, animated: false) + return + } + } + + // If the previous checks failed, make sure the nav stack is reset and present the view controller from scratch: rootViewController.clearNavigationStack() // Give the `clearNavigationStack` call time to complete. diff --git a/DuckDuckGo/AppSettings.swift b/DuckDuckGo/AppSettings.swift index 6e9a72c829..45b1354046 100644 --- a/DuckDuckGo/AppSettings.swift +++ b/DuckDuckGo/AppSettings.swift @@ -31,12 +31,15 @@ protocol AppSettings: AnyObject { var sendDoNotSell: Bool { get set } var currentFireButtonAnimation: FireButtonAnimationType { get set } - + var currentAddressBarPosition: AddressBarPosition { get set } + var textSize: Int { get set } var autofillCredentialsEnabled: Bool { get set } var autofillCredentialsSavePromptShowAtLeastOnce: Bool { get set } var autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary: Bool { get set } + var autofillIsNewInstallForOnByDefault: Bool? { get set } + func setAutofillIsNewInstallForOnByDefault() var voiceSearchEnabled: Bool { get set } diff --git a/DuckDuckGo/AppUserDefaults.swift b/DuckDuckGo/AppUserDefaults.swift index cdc13cbb36..efbfe51d59 100644 --- a/DuckDuckGo/AppUserDefaults.swift +++ b/DuckDuckGo/AppUserDefaults.swift @@ -30,6 +30,7 @@ public class AppUserDefaults: AppSettings { public static let autofillEnabledChange = Notification.Name("com.duckduckgo.app.AutofillEnabledChange") public static let didVerifyInternalUser = Notification.Name("com.duckduckgo.app.DidVerifyInternalUser") public static let inspectableWebViewsToggled = Notification.Name("com.duckduckgo.app.DidToggleInspectableWebViews") + public static let addressBarPositionChanged = Notification.Name("com.duckduckgo.app.AddressBarPositionChanged") } private let groupName: String @@ -60,6 +61,7 @@ public class AppUserDefaults: AppSettings { static let currentFireButtonAnimationKey = "com.duckduckgo.app.currentFireButtonAnimationKey" static let autofillCredentialsEnabled = "com.duckduckgo.ios.autofillCredentialsEnabled" + static let autofillIsNewInstallForOnByDefault = "com.duckduckgo.ios.autofillIsNewInstallForOnByDefault" } private struct DebugKeys { @@ -70,6 +72,8 @@ public class AppUserDefaults: AppSettings { return UserDefaults(suiteName: groupName) } + lazy var featureFlagger = AppDependencyProvider.shared.featureFlagger + init(groupName: String = "group.com.duckduckgo.app") { self.groupName = groupName } @@ -173,7 +177,21 @@ public class AppUserDefaults: AppSettings { userDefaults?.setValue(newValue.rawValue, forKey: Keys.currentFireButtonAnimationKey) } } - + + @UserDefaultsWrapper(key: .addressBarPosition, defaultValue: nil) + private var addressBarPositionStorage: String? + + var currentAddressBarPosition: AddressBarPosition { + get { + return AddressBarPosition(rawValue: addressBarPositionStorage?.lowercased() ?? "") ?? .top + } + + set { + addressBarPositionStorage = newValue.rawValue + NotificationCenter.default.post(name: Notifications.addressBarPositionChanged, object: currentAddressBarPosition) + } + } + @UserDefaultsWrapper(key: .textSize, defaultValue: 100) var textSize: Int @@ -182,16 +200,22 @@ public class AppUserDefaults: AppSettings { return } if !autofillCredentialsSavePromptShowAtLeastOnce { - autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary = true - autofillCredentialsEnabled = true + if let isNewInstall = autofillIsNewInstallForOnByDefault, + isNewInstall, + featureFlagger.isFeatureOn(.autofillOnByDefault) { + autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary = true + autofillCredentialsEnabled = true + } } } var autofillCredentialsEnabled: Bool { get { - // In future, we'll use setAutofillCredentialsEnabledAutomaticallyIfNecessary() here to automatically turn on autofill for people - // That haven't seen the save prompt before. - // For now, whilst internal testing is still happening, it's still set to default to be enabled + // setAutofillCredentialsEnabledAutomaticallyIfNecessary() used here to automatically turn on autofill for people if: + // 1. They haven't seen the save prompt before + // 2. They are a new install + // 3. The feature flag is enabled + setAutofillCredentialsEnabledAutomaticallyIfNecessary() return userDefaults?.object(forKey: Keys.autofillCredentialsEnabled) as? Bool ?? false } @@ -205,7 +229,20 @@ public class AppUserDefaults: AppSettings { @UserDefaultsWrapper(key: .autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary, defaultValue: false) var autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary: Bool - + + var autofillIsNewInstallForOnByDefault: Bool? { + get { + return userDefaults?.object(forKey: Keys.autofillIsNewInstallForOnByDefault) as? Bool + } + set { + userDefaults?.set(newValue, forKey: Keys.autofillIsNewInstallForOnByDefault) + } + } + + func setAutofillIsNewInstallForOnByDefault() { + autofillIsNewInstallForOnByDefault = StatisticsUserDefaults().installDate == nil + } + @UserDefaultsWrapper(key: .voiceSearchEnabled, defaultValue: false) var voiceSearchEnabled: Bool diff --git a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Arrow-Down-Left-24.svg b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Arrow-Down-Left-24.svg new file mode 100644 index 0000000000..a2d3aa85a9 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Arrow-Down-Left-24.svg @@ -0,0 +1,3 @@ + + + diff --git a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Contents.json new file mode 100644 index 0000000000..e7a4bdced3 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Arrow-Down-Left-24.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "filename" : "Arrow-Down-Left-24.svg", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "preserves-vector-representation" : true, + "template-rendering-intent" : "template" + } +} diff --git a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Contents.json index baf2e36c14..75bb7a584e 100644 --- a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Contents.json +++ b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Contents.json @@ -1,7 +1,7 @@ { "images" : [ { - "filename" : "Share-24.pdf", + "filename" : "Share-Apple-24.svg", "idiom" : "universal" } ], diff --git a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-24.pdf b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-24.pdf deleted file mode 100644 index 0031e2fa91..0000000000 Binary files a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-24.pdf and /dev/null differ diff --git a/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-Apple-24.svg b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-Apple-24.svg new file mode 100644 index 0000000000..4615b33b2c --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/DesignSystemIcons/24px/Share-24.imageset/Share-Apple-24.svg @@ -0,0 +1,4 @@ + + + + diff --git a/DuckDuckGo/Assets.xcassets/VPN-16.imageset/Contents.json b/DuckDuckGo/Assets.xcassets/VPN-16.imageset/Contents.json new file mode 100644 index 0000000000..eb05efadf9 --- /dev/null +++ b/DuckDuckGo/Assets.xcassets/VPN-16.imageset/Contents.json @@ -0,0 +1,15 @@ +{ + "images" : [ + { + "filename" : "VPN-16.pdf", + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + }, + "properties" : { + "template-rendering-intent" : "template" + } +} diff --git a/DuckDuckGo/Assets.xcassets/VPN-16.imageset/VPN-16.pdf b/DuckDuckGo/Assets.xcassets/VPN-16.imageset/VPN-16.pdf new file mode 100644 index 0000000000..9b953299d8 Binary files /dev/null and b/DuckDuckGo/Assets.xcassets/VPN-16.imageset/VPN-16.pdf differ diff --git a/DuckDuckGo/AutocompleteViewController.swift b/DuckDuckGo/AutocompleteViewController.swift index 6113b67a2d..cc13fc7ead 100644 --- a/DuckDuckGo/AutocompleteViewController.swift +++ b/DuckDuckGo/AutocompleteViewController.swift @@ -43,9 +43,17 @@ class AutocompleteViewController: UIViewController { private var bookmarksSearch: BookmarksStringSearch! + private var appSettings: AppSettings! + + var backgroundColor: UIColor { + appSettings.currentAddressBarPosition.isBottom ? + UIColor(designSystemColor: .background) : + UIColor.black.withAlphaComponent(0.2) + } + var showBackground = true { didSet { - view.backgroundColor = showBackground ? UIColor.black.withAlphaComponent(0.2) : UIColor.clear + view.backgroundColor = showBackground ? backgroundColor : UIColor.clear } } @@ -61,12 +69,15 @@ class AutocompleteViewController: UIViewController { @IBOutlet weak var tableView: UITableView! var shouldOffsetY = false - static func loadFromStoryboard(bookmarksSearch: BookmarksStringSearch) -> AutocompleteViewController { + static func loadFromStoryboard(bookmarksSearch: BookmarksStringSearch, + appSettings: AppSettings = AppDependencyProvider.shared.appSettings) -> AutocompleteViewController { let storyboard = UIStoryboard(name: "Autocomplete", bundle: nil) + guard let controller = storyboard.instantiateInitialViewController() as? AutocompleteViewController else { fatalError("Failed to instatiate correct Autocomplete view controller") } controller.bookmarksSearch = bookmarksSearch + controller.appSettings = appSettings return controller } @@ -101,13 +112,18 @@ class AutocompleteViewController: UIViewController { override func viewWillDisappear(_ animated: Bool) { super.viewWillDisappear(animated) - resetNaviagtionBar() + resetNavigationBar() } - private func resetNaviagtionBar() { + private func resetNavigationBar() { navigationController?.hidesBarsOnSwipe = hidesBarsOnSwipeDefault } + override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) { + super.traitCollectionDidChange(previousTraitCollection) + tableView.reloadData() + } + func updateQuery(query: String) { self.query = query selectedItem = -1 @@ -210,12 +226,16 @@ extension AutocompleteViewController: UITableViewDataSource { let currentTheme = ThemeManager.shared.currentTheme - cell.updateFor(query: query, suggestion: suggestions[indexPath.row], with: currentTheme) + cell.updateFor(query: query, + suggestion: suggestions[indexPath.row], + with: currentTheme, + isAddressBarAtBottom: appSettings.currentAddressBarPosition.isBottom) cell.plusButton.tag = indexPath.row - let color = indexPath.row == selectedItem ? currentTheme.tableCellSelectedColor : UIColor(designSystemColor: .panel) - - cell.backgroundColor = color + let baseBackgroundColor = isPad ? UIColor(designSystemColor: .panel) : UIColor(designSystemColor: .background) + let backgroundColor = indexPath.row == selectedItem ? currentTheme.tableCellSelectedColor : baseBackgroundColor + + cell.backgroundColor = backgroundColor cell.tintColor = currentTheme.autocompleteCellAccessoryColor cell.setHighlightedStateBackgroundColor(currentTheme.tableCellHighlightedBackgroundColor) @@ -229,14 +249,24 @@ extension AutocompleteViewController: UITableViewDataSource { } let currentTheme = ThemeManager.shared.currentTheme - cell.backgroundColor = UIColor(designSystemColor: .panel) + cell.backgroundColor = appSettings.currentAddressBarPosition.isBottom ? + UIColor(designSystemColor: .background) : + UIColor(designSystemColor: .panel) + cell.tintColor = currentTheme.autocompleteCellAccessoryColor cell.label?.textColor = currentTheme.tableCellTextColor cell.setHighlightedStateBackgroundColor(currentTheme.tableCellHighlightedBackgroundColor) - + return cell } + func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { + if appSettings.currentAddressBarPosition.isBottom && suggestions.isEmpty { + return view.frame.height + } + return 46 + } + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return receivedResponse ? max(Constants.minItems, suggestions.count) : 0 } diff --git a/DuckDuckGo/AutocompleteViewControllerDelegate.swift b/DuckDuckGo/AutocompleteViewControllerDelegate.swift index d345970988..fbb0b6d9fb 100644 --- a/DuckDuckGo/AutocompleteViewControllerDelegate.swift +++ b/DuckDuckGo/AutocompleteViewControllerDelegate.swift @@ -28,6 +28,7 @@ protocol AutocompleteViewControllerDelegate: AnyObject { func autocomplete(pressedPlusButtonForSuggestion suggestion: Suggestion) func autocompleteWasDismissed() + } protocol AutocompleteViewControllerPresentationDelegate: AnyObject { diff --git a/DuckDuckGo/AutofillLoginPromptViewController.swift b/DuckDuckGo/AutofillLoginPromptViewController.swift index 1133e169d2..5b00fedf7c 100644 --- a/DuckDuckGo/AutofillLoginPromptViewController.swift +++ b/DuckDuckGo/AutofillLoginPromptViewController.swift @@ -69,9 +69,11 @@ class AutofillLoginPromptViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) if trigger == AutofillUserScript.GetTriggerType.autoprompt { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineAutopromptDisplayed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineAutopromptDisplayed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } else { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDisplayed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDisplayed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } } @@ -95,9 +97,11 @@ class AutofillLoginPromptViewController: UIViewController { extension AutofillLoginPromptViewController: UISheetPresentationControllerDelegate { func presentationControllerDidDismiss(_ presentationController: UIPresentationController) { if self.trigger == AutofillUserScript.GetTriggerType.autoprompt { - Pixel.fire(pixel: .autofillLoginsAutopromptDismissed) + Pixel.fire(pixel: .autofillLoginsAutopromptDismissed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } else { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDismissed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDismissed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } completion?(nil, false) } @@ -107,9 +111,11 @@ extension AutofillLoginPromptViewController: AutofillLoginPromptViewModelDelegat func autofillLoginPromptViewModel(_ viewModel: AutofillLoginPromptViewModel, didSelectAccount account: SecureVaultModels.WebsiteAccount) { if trigger == AutofillUserScript.GetTriggerType.autoprompt { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineAutopromptConfirmed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineAutopromptConfirmed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } else { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualConfirmed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualConfirmed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } if AppDependencyProvider.shared.autofillLoginSession.isValidSession { @@ -163,9 +169,11 @@ extension AutofillLoginPromptViewController: AutofillLoginPromptViewModelDelegat func autofillLoginPromptViewModelDidCancel(_ viewModel: AutofillLoginPromptViewModel) { dismiss(animated: true) { if self.trigger == AutofillUserScript.GetTriggerType.autoprompt { - Pixel.fire(pixel: .autofillLoginsAutopromptDismissed) + Pixel.fire(pixel: .autofillLoginsAutopromptDismissed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } else { - Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDismissed) + Pixel.fire(pixel: .autofillLoginsFillLoginInlineManualDismissed, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } self.completion?(nil, false) diff --git a/DuckDuckGo/AutofillLoginSettingsListViewController.swift b/DuckDuckGo/AutofillLoginSettingsListViewController.swift index 6e502b8619..57af89cf47 100644 --- a/DuckDuckGo/AutofillLoginSettingsListViewController.swift +++ b/DuckDuckGo/AutofillLoginSettingsListViewController.swift @@ -656,9 +656,11 @@ extension AutofillLoginSettingsListViewController: AutofillLoginDetailsViewContr extension AutofillLoginSettingsListViewController: EnableAutofillSettingsTableViewCellDelegate { func enableAutofillSettingsTableViewCell(_ cell: EnableAutofillSettingsTableViewCell, didChangeSettings value: Bool) { if value { - Pixel.fire(pixel: .autofillLoginsSettingsEnabled) + Pixel.fire(pixel: .autofillLoginsSettingsEnabled, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } else { - Pixel.fire(pixel: .autofillLoginsSettingsDisabled) + Pixel.fire(pixel: .autofillLoginsSettingsDisabled, + withAdditionalParameters: [PixelParameters.autofillDefaultState: AutofillSettingStatus.defaultState]) } viewModel.isAutofillEnabledInSettings = value diff --git a/DuckDuckGo/AutofillSettingStatus.swift b/DuckDuckGo/AutofillSettingStatus.swift index 4e7ed3f789..ccbabfd07c 100644 --- a/DuckDuckGo/AutofillSettingStatus.swift +++ b/DuckDuckGo/AutofillSettingStatus.swift @@ -30,4 +30,8 @@ struct AutofillSettingStatus { let canAuthenticate = context.canEvaluatePolicy(.deviceOwnerAuthentication, error: &error) return appSettings.autofillCredentialsEnabled && canAuthenticate } + + static var defaultState: String { + return appSettings.autofillCredentialsHasBeenEnabledAutomaticallyIfNecessary ? "on" : "off" + } } diff --git a/DuckDuckGo/Base.lproj/DaxOnboarding.storyboard b/DuckDuckGo/Base.lproj/DaxOnboarding.storyboard index f9ac8b1264..f95f44d472 100644 --- a/DuckDuckGo/Base.lproj/DaxOnboarding.storyboard +++ b/DuckDuckGo/Base.lproj/DaxOnboarding.storyboard @@ -1,9 +1,9 @@ - + - + @@ -149,7 +149,7 @@ DuckDuckGo! - + @@ -161,7 +161,7 @@ DuckDuckGo! - +