diff --git a/.env b/.env index 9affb93f5321e..3fdb7b196627d 100644 --- a/.env +++ b/.env @@ -15,7 +15,7 @@ LOCAL_PORT=8889 LOCAL_DIR=src # The PHP version to use. Valid options are 'latest', and '{version}-fpm'. -LOCAL_PHP=latest +LOCAL_PHP=8.1-fpm # Whether or not to enable XDebug. LOCAL_PHP_XDEBUG=false diff --git a/.github/workflows/coding-standards.yml b/.github/workflows/coding-standards.yml index 770e3512dd85d..9c56f359446e2 100644 --- a/.github/workflows/coding-standards.yml +++ b/.github/workflows/coding-standards.yml @@ -9,8 +9,9 @@ on: - '3.[89]' - '[4-9].[0-9]' tags: - - '3.[89]*' - - '[4-9].[0-9]*' + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' + - '!3.7.[0-9]+' pull_request: branches: - trunk @@ -20,7 +21,7 @@ on: # Any change to a PHP or JavaScript file should run checks. - '**.js' - '**.php' - # These files configure NPM. Changes could affect the outcome. + # These files configure npm. Changes could affect the outcome. - 'package*.json' # These files configure Composer. Changes could affect the outcome. - 'composer.*' @@ -39,130 +40,35 @@ concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} + jobs: # Runs PHP coding standards checks. - # - # Violations are reported inline with annotations. - # - # Performs the following steps: - # - Checks out the repository. - # - Sets up PHP. - # - Logs debug information. - # - Configures caching for PHPCS scans. - # - Installs Composer dependencies (use cache if possible). - # - Make Composer packages available globally. - # - Logs PHP_CodeSniffer debug information. - # - Runs PHPCS on the full codebase with warnings suppressed. - # - Runs PHPCS on the `tests` directory without warnings suppressed. - # - Ensures version-controlled files are not modified or deleted. phpcs: name: PHP coding standards - runs-on: ubuntu-latest - timeout-minutes: 20 + uses: WordPress/wordpress-develop/.github/workflows/reusable-coding-standards-php.yml@trunk + permissions: + contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Set up PHP - uses: shivammathur/setup-php@ac7d3d7f84d81a029c20ab72d60264bdb7535831 # v2.15.0 - with: - php-version: '7.4' - coverage: none - tools: composer, cs2pr - - - name: Log debug information - run: | - php --version - composer --version - - # This date is used to ensure that the PHPCS cache is cleared at least once every week. - # http://man7.org/linux/man-pages/man1/date.1.html - - name: "Get last Monday's date" - id: get-date - run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")" - - - name: Cache PHPCS scan cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 - with: - path: .cache/phpcs.json - key: ${{ runner.os }}-date-${{ steps.get-date.outputs.date }}-phpcs-cache-${{ hashFiles('**/composer.json', 'phpcs.xml.dist') }} - - - name: Install Composer dependencies - uses: ramsey/composer-install@a7320a0581dcd0432930c48a0e7ced67e6ec17e8 # v1.3.0 - with: - composer-options: "--no-progress --no-ansi --no-interaction" - - - name: Make Composer packages available globally - run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH - - - name: Log PHPCS debug information - run: phpcs -i - - - name: Run PHPCS on all Core files - run: phpcs -q -n --report=checkstyle | cs2pr - - - name: Check test suite files for warnings - run: phpcs tests -q --report=checkstyle | cs2pr - - - name: Ensure version-controlled files are not modified during the tests - run: git diff --exit-code + with: + php-version: '7.4' # Runs the JavaScript coding standards checks. - # - # JSHint violations are not currently reported inline with annotations. - # - # Performs the following steps: - # - Checks out the repository. - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # - Logs updated debug information. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Run the WordPress JSHint checks. - # - Ensures version-controlled files are not modified or deleted. jshint: name: JavaScript coding standards - runs-on: ubuntu-latest - timeout-minutes: 20 + uses: WordPress/wordpress-develop/.github/workflows/reusable-coding-standards-javascript.yml@trunk + permissions: + contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - env: - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} - - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - npm --version - node --version - git --version - svn --version - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Log debug information - run: | - npm --version - node --version - - - name: Install Dependencies - run: npm ci - - - name: Run JSHint - run: npm run grunt jshint - - - name: Ensure version-controlled files are not modified or deleted - run: git diff --exit-code slack-notifications: name: Slack Notifications uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read needs: [ phpcs, jshint ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: @@ -172,3 +78,36 @@ jobs: SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ phpcs, jshint, slack-notifications ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + needs.phpcs.result == 'cancelled' || needs.phpcs.result == 'failure' || + needs.jshint.result == 'cancelled' || needs.jshint.result == 'failure' + ) + + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/end-to-end-tests.yml b/.github/workflows/end-to-end-tests.yml index 075e94c34e3dd..c881a19e5373d 100644 --- a/.github/workflows/end-to-end-tests.yml +++ b/.github/workflows/end-to-end-tests.yml @@ -1,15 +1,17 @@ name: End-to-end Tests on: - # The end to end test suite was introduced in WordPress 5.3. + # The end-to-end test suite was introduced in WordPress 5.3. push: branches: - trunk - '5.[3-9]' - '[6-9].[0-9]' tags: - - '5.[3-9]*' - - '[6-9].[0-9]*' + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' + - '![34].[0-9].[0-9]+' + - '!5.[0-2].[0-9]+' pull_request: branches: - trunk @@ -24,107 +26,74 @@ concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} + env: LOCAL_DIR: build jobs: # Runs the end-to-end test suite. - # - # Performs the following steps: - # - Set environment variables. - # - Checks out the repository. - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Builds WordPress to run from the `build` directory. - # - Starts the WordPress Docker container. - # - Logs general debug information. - # - Logs the running Docker containers. - # - Logs Docker debug information (about both the Docker installation within the runner and the WordPress container). - # - Install WordPress within the Docker container. - # - Run the E2E tests. - # - Ensures version-controlled files are not modified or deleted. e2e-tests: - name: E2E Tests - runs-on: ubuntu-latest - timeout-minutes: 20 + name: Test with SCRIPT_DEBUG ${{ matrix.LOCAL_SCRIPT_DEBUG && 'enabled' || 'disabled' }} + uses: WordPress/wordpress-develop/.github/workflows/reusable-end-to-end-tests.yml@trunk + permissions: + contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - - steps: - - name: Configure environment variables - run: | - echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV - echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - php --version - php -i - locale -a - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Build WordPress - run: npm run build - - - name: Start Docker environment - run: | - npm run env:start - - - name: General debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - - - name: Log running Docker containers - run: docker ps -a - - - name: Docker debug information - run: | - docker -v - docker-compose -v - docker-compose run --rm mysql mysql --version - docker-compose run --rm php php --version - docker-compose run --rm php php -m - docker-compose run --rm php php -i - docker-compose run --rm php locale -a - - - name: Install WordPress - run: npm run env:install - - - name: Run E2E tests - run: npm run test:e2e - - - name: Ensure version-controlled files are not modified or deleted - run: git diff --exit-code + strategy: + fail-fast: false + matrix: + LOCAL_SCRIPT_DEBUG: [ true, false ] + with: + LOCAL_SCRIPT_DEBUG: ${{ matrix.LOCAL_SCRIPT_DEBUG }} + php-version: '8.0' + install-gutenberg: false + install-playwright: false slack-notifications: name: Slack Notifications uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read needs: [ e2e-tests ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: - calling_status: ${{ needs.e2e-tests.result == 'success' && 'success' || needs.e2e-tests.result == 'cancelled' && 'cancelled' || 'failure' }} + calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }} secrets: SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ e2e-tests ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + needs.e2e-tests.result == 'cancelled' || needs.e2e-tests.result == 'failure' + ) + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/javascript-tests.yml b/.github/workflows/javascript-tests.yml index df0e5724f8e29..719e4ffca95d2 100644 --- a/.github/workflows/javascript-tests.yml +++ b/.github/workflows/javascript-tests.yml @@ -8,8 +8,9 @@ on: - '3.[89]' - '[4-9].[0-9]' tags: - - '3.[89]*' - - '[4-9].[0-9]*' + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' + - '!3.7.[0-9]+' pull_request: branches: - trunk @@ -18,7 +19,7 @@ on: paths: # Any change to a JavaScript file should run tests. - '**.js' - # These files configure NPM. Changes could affect the outcome. + # These files configure npm. Changes could affect the outcome. - 'package*.json' # This file configures ESLint. Changes could affect the outcome. - '.eslintignore' @@ -37,57 +38,27 @@ concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} + jobs: # Runs the QUnit tests for WordPress. - # - # Performs the following steps: - # - Checks out the repository. - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # - Logs updated debug information. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Run the WordPress QUnit tests. - # - Ensures version-controlled files are not modified or deleted. test-js: name: QUnit Tests - runs-on: ubuntu-latest - timeout-minutes: 20 + uses: WordPress/wordpress-develop/.github/workflows/reusable-javascript-tests.yml@trunk + permissions: + contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - npm --version - node --version - git --version - svn --version - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Log debug information - run: | - npm --version - node --version - - - name: Install Dependencies - run: npm ci - - - name: Run QUnit tests - run: npm run grunt qunit:compiled - - - name: Ensure version-controlled files are not modified or deleted - run: git diff --exit-code + with: + disable-apparmor: true slack-notifications: name: Slack Notifications uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read needs: [ test-js ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: @@ -97,3 +68,35 @@ jobs: SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ test-js, slack-notifications ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + needs.test-js.result == 'cancelled' || needs.test-js.result == 'failure' + ) + + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/php-compatibility.yml b/.github/workflows/php-compatibility.yml index daf58a458c983..6f9354118a4ef 100644 --- a/.github/workflows/php-compatibility.yml +++ b/.github/workflows/php-compatibility.yml @@ -8,8 +8,10 @@ on: - '5.[5-9]' - '[6-9].[0-9]' tags: - - '5.[5-9]*' - - '[6-9].[0-9]*' + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' + - '![34].[0-9].[0-9]+' + - '!5.[0-4].[0-9]+' pull_request: branches: - trunk @@ -33,76 +35,27 @@ concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true -jobs: +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} +jobs: # Runs PHP compatibility testing. - # - # Violations are reported inline with annotations. - # - # Performs the following steps: - # - Checks out the repository. - # - Sets up PHP. - # - Logs debug information. - # - Configures caching for PHP compatibility scans. - # - Installs Composer dependencies (use cache if possible). - # - Make Composer packages available globally. - # - Logs PHP_CodeSniffer debug information. - # - Runs the PHP compatibility tests. - # - Ensures version-controlled files are not modified or deleted. php-compatibility: name: Check PHP compatibility - runs-on: ubuntu-latest - timeout-minutes: 20 + uses: WordPress/wordpress-develop/.github/workflows/reusable-php-compatibility.yml@trunk + permissions: + contents: read if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Set up PHP - uses: shivammathur/setup-php@ac7d3d7f84d81a029c20ab72d60264bdb7535831 # v2.15.0 - with: - php-version: '7.4' - coverage: none - tools: composer, cs2pr - - - name: Log debug information - run: | - php --version - composer --version - - # This date is used to ensure that the PHP compatibility cache is cleared at least once every week. - # http://man7.org/linux/man-pages/man1/date.1.html - - name: "Get last Monday's date" - id: get-date - run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")" - - - name: Cache PHP compatibility scan cache - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 - with: - path: .cache/phpcompat.json - key: ${{ runner.os }}-date-${{ steps.get-date.outputs.date }}-phpcompat-cache-${{ hashFiles('**/composer.json', 'phpcompat.xml.dist') }} - - - name: Install Composer dependencies - uses: ramsey/composer-install@a7320a0581dcd0432930c48a0e7ced67e6ec17e8 # v1.3.0 - with: - composer-options: "--no-progress --no-ansi --no-interaction" - - - name: Make Composer packages available globally - run: echo "${PWD}/vendor/bin" >> $GITHUB_PATH - - - name: Log PHPCS debug information - run: phpcs -i - - - name: Run PHP compatibility tests - run: phpcs --standard=phpcompat.xml.dist -q --report=checkstyle | cs2pr - - - name: Ensure version-controlled files are not modified or deleted - run: git diff --exit-code + with: + php-version: '7.4' slack-notifications: name: Slack Notifications uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read needs: [ php-compatibility ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: @@ -112,3 +65,35 @@ jobs: SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ php-compatibility, slack-notifications ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + needs.php-compatibility.result == 'cancelled' || needs.php-compatibility.result == 'failure' + ) + + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index b5b414874ac96..9a442b4047f8e 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -7,8 +7,8 @@ on: - '3.[7-9]' - '[4-9].[0-9]' tags: - - '3.[7-9]*' - - '[4-9].[0-9]*' + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' pull_request: branches: - trunk @@ -26,225 +26,73 @@ concurrency: group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} cancel-in-progress: true -env: - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} - LOCAL_PHP_MEMCACHED: ${{ false }} - SLOW_TESTS: 'external-http,media,restapi' +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} jobs: - # Runs the PHPUnit tests for WordPress. # - # Note: Steps running tests for PHP 8.1 jobs are allowed to "continue-on-error". - # This prevents workflow runs from being marked as "failed" when only PHP 8.1 fails. + # Creates a PHPUnit test job for each PHP/MySQL combination. # - # Performs the following steps: - # - Set environment variables. - # - Sets up the environment variables needed for testing with memcached (if desired). - # - Installs NodeJS 14. - # - Installs NPM dependencies - # - Configures caching for Composer. - # - Installs Composer dependencies (if desired). - # - Logs Docker debug information (about both the Docker installation within the runner). - # - Starts the WordPress Docker container. - # - Starts the memcached server after the Docker network has been created (if desired). - # - Logs WordPress Docker container debug information. - # - Logs debug general information. - # - Logs the running Docker containers. - # - Logs debug information about what's installed within the WordPress Docker containers. - # - Install WordPress within the Docker container. - # - Run the PHPUnit tests. - # - Ensures version-controlled files are not modified or deleted. - # - Checks out the WordPress Test reporter repository. - # - Reconnect the directory to the Git repository. - # - Submit the test results to the WordPress.org host test results. test-php: - name: ${{ matrix.php }}${{ matrix.multisite && ' multisite' || '' }}${{ matrix.split_slow && ' slow tests' || '' }}${{ matrix.memcached && ' with memcached' || '' }} on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - timeout-minutes: 20 + name: PHP ${{ matrix.php }} + uses: WordPress/wordpress-develop/.github/workflows/reusable-phpunit-tests-v3.yml@trunk + permissions: + contents: read + secrets: inherit if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} strategy: fail-fast: false matrix: - php: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] os: [ ubuntu-latest ] - memcached: [ false ] - split_slow: [ false ] + php: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] + db-type: [ 'mysql' ] + db-version: [ '5.7' ] multisite: [ false, true ] + memcached: [ false ] + include: - # Additional "slow" jobs for PHP 5.6. - - php: '5.6' - os: ubuntu-latest - memcached: false - multisite: false - split_slow: true - - php: '5.6' - os: ubuntu-latest - memcached: false - multisite: true - split_slow: true + # Allow PHP 8.1 tests to have errors. + - php: '8.1' + allow-errors: true # Include jobs for PHP 7.4 with memcached. - - php: '7.4' - os: ubuntu-latest - memcached: true + - os: ubuntu-latest + php: '7.4' + db-type: 'mysql' + db-version: '5.7' multisite: false - - php: '7.4' - os: ubuntu-latest memcached: true + - os: ubuntu-latest + php: '7.4' + db-type: 'mysql' + db-version: '5.7' multisite: true + memcached: true # Report the results of the PHP 7.4 without memcached job. - - php: '7.4' - os: ubuntu-latest - memcached: false + - os: ubuntu-latest + php: '7.4' + db-type: 'mysql' + db-version: '5.7' multisite: false + memcached: false report: true - - env: - LOCAL_PHP: ${{ matrix.php }}-fpm - LOCAL_PHP_MEMCACHED: ${{ matrix.memcached }} - PHPUNIT_CONFIG: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} - - steps: - - name: Configure environment variables - run: | - echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV - echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Install Dependencies - run: npm ci - - # This date is used to ensure that the Composer cache is refreshed at least once every week. - # http://man7.org/linux/man-pages/man1/date.1.html - - name: "Get last Monday's date" - id: get-date - run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")" - - - name: Get Composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache Composer dependencies - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 - env: - cache-name: cache-composer-dependencies - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-php-${{ matrix.php }}-date-${{ steps.get-date.outputs.date }}-composer-${{ hashFiles('**/composer.json') }} - - - name: Install Composer dependencies - run: | - docker-compose run --rm php composer --version - - # Install using `composer update` as there is no `composer.lock` file. - if [ ${{ env.LOCAL_PHP }} == '8.1-fpm' ]; then - docker-compose run --rm php composer update --ignore-platform-reqs - else - docker-compose run --rm php composer update - fi - - - name: Docker debug information - run: | - docker -v - docker-compose -v - - - name: Start Docker environment - run: | - npm run env:start - - # The memcached server needs to start after the Docker network has been set up with `npm run env:start`. - - name: Start the Memcached server. - if: ${{ matrix.memcached }} - run: | - cp tests/phpunit/includes/object-cache.php src/wp-content/object-cache.php - docker run --name memcached --net $(basename "$PWD")_wpdevnet -d memcached - - - name: General debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - - - name: Log running Docker containers - run: docker ps -a - - - name: WordPress Docker container debug information - run: | - docker-compose run --rm mysql mysql --version - docker-compose run --rm php php --version - docker-compose run --rm php php -m - docker-compose run --rm php php -i - docker-compose run --rm php locale -a - - - name: Install WordPress - run: npm run env:install - - - name: Run slow PHPUnit tests - if: ${{ matrix.split_slow }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ${{ env.SLOW_TESTS }} - - - name: Run PHPUnit tests for single site excluding slow tests - if: ${{ matrix.php < '7.0' && ! matrix.split_slow && ! matrix.multisite }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-required - - - name: Run PHPUnit tests for Multisite excluding slow tests - if: ${{ matrix.php < '7.0' && ! matrix.split_slow && matrix.multisite }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c ${{ env.PHPUNIT_CONFIG }} --exclude-group ${{ env.SLOW_TESTS }},ajax,ms-files,ms-excluded,oembed-headers - - - name: Run PHPUnit tests - if: ${{ matrix.php >= '7.0' }} - continue-on-error: ${{ matrix.php == '8.1' }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c ${{ env.PHPUNIT_CONFIG }} - - - name: Run AJAX tests - if: ${{ ! matrix.split_slow }} - continue-on-error: ${{ matrix.php == '8.1' }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c ${{ env.PHPUNIT_CONFIG }} --group ajax - - - name: Run ms-files tests as a multisite install - if: ${{ matrix.multisite && ! matrix.split_slow }} - continue-on-error: ${{ matrix.php == '8.1' }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c tests/phpunit/multisite.xml --group ms-files - - - name: Run external HTTP tests - if: ${{ ! matrix.multisite && ! matrix.split_slow }} - continue-on-error: ${{ matrix.php == '8.1' }} - run: node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit --verbose -c phpunit.xml.dist --group external-http - - # __fakegroup__ is excluded to force PHPUnit to ignore the settings in phpunit.xml.dist. - - name: Run (xDebug) tests - if: ${{ ! matrix.split_slow }} - continue-on-error: ${{ matrix.php == '8.1' }} - run: LOCAL_PHP_XDEBUG=true node ./tools/local-env/scripts/docker.js run php ./vendor/bin/phpunit -v --group xdebug --exclude-group __fakegroup__ - - - name: Ensure version-controlled files are not modified or deleted - run: git diff --exit-code - - - name: Checkout the WordPress Test Reporter - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/trunk' && matrix.report }} - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - with: - repository: 'WordPress/phpunit-test-runner' - path: 'test-runner' - - - name: Submit test results to the WordPress.org host test results - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.ref == 'refs/heads/trunk' && matrix.report }} - env: - WPT_REPORT_API_KEY: "${{ secrets.WPT_REPORT_API_KEY }}" - run: docker-compose run --rm -e WPT_REPORT_API_KEY -e WPT_PREPARE_DIR=/var/www -e WPT_TEST_DIR=/var/www php php test-runner/report.php + with: + os: ${{ matrix.os }} + php: ${{ matrix.php }} + db-type: ${{ matrix.db-type }} + db-version: ${{ matrix.db-version }} + multisite: ${{ matrix.multisite }} + memcached: ${{ matrix.memcached }} + phpunit-config: ${{ matrix.multisite && 'tests/phpunit/multisite.xml' || 'phpunit.xml.dist' }} + report: ${{ matrix.report || false }} + allow-errors: ${{ matrix.allow-errors || false }} slack-notifications: name: Slack Notifications uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read needs: [ test-php ] if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} with: @@ -254,3 +102,35 @@ jobs: SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ test-php, slack-notifications ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + needs.test-php.result == 'cancelled' || needs.test-php.result == 'failure' + ) + + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/slack-notifications.yml b/.github/workflows/slack-notifications.yml deleted file mode 100644 index 7a5881364849d..0000000000000 --- a/.github/workflows/slack-notifications.yml +++ /dev/null @@ -1,191 +0,0 @@ -## -# A reusable workflow for posting messages to the Making WordPress -# Core Slack Instance by submitting data to Slack webhook URLs -# received by Slack Workflows. -## -name: Slack Notifications - -on: - workflow_run: - workflows: - - Code Coverage Report - - Coding Standards - - End-to-end Tests - - JavaScript Tests - - PHP Compatibility - - PHPUnit Tests - - Test NPM - - Test old branches - types: - - completed - branches: - - '[3-4].[0-9]' - - '5.[0-8]' - - workflow_call: - inputs: - calling_status: - description: 'The status of the calling workflow' - type: string - required: true - secrets: - SLACK_GHA_SUCCESS_WEBHOOK: - description: 'The Slack webhook URL for a successful build.' - required: true - SLACK_GHA_CANCELLED_WEBHOOK: - description: 'The Slack webhook URL for a cancelled build.' - required: true - SLACK_GHA_FIXED_WEBHOOK: - description: 'The Slack webhook URL for a fixed build.' - required: true - SLACK_GHA_FAILURE_WEBHOOK: - description: 'The Slack webhook URL for a failed build.' - required: true - -env: - CURRENT_BRANCH: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_branch || github.ref_name }} - -jobs: - # Gathers the details needed for Slack notifications. - # - # These details are passed as outputs to the subsequent, dependant jobs that - # submit data to Slack webhook URLs configured to post messages. - # - # Performs the following steps: - # - Retrieves the workflow ID (if necessary). - # - Retrieves the workflow URL (if necessary). - # - Retrieves the previous workflow run and stores its conclusion. - # - Sets the previous conclusion as an output. - # - Prepares the commit message. - # - Constructs and stores a message payload as an output. - prepare: - name: Prepare notifications - runs-on: ubuntu-latest - timeout-minutes: 5 - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event.workflow_run.event != 'pull_request' }} - outputs: - previous_conclusion: ${{ steps.previous-conclusion.outputs.previous_conclusion }} - payload: ${{ steps.create-payload.outputs.payload }} - - steps: - - name: Get the workflow ID - id: current-workflow-id - if: ${{ github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} - uses: actions/github-script@441359b1a30438de65712c2fbca0abe4816fa667 # v5.0.0 - with: - script: | - const workflow_run = await github.rest.actions.getWorkflowRun({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: ${{ github.run_id }}, - }); - return workflow_run.data.workflow_id; - - - name: Get details about the previous workflow run - id: previous-result - uses: actions/github-script@441359b1a30438de65712c2fbca0abe4816fa667 # v5.0.0 - with: - script: | - const previous_runs = await github.rest.actions.listWorkflowRuns({ - owner: context.repo.owner, - repo: context.repo.repo, - workflow_id: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.workflow_id || steps.current-workflow-id.outputs.result }}, - branch: '${{ env.CURRENT_BRANCH }}', - per_page: 1, - page: 2, - }); - return previous_runs.data.workflow_runs[0].conclusion; - - - name: Store previous conclusion as an output - id: previous-conclusion - run: echo "::set-output name=previous_conclusion::${{ steps.previous-result.outputs.result }}" - - - name: Get the commit message - id: current-commit-message - uses: actions/github-script@441359b1a30438de65712c2fbca0abe4816fa667 # v5.0.0 - if: ${{ github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' }} - with: - script: | - const commit_details = await github.rest.repos.getCommit({ - owner: context.repo.owner, - repo: context.repo.repo, - ref: '${{ github.sha }}' - }); - return commit_details.data.commit.message; - - - name: Prepare commit message. - id: commit-message - run: | - COMMIT_MESSAGE=$(cat <<'EOF' | awk 'NR==1' | sed 's/`/\\`/g' | sed 's/\"/\\\\\\"/g' | sed 's/\$/\\$/g' - ${{ github.event_name == 'workflow_run' && github.event.workflow_run.head_commit.message || ( github.event_name == 'workflow_dispatch' || github.event_name == 'schedule' ) && fromJson( steps.current-commit-message.outputs.result ) || github.event.head_commit.message }} - EOF - ) - echo "::set-output name=commit_message_escaped::${COMMIT_MESSAGE}" - - - name: Construct payload and store as an output - id: create-payload - run: echo "::set-output name=payload::{\"workflow_name\":\"${{ github.event_name == 'workflow_run' && github.event.workflow_run.name || github.workflow }}\",\"ref_name\":\"${{ env.CURRENT_BRANCH }}\",\"run_url\":\"https://github.com/WordPress/wordpress-develop/actions/runs/${{ github.event_name == 'workflow_run' && github.event.workflow_run.id || github.run_id }}\",\"commit_message\":\"${{ steps.commit-message.outputs.commit_message_escaped }}\"}" - - # Posts notifications when a workflow fails. - failure: - name: Failure notifications - runs-on: ubuntu-latest - timeout-minutes: 5 - needs: [ prepare ] - if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'failure' || inputs.calling_status == 'failure' || failure() }} - - steps: - - name: Post failure notifications to Slack - uses: slackapi/slack-github-action@410ae57cff5c6b682b106440be0e6c7eb8c98c9d # v1.16.0 - with: - payload: ${{ needs.prepare.outputs.payload }} - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} - - # Posts notifications the first time a workflow run succeeds after previously failing. - fixed: - name: Fixed notifications - runs-on: ubuntu-latest - timeout-minutes: 5 - needs: [ prepare ] - if: ${{ needs.prepare.outputs.previous_conclusion == 'failure' && ( github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' || inputs.calling_status == 'success' ) && success() }} - - steps: - - name: Post failure notifications to Slack - uses: slackapi/slack-github-action@410ae57cff5c6b682b106440be0e6c7eb8c98c9d # v1.16.0 - with: - payload: ${{ needs.prepare.outputs.payload }} - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} - - # Posts notifications when a workflow is successful. - success: - name: Success notifications - runs-on: ubuntu-latest - timeout-minutes: 5 - needs: [ prepare ] - if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success' || inputs.calling_status == 'success' && success() }} - - steps: - - name: Post success notifications to Slack - uses: slackapi/slack-github-action@410ae57cff5c6b682b106440be0e6c7eb8c98c9d # v1.16.0 - with: - payload: ${{ needs.prepare.outputs.payload }} - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} - - # Posts notifications when a workflow is cancelled. - cancelled: - name: Cancelled notifications - runs-on: ubuntu-latest - timeout-minutes: 5 - needs: [ prepare ] - if: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'cancelled' || inputs.calling_status == 'cancelled' || cancelled() }} - - steps: - - name: Post cancelled notifications to Slack - uses: slackapi/slack-github-action@410ae57cff5c6b682b106440be0e6c7eb8c98c9d # v1.16.0 - with: - payload: ${{ needs.prepare.outputs.payload }} - env: - SLACK_WEBHOOK_URL: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} diff --git a/.github/workflows/test-build-processes.yml b/.github/workflows/test-build-processes.yml new file mode 100644 index 0000000000000..e637add15100d --- /dev/null +++ b/.github/workflows/test-build-processes.yml @@ -0,0 +1,135 @@ +name: Test Build Processes + +on: + push: + branches: + - trunk + - '3.[7-9]' + - '[4-9].[0-9]' + tags: + - '[0-9]+.[0-9]' + - '[0-9]+.[0-9].[0-9]+' + pull_request: + branches: + - trunk + - '3.[7-9]' + - '[4-9].[0-9]' + paths: + # These files configure npm. Changes could affect the outcome. + - 'package*.json' + # JavaScript files are built using npm. + - '**.js' + # CSS and SCSS files are built using npm. + - '**.scss' + - '**.css' + # Changes to workflow files should always verify all workflows are successful. + - '.github/workflows/**.yml' + workflow_dispatch: + +# Cancels all previous workflow runs for pull requests that have not completed. +concurrency: + # The concurrency group contains the workflow name and the branch name for pull requests + # or the commit hash for any other events. + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + +# Disable permissions for all available scopes by default. +# Any needed permissions should be configured at the job level. +permissions: {} + +jobs: + # Tests the WordPress Core build process on multiple operating systems. + test-core-build-process: + name: Core running from ${{ matrix.directory }} + uses: WordPress/wordpress-develop/.github/workflows/reusable-test-core-build-process.yml@trunk + permissions: + contents: read + if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, windows-latest ] + directory: [ 'src', 'build' ] + include: + # Only prepare artifacts once. + - os: ubuntu-latest + directory: 'build' + prepare-playground: true + with: + os: ${{ matrix.os }} + directory: ${{ matrix.directory }} + prepare-playground: ${{ matrix.prepare-playground && matrix.prepare-playground || false }} + test-emoji: false + + # Tests the WordPress Core build process on MacOS. + # + # This is separate from the job above in order to use stricter conditions when determining when to run. + # This avoids unintentionally consuming excessive minutes, as MacOS jobs consume minutes at a 10x rate. + # + # The `matrix` and `runner` contexts are not available for use within `if` expressions. So there is + # currently no way to determine the OS being used on a given job. + # See https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability. + test-core-build-process-macos: + name: Core running from ${{ matrix.directory }} + uses: WordPress/wordpress-develop/.github/workflows/reusable-test-core-build-process.yml@trunk + permissions: + contents: read + if: ${{ github.repository == 'WordPress/wordpress-develop' }} + strategy: + fail-fast: false + matrix: + os: ['macos-15-intel'] + directory: [ 'src', 'build' ] + with: + os: ${{ matrix.os }} + directory: ${{ matrix.directory }} + test-emoji: false + + slack-notifications: + name: Slack Notifications + uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk + permissions: + actions: read + contents: read + needs: [ test-core-build-process, test-core-build-process-macos ] + if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} + with: + calling_status: ${{ contains( needs.*.result, 'cancelled' ) && 'cancelled' || contains( needs.*.result, 'failure' ) && 'failure' || 'success' }} + secrets: + SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} + SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} + SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} + SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} + + failed-workflow: + name: Failed workflow tasks + runs-on: ubuntu-latest + permissions: + actions: write + needs: [ slack-notifications ] + if: | + always() && + github.repository == 'WordPress/wordpress-develop' && + github.event_name != 'pull_request' && + github.run_attempt < 2 && + ( + contains( needs.*.result, 'cancelled' ) || + contains( needs.*.result, 'failure' ) + ) + + steps: + - name: Dispatch workflow run + uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1 + with: + retries: 2 + retry-exempt-status-codes: 418 + script: | + github.rest.actions.createWorkflowDispatch({ + owner: context.repo.owner, + repo: context.repo.repo, + workflow_id: 'failed-workflow.yml', + ref: 'trunk', + inputs: { + run_id: '${{ github.run_id }}' + } + }); diff --git a/.github/workflows/test-coverage.yml b/.github/workflows/test-coverage.yml deleted file mode 100644 index caece3306d5d5..0000000000000 --- a/.github/workflows/test-coverage.yml +++ /dev/null @@ -1,183 +0,0 @@ -name: Code Coverage Report - -on: - # Verify - push: - branches: - - trunk - paths: - - '.github/workflows/test-coverage.yml' - - 'phpunit.xml.dist' - - 'tests/phpunit/multisite.xml' - # Once daily at 00:00 UTC. - schedule: - - cron: '0 0 * * *' - # Allow manually triggering the workflow. - workflow_dispatch: - -env: - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} - LOCAL_PHP: '7.4-fpm' - LOCAL_PHP_XDEBUG: true - LOCAL_PHP_MEMCACHED: ${{ false }} - -jobs: - # Sets up WordPress for testing or development use. - # - # Performs the following steps: - # - Set environment variables. - # - Checks out the repository. - # - Checks out the WordPress Importer plugin (needed for the Core PHPUnit tests). - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Logs Docker debug information (about the Docker installation within the runner). - # - Starts the WordPress Docker container. - # - Logs debug general information. - # - Logs the running Docker containers. - # - Logs WordPress Docker container debug information. - # - Logs debug information about what's installed within the WordPress Docker containers. - # - Install WordPress within the Docker container. - # - Run the PHPUnit tests as a single site. - # - Ensures version-controlled files are not modified or deleted. - # - Upload the single site code coverage report to Codecov.io. - # - Run the PHPUnit tests as a multisite. - # - Ensures version-controlled files are not modified or deleted. - # - Upload the multisite code coverage report to Codecov.io. - test-coverage-report: - name: ${{ matrix.multisite && 'Multisite' || 'Single site' }} report - runs-on: ubuntu-latest - timeout-minutes: 120 - if: ${{ github.repository == 'WordPress/wordpress-develop' }} - strategy: - fail-fast: false - matrix: - multisite: [ false, true ] - - steps: - - name: Configure environment variables - run: | - echo "PHP_FPM_UID=$(id -u)" >> $GITHUB_ENV - echo "PHP_FPM_GID=$(id -g)" >> $GITHUB_ENV - - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - echo "$GITHUB_REF" - echo "$GITHUB_EVENT_NAME" - npm --version - node --version - curl --version - git --version - svn --version - php --version - php -i - locale -a - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Install Dependencies - run: npm ci - - # This date is used to ensure that the Composer cache is refreshed at least once every week. - # http://man7.org/linux/man-pages/man1/date.1.html - - name: "Get last Monday's date" - id: get-date - run: echo "::set-output name=date::$(/bin/date -u --date='last Mon' "+%F")" - - - name: Get Composer cache directory - id: composer-cache - run: echo "::set-output name=dir::$(composer config cache-files-dir)" - - - name: Cache Composer dependencies - uses: actions/cache@c64c572235d810460d0d6876e9c705ad5002b353 # v2.1.6 - env: - cache-name: cache-composer-dependencies - with: - path: ${{ steps.composer-cache.outputs.dir }} - key: ${{ runner.os }}-php-${{ matrix.php }}-date-${{ steps.get-date.outputs.date }}-composer-${{ hashFiles('**/composer.json') }} - - - name: Install Composer dependencies - run: | - docker-compose run --rm php composer --version - - # Install using `composer update` as there is no `composer.lock` file. - docker-compose run --rm php composer update - - - name: Docker debug information - run: | - docker -v - docker-compose -v - - - name: Start Docker environment - run: | - npm run env:start - - - name: General debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - - - name: Log running Docker containers - run: docker ps -a - - - name: WordPress Docker container debug information - run: | - docker-compose run --rm mysql mysql --version - docker-compose run --rm php php --version - docker-compose run --rm php php -m - docker-compose run --rm php php -i - docker-compose run --rm php locale -a - - - name: Install WordPress - run: npm run env:install - - - name: Run tests as a single site - if: ${{ ! matrix.multisite }} - run: npm run test:php -- --verbose -c phpunit.xml.dist --coverage-clover wp-code-coverage-single-clover-${{ github.sha }}.xml - - - name: Ensure version-controlled files are not modified during the tests - run: git diff --exit-code - - - name: Upload single site report to Codecov - if: ${{ ! matrix.multisite }} - uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0 - with: - file: wp-code-coverage-single-clover-${{ github.sha }}.xml - flags: single,php - - - name: Run tests as a multisite install - if: ${{ matrix.multisite }} - run: npm run test:php -- --verbose -c tests/phpunit/multisite.xml --coverage-clover wp-code-coverage-multisite-clover-${{ github.sha }}.xml - - - name: Ensure version-controlled files are not modified during the tests - run: git diff --exit-code - - - name: Upload multisite report to Codecov - if: ${{ matrix.multisite }} - uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # v2.1.0 - with: - file: wp-code-coverage-multisite-clover-${{ github.sha }}.xml - flags: multisite,php - - slack-notifications: - name: Slack Notifications - uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk - needs: [ test-coverage-report ] - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} - with: - calling_status: ${{ needs.test-coverage-report.result == 'success' && 'success' || needs.test-coverage-report.result == 'cancelled' && 'cancelled' || 'failure' }} - secrets: - SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} - SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} - SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} - SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} diff --git a/.github/workflows/test-npm.yml b/.github/workflows/test-npm.yml deleted file mode 100644 index 05239b4184e81..0000000000000 --- a/.github/workflows/test-npm.yml +++ /dev/null @@ -1,169 +0,0 @@ -name: Test NPM - -on: - push: - branches: - - trunk - - '3.[7-9]' - - '[4-9].[0-9]' - pull_request: - branches: - - trunk - - '3.[7-9]' - - '[4-9].[0-9]' - paths: - # These files configure NPM. Changes could affect the outcome. - - 'package*.json' - # JavaScript files are built using NPM. - - '**.js' - # CSS and SCSS files are built using NPM. - - '**.scss' - - '**.css' - # Changes to workflow files should always verify all workflows are successful. - - '.github/workflows/**.yml' - workflow_dispatch: - -# Cancels all previous workflow runs for pull requests that have not completed. -concurrency: - # The concurrency group contains the workflow name and the branch name for pull requests - # or the commit hash for any other events. - group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} - cancel-in-progress: true - -env: - PUPPETEER_SKIP_CHROMIUM_DOWNLOAD: ${{ true }} - -jobs: - # Verifies that installing NPM dependencies and building WordPress works as expected. - # - # Performs the following steps: - # - Checks out the repository. - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Builds WordPress to run from the `build` directory. - # - Cleans up after building WordPress to the `build` directory. - # - Ensures version-controlled files are not modified or deleted. - # - Builds WordPress to run from the `src` directory. - # - Cleans up after building WordPress to the `src` directory. - # - Ensures version-controlled files are not modified or deleted. - test-npm: - name: Test NPM on ${{ matrix.os }} - runs-on: ${{ matrix.os }} - timeout-minutes: 20 - if: ${{ github.repository == 'WordPress/wordpress-develop' || github.event_name == 'pull_request' }} - strategy: - fail-fast: false - matrix: - os: [ ubuntu-latest, windows-latest ] - - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Build WordPress - run: npm run build - - - name: Clean after building - run: npm run grunt clean - - - name: Ensure version-controlled files are not modified or deleted during building and cleaning - run: git diff --exit-code - - - name: Build WordPress in /src - run: npm run build:dev - - - name: Clean after building in /src - run: npm run grunt clean -- --dev - - - name: Ensure version-controlled files are not modified or deleted during building and cleaning - run: git diff --exit-code - - # Verifies that installing NPM dependencies and building WordPress works as expected on MacOS. - # - # This is a separate job in order to that more strict conditions can be used. - # - # Performs the following steps: - # - Checks out the repository. - # - Logs debug information about the runner container. - # - Installs NodeJS 14. - # _ Installs NPM dependencies using install-changed to hash the `package.json` file. - # - Builds WordPress to run from the `build` directory. - # - Cleans up after building WordPress to the `build` directory. - # - Ensures version-controlled files are not modified or deleted. - # - Builds WordPress to run from the `src` directory. - # - Cleans up after building WordPress to the `src` directory. - # - Ensures version-controlled files are not modified or deleted. - test-npm-macos: - name: Test NPM on MacOS - runs-on: macos-latest - timeout-minutes: 20 - if: ${{ github.repository == 'WordPress/wordpress-develop' }} - steps: - - name: Checkout repository - uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # v2.4.0 - - - name: Log debug information - run: | - npm --version - node --version - curl --version - git --version - svn --version - - - name: Install NodeJS - uses: actions/setup-node@270253e841af726300e85d718a5f606959b2903c # v2.4.1 - with: - node-version: 14 - cache: npm - - - name: Install Dependencies - run: npm ci - - - name: Build WordPress - run: npm run build - - - name: Clean after building - run: npm run grunt clean - - - name: Ensure version-controlled files are not modified or deleted during building and cleaning - run: git diff --exit-code - - - name: Build WordPress in /src - run: npm run build:dev - - - name: Clean after building in /src - run: npm run grunt clean -- --dev - - - name: Ensure version-controlled files are not modified or deleted during building and cleaning - run: git diff --exit-code - - slack-notifications: - name: Slack Notifications - uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk - needs: [ test-npm, test-npm-macos ] - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} - with: - calling_status: ${{ needs.test-npm.result == 'success' && needs.test-npm-macos.result == 'success' && 'success' || ( needs.test-npm.result == 'cancelled' || needs.test-npm-macos.result == 'cancelled' ) && 'cancelled' || 'failure' }} - secrets: - SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} - SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} - SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} - SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} diff --git a/.github/workflows/test-old-branches.yml b/.github/workflows/test-old-branches.yml deleted file mode 100644 index 0770295d13bab..0000000000000 --- a/.github/workflows/test-old-branches.yml +++ /dev/null @@ -1,84 +0,0 @@ -name: Test old branches - -on: - # Verify the workflow is successful when this file is updated. - push: - branches: - - trunk - paths: - - '.github/workflows/test-old-branches.yml' - # Run twice a month on the 1st and 15th at 00:00 UTC. - schedule: - - cron: '0 0 1 * *' - - cron: '0 0 15 * *' - -jobs: - dispatch-workflows-for-old-branches: - name: ${{ matrix.workflow }} for ${{ matrix.branch }} - runs-on: ubuntu-latest - timeout-minutes: 20 - if: ${{ github.repository == 'WordPress/wordpress-develop' }} - strategy: - fail-fast: false - matrix: - workflow: [ - 'coding-standards.yml', - 'javascript-tests.yml', - 'phpunit-tests.yml', - 'test-npm.yml' - ] - branch: [ - '5.8', '5.7', '5.6', '5.5', '5.4', '5.3', '5.2', '5.1', '5.0', - '4.9', '4.8', '4.7', '4.6', '4.5', '4.4', '4.3', '4.2', '4.1', '4.0', - '3.9', '3.8', '3.7' - ] - include: - # PHP Compatibility testing was introduced in 5.5. - - branch: '5.8' - workflow: 'php-compatibility.yml' - - branch: '5.7' - workflow: 'php-compatibility.yml' - - branch: '5.6' - workflow: 'php-compatibility.yml' - - branch: '5.5' - workflow: 'php-compatibility.yml' - - # End to End testing was introduced in 5.3 but later removed as there were no meaningful assertions. - # Only the officially supported major branch runs E2E tests so that more assertions can be added, and the - # workflow does not continue to run needlessly on old branches. - - branch: '5.8' - workflow: 'end-to-end-tests.yml' - exclude: - # Coding standards and JavaScript testing did not take place in 3.7. - - branch: '3.7' - workflow: 'coding-standards.yml' - - branch: '3.7' - workflow: 'javascript-tests.yml' - - # Run all branches monthly, but only the currently supported one twice per month. - steps: - - name: Dispatch workflow run - uses: actions/github-script@441359b1a30438de65712c2fbca0abe4816fa667 # v5.0.0 - if: ${{ github.event_name == 'push' || github.event.schedule == '0 0 15 * *' || matrix.branch == '5.7' }} - with: - github-token: ${{ secrets.GHA_OLD_BRANCH_DISPATCH }} - script: | - github.rest.actions.createWorkflowDispatch({ - owner: context.repo.owner, - repo: context.repo.repo, - workflow_id: '${{ matrix.workflow }}', - ref: '${{ matrix.branch }}' - }); - - slack-notifications: - name: Slack Notifications - uses: WordPress/wordpress-develop/.github/workflows/slack-notifications.yml@trunk - needs: [ dispatch-workflows-for-old-branches ] - if: ${{ github.repository == 'WordPress/wordpress-develop' && github.event_name != 'pull_request' && always() }} - with: - calling_status: ${{ needs.dispatch-workflows-for-old-branches.result == 'success' && 'success' || needs.dispatch-workflows-for-old-branches.result == 'cancelled' && 'cancelled' || 'failure' }} - secrets: - SLACK_GHA_SUCCESS_WEBHOOK: ${{ secrets.SLACK_GHA_SUCCESS_WEBHOOK }} - SLACK_GHA_CANCELLED_WEBHOOK: ${{ secrets.SLACK_GHA_CANCELLED_WEBHOOK }} - SLACK_GHA_FIXED_WEBHOOK: ${{ secrets.SLACK_GHA_FIXED_WEBHOOK }} - SLACK_GHA_FAILURE_WEBHOOK: ${{ secrets.SLACK_GHA_FAILURE_WEBHOOK }} diff --git a/.github/workflows/welcome-new-contributors.yml b/.github/workflows/welcome-new-contributors.yml index 44ddf0b02dbef..15457f65bd088 100644 --- a/.github/workflows/welcome-new-contributors.yml +++ b/.github/workflows/welcome-new-contributors.yml @@ -12,9 +12,8 @@ jobs: if: ${{ github.repository == 'WordPress/wordpress-develop' }} steps: - - uses: bubkoo/welcome-action@8dbbac2540d155744c90e4e37da6b05ffc9c5e2c # v1.0.3 + - uses: wow-actions/welcome@72817eb31cda1de60f51893d80e2e82ce57f7e76 # v1.3.0 with: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} FIRST_PR_COMMENT: > Hi @{{ author }}! 👋 diff --git a/SECURITY.md b/SECURITY.md index fe8b683d6a816..6d4258c52e5e1 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -9,6 +9,7 @@ currently being supported with security updates. | Version | Supported | | ------- | ------------------ | +| 5.9.x | :white_check_mark: | | 5.8.x | :white_check_mark: | | 5.7.x | :white_check_mark: | | 5.6.x | :white_check_mark: | diff --git a/docker-compose.yml b/docker-compose.yml index 7fe9b524c7aab..3ee8efff0b3f0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.7' - services: ## @@ -25,35 +23,48 @@ services: command: /bin/sh -c "envsubst '$$LOCAL_DIR' < /etc/nginx/conf.d/default.template > /etc/nginx/conf.d/default.conf && exec nginx -g 'daemon off;'" depends_on: - - php + php: + condition: service_started + mysql: + condition: service_healthy ## # The PHP container. ## php: - image: wordpressdevelop/php:${LOCAL_PHP-latest} + image: wordpressdevelop/php:${LOCAL_PHP-8.1-fpm} networks: - wpdevnet environment: - LOCAL_PHP_XDEBUG=${LOCAL_PHP_XDEBUG-false} + - XDEBUG_MODE=${LOCAL_PHP_XDEBUG_MODE-develop,debug} - LOCAL_PHP_MEMCACHED=${LOCAL_PHP_MEMCACHED-false} - PHP_FPM_UID=${PHP_FPM_UID-1000} - PHP_FPM_GID=${PHP_FPM_GID-1000} + - GITHUB_REF=${GITHUB_REF-false} + - GITHUB_EVENT_NAME=${GITHUB_EVENT_NAME-false} volumes: - ./tools/local-env/php-config.ini:/usr/local/etc/php/conf.d/php-config.ini - ./:/var/www - depends_on: - - mysql + # Copy or delete the Memcached dropin plugin file as appropriate. + command: /bin/sh -c "if [ $LOCAL_PHP_MEMCACHED = true ]; then cp -n /var/www/tests/phpunit/includes/object-cache.php /var/www/src/wp-content/object-cache.php; else rm -f /var/www/src/wp-content/object-cache.php; fi && exec php-fpm" + + # The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly. + init: true + + extra_hosts: + - localhost:host-gateway ## # The MySQL container. ## mysql: - image: ${LOCAL_DB_TYPE-mysql}:${LOCAL_DB_VERSION-latest} + image: ${LOCAL_DB_TYPE-mysql}:${LOCAL_DB_VERSION-5.7} + platform: linux/amd64 networks: - wpdevnet @@ -71,11 +82,17 @@ services: # For compatibility with PHP versions that don't support the caching_sha2_password auth plugin used in MySQL 8.0. command: --default-authentication-plugin=mysql_native_password + healthcheck: + test: [ "CMD-SHELL", "if [ \"$LOCAL_DB_TYPE\" = \"mariadb\" ]; then mariadb-admin ping -h localhost; else mysqladmin ping -h localhost; fi" ] + timeout: 5s + interval: 5s + retries: 10 + ## # The WP CLI container. ## cli: - image: wordpressdevelop/cli:${LOCAL_PHP-latest} + image: wordpressdevelop/cli:${LOCAL_PHP-8.1-fpm} networks: - wpdevnet @@ -92,6 +109,31 @@ services: # The init directive ensures the command runs with a PID > 1, so Ctrl+C works correctly. init: true + extra_hosts: + - localhost:host-gateway + + depends_on: + php: + condition: service_started + mysql: + condition: service_healthy + + ## + # The Memcached container. + ## + memcached: + image: memcached + + networks: + - wpdevnet + + ports: + - 11211:11211 + + depends_on: + php: + condition: service_started + volumes: # So that sites aren't wiped every time containers are restarted, MySQL uses a persistent volume. mysql: {} diff --git a/package-lock.json b/package-lock.json index 1b0ed88e1edf4..9756875d515d6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "WordPress", - "version": "5.9.0", + "version": "5.9.12", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -1000,21 +1000,37 @@ } }, "@babel/plugin-transform-react-constant-elements": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.5.tgz", - "integrity": "sha512-fdc1s5npHMZ9A+w9bYbrZu4499WyYPVaTTsRO8bU0GJcMuK4ejIX4lyjnpvi+YGLK/EhFQxWszqylO0vaMciFw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.16.7.tgz", + "integrity": "sha512-lF+cfsyTgwWkcw715J88JhMYJ5GpysYNLhLP1PkvkhTRN7B3e74R/1KsDxFxhRpSn0UUD3IWM4GvdBR2PEbbQQ==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.16.7" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + } } }, "@babel/plugin-transform-react-display-name": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.5.tgz", - "integrity": "sha512-dHYCOnzSsXFz8UcdNQIHGvg94qPL/teF7CCiCEMRxmA1G2p5Mq4JnKVowCDxYfiQ9D7RstaAp9kwaSI+sXbnhw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz", + "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-plugin-utils": "^7.16.7" + }, + "dependencies": { + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + } } }, "@babel/plugin-transform-react-jsx": { @@ -1031,22 +1047,119 @@ } }, "@babel/plugin-transform-react-jsx-development": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.5.tgz", - "integrity": "sha512-uQSLacMZSGLCxOw20dzo1dmLlKkd+DsayoV54q3MHXhbqgPzoiGerZQgNPl/Ro8/OcXV2ugfnkx+rxdS0sN5Uw==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz", + "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==", "dev": true, "requires": { - "@babel/plugin-transform-react-jsx": "^7.16.5" + "@babel/plugin-transform-react-jsx": "^7.16.7" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", + "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-react-pure-annotations": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.5.tgz", - "integrity": "sha512-0nYU30hCxnCVCbRjSy9ahlhWZ2Sn6khbY4FqR91W+2RbSqkWEbVu2gXh45EqNy4Bq7sRU+H4i0/6YKwOSzh16A==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz", + "integrity": "sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==", "dev": true, "requires": { - "@babel/helper-annotate-as-pure": "^7.16.0", - "@babel/helper-plugin-utils": "^7.16.5" + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-regenerator": { @@ -1269,17 +1382,87 @@ } }, "@babel/preset-react": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.5.tgz", - "integrity": "sha512-3kzUOQeaxY/2vhPDS7CX/KGEGu/1bOYGvdRDJ2U5yjEz5o5jmIeTPLoiQBPGjfhPascLuW5OlMiPzwOOuB6txg==", + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.16.7.tgz", + "integrity": "sha512-fWpyI8UM/HE6DfPBzD8LnhQ/OcH8AgTaqcqP2nGOXEUV+VKBR5JRN9hCk9ai+zQQ57vtm9oWeXguBCPNUjytgA==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.16.5", - "@babel/helper-validator-option": "^7.14.5", - "@babel/plugin-transform-react-display-name": "^7.16.5", - "@babel/plugin-transform-react-jsx": "^7.16.5", - "@babel/plugin-transform-react-jsx-development": "^7.16.5", - "@babel/plugin-transform-react-pure-annotations": "^7.16.5" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-transform-react-display-name": "^7.16.7", + "@babel/plugin-transform-react-jsx": "^7.16.7", + "@babel/plugin-transform-react-jsx-development": "^7.16.7", + "@babel/plugin-transform-react-pure-annotations": "^7.16.7" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-module-imports": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz", + "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==", + "dev": true, + "requires": { + "@babel/types": "^7.16.7" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz", + "integrity": "sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==", + "dev": true + }, + "@babel/helper-validator-identifier": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz", + "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==", + "dev": true + }, + "@babel/plugin-syntax-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.16.7.tgz", + "integrity": "sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.16.7" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.16.7.tgz", + "integrity": "sha512-8D16ye66fxiE8m890w0BpPpngG9o9OVBBy0gH2E+2AR7qMR2ZpTYJEqLxAsoroenMId0p/wMW+Blc0meDgu0Ag==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.16.7", + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/plugin-syntax-jsx": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "@babel/types": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.16.8.tgz", + "integrity": "sha512-smN2DQc5s4M7fntyjGtyIPbRJv6wW4rU/94fmYJ7PKQuZkC0qGMHXJbg6sNGt12JmVr4k5YaptI/XtiLJBnmIg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.16.7", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/preset-typescript": { @@ -1302,12 +1485,12 @@ } }, "@babel/runtime-corejs3": { - "version": "7.16.5", - "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.5.tgz", - "integrity": "sha512-F1pMwvTiUNSAM8mc45kccMQxj31x3y3P+tA/X8hKNWp3/hUsxdGxZ3D3H8JIkxtfA8qGkaBTKvcmvStaYseAFw==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.16.8.tgz", + "integrity": "sha512-3fKhuICS1lMz0plI5ktOE/yEtBRMVxplzRkdn6mJQ197XiY0JnrzYV0+Mxozq3JZ8SBV9Ecurmw1XsGbwOf+Sg==", "dev": true, "requires": { - "core-js-pure": "^3.19.0", + "core-js-pure": "^3.20.2", "regenerator-runtime": "^0.13.4" } }, @@ -1956,9 +2139,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "rimraf": { @@ -2188,9 +2371,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "source-map": { @@ -2271,58 +2454,58 @@ "dev": true }, "@popperjs/core": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.0.tgz", - "integrity": "sha512-zrsUxjLOKAzdewIDRWy9nsV1GQsKBCWaGwsZQlCgr6/q+vjyZhFgqedLfFBuI9anTPEUT4APq9Mu0SZBTzIcGQ==" + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.2.tgz", + "integrity": "sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==" }, "@react-spring/animated": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.0.tgz", - "integrity": "sha512-hOj90pXC1ovukgA63l6zQRr7jq6Lay/kUgwlMZWOwgaZoPb1J02BjLtS0rbFvx+BUMd3mrL0QVdno+B6eYsLQQ==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/animated/-/animated-9.4.3.tgz", + "integrity": "sha512-hKKmeXPoGpJ/zrG/RC8stwW8PmMH0BbewHD8aUPLbyzD9fNvZEJ0mjKmOI0CcSwMpb43kuwY2nX3ZJVImPQCoQ==", "requires": { - "@react-spring/shared": "~9.4.0", - "@react-spring/types": "~9.4.0" + "@react-spring/shared": "~9.4.3-beta.0", + "@react-spring/types": "~9.4.3-beta.0" } }, "@react-spring/core": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.4.0.tgz", - "integrity": "sha512-zJC6JgLTv42tdNLZiN8eRgKnVaQxRvGHt329GxZFB9/bhH9FqjOMQ2GsEu8uImw3eicaXlWy10Ssp4SQftZSPg==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/core/-/core-9.4.3.tgz", + "integrity": "sha512-Jr6/GjHwXYxAtttcYDXOtH36krO0XGjYaSsGR6g+vOUO4y0zAPPXoAwpK6vS7Haip5fRwk7rMdNG+OzU7bB4Bg==", "requires": { - "@react-spring/animated": "~9.4.0", - "@react-spring/rafz": "~9.4.0", - "@react-spring/shared": "~9.4.0", - "@react-spring/types": "~9.4.0" + "@react-spring/animated": "~9.4.3-beta.0", + "@react-spring/rafz": "~9.4.3-beta.0", + "@react-spring/shared": "~9.4.3-beta.0", + "@react-spring/types": "~9.4.3-beta.0" } }, "@react-spring/rafz": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.4.0.tgz", - "integrity": "sha512-CqBLODaAZ9HrTNZyOtrr4XQ7CdUNd4OU3Hh7T6JSdB88MyJScsJBKCT9QaJop6wuhvQPiQEviMnD8TfKEkVfuw==" + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.4.3.tgz", + "integrity": "sha512-KnujiZNIHzXsRq1D4tVbCajl8Lx+e6vtvUk7o69KbuneSpEgil9P/x3b+hMDk8U0NHGhJjzhU7723/CNsQansA==" }, "@react-spring/shared": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.4.0.tgz", - "integrity": "sha512-VgQd8NxfbLTeWqzKpGMXXVf1IrmBKO8/fsHFiW+OxZdmFpz77G1aJZ+AnMgCcwrV9KtLdeG0G8YXOQrhsLA7dA==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/shared/-/shared-9.4.3.tgz", + "integrity": "sha512-mB1UUD/pl1LzaY0XeNWZtvJzxMa8gLQf02nY12HAz4Rukm9dFRj0jeYwQYLdfYLsGFo1ldvHNurun6hZMG7kiQ==", "requires": { - "@react-spring/rafz": "~9.4.0", - "@react-spring/types": "~9.4.0" + "@react-spring/rafz": "~9.4.3-beta.0", + "@react-spring/types": "~9.4.3-beta.0" } }, "@react-spring/types": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.4.0.tgz", - "integrity": "sha512-K49Fb/rPX6cSb15ZcW6d45NBYqAJbGh4MKpsBmvZWahJTXKtFDfQq10Bq0+wlLYQr8r1bgsE8v4blfCIdm6UoA==" + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/types/-/types-9.4.3.tgz", + "integrity": "sha512-dzJrPvUc42K2un9y6D1IsrPQO5tKsbWwUo+wsATnXjG3ePWyuDBIOMJuPe605NhIXUmPH+Vik2wMoZz06hD1uA==" }, "@react-spring/web": { - "version": "9.4.0", - "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.4.0.tgz", - "integrity": "sha512-czg38A12w5glP33cfbjiwRnpCw3TNBuJ8eVxP6H2frMnADESsxmSpe0vNlvxrCEOhZxbhUu3ILJ2v02H9LV7bw==", + "version": "9.4.3", + "resolved": "https://registry.npmjs.org/@react-spring/web/-/web-9.4.3.tgz", + "integrity": "sha512-llKve/uJ73JVagBAVvA74S/LfZP4oSB3XP1qmggSUNXzPZZo5ylIMrs55PxpLyxgzzihuhDU5N17ct3ATViOHw==", "requires": { - "@react-spring/animated": "~9.4.0", - "@react-spring/core": "~9.4.0", - "@react-spring/shared": "~9.4.0", - "@react-spring/types": "~9.4.0" + "@react-spring/animated": "~9.4.3-beta.0", + "@react-spring/core": "~9.4.3-beta.0", + "@react-spring/shared": "~9.4.3-beta.0", + "@react-spring/types": "~9.4.3-beta.0" } }, "@sideway/address": { @@ -2483,9 +2666,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true }, "cosmiconfig": { @@ -2634,9 +2817,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.17", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz", - "integrity": "sha512-6zzkezS9QEIL8yCBvXWxPTJPNuMeECJVxSOhxNY/jfq9LxOTHivaYTqr37n9LknWWRTIkzqH2UilS5QFvfa90A==", + "version": "7.1.18", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.18.tgz", + "integrity": "sha512-S7unDjm/C7z2A2R9NzfKCK1I+BAALDtxEmsJBwlB3EzNfb929ykjL++1CK9LO++EIp2fQrC8O+BwjKvz6UeDyQ==", "dev": true, "requires": { "@babel/parser": "^7.1.0", @@ -2647,9 +2830,9 @@ } }, "@types/babel__generator": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.3.tgz", - "integrity": "sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA==", + "version": "7.6.4", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.4.tgz", + "integrity": "sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==", "dev": true, "requires": { "@babel/types": "^7.0.0" @@ -2699,9 +2882,9 @@ "integrity": "sha512-C7srjHiVG3Ey1nR6d511dtDkCEjxuN9W1HWAEjGq8kpcwmNM6JJkpC0xvabM7BXTG2wDq8Eu33iH9aQKa7IvLQ==" }, "@types/eslint": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.1.tgz", - "integrity": "sha512-UP9rzNn/XyGwb5RQ2fok+DzcIRIYwc16qTXse5+Smsy8MOIccCChT15KAwnsgQx4PzJkaMq4myFyZ4CL5TjhIQ==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.2.2.tgz", + "integrity": "sha512-nQxgB8/Sg+QKhnV8e0WzPpxjIGT3tuJDDzybkDi8ItE/IgTlHo07U0shaIjzhcvQxlq9SDRE42lsJ23uvEgJ2A==", "dev": true, "requires": { "@types/estree": "*", @@ -2709,9 +2892,9 @@ } }, "@types/eslint-scope": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.2.tgz", - "integrity": "sha512-TzgYCWoPiTeRg6RQYgtuW7iODtVoKu3RVL72k3WohqhjfaOLK5Mg2T4Tg1o2bSfu0vPkoI48wdQFv5b/Xe04wQ==", + "version": "3.7.3", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.3.tgz", + "integrity": "sha512-PB3ldyrcnAicT35TWPs5IcwKD8S333HMaa2VVv4+wdvebJkjWuW/xESoB8IwRcog8HYVYamb1g/R31Qv5Bx03g==", "dev": true, "requires": { "@types/eslint": "*", @@ -2744,9 +2927,9 @@ } }, "@types/istanbul-lib-coverage": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", - "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, "@types/istanbul-lib-report": { @@ -2776,7 +2959,7 @@ "@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", "dev": true }, "@types/lodash": { @@ -2827,9 +3010,9 @@ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, "@types/prettier": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.2.tgz", - "integrity": "sha512-ekoj4qOQYp7CvjX8ZDBgN86w3MqQhLE1hczEJbEIjgFEumDy+na/4AJAbLXfgEWFNB2pKadM5rPFtuSGMWK7xA==", + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz", + "integrity": "sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==", "dev": true }, "@types/prop-types": { @@ -3123,16 +3306,16 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -3434,28 +3617,28 @@ } }, "@wordpress/annotations": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.2.8.tgz", - "integrity": "sha512-cT+Mk6oEsSYHvaXtxO+JExCsP34Un21GahOIQK74lq1hJUy34TxqzuftbdDLvu9gbrKRnzVlPH9Uv6RHVHkXbg==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@wordpress/annotations/-/annotations-2.2.9.tgz", + "integrity": "sha512-xudNtq+QotOwyYbOAEt1XWLp40CcKJvBzE2acstf/DZqxIi/PXB++4QVxgpQuYWkr6bWIFm4EfNvsUFBQr9DWQ==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/data": "^6.1.5", "@wordpress/hooks": "^3.2.2", "@wordpress/i18n": "^4.2.4", - "@wordpress/rich-text": "^5.0.7", + "@wordpress/rich-text": "^5.0.8", "lodash": "^4.17.21", "rememo": "^3.0.0", "uuid": "^8.3.0" } }, "@wordpress/api-fetch": { - "version": "5.2.6", - "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-5.2.6.tgz", - "integrity": "sha512-AG8KdCHwtYJWR38AAU7nEI+UbumUSqSBthQj3rShLUVyFbYGkQdpwXJJG6vFj7FjIp41zljiyj3K1Fh3cqdaAw==", + "version": "5.2.7", + "resolved": "https://registry.npmjs.org/@wordpress/api-fetch/-/api-fetch-5.2.7.tgz", + "integrity": "sha512-r8dxJ8ScyKJ9yqHqwybJe2ANAyEZTKcjalp8bdMIZc7lJXgRa5f9kTvulE6hItkSVgBe38u6rx0T7UrlXNrUTw==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/i18n": "^4.2.4", - "@wordpress/url": "^3.3.1" + "@wordpress/url": "^3.3.2" } }, "@wordpress/autop": { @@ -3540,21 +3723,21 @@ } }, "@wordpress/block-directory": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-3.0.20.tgz", - "integrity": "sha512-sm6dFYtHflHAeD1keC/oc7RN4GjdbOz18wxKGkyiOM8jzOIWqcrMcgfhzh98F6sSN/oJkYpTafpTQwT3Kz9nlQ==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@wordpress/block-directory/-/block-directory-3.0.32.tgz", + "integrity": "sha512-T5rNgTfzWRknbh3ENAwXYKImrhnuwys8vI1QEaMgkYlkTVsYbKX/+lX3Vypq3NGVhKKDbhATLQGTbxQRc/IdGg==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/block-editor": "^8.0.13", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/block-editor": "^8.0.18", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", - "@wordpress/edit-post": "^5.0.20", - "@wordpress/editor": "^12.0.16", + "@wordpress/edit-post": "^5.0.32", + "@wordpress/editor": "^12.0.22", "@wordpress/element": "^4.0.4", "@wordpress/hooks": "^3.2.2", "@wordpress/html-entities": "^3.2.3", @@ -3562,23 +3745,23 @@ "@wordpress/icons": "^6.1.1", "@wordpress/notices": "^3.2.8", "@wordpress/plugins": "^4.0.7", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "lodash": "^4.17.21" } }, "@wordpress/block-editor": { - "version": "8.0.13", - "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-8.0.13.tgz", - "integrity": "sha512-U/0Hj6wwayOFqBZg8ObR6XaDMpEnq1PXsNemxKp4BhLixiBDKMC0eXC0kBQJYm6BouMVwiw2r0StIyvl+XFovA==", + "version": "8.0.18", + "resolved": "https://registry.npmjs.org/@wordpress/block-editor/-/block-editor-8.0.18.tgz", + "integrity": "sha512-/y+0AmO8xDxxATZfzBubUvP0SSpZjR/ovrlAd5/q2vor+7Mn+gMOSm3zWpLPuS93nNnBRo+Giugp6rx/gNCMFA==", "requires": { "@babel/runtime": "^7.16.0", "@react-spring/web": "^9.2.4", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/blob": "^3.2.2", "@wordpress/block-serialization-default-parser": "^4.2.3", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3", @@ -3592,10 +3775,10 @@ "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", "@wordpress/notices": "^3.2.8", - "@wordpress/rich-text": "^5.0.7", + "@wordpress/rich-text": "^5.0.8", "@wordpress/shortcode": "^3.2.3", "@wordpress/token-list": "^2.2.2", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "@wordpress/warning": "^2.2.2", "@wordpress/wordcount": "^3.2.3", "classnames": "^2.3.1", @@ -3614,20 +3797,20 @@ } }, "@wordpress/block-library": { - "version": "6.0.18", - "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-6.0.18.tgz", - "integrity": "sha512-U7JiHp5d+JkUtsSByplkvfbWonUbRLFS1Gm6afbICT1w4hj3xFFxgBo9aCc8VzQOFS/2fpoQUANEK6h5QUBdAg==", + "version": "6.0.31", + "resolved": "https://registry.npmjs.org/@wordpress/block-library/-/block-library-6.0.31.tgz", + "integrity": "sha512-gA1Um2sfAN1lV+dZ7w0QkK0/L3RxBQe+wUJw82Mrryswou4k3izXqhgZaOaOOjPivuvgmxu9K3RyTAqf62FZtg==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/autop": "^3.2.3", "@wordpress/blob": "^3.2.2", - "@wordpress/block-editor": "^8.0.13", + "@wordpress/block-editor": "^8.0.18", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", "@wordpress/date": "^4.2.3", "@wordpress/deprecated": "^3.2.3", @@ -3638,22 +3821,21 @@ "@wordpress/html-entities": "^3.2.3", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", - "@wordpress/interface": "^4.1.15", "@wordpress/is-shallow-equal": "^4.2.1", "@wordpress/keycodes": "^3.2.4", "@wordpress/notices": "^3.2.8", "@wordpress/primitives": "^3.0.4", - "@wordpress/reusable-blocks": "^3.0.19", - "@wordpress/rich-text": "^5.0.7", - "@wordpress/server-side-render": "^3.0.17", - "@wordpress/url": "^3.3.1", + "@wordpress/reusable-blocks": "^3.0.24", + "@wordpress/rich-text": "^5.0.8", + "@wordpress/server-side-render": "^3.0.21", + "@wordpress/url": "^3.3.2", "@wordpress/viewport": "^4.0.7", "classnames": "^2.3.1", "colord": "^2.7.0", "fast-average-color": "4.3.0", "lodash": "^4.17.21", "memize": "^1.1.0", - "micromodal": "^0.4.9", + "micromodal": "^0.4.10", "moment": "^2.22.1" } }, @@ -3700,9 +3882,9 @@ "dev": true }, "@wordpress/components": { - "version": "19.2.0", - "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-19.2.0.tgz", - "integrity": "sha512-IFvbH7Jo9jqbH+ZXCMm+tLaJDn95Q783aNtm9GVA+z3nJSyh4Dl2MXsRfOSE/mLd2iToPDCrpuHi51hr/lrGcw==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@wordpress/components/-/components-19.2.3.tgz", + "integrity": "sha512-VCMuDG9z97l/L5a+cIyCmuyakqSGxmmvPjR5h4XLx+/svUS0W9HO6egHpmMMu6DDfivqnUXYmk/6ocVx13895w==", "requires": { "@babel/runtime": "^7.16.0", "@emotion/cache": "^11.4.0", @@ -3722,7 +3904,7 @@ "@wordpress/is-shallow-equal": "^4.2.1", "@wordpress/keycodes": "^3.2.4", "@wordpress/primitives": "^3.0.4", - "@wordpress/rich-text": "^5.0.7", + "@wordpress/rich-text": "^5.0.8", "@wordpress/warning": "^2.2.2", "classnames": "^2.3.1", "colord": "^2.7.0", @@ -3766,12 +3948,12 @@ } }, "@wordpress/core-data": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-4.0.9.tgz", - "integrity": "sha512-BCHqGWLre2GBClI901ar9+S5T0EmNQ56wdYqPE6aZJlTV3/QWgFoL241NqGvjAJ6ipC9+clpwwndX7JFG3juKw==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/@wordpress/core-data/-/core-data-4.0.11.tgz", + "integrity": "sha512-D3tAzzpYIAlfILEwjI8f980/Enp4sMaDry6lUR+8NSwJmAdqMDSexF9tPhCO3B+ENGjub3gOIZqyGdO4jklOMQ==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/blocks": "^11.1.5", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3", @@ -3779,7 +3961,7 @@ "@wordpress/html-entities": "^3.2.3", "@wordpress/i18n": "^4.2.4", "@wordpress/is-shallow-equal": "^4.2.1", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "equivalent-key-map": "^0.2.2", "lodash": "^4.17.21", "rememo": "^3.0.0", @@ -3796,30 +3978,30 @@ } }, "@wordpress/customize-widgets": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-2.0.20.tgz", - "integrity": "sha512-80tz/X4QtJwsGXzhNcEOuDE298dDWzpr+uVI/8a/g9/f5Y8O2Qf+0EfUmscQ8HHo4eKjY284im1HviAZYonOKg==", + "version": "2.0.32", + "resolved": "https://registry.npmjs.org/@wordpress/customize-widgets/-/customize-widgets-2.0.32.tgz", + "integrity": "sha512-CRjEiai7ryBs7E3IEciFk/N5Xz/B+hON68TYzzFzyjFfltIh6M8eNCevgFIG0itp63yfaV5qmM1ifVhkrkkBcA==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/block-editor": "^8.0.13", - "@wordpress/block-library": "^6.0.18", + "@wordpress/block-editor": "^8.0.18", + "@wordpress/block-library": "^6.0.31", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", "@wordpress/dom": "^3.2.7", "@wordpress/element": "^4.0.4", "@wordpress/hooks": "^3.2.2", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", - "@wordpress/interface": "^4.1.15", + "@wordpress/interface": "^4.1.18", "@wordpress/is-shallow-equal": "^4.2.1", "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/media-utils": "^3.0.5", - "@wordpress/widgets": "^2.0.19", + "@wordpress/media-utils": "^3.0.6", + "@wordpress/widgets": "^2.0.25", "classnames": "^2.3.1", "lodash": "^4.17.21" } @@ -3845,12 +4027,12 @@ } }, "@wordpress/data-controls": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.2.8.tgz", - "integrity": "sha512-hoaYLeZEmgUBJvHsv5SeGUKx433HfQfJ5sPu/8PiouUK/vr+8rMGM02ydTye6saWAMOHxvOxa08rzIWvWnZg/w==", + "version": "2.2.9", + "resolved": "https://registry.npmjs.org/@wordpress/data-controls/-/data-controls-2.2.9.tgz", + "integrity": "sha512-zBI3ZmxGHQribikLbVsf4dY8bcNKH6EYJMUgCvoNA2BV7kkFKK4eXLP5+ZVAVzON5op4/ACZvHdVGmlRiRgI9A==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3" } @@ -3920,15 +4102,15 @@ } }, "@wordpress/e2e-test-utils": { - "version": "5.4.10", - "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-5.4.10.tgz", - "integrity": "sha512-JRp1f7uQ9INpN3t0x4X07P3uBMwaitou9lvYWpDwVsHRcDn21NyFpVYbsX/T63ADIpvcqIhql58RnkVJRUWYxg==", + "version": "5.4.11", + "resolved": "https://registry.npmjs.org/@wordpress/e2e-test-utils/-/e2e-test-utils-5.4.11.tgz", + "integrity": "sha512-I068Kj1tBVyeV8rvanh/TlHzkr3YwAuXHXoLNS/O6zx7jMLkfEeAnsgh2uiyvCzdywk4MOQZDJ9yZ1+RSTjkqA==", "dev": true, "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "form-data": "^4.0.0", "lodash": "^4.17.21", "node-fetch": "^2.6.0" @@ -3948,34 +4130,34 @@ } }, "@wordpress/edit-post": { - "version": "5.0.20", - "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-5.0.20.tgz", - "integrity": "sha512-7/8BT2vPin/vg6Opml3uFYhtFMjsdX4DGniiEUeZhoRLC7AiU1VNlxEKklTNRkMHQI4tCcr6+qc7YoMbB5nmyQ==", + "version": "5.0.32", + "resolved": "https://registry.npmjs.org/@wordpress/edit-post/-/edit-post-5.0.32.tgz", + "integrity": "sha512-qQ6/yOHqz/NwjkwYy6AD9IhM416LoU7FZ+Nf+Elooy/kl+QUZajcngMz5FXXVJgEZ94+5tAcTQdMc9u+dExMQA==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/block-editor": "^8.0.13", - "@wordpress/block-library": "^6.0.18", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/block-editor": "^8.0.18", + "@wordpress/block-library": "^6.0.31", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", - "@wordpress/data-controls": "^2.2.8", - "@wordpress/editor": "^12.0.16", + "@wordpress/data-controls": "^2.2.9", + "@wordpress/editor": "^12.0.22", "@wordpress/element": "^4.0.4", "@wordpress/hooks": "^3.2.2", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", - "@wordpress/interface": "^4.1.15", + "@wordpress/interface": "^4.1.18", "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/media-utils": "^3.0.5", + "@wordpress/media-utils": "^3.0.6", "@wordpress/notices": "^3.2.8", "@wordpress/plugins": "^4.0.7", "@wordpress/primitives": "^3.0.4", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "@wordpress/viewport": "^4.0.7", "@wordpress/warning": "^2.2.2", "classnames": "^2.3.1", @@ -3993,36 +4175,36 @@ } }, "@wordpress/edit-site": { - "version": "3.0.20", - "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-3.0.20.tgz", - "integrity": "sha512-rfT8ex8uYn2DpcRFO3ola2NhywBrxV2Yzy2BA9MvI7tIo+/2UFJVrFROafycb1pXjufwrq35ST69XvUMRvL6Fg==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@wordpress/edit-site/-/edit-site-3.0.32.tgz", + "integrity": "sha512-dpDgJeWxqCGO6Un7UrhnF7geBDGtyXQ1TIA4aehRIQobvrnaCUyOyRc+R5i6uJQ+1P+YO7zgmCJtW5SCxPl01Q==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/block-editor": "^8.0.13", - "@wordpress/block-library": "^6.0.18", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/block-editor": "^8.0.18", + "@wordpress/block-library": "^6.0.31", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", - "@wordpress/data-controls": "^2.2.8", - "@wordpress/editor": "^12.0.16", + "@wordpress/data-controls": "^2.2.9", + "@wordpress/editor": "^12.0.22", "@wordpress/element": "^4.0.4", "@wordpress/hooks": "^3.2.2", "@wordpress/html-entities": "^3.2.3", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", - "@wordpress/interface": "^4.1.15", + "@wordpress/interface": "^4.1.18", "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/media-utils": "^3.0.5", + "@wordpress/media-utils": "^3.0.6", "@wordpress/notices": "^3.2.8", "@wordpress/plugins": "^4.0.7", "@wordpress/primitives": "^3.0.4", - "@wordpress/reusable-blocks": "^3.0.19", - "@wordpress/url": "^3.3.1", + "@wordpress/reusable-blocks": "^3.0.24", + "@wordpress/url": "^3.3.2", "@wordpress/viewport": "^4.0.7", "classnames": "^2.3.1", "downloadjs": "^1.4.7", @@ -4034,35 +4216,35 @@ } }, "@wordpress/edit-widgets": { - "version": "3.1.15", - "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-3.1.15.tgz", - "integrity": "sha512-mgetLhi5yaJ5b6VDD6GuTsMWZJhyt9yb/RBhtiubyVnCO9yPg9W1VoKFDT/r5+arDshqrHweSr5nxQG+qcRWww==", + "version": "3.1.27", + "resolved": "https://registry.npmjs.org/@wordpress/edit-widgets/-/edit-widgets-3.1.27.tgz", + "integrity": "sha512-qkbrvmuVw+SRAoQkosufvcg/JNCKrWXXds2V4U2Z9neQ0eshpFETawdqsrAVvyK4sTvy2nzcgB9NpWl/GoX8Bw==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/block-editor": "^8.0.13", - "@wordpress/block-library": "^6.0.18", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/block-editor": "^8.0.18", + "@wordpress/block-library": "^6.0.31", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", "@wordpress/dom": "^3.2.7", "@wordpress/element": "^4.0.4", "@wordpress/hooks": "^3.2.2", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", - "@wordpress/interface": "^4.1.15", + "@wordpress/interface": "^4.1.18", "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/media-utils": "^3.0.5", + "@wordpress/media-utils": "^3.0.6", "@wordpress/notices": "^3.2.8", "@wordpress/plugins": "^4.0.7", - "@wordpress/reusable-blocks": "^3.0.19", - "@wordpress/server-side-render": "^3.0.17", - "@wordpress/url": "^3.3.1", - "@wordpress/widgets": "^2.0.19", + "@wordpress/reusable-blocks": "^3.0.24", + "@wordpress/server-side-render": "^3.0.21", + "@wordpress/url": "^3.3.2", + "@wordpress/widgets": "^2.0.25", "classnames": "^2.3.1", "lodash": "^4.17.21", "rememo": "^3.0.0", @@ -4070,22 +4252,22 @@ } }, "@wordpress/editor": { - "version": "12.0.16", - "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-12.0.16.tgz", - "integrity": "sha512-RtDf0h0lh613qudt5eG9EbG5Pp5PMuB8yfwnHCrA8d0yGaF24k3pxE7QMBaWeAcKGnDwev30Nt980nBtcm5+1w==", + "version": "12.0.22", + "resolved": "https://registry.npmjs.org/@wordpress/editor/-/editor-12.0.22.tgz", + "integrity": "sha512-sIld795Y2Vvy+Z+DZbDbMT/vaxrzoqmPcUuDC95lFF0FIxpZVp6Oxx3uLp1Uk1RLcSPd+kbzs6/OqiVFI951jQ==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/autop": "^3.2.3", "@wordpress/blob": "^3.2.2", - "@wordpress/block-editor": "^8.0.13", + "@wordpress/block-editor": "^8.0.18", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", - "@wordpress/data-controls": "^2.2.8", + "@wordpress/data-controls": "^2.2.9", "@wordpress/date": "^4.2.3", "@wordpress/deprecated": "^3.2.3", "@wordpress/element": "^4.0.4", @@ -4096,12 +4278,12 @@ "@wordpress/is-shallow-equal": "^4.2.1", "@wordpress/keyboard-shortcuts": "^3.0.7", "@wordpress/keycodes": "^3.2.4", - "@wordpress/media-utils": "^3.0.5", + "@wordpress/media-utils": "^3.0.6", "@wordpress/notices": "^3.2.8", - "@wordpress/reusable-blocks": "^3.0.19", - "@wordpress/rich-text": "^5.0.7", - "@wordpress/server-side-render": "^3.0.17", - "@wordpress/url": "^3.3.1", + "@wordpress/reusable-blocks": "^3.0.24", + "@wordpress/rich-text": "^5.0.8", + "@wordpress/server-side-render": "^3.0.21", + "@wordpress/url": "^3.3.2", "@wordpress/wordcount": "^3.2.3", "classnames": "^2.3.1", "lodash": "^4.17.21", @@ -4187,14 +4369,14 @@ } }, "@wordpress/format-library": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-3.0.19.tgz", - "integrity": "sha512-MsXaS1QgMtkZUioStCnAQViIOcLPS5OqsJAwnl5/aVvmciV+IABtT4ffPCaiShiTyqBiZMj8UEaaJD8SOeZidw==", + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@wordpress/format-library/-/format-library-3.0.24.tgz", + "integrity": "sha512-Y3gIcA6Bc1mxF5KrlLom4rx77/LoRJuWGPlnW0XgwpH1DTZw9Mykf+/VI2y7ixHEY/0y+rFnjOUD8lcjQYM4ow==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/block-editor": "^8.0.13", - "@wordpress/components": "^19.2.0", + "@wordpress/block-editor": "^8.0.18", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/data": "^6.1.5", "@wordpress/dom": "^3.2.7", @@ -4203,8 +4385,8 @@ "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", "@wordpress/keycodes": "^3.2.4", - "@wordpress/rich-text": "^5.0.7", - "@wordpress/url": "^3.3.1", + "@wordpress/rich-text": "^5.0.8", + "@wordpress/url": "^3.3.2", "lodash": "^4.17.21" } }, @@ -4249,13 +4431,13 @@ } }, "@wordpress/interface": { - "version": "4.1.15", - "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-4.1.15.tgz", - "integrity": "sha512-11vTvDG08A0QMicNc4hJBNMFDATRxWPEEEiB0g2pZRyZ09kMXcJ4Je9SdZz5jl2Bz/x8oEeTYeLqyvioq928cw==", + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@wordpress/interface/-/interface-4.1.18.tgz", + "integrity": "sha512-ibt4Km4ZYA75+zyQQcog53d+flGyrqvlfy2TwhAMmawHWzjzA502AfkAxfx84CUDgEr40U0AJEYGESWgfmxNnQ==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3", @@ -4353,13 +4535,13 @@ } }, "@wordpress/list-reusable-blocks": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-3.0.17.tgz", - "integrity": "sha512-tYmCzIVhOUHlmINMtCvWwUfgfaorwv1+mAHdPJ2XqCW5e27ws3EdWJxqdTWZNu1Z8Rz9ucv+mOHyOxL91JByhg==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wordpress/list-reusable-blocks/-/list-reusable-blocks-3.0.21.tgz", + "integrity": "sha512-5ucAKN52yirrkYxVL0W88VKD5x0D060dggu8wZZb1QPVSJVub5dnTbBvtUiMJxCCHOH3lstXX39mcDVeE5JZaQ==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/components": "^19.2.0", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/element": "^4.0.4", "@wordpress/i18n": "^4.2.4", @@ -4367,12 +4549,12 @@ } }, "@wordpress/media-utils": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-3.0.5.tgz", - "integrity": "sha512-BshnzzBECsH8JuxU/qgJkRCBoPNPQ/z9PeWzTFMY3hPYtbd23hMtZpPqc9EGkjU+Ovs1AF8qEjNr9wPOCDq3nA==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@wordpress/media-utils/-/media-utils-3.0.6.tgz", + "integrity": "sha512-10UQO6SEMdu4ROXxYT8K5eP7CXUb6kykGn03O1kqzVohNvEKVJFVUWuOc6ULkDEhzA11ZMxp+p25rwDSwMhXPA==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/blob": "^3.2.2", "@wordpress/element": "^4.0.4", "@wordpress/i18n": "^4.2.4", @@ -4397,12 +4579,12 @@ "dev": true }, "@wordpress/nux": { - "version": "5.0.17", - "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-5.0.17.tgz", - "integrity": "sha512-W122kgEW5ZfAsYPN7sc9372GPE4Iulx9h8zB2z5E+Vz/CqrVvw/TDQqJgqk7DPScQWGcqWTIfHJh0zyDdY8yRw==", + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@wordpress/nux/-/nux-5.0.20.tgz", + "integrity": "sha512-tGhIKif6Bky5w2CMPNohEy4JGmYxfK4MhUOw2Iiyh+cUF/mlmPlJ3Q9V+TBsIJHlNXq+/5QJUEsyhsYIaIbRaA==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3", @@ -4438,17 +4620,17 @@ }, "dependencies": { "autoprefixer": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.0.tgz", - "integrity": "sha512-7FdJ1ONtwzV1G43GDD0kpVMn/qbiNqyOPMFTX5nRffI+7vgWoFEc6DcXOxHJxrWNDXrZh18eDsZjvZGUljSRGA==", + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.2.tgz", + "integrity": "sha512-9fOPpHKuDW1w/0EKfRmVnxTDt8166MAnLI3mgZ1JCnhNtYWxcJ6Ud5CO/AVOZi/AvFa8DY9RTy3h3+tFBlrrdQ==", "dev": true, "requires": { - "browserslist": "^4.17.5", - "caniuse-lite": "^1.0.30001272", - "fraction.js": "^4.1.1", + "browserslist": "^4.19.1", + "caniuse-lite": "^1.0.30001297", + "fraction.js": "^4.1.2", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "browserslist": { @@ -4465,15 +4647,15 @@ } }, "caniuse-lite": { - "version": "1.0.30001291", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz", - "integrity": "sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA==", + "version": "1.0.30001300", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", + "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", "dev": true }, "electron-to-chromium": { - "version": "1.4.25", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz", - "integrity": "sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg==", + "version": "1.4.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.47.tgz", + "integrity": "sha512-ZHc8i3/cgeCRK/vC7W2htAG6JqUmOUgDNn/f9yY9J8UjfLjwzwOVEt4MWmgJAdvmxyrsR5KIFA/6+kUHGY0eUA==", "dev": true }, "node-releases": { @@ -4527,28 +4709,28 @@ } }, "@wordpress/reusable-blocks": { - "version": "3.0.19", - "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-3.0.19.tgz", - "integrity": "sha512-EU4Vo3ETTTN5DAQCrgh3AOuVRsZCrIJ1LcRgGJfFBSEJe6Sto3pxxj3ZtI+Goc4U553q3M/qpghHZNo1JZcfew==", + "version": "3.0.24", + "resolved": "https://registry.npmjs.org/@wordpress/reusable-blocks/-/reusable-blocks-3.0.24.tgz", + "integrity": "sha512-jDopywKele6dAC1KJ+CGBwh10qjC4XfvzlP6sUXCrbKjaSkop3yErQNWexYv5vnJ/ZuBCVoQM3QKlHkqwkYYOw==", "requires": { - "@wordpress/block-editor": "^8.0.13", + "@wordpress/block-editor": "^8.0.18", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", "@wordpress/element": "^4.0.4", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", "@wordpress/notices": "^3.2.8", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "lodash": "^4.17.21" } }, "@wordpress/rich-text": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-5.0.7.tgz", - "integrity": "sha512-oroNrJFJw9DNVielMdel/EeJNwD/bGzKPEAL0cp1AbilcS4jNxBW7oR+hOOv/ZQGH+1iDmOhwhOdERP4n78s3A==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@wordpress/rich-text/-/rich-text-5.0.8.tgz", + "integrity": "sha512-RjIbgP/C0OL2H+66TD2xt5KSi6N9lrj4bnYSdfhAoRZTjWvrtsyryaIRPbz4QZQvd/uMxsR651R1dFoL3+vZuA==", "requires": { "@babel/runtime": "^7.16.0", "@wordpress/a11y": "^3.2.4", @@ -4567,9 +4749,9 @@ } }, "@wordpress/scripts": { - "version": "19.2.2", - "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-19.2.2.tgz", - "integrity": "sha512-cH1NVhBKScNHIHXc3Af7FBOdsZBrA72IJVcZwUx79/BJVEhPVG3B9Kn4xkXP9RtYCkWETQ+s/KodzolL9RuHmQ==", + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/@wordpress/scripts/-/scripts-19.2.4.tgz", + "integrity": "sha512-klkfjBOPfr/RT/3Tvmx+gLbZ+dxq5L0dJQHCHxEURMRW/A8SfJJPtmC29L9sE1KhO3zUMWxrkn2L6HhSzbvQbA==", "dev": true, "requires": { "@svgr/webpack": "^5.5.0", @@ -4604,7 +4786,7 @@ "markdownlint": "^0.23.1", "markdownlint-cli": "^0.27.1", "merge-deep": "^3.0.3", - "mini-css-extract-plugin": "^2.1.0", + "mini-css-extract-plugin": "^2.5.0", "minimist": "^1.2.0", "npm-package-json-lint": "^5.0.0", "postcss": "^8.2.15", @@ -4761,9 +4943,9 @@ } }, "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "browserslist": { @@ -4780,9 +4962,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001291", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001291.tgz", - "integrity": "sha512-roMV5V0HNGgJ88s42eE70sstqGW/gwFndosYrikHthw98N5tLnOTxFqMLQjZVRxTWFlJ4rn+MsgXrR7MDPY4jA==", + "version": "1.0.30001300", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001300.tgz", + "integrity": "sha512-cVjiJHWGcNlJi8TZVKNMnvMid3Z3TTdDHmLDzlOdIiZq138Exvo0G+G0wTdVYolxKb4AYwC+38pxodiInVtJSA==", "dev": true }, "commander": { @@ -4792,18 +4974,18 @@ "dev": true }, "css-declaration-sorter": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.3.tgz", - "integrity": "sha512-SvjQjNRZgh4ULK1LDJ2AduPKUKxIqmtU7ZAyi47BTV+M90Qvxr9AB6lKlLbDUfXqI9IQeYA8LbAsCZPpJEV3aA==", + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.1.4.tgz", + "integrity": "sha512-lpfkqS0fctcmZotJGhnxkIyJWvBXgpyi2wsFd4J8VB7wzyrT6Ch/3Q+FMNJpjK4gu1+GN5khOnpU2ZVKrLbhCw==", "dev": true, "requires": { "timsort": "^0.3.0" } }, "css-select": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", - "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "requires": { "boolbase": "^1.0.0", @@ -4830,49 +5012,49 @@ "dev": true }, "cssnano": { - "version": "5.0.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.14.tgz", - "integrity": "sha512-qzhRkFvBhv08tbyKCIfWbxBXmkIpLl1uNblt8SpTHkgLfON5OCPX/CCnkdNmEosvo8bANQYmTTMEgcVBlisHaw==", + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.0.15.tgz", + "integrity": "sha512-ppZsS7oPpi2sfiyV5+i+NbB/3GtQ+ab2Vs1azrZaXWujUSN4o+WdTxlCZIMcT9yLW3VO/5yX3vpyDaQ1nIn8CQ==", "dev": true, "requires": { - "cssnano-preset-default": "^5.1.9", + "cssnano-preset-default": "^5.1.10", "lilconfig": "^2.0.3", "yaml": "^1.10.2" } }, "cssnano-preset-default": { - "version": "5.1.9", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.9.tgz", - "integrity": "sha512-RhkEucqlQ+OxEi14K1p8gdXcMQy1mSpo7P1oC44oRls7BYIj8p+cht4IFBFV3W4iOjTP8EUB33XV1fX9KhDzyA==", + "version": "5.1.10", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.1.10.tgz", + "integrity": "sha512-BcpSzUVygHMOnp9uG5rfPzTOCb0GAHQkqtUQx8j1oMNF9A1Q8hziOOhiM4bdICpmrBIU85BE64RD5XGYsVQZNA==", "dev": true, "requires": { "css-declaration-sorter": "^6.0.3", - "cssnano-utils": "^2.0.1", - "postcss-calc": "^8.0.0", - "postcss-colormin": "^5.2.2", + "cssnano-utils": "^3.0.0", + "postcss-calc": "^8.2.0", + "postcss-colormin": "^5.2.3", "postcss-convert-values": "^5.0.2", "postcss-discard-comments": "^5.0.1", "postcss-discard-duplicates": "^5.0.1", "postcss-discard-empty": "^5.0.1", - "postcss-discard-overridden": "^5.0.1", + "postcss-discard-overridden": "^5.0.2", "postcss-merge-longhand": "^5.0.4", - "postcss-merge-rules": "^5.0.3", - "postcss-minify-font-values": "^5.0.1", - "postcss-minify-gradients": "^5.0.3", - "postcss-minify-params": "^5.0.2", - "postcss-minify-selectors": "^5.1.0", + "postcss-merge-rules": "^5.0.4", + "postcss-minify-font-values": "^5.0.2", + "postcss-minify-gradients": "^5.0.4", + "postcss-minify-params": "^5.0.3", + "postcss-minify-selectors": "^5.1.1", "postcss-normalize-charset": "^5.0.1", - "postcss-normalize-display-values": "^5.0.1", - "postcss-normalize-positions": "^5.0.1", - "postcss-normalize-repeat-style": "^5.0.1", - "postcss-normalize-string": "^5.0.1", - "postcss-normalize-timing-functions": "^5.0.1", - "postcss-normalize-unicode": "^5.0.1", + "postcss-normalize-display-values": "^5.0.2", + "postcss-normalize-positions": "^5.0.2", + "postcss-normalize-repeat-style": "^5.0.2", + "postcss-normalize-string": "^5.0.2", + "postcss-normalize-timing-functions": "^5.0.2", + "postcss-normalize-unicode": "^5.0.2", "postcss-normalize-url": "^5.0.4", - "postcss-normalize-whitespace": "^5.0.1", - "postcss-ordered-values": "^5.0.2", + "postcss-normalize-whitespace": "^5.0.2", + "postcss-ordered-values": "^5.0.3", "postcss-reduce-initial": "^5.0.2", - "postcss-reduce-transforms": "^5.0.1", + "postcss-reduce-transforms": "^5.0.2", "postcss-svgo": "^5.0.3", "postcss-unique-selectors": "^5.0.2" } @@ -4906,9 +5088,9 @@ } }, "electron-to-chromium": { - "version": "1.4.25", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.25.tgz", - "integrity": "sha512-bTwub9Y/76EiNmfaiJih+hAy6xn7Ns95S4KvI2NuKNOz8TEEKKQUu44xuy0PYMudjM9zdjKRS1bitsUvHTfuUg==", + "version": "1.4.47", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.47.tgz", + "integrity": "sha512-ZHc8i3/cgeCRK/vC7W2htAG6JqUmOUgDNn/f9yY9J8UjfLjwzwOVEt4MWmgJAdvmxyrsR5KIFA/6+kUHGY0eUA==", "dev": true }, "enhanced-resolve": { @@ -4948,16 +5130,31 @@ "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", "dev": true }, + "graceful-fs": { + "version": "4.2.9", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", + "integrity": "sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==", + "dev": true + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, "jest-worker": { - "version": "27.4.5", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.5.tgz", - "integrity": "sha512-f2s8kEdy15cv9r7q4KkzGXvlY0JTcmCbMHZBfSQDwW77REr45IDWwd0lksDFeVHH2jJ5pqb90T77XscrjeGzzg==", + "version": "27.4.6", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz", + "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==", "dev": true, "requires": { "@types/node": "*", @@ -5004,9 +5201,9 @@ } }, "postcss-calc": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.0.0.tgz", - "integrity": "sha512-5NglwDrcbiy8XXfPM11F3HeC6hoT9W7GUH/Zi5U/p7u3Irv4rHhdDcIZwG0llHXV4ftsBjpfWMXAnXNl4lnt8g==", + "version": "8.2.2", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.2.tgz", + "integrity": "sha512-B5R0UeB4zLJvxNt1FVCaDZULdzsKLPc6FhjFJ+xwFiq7VG4i9cuaJLxVjNtExNK8ocm3n2o4unXXLiVX1SCqxA==", "dev": true, "requires": { "postcss-selector-parser": "^6.0.2", @@ -5014,9 +5211,9 @@ } }, "postcss-colormin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.2.tgz", - "integrity": "sha512-tSEe3NpqWARUTidDlF0LntPkdlhXqfDFuA1yslqpvvGAfpZ7oBaw+/QXd935NKm2U9p4PED0HDZlzmMk7fVC6g==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.2.3.tgz", + "integrity": "sha512-dra4xoAjub2wha6RUXAgadHEn2lGxbj8drhFcIGLOMn914Eu7DkPUurugDXgstwttCYkJtZ/+PkWRWdp3UHRIA==", "dev": true, "requires": { "browserslist": "^4.16.6", @@ -5053,9 +5250,9 @@ "dev": true }, "postcss-discard-overridden": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.1.tgz", - "integrity": "sha512-Y28H7y93L2BpJhrdUR2SR2fnSsT+3TVx1NmVQLbcnZWwIUpJ7mfcTC6Za9M2PG6w8j7UQRfzxqn8jU2VwFxo3Q==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.0.2.tgz", + "integrity": "sha512-+56BLP6NSSUuWUXjRgAQuho1p5xs/hU5Sw7+xt9S3JSg+7R6+WMGnJW7Hre/6tTuZ2xiXMB42ObkiZJ2hy/Pew==", "dev": true }, "postcss-merge-longhand": { @@ -5069,21 +5266,21 @@ } }, "postcss-merge-rules": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.3.tgz", - "integrity": "sha512-cEKTMEbWazVa5NXd8deLdCnXl+6cYG7m2am+1HzqH0EnTdy8fRysatkaXb2dEnR+fdaDxTvuZ5zoBdv6efF6hg==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.0.4.tgz", + "integrity": "sha512-yOj7bW3NxlQxaERBB0lEY1sH5y+RzevjbdH4DBJurjKERNpknRByFNdNe+V72i5pIZL12woM9uGdS5xbSB+kDQ==", "dev": true, "requires": { "browserslist": "^4.16.6", "caniuse-api": "^3.0.0", - "cssnano-utils": "^2.0.1", + "cssnano-utils": "^3.0.0", "postcss-selector-parser": "^6.0.5" }, "dependencies": { "postcss-selector-parser": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", - "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", + "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -5093,41 +5290,41 @@ } }, "postcss-minify-font-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.1.tgz", - "integrity": "sha512-7JS4qIsnqaxk+FXY1E8dHBDmraYFWmuL6cgt0T1SWGRO5bzJf8sUoelwa4P88LEWJZweHevAiDKxHlofuvtIoA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.0.2.tgz", + "integrity": "sha512-R6MJZryq28Cw0AmnyhXrM7naqJZZLoa1paBltIzh2wM7yb4D45TLur+eubTQ4jCmZU9SGeZdWsc5KcSoqTMeTg==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-gradients": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.3.tgz", - "integrity": "sha512-Z91Ol22nB6XJW+5oe31+YxRsYooxOdFKcbOqY/V8Fxse1Y3vqlNRpi1cxCqoACZTQEhl+xvt4hsbWiV5R+XI9Q==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.0.4.tgz", + "integrity": "sha512-RVwZA7NC4R4J76u8X0Q0j+J7ItKUWAeBUJ8oEEZWmtv3Xoh19uNJaJwzNpsydQjk6PkuhRrK+YwwMf+c+68EYg==", "dev": true, "requires": { "colord": "^2.9.1", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-params": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.2.tgz", - "integrity": "sha512-qJAPuBzxO1yhLad7h2Dzk/F7n1vPyfHfCCh5grjGfjhi1ttCnq4ZXGIW77GSrEbh9Hus9Lc/e/+tB4vh3/GpDg==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.0.3.tgz", + "integrity": "sha512-NY92FUikE+wralaiVexFd5gwb7oJTIDhgTNeIw89i1Ymsgt4RWiPXfz3bg7hDy4NL6gepcThJwOYNtZO/eNi7Q==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", "browserslist": "^4.16.6", - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-minify-selectors": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.0.tgz", - "integrity": "sha512-NzGBXDa7aPsAcijXZeagnJBKBPMYLaJJzB8CQh6ncvyl2sIndLVWfbcDi0SBjRWk5VqEjXvf8tYwzoKf4Z07og==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.1.1.tgz", + "integrity": "sha512-TOzqOPXt91O2luJInaVPiivh90a2SIK5Nf1Ea7yEIM/5w+XA5BGrZGUSW8aEx9pJ/oNj7ZJBhjvigSiBV+bC1Q==", "dev": true, "requires": { "alphanum-sort": "^1.0.2", @@ -5135,9 +5332,9 @@ }, "dependencies": { "postcss-selector-parser": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", - "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", + "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -5153,61 +5350,58 @@ "dev": true }, "postcss-normalize-display-values": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.1.tgz", - "integrity": "sha512-uupdvWk88kLDXi5HEyI9IaAJTE3/Djbcrqq8YgjvAVuzgVuqIk3SuJWUisT2gaJbZm1H9g5k2w1xXilM3x8DjQ==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.0.2.tgz", + "integrity": "sha512-RxXoJPUR0shSjkMMzgEZDjGPrgXUVYyWA/YwQRicb48H15OClPuaDR7tYokLAlGZ2tCSENEN5WxjgxSD5m4cUw==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-positions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.1.tgz", - "integrity": "sha512-rvzWAJai5xej9yWqlCb1OWLd9JjW2Ex2BCPzUJrbaXmtKtgfL8dBMOOMTX6TnvQMtjk3ei1Lswcs78qKO1Skrg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.0.2.tgz", + "integrity": "sha512-tqghWFVDp2btqFg1gYob1etPNxXLNh3uVeWgZE2AQGh6b2F8AK2Gj36v5Vhyh+APwIzNjmt6jwZ9pTBP+/OM8g==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-repeat-style": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.1.tgz", - "integrity": "sha512-syZ2itq0HTQjj4QtXZOeefomckiV5TaUO6ReIEabCh3wgDs4Mr01pkif0MeVwKyU/LHEkPJnpwFKRxqWA/7O3w==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.0.2.tgz", + "integrity": "sha512-/rIZn8X9bBzC7KvY4iKUhXUGW3MmbXwfPF23jC9wT9xTi7kAvgj8sEgwxjixBmoL6MVa4WOgxNz2hAR6wTK8tw==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-string": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.1.tgz", - "integrity": "sha512-Ic8GaQ3jPMVl1OEn2U//2pm93AXUcF3wz+OriskdZ1AOuYV25OdgS7w9Xu2LO5cGyhHCgn8dMXh9bO7vi3i9pA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.0.2.tgz", + "integrity": "sha512-zaI1yzwL+a/FkIzUWMQoH25YwCYxi917J4pYm1nRXtdgiCdnlTkx5eRzqWEC64HtRa06WCJ9TIutpb6GmW4gFw==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-timing-functions": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.1.tgz", - "integrity": "sha512-cPcBdVN5OsWCNEo5hiXfLUnXfTGtSFiBU9SK8k7ii8UD7OLuznzgNRYkLZow11BkQiiqMcgPyh4ZqXEEUrtQ1Q==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.0.2.tgz", + "integrity": "sha512-Ao0PP6MoYsRU1LxeVUW740ioknvdIUmfr6uAA3xWlQJ9s69/Tupy8qwhuKG3xWfl+KvLMAP9p2WXF9cwuk/7Bg==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-unicode": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.1.tgz", - "integrity": "sha512-kAtYD6V3pK0beqrU90gpCQB7g6AOfP/2KIPCVBKJM2EheVsBQmx/Iof+9zR9NFKLAx4Pr9mDhogB27pmn354nA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.0.2.tgz", + "integrity": "sha512-3y/V+vjZ19HNcTizeqwrbZSUsE69ZMRHfiiyLAJb7C7hJtYmM4Gsbajy7gKagu97E8q5rlS9k8FhojA8cpGhWw==", "dev": true, "requires": { - "browserslist": "^4.16.0", - "postcss-value-parser": "^4.1.0" + "browserslist": "^4.16.6", + "postcss-value-parser": "^4.2.0" } }, "postcss-normalize-url": { @@ -5221,22 +5415,22 @@ } }, "postcss-normalize-whitespace": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.1.tgz", - "integrity": "sha512-iPklmI5SBnRvwceb/XH568yyzK0qRVuAG+a1HFUsFRf11lEJTiQQa03a4RSCQvLKdcpX7XsI1Gen9LuLoqwiqA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.0.2.tgz", + "integrity": "sha512-CXBx+9fVlzSgbk0IXA/dcZn9lXixnQRndnsPC5ht3HxlQ1bVh77KQDL1GffJx1LTzzfae8ftMulsjYmO2yegxA==", "dev": true, "requires": { - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-ordered-values": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.2.tgz", - "integrity": "sha512-8AFYDSOYWebJYLyJi3fyjl6CqMEG/UVworjiyK1r573I56kb3e879sCJLGvR3merj+fAdPpVplXKQZv+ey6CgQ==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.0.3.tgz", + "integrity": "sha512-T9pDS+P9bWeFvqivXd5ACzQmrCmHjv3ZP+djn8E1UZY7iK79pFSm7i3WbKw2VSmFmdbMm8sQ12OPcNpzBo3Z2w==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "cssnano-utils": "^3.0.0", + "postcss-value-parser": "^4.2.0" } }, "postcss-reduce-initial": { @@ -5250,13 +5444,12 @@ } }, "postcss-reduce-transforms": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.1.tgz", - "integrity": "sha512-a//FjoPeFkRuAguPscTVmRQUODP+f3ke2HqFNgGPwdYnpeC29RZdCBvGRGTsKpMURb/I3p6jdKoBQ2zI+9Q7kA==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.0.2.tgz", + "integrity": "sha512-25HeDeFsgiPSUx69jJXZn8I06tMxLQJJNF5h7i9gsUg8iP4KOOJ8EX8fj3seeoLt3SLU2YDD6UPnDYVGUO7DEA==", "dev": true, "requires": { - "cssnano-utils": "^2.0.1", - "postcss-value-parser": "^4.1.0" + "postcss-value-parser": "^4.2.0" } }, "postcss-svgo": { @@ -5280,9 +5473,9 @@ }, "dependencies": { "postcss-selector-parser": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", - "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", + "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -5330,22 +5523,14 @@ "dev": true }, "source-map-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.0.tgz", - "integrity": "sha512-GKGWqWvYr04M7tn8dryIWvb0s8YM41z82iQv01yBtIylgxax0CwvSy6gc2Y02iuXwEfGWRlMicH0nvms9UZphw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", "dev": true, "requires": { "abab": "^2.0.5", - "iconv-lite": "^0.6.2", - "source-map-js": "^0.6.2" - }, - "dependencies": { - "source-map-js": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-0.6.2.tgz", - "integrity": "sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==", - "dev": true - } + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" } }, "source-map-support": { @@ -5447,9 +5632,9 @@ } }, "webpack": { - "version": "5.65.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.65.0.tgz", - "integrity": "sha512-Q5or2o6EKs7+oKmJo7LaqZaMOlDWQse9Tm5l1WAfU/ujLGN5Pb0SqGeVkN/4bpPmEqEP5RnVhiqsOtWtUVwGRw==", + "version": "5.66.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.66.0.tgz", + "integrity": "sha512-NJNtGT7IKpGzdW7Iwpn/09OXz9inIkeIQ/ibY6B+MdV1x6+uReqz/5z1L89ezWnpPDWpXF0TY5PCYKQdWVn8Vg==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -5466,7 +5651,7 @@ "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.4", + "graceful-fs": "^4.2.9", "json-parse-better-errors": "^1.0.2", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -5491,28 +5676,28 @@ } }, "webpack-sources": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.2.tgz", - "integrity": "sha512-cp5qdmHnu5T8wRg2G3vZZHoJPN14aqQ89SyQ11NpGH5zEMDCclt49rzo+MaRazk7/UeILhAI+/sEtcM+7Fr0nw==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", "dev": true } } }, "@wordpress/server-side-render": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-3.0.17.tgz", - "integrity": "sha512-UIyywGUSlbOVFi1SNwI/uUmHmUJFX+N9XeBCAnS15PmfYflBkiuz9FPmZWoqLoOE4uWTI7K9lAP1tkY80lotIA==", + "version": "3.0.21", + "resolved": "https://registry.npmjs.org/@wordpress/server-side-render/-/server-side-render-3.0.21.tgz", + "integrity": "sha512-Baw5CrSyJDDXtlYWMOgbSnQBrOiemOrZraIQnj1+T4DayzbChZDtoFgN4bHse2MZNxfcr3UqsqguC/70dQpsBw==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", + "@wordpress/api-fetch": "^5.2.7", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", "@wordpress/data": "^6.1.5", "@wordpress/deprecated": "^3.2.3", "@wordpress/element": "^4.0.4", "@wordpress/i18n": "^4.2.4", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "lodash": "^4.17.21" } }, @@ -5547,9 +5732,9 @@ } }, "@wordpress/url": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.3.1.tgz", - "integrity": "sha512-lEuvkNjPoVuzYy0zn6n9gfMdNlHJW36EsPI2yDzMICjIAV5lRv1/uOg2Ls3lbDaRR2vm1FAiMpB2RAMzfR8Nfg==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/@wordpress/url/-/url-3.3.2.tgz", + "integrity": "sha512-9fSWz2AhCakucqj+kltW05fHfMzaN7trWBz3PxC+5Gdxa4uwt8D0lAl2yKyS3ApxcpEOXgHTJUNzlYebXj6ZJQ==", "requires": { "@babel/runtime": "^7.16.0", "lodash": "^4.17.21" @@ -5572,23 +5757,23 @@ "integrity": "sha512-iG1Hq56RK3N6AJqAD1sRLWRIJatfYn+NrPyrfqRNZNYXHM8Vj/s7ABNMbIU0Y99vXkBE83rvCdbMkugNoI2jXA==" }, "@wordpress/widgets": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-2.0.19.tgz", - "integrity": "sha512-TSPV0pYikUXvSH3L3TToLFDXwB0gjRVcL7/TpQyFiaN5QfONOGpxZBoCbW0l3w+z/ZhzTtwe/BwX25TFmEHILg==", + "version": "2.0.25", + "resolved": "https://registry.npmjs.org/@wordpress/widgets/-/widgets-2.0.25.tgz", + "integrity": "sha512-AbPGja1JvwdkZHwVgM27mnv/BhIAOLlUefKxX1LlaROX8IakmnZ0FPYqrVY6f+BSP4GsR8VEXTJJlajZXWEVfw==", "requires": { "@babel/runtime": "^7.16.0", - "@wordpress/api-fetch": "^5.2.6", - "@wordpress/block-editor": "^8.0.13", + "@wordpress/api-fetch": "^5.2.7", + "@wordpress/block-editor": "^8.0.18", "@wordpress/blocks": "^11.1.5", - "@wordpress/components": "^19.2.0", + "@wordpress/components": "^19.2.3", "@wordpress/compose": "^5.0.7", - "@wordpress/core-data": "^4.0.9", + "@wordpress/core-data": "^4.0.11", "@wordpress/data": "^6.1.5", "@wordpress/element": "^4.0.4", "@wordpress/i18n": "^4.2.4", "@wordpress/icons": "^6.1.1", "@wordpress/notices": "^3.2.8", - "@wordpress/url": "^3.3.1", + "@wordpress/url": "^3.3.2", "classnames": "^2.3.1", "lodash": "^4.17.21" } @@ -5740,9 +5925,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -8211,9 +8396,9 @@ }, "dependencies": { "css-select": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.0.tgz", - "integrity": "sha512-6YVG6hsH9yIb/si3Th/is8Pex7qnVHO6t7q7U6TIUnkQASGbS8tnUDBftnPynLNnuUl/r2+PTd0ekiiq7R0zJw==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.2.1.tgz", + "integrity": "sha512-/aUslKhzkTNCQUB2qTX84lVmfia9NyjP3WpDGtj/WxhwBzWBYUV3DgUpurHTme8UTPcPlAD1DJ+b0nN/t50zDQ==", "dev": true, "requires": { "boolbase": "^1.0.0", @@ -8467,7 +8652,7 @@ "clone-deep": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", - "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "integrity": "sha512-we+NuQo2DHhSl+DP6jlUiAhyAjBQrYnpOk15rN6c6JSPScjiCLh8IbSU+VTcph6YS3o7mASE8a0+gbZ7ChLpgg==", "dev": true, "requires": { "for-own": "^0.1.3", @@ -8499,7 +8684,7 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true }, "coa": { @@ -8691,7 +8876,7 @@ "computed-style": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/computed-style/-/computed-style-0.1.4.tgz", - "integrity": "sha1-fzRP2FhLLkJb7cpKGvwOMAuwXXQ=" + "integrity": "sha512-WpAmaKbMNmS3OProfHIdJiNleNJdgUrJfbKArXua28QF7+0CoZjlLn0lp6vlc+dl5r2/X9GQiQRQQU4BzSa69w==" }, "concat-map": { "version": "0.0.1", @@ -9001,9 +9186,9 @@ } }, "core-js-pure": { - "version": "3.20.0", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.0.tgz", - "integrity": "sha512-qsrbIwWSEEYOM7z616jAVgwhuDDtPLwZSpUsU3vyUkHYqKTf/uwOJBZg2V7lMurYWkpVlaVOxBrfX0Q3ppvjfg==", + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", + "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==", "dev": true }, "core-js-url-browser": { @@ -9379,9 +9564,9 @@ "dev": true }, "cssnano-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-2.0.1.tgz", - "integrity": "sha512-i8vLRZTnEH9ubIyfdZCAdIdgnHAUeQeByEeQ2I7oTilvP9oHO6RScpeq3GsFUVqeB8uZgOQ9pw8utofNn32hhQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.0.0.tgz", + "integrity": "sha512-Pzs7/BZ6OgT+tXXuF12DKR8SmSbzUeVYCtMBbS8lI0uAm3mrYmkyqCXXPsQESI6kmLfEVBppbdVY/el3hg3nAA==", "dev": true }, "csso": { @@ -9468,7 +9653,7 @@ "cwd": { "version": "0.10.0", "resolved": "https://registry.npmjs.org/cwd/-/cwd-0.10.0.tgz", - "integrity": "sha1-FyQAaUBXwioTsM8WFix+S3p/5Wc=", + "integrity": "sha512-YGZxdTTL9lmLkCUTpg4j0zQ7IhRB5ZmqNBbGCl3Tg6MP/d5/6sY7L5mmTjzbc6JKgVZYiqTQTNhPFsbXNGlRaA==", "dev": true, "requires": { "find-pkg": "^0.1.2", @@ -9482,9 +9667,9 @@ "dev": true }, "damerau-levenshtein": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz", - "integrity": "sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, "dashdash": { @@ -10224,7 +10409,7 @@ "downloadjs": { "version": "1.4.7", "resolved": "https://registry.npmjs.org/downloadjs/-/downloadjs-1.4.7.tgz", - "integrity": "sha1-9p+W+UDg0FU9rCkROYZaPNAQHjw=" + "integrity": "sha512-LN1gO7+u9xjU5oEScGFKvXhYf7Y/empUIIEAGBs1LzUq/rg5duiDrkuH5A2lQGd5jfMOb9X9usDa2oVXwJ0U/Q==" }, "downshift": { "version": "6.1.7", @@ -10848,27 +11033,36 @@ "ms": "^2.1.1" } }, + "is-core-module": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } } } }, "eslint-module-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.1.tgz", - "integrity": "sha512-fjoetBXQZq2tSTWZ9yWVl2KuFrTZZH3V+9iD1V1RfpDgxzJR+mPd/KZmMiA8gbPqdBzpNiEHOuT7IYEWxrH0zQ==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.2.tgz", + "integrity": "sha512-zquepFnWCY2ISMFwD/DqzaM++H+7PDzOpUvotJWm/y1BAFt5R4oeULgdrTejKqLkz7MA/tgstsUMNYc7wNdTrg==", "dev": true, "requires": { "debug": "^3.2.7", - "find-up": "^2.1.0", - "pkg-dir": "^2.0.0" + "find-up": "^2.1.0" }, "dependencies": { "debug": { @@ -10922,22 +11116,13 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true - }, - "pkg-dir": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", - "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", - "dev": true, - "requires": { - "find-up": "^2.1.0" - } } } }, "eslint-plugin-import": { - "version": "2.25.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.3.tgz", - "integrity": "sha512-RzAVbby+72IB3iOEL8clzPLzL3wpDrlwjsTBAQXgyp5SeTqqY+0bFubwuo+y/HLhNZcXV4XqTBO4LGsfyHIDXg==", + "version": "2.25.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.25.4.tgz", + "integrity": "sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -10945,14 +11130,14 @@ "debug": "^2.6.9", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.6", - "eslint-module-utils": "^2.7.1", + "eslint-module-utils": "^2.7.2", "has": "^1.0.3", "is-core-module": "^2.8.0", "is-glob": "^4.0.3", "minimatch": "^3.0.4", "object.values": "^1.1.5", "resolve": "^1.20.0", - "tsconfig-paths": "^3.11.0" + "tsconfig-paths": "^3.12.0" }, "dependencies": { "call-bind": { @@ -11028,9 +11213,9 @@ "dev": true }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -11079,13 +11264,14 @@ } }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.21.0.tgz", + "integrity": "sha512-3wCbTpk5WJlyE4mSOtDLhqQmGFi0/TD9VPwmiolnk8U0wRgMEktqCXd3vy5buTO3tljvalNvKrjHEfrd2WpEKA==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "string.prototype.trimend": { @@ -11209,9 +11395,9 @@ } }, "eslint-plugin-react": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.27.1.tgz", - "integrity": "sha512-meyunDjMMYeWr/4EBLTV1op3iSG3mjT/pz5gti38UzfM4OPpNc2m0t2xvKCOMU5D6FSdd34BIMFOvQbW+i8GAA==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.28.0.tgz", + "integrity": "sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==", "dev": true, "requires": { "array-includes": "^3.1.4", @@ -11713,7 +11899,7 @@ "expand-tilde": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-1.2.2.tgz", - "integrity": "sha1-C4HrqJflo9MdHD0QL48BRB5VlEk=", + "integrity": "sha512-rtmc+cjLZqnu9dSYosX9EWmSJhTwpACgJQTfj4hgg2JjOD/6SIQalZrt4a3aQeh++oNxkazcaxrhPUj6+g5G/Q==", "dev": true, "requires": { "os-homedir": "^1.0.1" @@ -12019,9 +12205,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -12066,9 +12252,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { @@ -12091,7 +12277,7 @@ "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", "dev": true }, "fast-memoize": { @@ -12294,7 +12480,7 @@ "find-file-up": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/find-file-up/-/find-file-up-0.1.3.tgz", - "integrity": "sha1-z2gJG8+fMApA2kEbN9pczlovvqA=", + "integrity": "sha512-mBxmNbVyjg1LQIIpgO8hN+ybWBgDQK8qjht+EbrTCGmmPV/sc7RF1i9stPTD6bpvXZywBdrwRYxhSdJv867L6A==", "dev": true, "requires": { "fs-exists-sync": "^0.1.0", @@ -12310,7 +12496,7 @@ "find-pkg": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/find-pkg/-/find-pkg-0.1.2.tgz", - "integrity": "sha1-G9wiwG42NlUy4qJIBGhUuXiNpVc=", + "integrity": "sha512-0rnQWcFwZr7eO0513HahrWafsc3CTFioEB7DRiEYCUM/70QXSY8f3mCST17HXLcPvEhzH/Ty/Bxd72ZZsr/yvw==", "dev": true, "requires": { "find-file-up": "^0.1.2" @@ -12447,7 +12633,7 @@ "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "integrity": "sha512-SKmowqGTJoPzLO1T0BBJpkfp3EMacCMOuH40hOUbrbzElVktk4DioXVM99QkLCyKoiuOmyjgcWMpVz2xjE7LZw==", "dev": true, "requires": { "for-in": "^1.0.1" @@ -12570,7 +12756,7 @@ "fs-exists-sync": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz", - "integrity": "sha1-mC1ok6+RjnLQjeyehnP/K1qNat0=", + "integrity": "sha512-cR/vflFyPZtrN6b38ZyWxpWdhlXrzZEBawlpBQMq7033xVY7/kg0GDMBK5jg8lDYQckdJ5x/YC88lM3C7VMsLg==", "dev": true }, "fs-extra": { @@ -12913,7 +13099,7 @@ "global-modules": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-0.2.3.tgz", - "integrity": "sha1-6lo77ULG1s6ZWk+KEmm12uIjgo0=", + "integrity": "sha512-JeXuCbvYzYXcwE6acL9V2bAOeSIGl4dD+iwLY9iUx2VBJJ80R18HCn+JCwHM9Oegdfya3lEkGCdaRkSyc10hDA==", "dev": true, "requires": { "global-prefix": "^0.1.4", @@ -12923,7 +13109,7 @@ "is-windows": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", "dev": true } } @@ -12931,7 +13117,7 @@ "global-prefix": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-0.1.5.tgz", - "integrity": "sha1-jTvGuNo8qBEqFg2NSW/wRiv+948=", + "integrity": "sha512-gOPiyxcD9dJGCEArAhF4Hd0BAqvAe/JzERP7tYumE4yIkmIedPUVXcJFWbV3/p/ovIIvKjkrTk+f1UVkq7vvbw==", "dev": true, "requires": { "homedir-polyfill": "^1.0.0", @@ -12943,7 +13129,7 @@ "is-windows": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-0.2.0.tgz", - "integrity": "sha1-3hqm1j6indJIc3tp8f+LgALSEIw=", + "integrity": "sha512-n67eJYmXbniZB7RF4I/FTjK1s6RPOCTxhYrVYLRaCt3lF0mpWZPKr3T2LSZAqyjQsxR2qMmGYXXzK0YWwcPM1Q==", "dev": true }, "which": { @@ -12993,7 +13179,7 @@ "globjoin": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", - "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, "globrex": { @@ -13076,7 +13262,7 @@ "gradient-parser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/gradient-parser/-/gradient-parser-0.1.5.tgz", - "integrity": "sha1-DH4heVWeXOfY1x9EI6+TcQCyJIw=" + "integrity": "sha512-+uPlcVbjrKOnTzvz0MjTj7BfACj8OmxIa1moIjJV7btvhUMSJk0D47RfDCgDrZE3dYMz9Cf5xKJwnrKLjUq0KQ==" }, "growly": { "version": "1.3.0", @@ -13977,9 +14163,9 @@ "integrity": "sha512-BXUKIkUuh6cmmxzi5OIbUJxrG8OAk2MqoL1DtO3Wo9D2faJg2ph5ntyuQeLqaHJmzER6H5tllCDA9ZnNe9BVGg==" }, "history": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/history/-/history-5.2.0.tgz", - "integrity": "sha512-uPSF6lAJb3nSePJ43hN3eKj1dTWpN9gMod0ZssbFTIsen+WehTmEadgL+kg78xLJFdRfrrC//SavDzmRVdE+Ig==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/history/-/history-5.3.0.tgz", + "integrity": "sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==", "requires": { "@babel/runtime": "^7.7.6" } @@ -14495,7 +14681,7 @@ "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=" + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" }, "import-fresh": { "version": "3.3.0", @@ -14513,9 +14699,9 @@ "dev": true }, "import-local": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.3.tgz", - "integrity": "sha512-bE9iaUY3CXH8Cwfan/abDKAxe1KGT9kyGsBPqf6DMK/z0a2OzAsrukeYNgIH6cH5Xr452jb1TUL8rSfCLjZ9uA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "requires": { "pkg-dir": "^4.2.0", @@ -15325,9 +15511,9 @@ }, "dependencies": { "@babel/parser": { - "version": "7.16.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.6.tgz", - "integrity": "sha512-Gr86ujcNuPDnNOY8mi383Hvi8IYrJVJYuf3XcuBM/Dgd+bINn/7tHqsj+tKkoreMbmGsFLsltI/JJd8fOFWGDQ==", + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.16.8.tgz", + "integrity": "sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw==", "dev": true }, "semver": { @@ -15401,9 +15587,9 @@ } }, "istanbul-reports": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.1.tgz", - "integrity": "sha512-q1kvhAXWSsXfMjCdNHNPKZZv94OlspKnoGv+R9RGbnqOOQ0VbNfLFgQDVgi7hHenKsndGq3/o0OBdzDXthWcNw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz", + "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==", "dev": true, "requires": { "html-escaper": "^2.0.0", @@ -15784,9 +15970,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { @@ -15971,9 +16157,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { @@ -16145,9 +16331,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { @@ -16558,9 +16744,9 @@ } }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "to-regex-range": { @@ -16589,9 +16775,9 @@ }, "dependencies": { "camelcase": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.1.tgz", - "integrity": "sha512-tVI4q5jjFV5CavAU8DXfza/TJcZutVKo/5Foskmsqcm0MsL91moHvwiGNnqaa2o6PF/7yT5ikDRcVcl8Rj6LCA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true } } @@ -16803,9 +16989,9 @@ }, "dependencies": { "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "agent-base": { @@ -17000,7 +17186,7 @@ "json-stable-stringify-without-jsonify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, "json-stringify-safe": { @@ -17067,14 +17253,14 @@ } }, "jszip": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.7.1.tgz", - "integrity": "sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", "requires": { "lie": "~3.3.0", "pako": "~1.0.2", "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" + "setimmediate": "^1.0.5" } }, "just-extend": { @@ -17503,7 +17689,7 @@ "line-height": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/line-height/-/line-height-0.3.1.tgz", - "integrity": "sha1-SxIF7d4YKHKl76PI9iCzGHqcVMk=", + "integrity": "sha512-YExecgqPwnp5gplD2+Y8e8A5+jKpr25+DzMbFdI1/1UAr0FJrTFv4VkHLf8/6B590i1wUPJWMKKldkd/bdQ//w==", "requires": { "computed-style": "~0.1.3" } @@ -17601,7 +17787,7 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", "dev": true }, "lodash.differencewith": { @@ -17661,7 +17847,7 @@ "lodash.truncate": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", "dev": true }, "lodash.uniq": { @@ -18383,9 +18569,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.4.5.tgz", - "integrity": "sha512-oEIhRucyn1JbT/1tU2BhnwO6ft1jjH1iCX9Gc59WFMg0n5773rQU0oyQ0zzeYFFuBfONaRbQJyGoPtuNseMxjA==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.5.2.tgz", + "integrity": "sha512-Lwgq9qLNyBK6yNLgzssXnq4r2+mB9Mz3cJWlM8kseysHIvTicFhDNimFgY94jjqlwhNzLPsq8wv4X+vOHtMdYA==", "dev": true, "requires": { "schema-utils": "^4.0.0" @@ -18398,9 +18584,9 @@ "dev": true }, "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -18525,7 +18711,7 @@ "mixin-object": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", - "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "integrity": "sha512-ALGF1Jt9ouehcaXaHhn6t1yGWRqGaHkPFndtFVHfZXOvkIZ/yoGaSi0AHVTafb3ZBGg4dr/bDwnaEKqCXzchMA==", "dev": true, "requires": { "for-in": "^0.1.3", @@ -18535,7 +18721,7 @@ "for-in": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", - "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "integrity": "sha512-F0to7vbBSHP8E3l6dCjxNOLuSFAACIxFy3UehTUlG7svlXi37HHsDkyVcHo0Pq8QwrE+pXvWSVX3ZT1T9wAZ9g==", "dev": true } } @@ -18647,9 +18833,9 @@ "optional": true }, "nanoid": { - "version": "3.1.30", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.30.tgz", - "integrity": "sha512-zJpuPDwOv8D2zq2WRoMe1HsfZthVewpel9CAvTfc/2mBD1uUT/agc5f7GHGWXlYkFvi1mVxe4IjvP2HNrop7nQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.2.0.tgz", + "integrity": "sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==", "dev": true }, "nanomatch": { @@ -18682,7 +18868,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, "nearley": { @@ -18782,7 +18968,7 @@ "node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true }, "node-libs-browser": { @@ -18929,7 +19115,7 @@ "normalize-wheel": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/normalize-wheel/-/normalize-wheel-1.0.1.tgz", - "integrity": "sha1-rsiGr/2wRQcNhWRH32Ls+GFG7EU=" + "integrity": "sha512-1OnlAPZ3zgrk8B91HyRj+eVv+kS5u+Z0SCsak6Xil/kmgEia50ga7zfkumayonZrImffAxPU/5WcyGhzetHNPA==" }, "npm-conf": { "version": "1.1.3", @@ -19024,16 +19210,16 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, @@ -20605,7 +20791,7 @@ "postcss-media-query-parser": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", - "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true }, "postcss-merge-longhand": { @@ -20896,7 +21082,7 @@ "postcss-resolve-nested-selector": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", "dev": true }, "postcss-safe-parser": { @@ -21099,13 +21285,13 @@ } }, "prop-types": { - "version": "15.7.2", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", - "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", "requires": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", - "react-is": "^16.8.1" + "react-is": "^16.13.1" } }, "prop-types-exact": { @@ -22358,7 +22544,7 @@ "resolve-dir": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-0.1.1.tgz", - "integrity": "sha1-shklmlYC+sXFxJatiUpujMQwJh4=", + "integrity": "sha512-QxMPqI6le2u0dCLyiGzgy92kjkkL6zO0XyvHzjdTNH3zM6e5Hz3BwG6+aEyNgiQ5Xz6PwTwgQEj3U50dByPKIA==", "dev": true, "requires": { "expand-tilde": "^1.2.2", @@ -22564,7 +22750,7 @@ "rungen": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/rungen/-/rungen-0.3.2.tgz", - "integrity": "sha1-QAwJ6+kU57F+C27zJjQA/Cq8fLM=" + "integrity": "sha512-zWl10xu2D7zoR8zSC2U6bg5bYF6T/Wk7rxwp8IPaJH7f0Ge21G03kNHVgHR7tyVkSSfAOG0Rqf/Cl38JftSmtw==" }, "rxjs": { "version": "5.5.12", @@ -22988,11 +23174,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" - }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -23019,8 +23200,7 @@ "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" }, "setprototypeof": { "version": "1.1.1", @@ -23040,7 +23220,7 @@ "shallow-clone": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", - "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "integrity": "sha512-J1zdXCky5GmNnuauESROVu31MQSnLoYvlyEn6j2Ztk6Q5EHFIhxkMhYcv6vuDzl2XEzoRr856QwzMgWM/TmZgw==", "dev": true, "requires": { "is-extendable": "^0.1.1", @@ -23052,7 +23232,7 @@ "kind-of": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", - "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "integrity": "sha512-0u8i1NZ/mg0b+W3MGGw5I7+6Eib2nx72S/QvXa0hYjEkjTknYmEYQJwGu3mLC0BrhtJjtQafTkyRUQ75Kx0LVg==", "dev": true, "requires": { "is-buffer": "^1.0.2" @@ -23061,7 +23241,7 @@ "lazy-cache": { "version": "0.2.7", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", - "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "integrity": "sha512-gkX52wvU/R8DVMMt78ATVPFMJqfW8FPz1GZ1sVHBVQHmu/WvhIWE4cE1GBzhJNFicDeYhnwp6Rl35BcAIM3YOQ==", "dev": true } } @@ -24105,9 +24285,9 @@ "dev": true }, "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", "dev": true, "requires": { "call-bind": "^1.0.2", @@ -24292,7 +24472,7 @@ "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true }, "strip-dirs": { @@ -24361,7 +24541,7 @@ "style-search": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", - "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", "dev": true }, "style-value-types": { @@ -24565,23 +24745,23 @@ } }, "globby": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.4.tgz", - "integrity": "sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg==", + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", "slash": "^3.0.0" } }, "hosted-git-info": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.0.2.tgz", - "integrity": "sha512-c9OGXbZ3guC/xOlCg1Ci/VgWlwsqDv1yMQL1CWqXDL0hDjXuNcq0zuR4xqPSuasI3kqFDhqSyTjREz5gzq0fXg==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", "dev": true, "requires": { "lru-cache": "^6.0.0" @@ -24594,9 +24774,9 @@ "dev": true }, "is-core-module": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.0.tgz", - "integrity": "sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" @@ -24699,15 +24879,15 @@ "dev": true }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "postcss-selector-parser": { - "version": "6.0.7", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.7.tgz", - "integrity": "sha512-U+b/Deoi4I/UmE6KOVPpnhS7I7AYdKbhGcat+qTQ27gycvaACvNEw11ba6RrkwVmDVRW7sigWgLj4/KbbJjeDA==", + "version": "6.0.8", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.8.tgz", + "integrity": "sha512-D5PG53d209Z1Uhcc0qAZ5U3t5HagH3cxu+WLZ22jt3gLUpXM4eXXfiO14jiDWST3NNooX/E8wISfOhZ9eIjGTQ==", "dev": true, "requires": { "cssesc": "^3.0.0", @@ -24915,6 +25095,12 @@ } } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "svg-parser": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", @@ -24924,7 +25110,7 @@ "svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", - "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, "svgo": { @@ -24968,9 +25154,9 @@ "dev": true }, "table": { - "version": "6.7.5", - "resolved": "https://registry.npmjs.org/table/-/table-6.7.5.tgz", - "integrity": "sha512-LFNeryOqiQHqCVKzhkymKwt6ozeRhlm8IL1mE8rNUurkir4heF6PzMyRgaTa4tlyPTGGgXuvVOF/OLWiH09Lqw==", + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", "dev": true, "requires": { "ajv": "^8.0.1", @@ -24981,9 +25167,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -25191,7 +25377,7 @@ "text-table": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, "throat": { @@ -25315,7 +25501,7 @@ "to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" }, "to-object-path": { "version": "0.3.0", @@ -26397,9 +26583,9 @@ }, "dependencies": { "acorn": { - "version": "8.6.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.6.0.tgz", - "integrity": "sha512-U1riIR+lBSNi3IbxtaHOIKdH8sLFv3NYfNv8sg7ZsNhcfl4HF2++BfqqrNAxoCLQW1iiylOj76ecnaUxz+z9yw==", + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.0.tgz", + "integrity": "sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==", "dev": true }, "acorn-walk": { diff --git a/package.json b/package.json index dfbb0cf248a70..7d873f62152ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "WordPress", - "version": "5.9.0", + "version": "5.9.12", "description": "WordPress is open source software you can use to create a beautiful website, blog, or app.", "repository": { "type": "svn", @@ -27,9 +27,9 @@ "@wordpress/babel-preset-default": "6.4.1", "@wordpress/custom-templated-path-webpack-plugin": "2.1.0", "@wordpress/dependency-extraction-webpack-plugin": "3.2.1", - "@wordpress/e2e-test-utils": "5.4.10", + "@wordpress/e2e-test-utils": "5.4.11", "@wordpress/library-export-default-webpack-plugin": "2.2.0", - "@wordpress/scripts": "19.2.2", + "@wordpress/scripts": "19.2.4", "autoprefixer": "^9.8.8", "chalk": "4.1.2", "check-node-version": "4.1.0", @@ -78,57 +78,57 @@ }, "dependencies": { "@wordpress/a11y": "3.2.4", - "@wordpress/annotations": "2.2.8", - "@wordpress/api-fetch": "5.2.6", + "@wordpress/annotations": "2.2.9", + "@wordpress/api-fetch": "5.2.7", "@wordpress/autop": "3.2.3", "@wordpress/blob": "3.2.2", - "@wordpress/block-directory": "3.0.20", - "@wordpress/block-editor": "8.0.13", - "@wordpress/block-library": "6.0.18", + "@wordpress/block-directory": "3.0.32", + "@wordpress/block-editor": "8.0.18", + "@wordpress/block-library": "6.0.31", "@wordpress/block-serialization-default-parser": "4.2.3", "@wordpress/blocks": "11.1.5", - "@wordpress/components": "19.2.0", + "@wordpress/components": "19.2.3", "@wordpress/compose": "5.0.7", - "@wordpress/core-data": "4.0.9", - "@wordpress/customize-widgets": "2.0.20", + "@wordpress/core-data": "4.0.11", + "@wordpress/customize-widgets": "2.0.32", "@wordpress/data": "6.1.5", - "@wordpress/data-controls": "2.2.8", + "@wordpress/data-controls": "2.2.9", "@wordpress/date": "4.2.3", "@wordpress/deprecated": "3.2.3", "@wordpress/dom": "3.2.7", "@wordpress/dom-ready": "3.2.3", - "@wordpress/edit-post": "5.0.20", - "@wordpress/edit-site": "3.0.20", - "@wordpress/edit-widgets": "3.1.15", - "@wordpress/editor": "12.0.16", + "@wordpress/edit-post": "5.0.32", + "@wordpress/edit-site": "3.0.32", + "@wordpress/edit-widgets": "3.1.27", + "@wordpress/editor": "12.0.22", "@wordpress/element": "4.0.4", "@wordpress/escape-html": "2.2.3", - "@wordpress/format-library": "3.0.19", + "@wordpress/format-library": "3.0.24", "@wordpress/hooks": "3.2.2", "@wordpress/html-entities": "3.2.3", "@wordpress/i18n": "4.2.4", "@wordpress/icons": "6.1.1", - "@wordpress/interface": "4.1.15", + "@wordpress/interface": "4.1.18", "@wordpress/is-shallow-equal": "4.2.1", "@wordpress/keyboard-shortcuts": "3.0.7", "@wordpress/keycodes": "3.2.4", - "@wordpress/list-reusable-blocks": "3.0.17", - "@wordpress/media-utils": "3.0.5", + "@wordpress/list-reusable-blocks": "3.0.21", + "@wordpress/media-utils": "3.0.6", "@wordpress/notices": "3.2.8", - "@wordpress/nux": "5.0.17", + "@wordpress/nux": "5.0.20", "@wordpress/plugins": "4.0.7", "@wordpress/primitives": "3.0.4", "@wordpress/priority-queue": "2.2.3", "@wordpress/redux-routine": "4.2.2", - "@wordpress/reusable-blocks": "3.0.19", - "@wordpress/rich-text": "5.0.7", - "@wordpress/server-side-render": "3.0.17", + "@wordpress/reusable-blocks": "3.0.24", + "@wordpress/rich-text": "5.0.8", + "@wordpress/server-side-render": "3.0.21", "@wordpress/shortcode": "3.2.3", "@wordpress/token-list": "2.2.2", - "@wordpress/url": "3.3.1", + "@wordpress/url": "3.3.2", "@wordpress/viewport": "4.0.7", "@wordpress/warning": "2.2.2", - "@wordpress/widgets": "2.0.19", + "@wordpress/widgets": "2.0.25", "@wordpress/wordcount": "3.2.3", "backbone": "1.4.0", "clipboard": "2.0.8", diff --git a/src/js/_enqueues/admin/common.js b/src/js/_enqueues/admin/common.js index f105133d1cf70..5e15893d1f9e6 100644 --- a/src/js/_enqueues/admin/common.js +++ b/src/js/_enqueues/admin/common.js @@ -1695,25 +1695,6 @@ $( function() { } } ); - // Close sidebar when focus moves outside of toggle and sidebar. - $( '#wp-admin-bar-menu-toggle, #adminmenumain' ).on( 'focusout', function() { - var focusIsInToggle, focusIsInSidebar; - - if ( ! $wpwrap.hasClass( 'wp-responsive-open' ) ) { - return; - } - - // A brief delay is required to allow focus to switch to another element. - setTimeout( function() { - focusIsInToggle = $.contains( $( '#wp-admin-bar-menu-toggle' )[0], $( ':focus' )[0] ); - focusIsInSidebar = $.contains( $( '#adminmenumain' )[0], $( ':focus' )[0] ); - - if ( ! focusIsInToggle && ! focusIsInSidebar ) { - $( '#wp-admin-bar-menu-toggle' ).trigger( 'click.wp-responsive' ); - } - }, 10 ); - } ); - // Add menu events. $adminmenu.on( 'click.wp-responsive', 'li.wp-has-submenu > a', function( event ) { if ( ! $adminmenu.data('wp-responsive') ) { diff --git a/src/js/_enqueues/lib/ajax-response.js b/src/js/_enqueues/lib/ajax-response.js index 659b91e0233fd..b764823742b71 100644 --- a/src/js/_enqueues/lib/ajax-response.js +++ b/src/js/_enqueues/lib/ajax-response.js @@ -27,7 +27,9 @@ window.wpAjax = jQuery.extend( { var th = jQuery(this), child = jQuery(this.firstChild), response; response = { action: th.attr('action'), what: child.get(0).nodeName, id: child.attr('id'), oldId: child.attr('old_id'), position: child.attr('position') }; response.data = jQuery( 'response_data', child ).text(); - successmsg += response.data; + if ( jQuery( 'body' ).hasClass( 'edit-tags-php' ) ) { + successmsg += response.data; + } response.supplemental = {}; if ( !jQuery( 'supplemental', child ).children().each( function() { response.supplemental[this.nodeName] = jQuery(this).text(); @@ -50,7 +52,7 @@ window.wpAjax = jQuery.extend( { if ( err.length ) { re.html( '
' + err + '
' ); wp.a11y.speak( err ); - } else { + } else if ( successmsg.length ) { re.html( '

' + successmsg + '

'); jQuery(document).trigger( 'wp-updates-notice-added' ); wp.a11y.speak( successmsg ); diff --git a/src/js/_enqueues/lib/nav-menu.js b/src/js/_enqueues/lib/nav-menu.js index 7633d924533e6..33d159d4ff9e3 100644 --- a/src/js/_enqueues/lib/nav-menu.js +++ b/src/js/_enqueues/lib/nav-menu.js @@ -876,7 +876,7 @@ * Handle toggling bulk selection checkboxes for menu items. * * @since 5.8.0 - */ + */ attachBulkSelectButtonListeners : function() { var that = this; @@ -895,7 +895,7 @@ * Enable bulk selection checkboxes for menu items. * * @since 5.8.0 - */ + */ enableBulkSelection : function() { var checkbox = $( '#menu-to-edit .menu-item-checkbox' ); @@ -912,7 +912,7 @@ * Disable bulk selection checkboxes for menu items. * * @since 5.8.0 - */ + */ disableBulkSelection : function() { var checkbox = $( '#menu-to-edit .menu-item-checkbox' ); @@ -936,7 +936,7 @@ * Listen for state changes on bulk action checkboxes. * * @since 5.8.0 - */ + */ attachMenuCheckBoxListeners : function() { var that = this; @@ -949,7 +949,7 @@ * Create delete button to remove menu items from collection. * * @since 5.8.0 - */ + */ attachMenuItemDeleteButton : function() { var that = this; @@ -990,7 +990,7 @@ * List menu items awaiting deletion. * * @since 5.8.0 - */ + */ attachPendingMenuItemsListForDeletion : function() { $( '#post-body-content' ).on( 'change', '.menu-item-checkbox', function() { var menuItemName, menuItemType, menuItemID, listedMenuItem; @@ -1009,13 +1009,18 @@ } if ( this.checked === true ) { - $( '#pending-menu-items-to-delete ul' ).append( - '
  • ' + - '' + menuItemName + ' ' + - '(' + menuItemType + ')' + - '' + - '
  • ' - ); + var $li = $( '
  • ', { 'data-menu-item-id': menuItemID } ); + $li.append( $( '', { + 'class': 'pending-menu-item-name', + text: menuItemName + } ) ); + $li.append( ' ' ); + $li.append( $( '', { + 'class': 'pending-menu-item-type', + text: '(' + menuItemType + ')' + } ) ); + $li.append( $( '', { 'class': 'separator' } ) ); + $( '#pending-menu-items-to-delete ul' ).append( $li ); } $( '#pending-menu-items-to-delete li .separator' ).html( ', ' ); @@ -1027,7 +1032,7 @@ * Set status of bulk delete checkbox. * * @since 5.8.0 - */ + */ setBulkDeleteCheckboxStatus : function() { var that = this; var checkbox = $( '#menu-to-edit .menu-item-checkbox' ); @@ -1051,7 +1056,7 @@ * Set status of menu items removal button. * * @since 5.8.0 - */ + */ setRemoveSelectedButtonStatus : function() { var button = $( '.menu-items-delete' ); @@ -1404,9 +1409,8 @@ }, eventOnClickMenuSave : function() { - var locs = '', - menuName = $('#menu-name'), - menuNameVal = menuName.val(); + var menuName = $('#menu-name'), + menuNameVal = menuName.val(); // Cancel and warn if invalid menu name. if ( ! menuNameVal || ! menuNameVal.replace( /\s+/, '' ) ) { @@ -1414,10 +1418,17 @@ return false; } // Copy menu theme locations. + // Note: This appears to be dead code since #nav-menu-theme-locations no longer exists, perhaps removed in r32842. + var $updateNavMenu = $('#update-nav-menu'); $('#nav-menu-theme-locations select').each(function() { - locs += ''; + $updateNavMenu.append( + $( '', { + type: 'hidden', + name: this.name, + value: $( this ).val() + } ) + ); }); - $('#update-nav-menu').append( locs ); // Update menu item position data. api.menuList.find('.menu-item-data-position').val( function(index) { return index + 1; } ); window.onbeforeunload = null; @@ -1460,7 +1471,10 @@ $item; if( ! $items.length ) { - $('.categorychecklist', panel).html( '
  • ' + wp.i18n.__( 'No results found.' ) + '

  • ' ); + var li = $( '
  • ' ); + var p = $( '

    ', { text: wp.i18n.__( 'No results found.' ) } ); + li.append( p ); + $('.categorychecklist', panel).empty().append( li ); $( '.spinner', panel ).removeClass( 'is-active' ); wrapper.addClass( 'has-no-menu-item' ); return; diff --git a/src/js/_enqueues/vendor/jquery/jquery.query.js b/src/js/_enqueues/vendor/jquery/jquery.query.js index ea5801ff2b820..62ef72c1242d3 100644 --- a/src/js/_enqueues/vendor/jquery/jquery.query.js +++ b/src/js/_enqueues/vendor/jquery/jquery.query.js @@ -5,7 +5,7 @@ * Date: 2009/8/13 * * @author Blair Mitchelmore - * @version 2.1.7 + * @version 2.2.3 * **/ -new function(e){var d=e.separator||"&";var c=e.spaces===false?false:true;var a=e.suffix===false?"":"[]";var g=e.prefix===false?false:true;var b=g?e.hash===true?"#":"?":"";var f=e.numbers===false?false:true;jQuery.query=new function(){var h=function(m,l){return m!=undefined&&m!==null&&(!!l?m.constructor==l:true)};var i=function(r){var l,q=/\[([^[]*)\]/g,n=/^([^[]+)(\[.*\])?$/.exec(r),o=n[1],p=[];while(l=q.exec(n[2])){p.push(l[1])}return[o,p]};var k=function(s,r,q){var t,p=r.shift();if(typeof s!="object"){s=null}if(p===""){if(!s){s=[]}if(h(s,Array)){s.push(r.length==0?q:k(null,r.slice(0),q))}else{if(h(s,Object)){var n=0;while(s[n++]!=null){}s[--n]=r.length==0?q:k(s[n],r.slice(0),q)}else{s=[];s.push(r.length==0?q:k(null,r.slice(0),q))}}}else{if(p&&p.match(/^\s*[0-9]+\s*$/)){var m=parseInt(p,10);if(!s){s=[]}s[m]=r.length==0?q:k(s[m],r.slice(0),q)}else{if(p){var m=p.replace(/^\s*|\s*$/g,"");if(!s){s={}}if(h(s,Array)){var l={};for(var n=0;n0){r.push(b)}r.push(q.join(d));return r.join("")}};return new j(location.search,location.hash)}}(jQuery.query||{}); +!function(e){var t=e.separator||"&",l=!1!==e.spaces,n=(e.suffix,!1!==e.prefix?!0===e.hash?"#":"?":""),i=!1!==e.numbers;jQuery.query=new function(){function c(e,t){return null!=e&&null!==e&&(!t||e.constructor==t)}function u(e){for(var t,n=/\[([^[]*)\]/g,r=/^([^[]+)(\[.*\])?$/.exec(e),e=r[1],u=[];t=n.exec(r[2]);)u.push(t[1]);return[e,u]}function o(e,t,n){var r=t.shift();if("object"!=typeof e&&(e=null),""===r)if(c(e=e||[],Array))e.push(0==t.length?n:o(null,t.slice(0),n));else if(c(e,Object)){for(var u=0;null!=e[u++];);e[--u]=0==t.length?n:o(e[u],t.slice(0),n)}else(e=[]).push(0==t.length?n:o(null,t.slice(0),n));else if(r&&r.match(/^\s*[0-9]+\s*$/))(e=e||[])[i=parseInt(r,10)]=0==t.length?n:o(e[i],t.slice(0),n);else{if(!r)return n;var i=r.replace(/^\s*|\s*$/g,"");if(c(e=e||{},Array)){for(var s={},u=0;u", options: { appendTo: null, @@ -62,6 +62,7 @@ $.widget( "ui.autocomplete", { requestIndex: 0, pending: 0, + liveRegionTimer: null, _create: function() { @@ -103,58 +104,58 @@ $.widget( "ui.autocomplete", { suppressKeyPressRepeat = false; var keyCode = $.ui.keyCode; switch ( event.keyCode ) { - case keyCode.PAGE_UP: - suppressKeyPress = true; - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - suppressKeyPress = true; - this._move( "nextPage", event ); - break; - case keyCode.UP: - suppressKeyPress = true; - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - suppressKeyPress = true; - this._keyEvent( "next", event ); - break; - case keyCode.ENTER: - - // when menu is open and has focus - if ( this.menu.active ) { - - // #6055 - Opera still allows the keypress to occur - // which causes forms to submit + case keyCode.PAGE_UP: suppressKeyPress = true; - event.preventDefault(); - this.menu.select( event ); - } - break; - case keyCode.TAB: - if ( this.menu.active ) { - this.menu.select( event ); - } - break; - case keyCode.ESCAPE: - if ( this.menu.element.is( ":visible" ) ) { - if ( !this.isMultiLine ) { - this._value( this.term ); + this._move( "previousPage", event ); + break; + case keyCode.PAGE_DOWN: + suppressKeyPress = true; + this._move( "nextPage", event ); + break; + case keyCode.UP: + suppressKeyPress = true; + this._keyEvent( "previous", event ); + break; + case keyCode.DOWN: + suppressKeyPress = true; + this._keyEvent( "next", event ); + break; + case keyCode.ENTER: + + // when menu is open and has focus + if ( this.menu.active ) { + + // #6055 - Opera still allows the keypress to occur + // which causes forms to submit + suppressKeyPress = true; + event.preventDefault(); + this.menu.select( event ); } - this.close( event ); - - // Different browsers have different default behavior for escape - // Single press can mean undo or clear - // Double press in IE means clear the whole form - event.preventDefault(); - } - break; - default: - suppressKeyPressRepeat = true; + break; + case keyCode.TAB: + if ( this.menu.active ) { + this.menu.select( event ); + } + break; + case keyCode.ESCAPE: + if ( this.menu.element.is( ":visible" ) ) { + if ( !this.isMultiLine ) { + this._value( this.term ); + } + this.close( event ); + + // Different browsers have different default behavior for escape + // Single press can mean undo or clear + // Double press in IE means clear the whole form + event.preventDefault(); + } + break; + default: + suppressKeyPressRepeat = true; - // search timeout should be triggered before the input value is changed - this._searchTimeout( event ); - break; + // search timeout should be triggered before the input value is changed + this._searchTimeout( event ); + break; } }, keypress: function( event ) { @@ -172,18 +173,18 @@ $.widget( "ui.autocomplete", { // Replicate some key handlers to allow them to repeat in Firefox and Opera var keyCode = $.ui.keyCode; switch ( event.keyCode ) { - case keyCode.PAGE_UP: - this._move( "previousPage", event ); - break; - case keyCode.PAGE_DOWN: - this._move( "nextPage", event ); - break; - case keyCode.UP: - this._keyEvent( "previous", event ); - break; - case keyCode.DOWN: - this._keyEvent( "next", event ); - break; + case keyCode.PAGE_UP: + this._move( "previousPage", event ); + break; + case keyCode.PAGE_DOWN: + this._move( "nextPage", event ); + break; + case keyCode.UP: + this._keyEvent( "previous", event ); + break; + case keyCode.DOWN: + this._keyEvent( "next", event ); + break; } }, input: function( event ) { @@ -263,8 +264,10 @@ $.widget( "ui.autocomplete", { // Announce the value in the liveRegion label = ui.item.attr( "aria-label" ) || item.value; if ( label && String.prototype.trim.call( label ).length ) { - this.liveRegion.children().hide(); - $( "

    " ).text( label ).appendTo( this.liveRegion ); + clearTimeout( this.liveRegionTimer ); + this.liveRegionTimer = this._delay( function() { + this.liveRegion.html( $( "
    " ).text( label ) ); + }, 100 ); } }, menuselect: function( event, ui ) { @@ -574,7 +577,7 @@ $.widget( "ui.autocomplete", { return; } if ( this.menu.isFirstItem() && /^previous/.test( direction ) || - this.menu.isLastItem() && /^next/.test( direction ) ) { + this.menu.isLastItem() && /^next/.test( direction ) ) { if ( !this.isMultiLine ) { this._value( this.term ); @@ -659,8 +662,10 @@ $.widget( "ui.autocomplete", $.ui.autocomplete, { } else { message = this.options.messages.noResults; } - this.liveRegion.children().hide(); - $( "
    " ).text( message ).appendTo( this.liveRegion ); + clearTimeout( this.liveRegionTimer ); + this.liveRegionTimer = this._delay( function() { + this.liveRegion.html( $( "
    " ).text( message ) ); + }, 100 ); } } ); diff --git a/src/js/_enqueues/vendor/jquery/ui/button.js b/src/js/_enqueues/vendor/jquery/ui/button.js index cb9c8c0c6bbd9..71013ee4c8ea0 100644 --- a/src/js/_enqueues/vendor/jquery/ui/button.js +++ b/src/js/_enqueues/vendor/jquery/ui/button.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Button 1.13.0 + * jQuery UI Button 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -41,7 +41,7 @@ "use strict"; $.widget( "ui.button", { - version: "1.13.0", + version: "1.13.1", defaultElement: "
    " + - ( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "
    " : "" ) : "" ); + ( ( numMonths[ 0 ] > 0 && col === numMonths[ 1 ] - 1 ) ? "
    " : "" ) : "" ); group += calender; } html += group; @@ -1956,7 +1956,7 @@ $.extend( Datepicker.prototype, { /* Generate the month and year header. */ _generateMonthYearHeader: function( inst, drawMonth, drawYear, minDate, maxDate, - secondary, monthNames, monthNamesShort ) { + secondary, monthNames, monthNamesShort ) { var inMinYear, inMaxYear, month, years, thisYear, determineYear, year, endYear, changeMonth = this._get( inst, "changeMonth" ), @@ -2001,7 +2001,7 @@ $.extend( Datepicker.prototype, { determineYear = function( value ) { var year = ( value.match( /c[+\-].*/ ) ? drawYear + parseInt( value.substring( 1 ), 10 ) : ( value.match( /[+\-].*/ ) ? thisYear + parseInt( value, 10 ) : - parseInt( value, 10 ) ) ); + parseInt( value, 10 ) ) ); return ( isNaN( year ) ? thisYear : year ); }; year = determineYear( years[ 0 ] ); @@ -2086,7 +2086,7 @@ $.extend( Datepicker.prototype, { _canAdjustMonth: function( inst, offset, curYear, curMonth ) { var numMonths = this._getNumberOfMonths( inst ), date = this._daylightSavingAdjust( new Date( curYear, - curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) ); + curMonth + ( offset < 0 ? offset : numMonths[ 0 ] * numMonths[ 1 ] ), 1 ) ); if ( offset < 0 ) { date.setDate( this._getDaysInMonth( date.getFullYear(), date.getMonth() ) ); @@ -2102,18 +2102,18 @@ $.extend( Datepicker.prototype, { minYear = null, maxYear = null, years = this._get( inst, "yearRange" ); - if ( years ) { - yearSplit = years.split( ":" ); - currentYear = new Date().getFullYear(); - minYear = parseInt( yearSplit[ 0 ], 10 ); - maxYear = parseInt( yearSplit[ 1 ], 10 ); - if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) { - minYear += currentYear; - } - if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) { - maxYear += currentYear; - } + if ( years ) { + yearSplit = years.split( ":" ); + currentYear = new Date().getFullYear(); + minYear = parseInt( yearSplit[ 0 ], 10 ); + maxYear = parseInt( yearSplit[ 1 ], 10 ); + if ( yearSplit[ 0 ].match( /[+\-].*/ ) ) { + minYear += currentYear; } + if ( yearSplit[ 1 ].match( /[+\-].*/ ) ) { + maxYear += currentYear; + } + } return ( ( !minDate || date.getTime() >= minDate.getTime() ) && ( !maxDate || date.getTime() <= maxDate.getTime() ) && @@ -2139,7 +2139,7 @@ $.extend( Datepicker.prototype, { inst.currentYear = inst.selectedYear; } var date = ( day ? ( typeof day === "object" ? day : - this._daylightSavingAdjust( new Date( year, month, day ) ) ) : + this._daylightSavingAdjust( new Date( year, month, day ) ) ) : this._daylightSavingAdjust( new Date( inst.currentYear, inst.currentMonth, inst.currentDay ) ) ); return this.formatDate( this._get( inst, "dateFormat" ), date, this._getFormatConfig( inst ) ); } @@ -2153,14 +2153,14 @@ $.extend( Datepicker.prototype, { function datepicker_bindHover( dpDiv ) { var selector = "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"; return dpDiv.on( "mouseout", selector, function() { - $( this ).removeClass( "ui-state-hover" ); - if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) { - $( this ).removeClass( "ui-datepicker-prev-hover" ); - } - if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) { - $( this ).removeClass( "ui-datepicker-next-hover" ); - } - } ) + $( this ).removeClass( "ui-state-hover" ); + if ( this.className.indexOf( "ui-datepicker-prev" ) !== -1 ) { + $( this ).removeClass( "ui-datepicker-prev-hover" ); + } + if ( this.className.indexOf( "ui-datepicker-next" ) !== -1 ) { + $( this ).removeClass( "ui-datepicker-next-hover" ); + } + } ) .on( "mouseover", selector, datepicker_handleMouseover ); } @@ -2213,11 +2213,11 @@ $.fn.datepicker = function( options ) { var otherArgs = Array.prototype.slice.call( arguments, 1 ); if ( typeof options === "string" && ( options === "isDisabled" || options === "getDate" || options === "widget" ) ) { return $.datepicker[ "_" + options + "Datepicker" ]. - apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) ); + apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) ); } if ( options === "option" && arguments.length === 2 && typeof arguments[ 1 ] === "string" ) { return $.datepicker[ "_" + options + "Datepicker" ]. - apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) ); + apply( $.datepicker, [ this[ 0 ] ].concat( otherArgs ) ); } return this.each( function() { if ( typeof options === "string" ) { @@ -2232,7 +2232,7 @@ $.fn.datepicker = function( options ) { $.datepicker = new Datepicker(); // singleton instance $.datepicker.initialized = false; $.datepicker.uuid = new Date().getTime(); -$.datepicker.version = "1.13.0"; +$.datepicker.version = "1.13.1"; return $.datepicker; diff --git a/src/js/_enqueues/vendor/jquery/ui/dialog.js b/src/js/_enqueues/vendor/jquery/ui/dialog.js index 4d6483746daed..7687bc0f03e8d 100644 --- a/src/js/_enqueues/vendor/jquery/ui/dialog.js +++ b/src/js/_enqueues/vendor/jquery/ui/dialog.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Dialog 1.13.0 + * jQuery UI Dialog 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -39,7 +39,7 @@ "use strict"; $.widget( "ui.dialog", { - version: "1.13.0", + version: "1.13.1", options: { appendTo: "body", autoOpen: true, @@ -354,7 +354,7 @@ $.widget( "ui.dialog", { this._on( this.uiDialog, { keydown: function( event ) { if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode && - event.keyCode === $.ui.keyCode.ESCAPE ) { + event.keyCode === $.ui.keyCode.ESCAPE ) { event.preventDefault(); this.close( event ); return; @@ -369,13 +369,13 @@ $.widget( "ui.dialog", { last = tabbables.last(); if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) && - !event.shiftKey ) { + !event.shiftKey ) { this._delay( function() { first.trigger( "focus" ); } ); event.preventDefault(); } else if ( ( event.target === first[ 0 ] || - event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) { + event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) { this._delay( function() { last.trigger( "focus" ); } ); diff --git a/src/js/_enqueues/vendor/jquery/ui/draggable.js b/src/js/_enqueues/vendor/jquery/ui/draggable.js index 63875f0c5942c..91327578ad687 100644 --- a/src/js/_enqueues/vendor/jquery/ui/draggable.js +++ b/src/js/_enqueues/vendor/jquery/ui/draggable.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Draggable 1.13.0 + * jQuery UI Draggable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -34,7 +34,7 @@ "use strict"; $.widget( "ui.draggable", $.ui.mouse, { - version: "1.13.0", + version: "1.13.1", widgetEventPrefix: "drag", options: { addClasses: true, @@ -102,7 +102,7 @@ $.widget( "ui.draggable", $.ui.mouse, { // Among others, prevent a drag on a resizable-handle if ( this.helper || o.disabled || - $( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) { + $( event.target ).closest( ".ui-resizable-handle" ).length > 0 ) { return false; } @@ -185,8 +185,8 @@ $.widget( "ui.draggable", $.ui.mouse, { this.scrollParent = this.helper.scrollParent( true ); this.offsetParent = this.helper.offsetParent(); this.hasFixedAncestor = this.helper.parents().filter( function() { - return $( this ).css( "position" ) === "fixed"; - } ).length > 0; + return $( this ).css( "position" ) === "fixed"; + } ).length > 0; //The element's absolute position on the page minus margins this.positionAbs = this.element.offset(); @@ -294,8 +294,8 @@ $.widget( "ui.draggable", $.ui.mouse, { } if ( ( this.options.revert === "invalid" && !dropped ) || - ( this.options.revert === "valid" && dropped ) || - this.options.revert === true || ( typeof this.options.revert === "function" && + ( this.options.revert === "valid" && dropped ) || + this.options.revert === true || ( typeof this.options.revert === "function" && this.options.revert.call( this.element, dropped ) ) ) { $( this.helper ).animate( @@ -388,7 +388,7 @@ $.widget( "ui.draggable", $.ui.mouse, { } if ( helper[ 0 ] !== this.element[ 0 ] && - !( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) { + !( /(fixed|absolute)/ ).test( helper.css( "position" ) ) ) { helper.css( "position", "absolute" ); } @@ -441,7 +441,7 @@ $.widget( "ui.draggable", $.ui.mouse, { // the document, which means that the scroll is included in the initial calculation of the // offset of the parent, and never recalculated upon drag if ( this.cssPosition === "absolute" && this.scrollParent[ 0 ] !== document && - $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) { + $.contains( this.scrollParent[ 0 ], this.offsetParent[ 0 ] ) ) { po.left += this.scrollParent.scrollLeft(); po.top += this.scrollParent.scrollTop(); } @@ -508,10 +508,10 @@ $.widget( "ui.draggable", $.ui.mouse, { $( window ).scrollLeft() - this.offset.relative.left - this.offset.parent.left, $( window ).scrollTop() - this.offset.relative.top - this.offset.parent.top, $( window ).scrollLeft() + $( window ).width() - - this.helperProportions.width - this.margins.left, + this.helperProportions.width - this.margins.left, $( window ).scrollTop() + - ( $( window ).height() || document.body.parentNode.scrollHeight ) - - this.helperProportions.height - this.margins.top + ( $( window ).height() || document.body.parentNode.scrollHeight ) - + this.helperProportions.height - this.margins.top ]; return; } @@ -522,7 +522,7 @@ $.widget( "ui.draggable", $.ui.mouse, { 0, $( document ).width() - this.helperProportions.width - this.margins.left, ( $( document ).height() || document.body.parentNode.scrollHeight ) - - this.helperProportions.height - this.margins.top + this.helperProportions.height - this.margins.top ]; return; } @@ -547,21 +547,21 @@ $.widget( "ui.draggable", $.ui.mouse, { this.containment = [ ( parseInt( c.css( "borderLeftWidth" ), 10 ) || 0 ) + - ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), + ( parseInt( c.css( "paddingLeft" ), 10 ) || 0 ), ( parseInt( c.css( "borderTopWidth" ), 10 ) || 0 ) + - ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), + ( parseInt( c.css( "paddingTop" ), 10 ) || 0 ), ( isUserScrollable ? Math.max( ce.scrollWidth, ce.offsetWidth ) : ce.offsetWidth ) - - ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - - this.helperProportions.width - - this.margins.left - - this.margins.right, + ( parseInt( c.css( "borderRightWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingRight" ), 10 ) || 0 ) - + this.helperProportions.width - + this.margins.left - + this.margins.right, ( isUserScrollable ? Math.max( ce.scrollHeight, ce.offsetHeight ) : ce.offsetHeight ) - - ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - - ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - - this.helperProportions.height - - this.margins.top - - this.margins.bottom + ( parseInt( c.css( "borderBottomWidth" ), 10 ) || 0 ) - + ( parseInt( c.css( "paddingBottom" ), 10 ) || 0 ) - + this.helperProportions.height - + this.margins.top - + this.margins.bottom ]; this.relativeContainer = c; }, @@ -666,18 +666,18 @@ $.widget( "ui.draggable", $.ui.mouse, { this.originalPageY ) / o.grid[ 1 ] ) * o.grid[ 1 ] : this.originalPageY; pageY = containment ? ( ( top - this.offset.click.top >= containment[ 1 ] || top - this.offset.click.top > containment[ 3 ] ) ? - top : - ( ( top - this.offset.click.top >= containment[ 1 ] ) ? - top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top; + top : + ( ( top - this.offset.click.top >= containment[ 1 ] ) ? + top - o.grid[ 1 ] : top + o.grid[ 1 ] ) ) : top; left = o.grid[ 0 ] ? this.originalPageX + Math.round( ( pageX - this.originalPageX ) / o.grid[ 0 ] ) * o.grid[ 0 ] : this.originalPageX; pageX = containment ? ( ( left - this.offset.click.left >= containment[ 0 ] || left - this.offset.click.left > containment[ 2 ] ) ? - left : - ( ( left - this.offset.click.left >= containment[ 0 ] ) ? - left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left; + left : + ( ( left - this.offset.click.left >= containment[ 0 ] ) ? + left - o.grid[ 0 ] : left + o.grid[ 0 ] ) ) : left; } if ( o.axis === "y" ) { @@ -851,8 +851,8 @@ $.ui.plugin.add( "draggable", "connectToSortable", { this.offset.click = draggable.offset.click; if ( this !== sortable && - this._intersectsWith( this.containerCache ) && - $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { + this._intersectsWith( this.containerCache ) && + $.contains( sortable.element[ 0 ], this.element[ 0 ] ) ) { innermostIntersecting = false; } @@ -1012,7 +1012,7 @@ $.ui.plugin.add( "draggable", "scroll", { } if ( i.scrollParentNotHidden[ 0 ] !== i.document[ 0 ] && - i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { + i.scrollParentNotHidden[ 0 ].tagName !== "HTML" ) { i.overflowOffset = i.scrollParentNotHidden.offset(); } }, @@ -1026,7 +1026,7 @@ $.ui.plugin.add( "draggable", "scroll", { if ( scrollParent !== document && scrollParent.tagName !== "HTML" ) { if ( !o.axis || o.axis !== "x" ) { if ( ( i.overflowOffset.top + scrollParent.offsetHeight ) - event.pageY < - o.scrollSensitivity ) { + o.scrollSensitivity ) { scrollParent.scrollTop = scrolled = scrollParent.scrollTop + o.scrollSpeed; } else if ( event.pageY - i.overflowOffset.top < o.scrollSensitivity ) { scrollParent.scrollTop = scrolled = scrollParent.scrollTop - o.scrollSpeed; @@ -1035,7 +1035,7 @@ $.ui.plugin.add( "draggable", "scroll", { if ( !o.axis || o.axis !== "y" ) { if ( ( i.overflowOffset.left + scrollParent.offsetWidth ) - event.pageX < - o.scrollSensitivity ) { + o.scrollSensitivity ) { scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft + o.scrollSpeed; } else if ( event.pageX - i.overflowOffset.left < o.scrollSensitivity ) { scrollParent.scrollLeft = scrolled = scrollParent.scrollLeft - o.scrollSpeed; @@ -1048,7 +1048,7 @@ $.ui.plugin.add( "draggable", "scroll", { if ( event.pageY - $( document ).scrollTop() < o.scrollSensitivity ) { scrolled = $( document ).scrollTop( $( document ).scrollTop() - o.scrollSpeed ); } else if ( $( window ).height() - ( event.pageY - $( document ).scrollTop() ) < - o.scrollSensitivity ) { + o.scrollSensitivity ) { scrolled = $( document ).scrollTop( $( document ).scrollTop() + o.scrollSpeed ); } } @@ -1059,7 +1059,7 @@ $.ui.plugin.add( "draggable", "scroll", { $( document ).scrollLeft() - o.scrollSpeed ); } else if ( $( window ).width() - ( event.pageX - $( document ).scrollLeft() ) < - o.scrollSensitivity ) { + o.scrollSensitivity ) { scrolled = $( document ).scrollLeft( $( document ).scrollLeft() + o.scrollSpeed ); @@ -1112,7 +1112,7 @@ $.ui.plugin.add( "draggable", "snap", { b = t + inst.snapElements[ i ].height; if ( x2 < l - d || x1 > r + d || y2 < t - d || y1 > b + d || - !$.contains( inst.snapElements[ i ].item.ownerDocument, + !$.contains( inst.snapElements[ i ].item.ownerDocument, inst.snapElements[ i ].item ) ) { if ( inst.snapElements[ i ].snapping ) { if ( inst.options.snap.release ) { diff --git a/src/js/_enqueues/vendor/jquery/ui/droppable.js b/src/js/_enqueues/vendor/jquery/ui/droppable.js index 05db6c8d09671..17aca5e721ce5 100644 --- a/src/js/_enqueues/vendor/jquery/ui/droppable.js +++ b/src/js/_enqueues/vendor/jquery/ui/droppable.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Droppable 1.13.0 + * jQuery UI Droppable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -34,7 +34,7 @@ "use strict"; $.widget( "ui.droppable", { - version: "1.13.0", + version: "1.13.1", widgetEventPrefix: "drop", options: { accept: "*", @@ -150,12 +150,12 @@ $.widget( "ui.droppable", { // Bail if draggable and droppable are same element if ( !draggable || ( draggable.currentItem || - draggable.element )[ 0 ] === this.element[ 0 ] ) { + draggable.element )[ 0 ] === this.element[ 0 ] ) { return; } if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || - draggable.element ) ) ) { + draggable.element ) ) ) { this._addHoverClass(); this._trigger( "over", event, this.ui( draggable ) ); } @@ -168,12 +168,12 @@ $.widget( "ui.droppable", { // Bail if draggable and droppable are same element if ( !draggable || ( draggable.currentItem || - draggable.element )[ 0 ] === this.element[ 0 ] ) { + draggable.element )[ 0 ] === this.element[ 0 ] ) { return; } if ( this.accept.call( this.element[ 0 ], ( draggable.currentItem || - draggable.element ) ) ) { + draggable.element ) ) ) { this._removeHoverClass(); this._trigger( "out", event, this.ui( draggable ) ); } @@ -187,7 +187,7 @@ $.widget( "ui.droppable", { // Bail if draggable and droppable are same element if ( !draggable || ( draggable.currentItem || - draggable.element )[ 0 ] === this.element[ 0 ] ) { + draggable.element )[ 0 ] === this.element[ 0 ] ) { return false; } @@ -218,7 +218,7 @@ $.widget( "ui.droppable", { } if ( this.accept.call( this.element[ 0 ], - ( draggable.currentItem || draggable.element ) ) ) { + ( draggable.currentItem || draggable.element ) ) ) { this._removeActiveClass(); this._removeHoverClass(); @@ -281,28 +281,28 @@ $.ui.intersect = ( function() { b = t + droppable.proportions().height; switch ( toleranceMode ) { - case "fit": - return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b ); - case "intersect": - return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half - x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half - t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half - y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half - case "pointer": - return isOverAxis( event.pageY, t, droppable.proportions().height ) && - isOverAxis( event.pageX, l, droppable.proportions().width ); - case "touch": - return ( - ( y1 >= t && y1 <= b ) || // Top edge touching - ( y2 >= t && y2 <= b ) || // Bottom edge touching - ( y1 < t && y2 > b ) // Surrounded vertically - ) && ( - ( x1 >= l && x1 <= r ) || // Left edge touching - ( x2 >= l && x2 <= r ) || // Right edge touching - ( x1 < l && x2 > r ) // Surrounded horizontally - ); - default: - return false; + case "fit": + return ( l <= x1 && x2 <= r && t <= y1 && y2 <= b ); + case "intersect": + return ( l < x1 + ( draggable.helperProportions.width / 2 ) && // Right Half + x2 - ( draggable.helperProportions.width / 2 ) < r && // Left Half + t < y1 + ( draggable.helperProportions.height / 2 ) && // Bottom Half + y2 - ( draggable.helperProportions.height / 2 ) < b ); // Top Half + case "pointer": + return isOverAxis( event.pageY, t, droppable.proportions().height ) && + isOverAxis( event.pageX, l, droppable.proportions().width ); + case "touch": + return ( + ( y1 >= t && y1 <= b ) || // Top edge touching + ( y2 >= t && y2 <= b ) || // Bottom edge touching + ( y1 < t && y2 > b ) // Surrounded vertically + ) && ( + ( x1 >= l && x1 <= r ) || // Left edge touching + ( x2 >= l && x2 <= r ) || // Right edge touching + ( x1 < l && x2 > r ) // Surrounded horizontally + ); + default: + return false; } }; } )(); @@ -324,7 +324,7 @@ $.ui.ddmanager = { // No disabled and non-accepted if ( m[ i ].options.disabled || ( t && !m[ i ].accept.call( m[ i ].element[ 0 ], - ( t.currentItem || t.element ) ) ) ) { + ( t.currentItem || t.element ) ) ) ) { continue; } @@ -366,12 +366,12 @@ $.ui.ddmanager = { return; } if ( !this.options.disabled && this.visible && - $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { + $.ui.intersect( draggable, this, this.options.tolerance, event ) ) { dropped = this._drop.call( this, event ) || dropped; } if ( !this.options.disabled && this.visible && this.accept.call( this.element[ 0 ], - ( draggable.currentItem || draggable.element ) ) ) { + ( draggable.currentItem || draggable.element ) ) ) { this.isout = true; this.isover = false; this._deactivate.call( this, event ); diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-blind.js b/src/js/_enqueues/vendor/jquery/ui/effect-blind.js index b74dea4bdfcea..7d9da99807d74 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-blind.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-blind.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Blind 1.13.0 + * jQuery UI Effects Blind 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-bounce.js b/src/js/_enqueues/vendor/jquery/ui/effect-bounce.js index b8ee5042f2303..682ca2cd37d18 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-bounce.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-bounce.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Bounce 1.13.0 + * jQuery UI Effects Bounce 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-clip.js b/src/js/_enqueues/vendor/jquery/ui/effect-clip.js index b54415605bf33..2c32aec629bbe 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-clip.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-clip.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Clip 1.13.0 + * jQuery UI Effects Clip 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-drop.js b/src/js/_enqueues/vendor/jquery/ui/effect-drop.js index 4e7dd86561019..0acd95d4b22e0 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-drop.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-drop.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Drop 1.13.0 + * jQuery UI Effects Drop 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-explode.js b/src/js/_enqueues/vendor/jquery/ui/effect-explode.js index ec4529284c5a6..598a40a6d7cf7 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-explode.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-explode.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Explode 1.13.0 + * jQuery UI Effects Explode 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -83,21 +83,21 @@ return $.effects.define( "explode", "hide", function( options, done ) { // Select the wrapper - make it overflow: hidden and absolute positioned based on // where the original was located +left and +top equal to the size of pieces .parent() - .addClass( "ui-effects-explode" ) - .css( { - position: "absolute", - overflow: "hidden", - width: width, - height: height, - left: left + ( show ? mx * width : 0 ), - top: top + ( show ? my * height : 0 ), - opacity: show ? 0 : 1 - } ) - .animate( { - left: left + ( show ? 0 : mx * width ), - top: top + ( show ? 0 : my * height ), - opacity: show ? 1 : 0 - }, options.duration || 500, options.easing, childComplete ); + .addClass( "ui-effects-explode" ) + .css( { + position: "absolute", + overflow: "hidden", + width: width, + height: height, + left: left + ( show ? mx * width : 0 ), + top: top + ( show ? my * height : 0 ), + opacity: show ? 0 : 1 + } ) + .animate( { + left: left + ( show ? 0 : mx * width ), + top: top + ( show ? 0 : my * height ), + opacity: show ? 1 : 0 + }, options.duration || 500, options.easing, childComplete ); } } diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-fade.js b/src/js/_enqueues/vendor/jquery/ui/effect-fade.js index b0de90b500ca7..4622b7d221b55 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-fade.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-fade.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Fade 1.13.0 + * jQuery UI Effects Fade 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-fold.js b/src/js/_enqueues/vendor/jquery/ui/effect-fold.js index 26c382b6d80ba..b28d2fa1ee341 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-fold.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-fold.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Fold 1.13.0 + * jQuery UI Effects Fold 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-highlight.js b/src/js/_enqueues/vendor/jquery/ui/effect-highlight.js index 36f0e9a721b94..4143c9bb7ff7e 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-highlight.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-highlight.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Highlight 1.13.0 + * jQuery UI Effects Highlight 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-puff.js b/src/js/_enqueues/vendor/jquery/ui/effect-puff.js index 7a7f0e96dc08d..85bd1218c5c34 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-puff.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-puff.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Puff 1.13.0 + * jQuery UI Effects Puff 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-pulsate.js b/src/js/_enqueues/vendor/jquery/ui/effect-pulsate.js index ad1495d550af7..69469dc168f07 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-pulsate.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-pulsate.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Pulsate 1.13.0 + * jQuery UI Effects Pulsate 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-scale.js b/src/js/_enqueues/vendor/jquery/ui/effect-scale.js index f7a5a84155783..2ac88b04db82a 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-scale.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-scale.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Scale 1.13.0 + * jQuery UI Effects Scale 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-shake.js b/src/js/_enqueues/vendor/jquery/ui/effect-shake.js index ab942c0d0713b..84f4734e7e8ee 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-shake.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-shake.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Shake 1.13.0 + * jQuery UI Effects Shake 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-size.js b/src/js/_enqueues/vendor/jquery/ui/effect-size.js index 7e2c8874ba8f0..97c6bf910ee3d 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-size.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-size.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Size 1.13.0 + * jQuery UI Effects Size 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-slide.js b/src/js/_enqueues/vendor/jquery/ui/effect-slide.js index d19b80e75b5b4..51fda6b37488c 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-slide.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-slide.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Slide 1.13.0 + * jQuery UI Effects Slide 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect-transfer.js b/src/js/_enqueues/vendor/jquery/ui/effect-transfer.js index 9c0540259aae6..8d2e173c4bcc9 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect-transfer.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect-transfer.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects Transfer 1.13.0 + * jQuery UI Effects Transfer 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors diff --git a/src/js/_enqueues/vendor/jquery/ui/effect.js b/src/js/_enqueues/vendor/jquery/ui/effect.js index e8c7ca0089bf5..2e39261a854ca 100644 --- a/src/js/_enqueues/vendor/jquery/ui/effect.js +++ b/src/js/_enqueues/vendor/jquery/ui/effect.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Effects 1.13.0 + * jQuery UI Effects 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -32,7 +32,7 @@ // Include version.js $.ui = $.ui || {}; -$.ui.version = "1.13.0"; +$.ui.version = "1.13.1"; // Source: jquery-var-for-color.js // Create a local jQuery because jQuery Color relies on it and the @@ -812,7 +812,7 @@ function getElementStyles( elem ) { } } - // Support: Opera, IE <9 + // Support: Opera, IE <9 } else { for ( key in style ) { if ( typeof style[ key ] === "string" ) { @@ -1119,7 +1119,7 @@ if ( $.uiBackCompat !== false ) { } $.extend( $.effects, { - version: "1.13.0", + version: "1.13.1", define: function( name, mode, effect ) { if ( !effect ) { @@ -1201,31 +1201,31 @@ $.extend( $.effects, { var y, x; switch ( origin[ 0 ] ) { - case "top": - y = 0; - break; - case "middle": - y = 0.5; - break; - case "bottom": - y = 1; - break; - default: - y = origin[ 0 ] / original.height; + case "top": + y = 0; + break; + case "middle": + y = 0.5; + break; + case "bottom": + y = 1; + break; + default: + y = origin[ 0 ] / original.height; } switch ( origin[ 1 ] ) { - case "left": - x = 0; - break; - case "center": - x = 0.5; - break; - case "right": - x = 1; - break; - default: - x = origin[ 1 ] / original.width; + case "left": + x = 0; + break; + case "center": + x = 0.5; + break; + case "right": + x = 1; + break; + default: + x = origin[ 1 ] / original.width; } return { @@ -1250,8 +1250,8 @@ $.extend( $.effects, { marginLeft: element.css( "marginLeft" ), marginRight: element.css( "marginRight" ) } ) - .outerWidth( element.outerWidth() ) - .outerHeight( element.outerHeight() ); + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ); if ( /^(static|relative)/.test( cssPosition ) ) { cssPosition = "absolute"; @@ -1272,9 +1272,9 @@ $.extend( $.effects, { marginRight: element.css( "marginRight" ), "float": element.css( "float" ) } ) - .outerWidth( element.outerWidth() ) - .outerHeight( element.outerHeight() ) - .addClass( "ui-effects-placeholder" ); + .outerWidth( element.outerWidth() ) + .outerHeight( element.outerHeight() ) + .addClass( "ui-effects-placeholder" ); element.data( dataSpace + "placeholder", placeholder ); } @@ -1290,7 +1290,7 @@ $.extend( $.effects, { removePlaceholder: function( element ) { var dataKey = dataSpace + "placeholder", - placeholder = element.data( dataKey ); + placeholder = element.data( dataKey ); if ( placeholder ) { placeholder.remove(); @@ -1362,8 +1362,8 @@ function _normalizeArguments( effect, options, speed, callback ) { speed = speed || options.duration; effect.duration = $.fx.off ? 0 : typeof speed === "number" ? speed : - speed in $.fx.speeds ? $.fx.speeds[ speed ] : - $.fx.speeds._default; + speed in $.fx.speeds ? $.fx.speeds[ speed ] : + $.fx.speeds._default; effect.complete = callback || options.complete; @@ -1420,7 +1420,7 @@ $.fn.extend( { // See $.uiBackCompat inside of run() for removal of defaultMode in 1.14 if ( defaultMode && ( normalizedMode === "show" || - ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { + ( normalizedMode === defaultMode && normalizedMode === "hide" ) ) ) { el.show(); } @@ -1598,17 +1598,17 @@ $.fn.extend( { } ); function parseClip( str, element ) { - var outerWidth = element.outerWidth(), - outerHeight = element.outerHeight(), - clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, - values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; - - return { - top: parseFloat( values[ 1 ] ) || 0, - right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), - bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), - left: parseFloat( values[ 4 ] ) || 0 - }; + var outerWidth = element.outerWidth(), + outerHeight = element.outerHeight(), + clipRegex = /^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/, + values = clipRegex.exec( str ) || [ "", 0, outerWidth, outerHeight, 0 ]; + + return { + top: parseFloat( values[ 1 ] ) || 0, + right: values[ 2 ] === "auto" ? outerWidth : parseFloat( values[ 2 ] ), + bottom: values[ 3 ] === "auto" ? outerHeight : parseFloat( values[ 3 ] ), + left: parseFloat( values[ 4 ] ) || 0 + }; } $.fx.step.clip = function( fx ) { diff --git a/src/js/_enqueues/vendor/jquery/ui/menu.js b/src/js/_enqueues/vendor/jquery/ui/menu.js index 1e43abd09fbb1..18e71c9bd9589 100644 --- a/src/js/_enqueues/vendor/jquery/ui/menu.js +++ b/src/js/_enqueues/vendor/jquery/ui/menu.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Menu 1.13.0 + * jQuery UI Menu 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -35,7 +35,7 @@ "use strict"; return $.widget( "ui.menu", { - version: "1.13.0", + version: "1.13.1", defaultElement: "
      ", delay: 300, options: { @@ -95,7 +95,7 @@ return $.widget( "ui.menu", { if ( target.has( ".ui-menu" ).length ) { this.expand( event ); } else if ( !this.element.is( ":focus" ) && - active.closest( ".ui-menu" ).length ) { + active.closest( ".ui-menu" ).length ) { // Redirect focus to the menu this.element.trigger( "focus", [ true ] ); @@ -162,7 +162,7 @@ return $.widget( "ui.menu", { // If the mouse didn't actually move, but the page was scrolled, ignore the event (#9356) if ( event.clientX === this.lastMousePosition.x && - event.clientY === this.lastMousePosition.y ) { + event.clientY === this.lastMousePosition.y ) { return; } @@ -202,10 +202,10 @@ return $.widget( "ui.menu", { this.element .removeAttr( "aria-activedescendant" ) .find( ".ui-menu" ).addBack() - .removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " + - "tabIndex" ) - .removeUniqueId() - .show(); + .removeAttr( "role aria-labelledby aria-expanded aria-hidden aria-disabled " + + "tabIndex" ) + .removeUniqueId() + .show(); submenus.children().each( function() { var elem = $( this ); @@ -220,77 +220,77 @@ return $.widget( "ui.menu", { preventDefault = true; switch ( event.keyCode ) { - case $.ui.keyCode.PAGE_UP: - this.previousPage( event ); - break; - case $.ui.keyCode.PAGE_DOWN: - this.nextPage( event ); - break; - case $.ui.keyCode.HOME: - this._move( "first", "first", event ); - break; - case $.ui.keyCode.END: - this._move( "last", "last", event ); - break; - case $.ui.keyCode.UP: - this.previous( event ); - break; - case $.ui.keyCode.DOWN: - this.next( event ); - break; - case $.ui.keyCode.LEFT: - this.collapse( event ); - break; - case $.ui.keyCode.RIGHT: - if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { - this.expand( event ); - } - break; - case $.ui.keyCode.ENTER: - case $.ui.keyCode.SPACE: - this._activate( event ); - break; - case $.ui.keyCode.ESCAPE: - this.collapse( event ); - break; - default: - preventDefault = false; - prev = this.previousFilter || ""; - skip = false; - - // Support number pad values - character = event.keyCode >= 96 && event.keyCode <= 105 ? - ( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode ); - - clearTimeout( this.filterTimer ); - - if ( character === prev ) { - skip = true; - } else { - character = prev + character; - } - - match = this._filterMenuItems( character ); - match = skip && match.index( this.active.next() ) !== -1 ? - this.active.nextAll( ".ui-menu-item" ) : - match; + case $.ui.keyCode.PAGE_UP: + this.previousPage( event ); + break; + case $.ui.keyCode.PAGE_DOWN: + this.nextPage( event ); + break; + case $.ui.keyCode.HOME: + this._move( "first", "first", event ); + break; + case $.ui.keyCode.END: + this._move( "last", "last", event ); + break; + case $.ui.keyCode.UP: + this.previous( event ); + break; + case $.ui.keyCode.DOWN: + this.next( event ); + break; + case $.ui.keyCode.LEFT: + this.collapse( event ); + break; + case $.ui.keyCode.RIGHT: + if ( this.active && !this.active.is( ".ui-state-disabled" ) ) { + this.expand( event ); + } + break; + case $.ui.keyCode.ENTER: + case $.ui.keyCode.SPACE: + this._activate( event ); + break; + case $.ui.keyCode.ESCAPE: + this.collapse( event ); + break; + default: + preventDefault = false; + prev = this.previousFilter || ""; + skip = false; + + // Support number pad values + character = event.keyCode >= 96 && event.keyCode <= 105 ? + ( event.keyCode - 96 ).toString() : String.fromCharCode( event.keyCode ); + + clearTimeout( this.filterTimer ); + + if ( character === prev ) { + skip = true; + } else { + character = prev + character; + } - // If no matches on the current filter, reset to the last character pressed - // to move down the menu to the first item that starts with that character - if ( !match.length ) { - character = String.fromCharCode( event.keyCode ); match = this._filterMenuItems( character ); - } + match = skip && match.index( this.active.next() ) !== -1 ? + this.active.nextAll( ".ui-menu-item" ) : + match; + + // If no matches on the current filter, reset to the last character pressed + // to move down the menu to the first item that starts with that character + if ( !match.length ) { + character = String.fromCharCode( event.keyCode ); + match = this._filterMenuItems( character ); + } - if ( match.length ) { - this.focus( event, match ); - this.previousFilter = character; - this.filterTimer = this._delay( function() { + if ( match.length ) { + this.focus( event, match ); + this.previousFilter = character; + this.filterTimer = this._delay( function() { + delete this.previousFilter; + }, 1000 ); + } else { delete this.previousFilter; - }, 1000 ); - } else { - delete this.previousFilter; - } + } } if ( preventDefault ) { @@ -353,11 +353,11 @@ return $.widget( "ui.menu", { newItems = items.not( ".ui-menu-item, .ui-menu-divider" ); newWrappers = newItems.children() .not( ".ui-menu" ) - .uniqueId() - .attr( { - tabIndex: -1, - role: this._itemRole() - } ); + .uniqueId() + .attr( { + tabIndex: -1, + role: this._itemRole() + } ); this._addClass( newItems, "ui-menu-item" ) ._addClass( newWrappers, "ui-menu-item-wrapper" ); @@ -413,8 +413,8 @@ return $.widget( "ui.menu", { // Highlight active parent menu item, if any activeParent = this.active .parent() - .closest( ".ui-menu-item" ) - .children( ".ui-menu-item-wrapper" ); + .closest( ".ui-menu-item" ) + .children( ".ui-menu-item-wrapper" ); this._addClass( activeParent, null, "ui-state-active" ); if ( event && event.type === "keydown" ) { @@ -695,13 +695,13 @@ return $.widget( "ui.menu", { return this.activeMenu .find( this.options.items ) - // Only match on items, not dividers or other content (#10571) - .filter( ".ui-menu-item" ) - .filter( function() { - return regex.test( - String.prototype.trim.call( - $( this ).children( ".ui-menu-item-wrapper" ).text() ) ); - } ); + // Only match on items, not dividers or other content (#10571) + .filter( ".ui-menu-item" ) + .filter( function() { + return regex.test( + String.prototype.trim.call( + $( this ).children( ".ui-menu-item-wrapper" ).text() ) ); + } ); } } ); diff --git a/src/js/_enqueues/vendor/jquery/ui/mouse.js b/src/js/_enqueues/vendor/jquery/ui/mouse.js index c3a6a6edf1a69..8ad7d9aaef5f8 100644 --- a/src/js/_enqueues/vendor/jquery/ui/mouse.js +++ b/src/js/_enqueues/vendor/jquery/ui/mouse.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Mouse 1.13.0 + * jQuery UI Mouse 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -36,7 +36,7 @@ $( document ).on( "mouseup", function() { } ); return $.widget( "ui.mouse", { - version: "1.13.0", + version: "1.13.1", options: { cancel: "input, textarea, button, select, option", distance: 1, @@ -146,17 +146,17 @@ return $.widget( "ui.mouse", { // IE mouseup check - mouseup happened when mouse was out of window if ( $.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && - !event.button ) { + !event.button ) { return this._mouseUp( event ); - // Iframe mouseup check - mouseup occurred in another document + // Iframe mouseup check - mouseup occurred in another document } else if ( !event.which ) { // Support: Safari <=8 - 9 // Safari sets which to 0 if you press any of the following keys // during a drag (#14461) if ( event.originalEvent.altKey || event.originalEvent.ctrlKey || - event.originalEvent.metaKey || event.originalEvent.shiftKey ) { + event.originalEvent.metaKey || event.originalEvent.shiftKey ) { this.ignoreMissingWhich = true; } else if ( !this.ignoreMissingWhich ) { return this._mouseUp( event ); diff --git a/src/js/_enqueues/vendor/jquery/ui/progressbar.js b/src/js/_enqueues/vendor/jquery/ui/progressbar.js index e1c78112da74e..e2c4677cebf01 100644 --- a/src/js/_enqueues/vendor/jquery/ui/progressbar.js +++ b/src/js/_enqueues/vendor/jquery/ui/progressbar.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Progressbar 1.13.0 + * jQuery UI Progressbar 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -37,7 +37,7 @@ "use strict"; return $.widget( "ui.progressbar", { - version: "1.13.0", + version: "1.13.1", options: { classes: { "ui-progressbar": "ui-corner-all", diff --git a/src/js/_enqueues/vendor/jquery/ui/resizable.js b/src/js/_enqueues/vendor/jquery/ui/resizable.js index 5fc38f53b3db8..e6cec7522f13c 100644 --- a/src/js/_enqueues/vendor/jquery/ui/resizable.js +++ b/src/js/_enqueues/vendor/jquery/ui/resizable.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Resizable 1.13.0 + * jQuery UI Resizable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -36,7 +36,7 @@ "use strict"; $.widget( "ui.resizable", $.ui.mouse, { - version: "1.13.0", + version: "1.13.1", widgetEventPrefix: "resize", options: { alsoResize: false, @@ -228,15 +228,15 @@ $.widget( "ui.resizable", $.ui.mouse, { this._super( key, value ); switch ( key ) { - case "handles": - this._removeHandles(); - this._setupHandles(); - break; - case "aspectRatio": - this._aspectRatio = !!value; - break; - default: - break; + case "handles": + this._removeHandles(); + this._setupHandles(); + break; + case "aspectRatio": + this._aspectRatio = !!value; + break; + default: + break; } }, @@ -300,9 +300,9 @@ $.widget( "ui.resizable", $.ui.mouse, { } if ( this.elementIsWrapper && - this.originalElement[ 0 ] - .nodeName - .match( /^(textarea|input|select|button)$/i ) ) { + this.originalElement[ 0 ] + .nodeName + .match( /^(textarea|input|select|button)$/i ) ) { axis = $( this.handles[ i ], this.element ); padWrapper = /sw|ne|nw|se|n|s/.test( i ) ? @@ -311,8 +311,8 @@ $.widget( "ui.resizable", $.ui.mouse, { padPos = [ "padding", /ne|nw|n/.test( i ) ? "Top" : - /se|sw|s/.test( i ) ? "Bottom" : - /^e$/.test( i ) ? "Right" : "Left" ].join( "" ); + /se|sw|s/.test( i ) ? "Bottom" : + /^e$/.test( i ) ? "Right" : "Left" ].join( "" ); target.css( padPos, padWrapper ); @@ -384,20 +384,20 @@ $.widget( "ui.resizable", $.ui.mouse, { this.position = { left: curleft, top: curtop }; this.size = this._helper ? { - width: this.helper.width(), - height: this.helper.height() - } : { - width: el.width(), - height: el.height() - }; + width: this.helper.width(), + height: this.helper.height() + } : { + width: el.width(), + height: el.height() + }; this.originalSize = this._helper ? { - width: el.outerWidth(), - height: el.outerHeight() - } : { - width: el.width(), - height: el.height() - }; + width: el.outerWidth(), + height: el.outerHeight() + } : { + width: el.width(), + height: el.height() + }; this.sizeDiff = { width: el.outerWidth() - el.width(), @@ -1063,21 +1063,21 @@ $.ui.plugin.add( "resizable", "alsoResize", { left: ( that.position.left - op.left ) || 0 }; - $( o.alsoResize ).each( function() { - var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {}, - css = el.parents( ui.originalElement[ 0 ] ).length ? - [ "width", "height" ] : - [ "width", "height", "top", "left" ]; - - $.each( css, function( i, prop ) { - var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 ); - if ( sum && sum >= 0 ) { - style[ prop ] = sum || null; - } - } ); - - el.css( style ); + $( o.alsoResize ).each( function() { + var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {}, + css = el.parents( ui.originalElement[ 0 ] ).length ? + [ "width", "height" ] : + [ "width", "height", "top", "left" ]; + + $.each( css, function( i, prop ) { + var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 ); + if ( sum && sum >= 0 ) { + style[ prop ] = sum || null; + } } ); + + el.css( style ); + } ); }, stop: function() { diff --git a/src/js/_enqueues/vendor/jquery/ui/selectable.js b/src/js/_enqueues/vendor/jquery/ui/selectable.js index ae95624da49ff..5aef397b6c98b 100644 --- a/src/js/_enqueues/vendor/jquery/ui/selectable.js +++ b/src/js/_enqueues/vendor/jquery/ui/selectable.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Selectable 1.13.0 + * jQuery UI Selectable 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -34,7 +34,7 @@ "use strict"; return $.widget( "ui.selectable", $.ui.mouse, { - version: "1.13.0", + version: "1.13.1", options: { appendTo: "body", autoRefresh: true, @@ -210,10 +210,10 @@ return $.widget( "ui.selectable", $.ui.mouse, { if ( options.tolerance === "touch" ) { hit = ( !( offset.left > x2 || offset.right < x1 || offset.top > y2 || - offset.bottom < y1 ) ); + offset.bottom < y1 ) ); } else if ( options.tolerance === "fit" ) { hit = ( offset.left > x1 && offset.right < x2 && offset.top > y1 && - offset.bottom < y2 ); + offset.bottom < y2 ); } if ( hit ) { diff --git a/src/js/_enqueues/vendor/jquery/ui/selectmenu.js b/src/js/_enqueues/vendor/jquery/ui/selectmenu.js index 2db744de1bded..0e9fcf955a60a 100644 --- a/src/js/_enqueues/vendor/jquery/ui/selectmenu.js +++ b/src/js/_enqueues/vendor/jquery/ui/selectmenu.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Selectmenu 1.13.0 + * jQuery UI Selectmenu 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -38,7 +38,7 @@ "use strict"; return $.widget( "ui.selectmenu", [ $.ui.formResetMixin, { - version: "1.13.0", + version: "1.13.1", defaultElement: "", widgetEventPrefix: "spin", options: { @@ -234,10 +234,10 @@ $.widget( "ui.spinner", { .wrap( "" ) .parent() - // Add buttons - .append( - "" - ); + // Add buttons + .append( + "" + ); }, _draw: function() { @@ -275,7 +275,7 @@ $.widget( "ui.spinner", { // IE 6 doesn't understand height: 50% for the buttons // unless the wrapper has an explicit height if ( this.buttons.height() > Math.ceil( this.uiSpinner.height() * 0.5 ) && - this.uiSpinner.height() > 0 ) { + this.uiSpinner.height() > 0 ) { this.uiSpinner.height( this.uiSpinner.height() ); } }, @@ -285,18 +285,18 @@ $.widget( "ui.spinner", { keyCode = $.ui.keyCode; switch ( event.keyCode ) { - case keyCode.UP: - this._repeat( null, 1, event ); - return true; - case keyCode.DOWN: - this._repeat( null, -1, event ); - return true; - case keyCode.PAGE_UP: - this._repeat( null, options.page, event ); - return true; - case keyCode.PAGE_DOWN: - this._repeat( null, -options.page, event ); - return true; + case keyCode.UP: + this._repeat( null, 1, event ); + return true; + case keyCode.DOWN: + this._repeat( null, -1, event ); + return true; + case keyCode.PAGE_UP: + this._repeat( null, options.page, event ); + return true; + case keyCode.PAGE_DOWN: + this._repeat( null, -options.page, event ); + return true; } return false; @@ -561,8 +561,8 @@ if ( $.uiBackCompat !== false ) { .wrap( this._uiSpinnerHtml() ) .parent() - // Add buttons - .append( this._buttonHtml() ); + // Add buttons + .append( this._buttonHtml() ); }, _uiSpinnerHtml: function() { return ""; diff --git a/src/js/_enqueues/vendor/jquery/ui/tabs.js b/src/js/_enqueues/vendor/jquery/ui/tabs.js index 8cddc5d0e53ef..5d44bdd5f653a 100644 --- a/src/js/_enqueues/vendor/jquery/ui/tabs.js +++ b/src/js/_enqueues/vendor/jquery/ui/tabs.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Tabs 1.13.0 + * jQuery UI Tabs 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -35,7 +35,7 @@ "use strict"; $.widget( "ui.tabs", { - version: "1.13.0", + version: "1.13.1", delay: 300, options: { active: null, @@ -176,39 +176,39 @@ $.widget( "ui.tabs", { } switch ( event.keyCode ) { - case $.ui.keyCode.RIGHT: - case $.ui.keyCode.DOWN: - selectedIndex++; - break; - case $.ui.keyCode.UP: - case $.ui.keyCode.LEFT: - goingForward = false; - selectedIndex--; - break; - case $.ui.keyCode.END: - selectedIndex = this.anchors.length - 1; - break; - case $.ui.keyCode.HOME: - selectedIndex = 0; - break; - case $.ui.keyCode.SPACE: - - // Activate only, no collapsing - event.preventDefault(); - clearTimeout( this.activating ); - this._activate( selectedIndex ); - return; - case $.ui.keyCode.ENTER: + case $.ui.keyCode.RIGHT: + case $.ui.keyCode.DOWN: + selectedIndex++; + break; + case $.ui.keyCode.UP: + case $.ui.keyCode.LEFT: + goingForward = false; + selectedIndex--; + break; + case $.ui.keyCode.END: + selectedIndex = this.anchors.length - 1; + break; + case $.ui.keyCode.HOME: + selectedIndex = 0; + break; + case $.ui.keyCode.SPACE: + + // Activate only, no collapsing + event.preventDefault(); + clearTimeout( this.activating ); + this._activate( selectedIndex ); + return; + case $.ui.keyCode.ENTER: - // Toggle (cancel delayed activation, allow collapsing) - event.preventDefault(); - clearTimeout( this.activating ); + // Toggle (cancel delayed activation, allow collapsing) + event.preventDefault(); + clearTimeout( this.activating ); - // Determine if we should collapse or activate - this._activate( selectedIndex === this.options.active ? false : selectedIndex ); - return; - default: - return; + // Determine if we should collapse or activate + this._activate( selectedIndex === this.options.active ? false : selectedIndex ); + return; + default: + return; } // Focus the appropriate tab, based on which key was pressed @@ -330,7 +330,7 @@ $.widget( "ui.tabs", { options.active = false; this.active = $(); - // was active, but active tab is gone + // was active, but active tab is gone } else if ( this.active.length && !$.contains( this.tablist[ 0 ], this.active[ 0 ] ) ) { // all remaining tabs are disabled @@ -338,12 +338,12 @@ $.widget( "ui.tabs", { options.active = false; this.active = $(); - // activate previous tab + // activate previous tab } else { this._activate( this._findNextTab( Math.max( 0, options.active - 1 ), false ) ); } - // was active, active tab still exists + // was active, active tab still exists } else { // make sure active index is correct @@ -447,7 +447,7 @@ $.widget( "ui.tabs", { panelId = selector.substring( 1 ); panel = that.element.find( that._sanitizeSelector( selector ) ); - // remote tab + // remote tab } else { // If the tab doesn't already have aria-controls, @@ -605,17 +605,17 @@ $.widget( "ui.tabs", { if ( tab.hasClass( "ui-state-disabled" ) || - // tab is already loading - tab.hasClass( "ui-tabs-loading" ) || + // tab is already loading + tab.hasClass( "ui-tabs-loading" ) || - // can't switch durning an animation - this.running || + // can't switch durning an animation + this.running || - // click on active header, but not collapsible - ( clickedIsActive && !options.collapsible ) || + // click on active header, but not collapsible + ( clickedIsActive && !options.collapsible ) || - // allow canceling activation - ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { + // allow canceling activation + ( this._trigger( "beforeActivate", event, eventData ) === false ) ) { return; } diff --git a/src/js/_enqueues/vendor/jquery/ui/tooltip.js b/src/js/_enqueues/vendor/jquery/ui/tooltip.js index 9665f0763dd7e..d4c8d741721aa 100644 --- a/src/js/_enqueues/vendor/jquery/ui/tooltip.js +++ b/src/js/_enqueues/vendor/jquery/ui/tooltip.js @@ -1,5 +1,5 @@ /*! - * jQuery UI Tooltip 1.13.0 + * jQuery UI Tooltip 1.13.1 * http://jqueryui.com * * Copyright jQuery Foundation and other contributors @@ -35,7 +35,7 @@ "use strict"; $.widget( "ui.tooltip", { - version: "1.13.0", + version: "1.13.1", options: { classes: { "ui-tooltip": "ui-corner-all ui-widget-shadow" @@ -217,7 +217,7 @@ $.widget( "ui.tooltip", { eventType = event ? event.type : null; if ( typeof contentOption === "string" || contentOption.nodeType || - contentOption.jquery ) { + contentOption.jquery ) { return this._open( event, target, contentOption ); } @@ -348,7 +348,10 @@ $.widget( "ui.tooltip", { // tooltips will handle this in destroy. if ( target[ 0 ] !== this.element[ 0 ] ) { events.remove = function() { - this._removeTooltip( this._find( target ).tooltip ); + var targetElement = this._find( target ); + if ( targetElement ) { + this._removeTooltip( targetElement.tooltip ); + } }; } diff --git a/src/js/_enqueues/wp/customize/controls.js b/src/js/_enqueues/wp/customize/controls.js index 00ec7e2599bb4..37a57fd8595fa 100644 --- a/src/js/_enqueues/wp/customize/controls.js +++ b/src/js/_enqueues/wp/customize/controls.js @@ -8334,6 +8334,33 @@ history.replaceState( {}, document.title, urlParser.href ); } + /** + * Displays a Site Editor notification when a block theme is activated. + * + * @since 4.9.0 + * + * @param {string} [notification] - A notification to display. + * @return {void} + */ + function addSiteEditorNotification( notification ) { + api.notifications.add( new api.Notification( 'site_editor_block_theme_notice', { + message: notification, + type: 'info', + dismissible: false, + render: function() { + var notification = api.Notification.prototype.render.call( this ), + button = notification.find( 'button.switch-to-editor' ); + + button.on( 'click', function( event ) { + event.preventDefault(); + location.assign( button.data( 'action' ) ); + } ); + + return notification; + } + } ) ); + } + /** * Dismiss autosave. * @@ -8408,6 +8435,10 @@ if ( api.settings.changeset.latestAutoDraftUuid || api.settings.changeset.hasAutosaveRevision ) { addAutosaveRestoreNotification(); } + var shouldDisplayBlockThemeNotification = !! parseInt( $( '#customize-info' ).data( 'block-theme' ), 10 ); + if (shouldDisplayBlockThemeNotification) { + addSiteEditorNotification( api.l10n.blockThemeNotification ); + } })(); // Check if preview url is valid and load the preview frame. diff --git a/src/js/_enqueues/wp/customize/nav-menus.js b/src/js/_enqueues/wp/customize/nav-menus.js index 8930f15ddfcc7..a11cff9fce425 100644 --- a/src/js/_enqueues/wp/customize/nav-menus.js +++ b/src/js/_enqueues/wp/customize/nav-menus.js @@ -526,7 +526,13 @@ return; } - this.currentMenuControl.addItemToMenu( menu_item.attributes ); + // Leave the title as empty to reuse the original title as a placeholder if set. + var nav_menu_item = Object.assign( {}, menu_item.attributes ); + if ( nav_menu_item.title === nav_menu_item.original_title ) { + nav_menu_item.title = ''; + } + + this.currentMenuControl.addItemToMenu( nav_menu_item ); $( menuitemTpl ).find( '.menu-item-handle' ).addClass( 'item-added' ); }, @@ -3020,7 +3026,6 @@ item, { nav_menu_term_id: menuControl.params.menu_id, - original_title: item.title, position: position } ); diff --git a/src/js/_enqueues/wp/embed.js b/src/js/_enqueues/wp/embed.js index fa2934f379c4b..58ae034f4993b 100644 --- a/src/js/_enqueues/wp/embed.js +++ b/src/js/_enqueues/wp/embed.js @@ -49,6 +49,7 @@ var iframes = document.querySelectorAll( 'iframe[data-secret="' + data.secret + '"]' ), blockquotes = document.querySelectorAll( 'blockquote[data-secret="' + data.secret + '"]' ), + allowedProtocols = new RegExp( '^https?:$', 'i' ), i, source, height, sourceURL, targetURL; for ( i = 0; i < blockquotes.length; i++ ) { @@ -84,6 +85,11 @@ sourceURL.href = source.getAttribute( 'src' ); targetURL.href = data.value; + /* Only follow link if the protocol is in the allow list. */ + if ( ! allowedProtocols.test( targetURL.protocol ) ) { + continue; + } + /* Only continue if link hostname matches iframe's hostname. */ if ( targetURL.host === sourceURL.host ) { if ( document.activeElement === source ) { diff --git a/src/js/_enqueues/wp/theme.js b/src/js/_enqueues/wp/theme.js index 818c20149688b..b3821246d9859 100644 --- a/src/js/_enqueues/wp/theme.js +++ b/src/js/_enqueues/wp/theme.js @@ -622,6 +622,9 @@ themes.view.Theme = wp.Backbone.View.extend({ if ( _this.model.get( 'id' ) === response.slug ) { _this.model.set( { 'installed': true } ); } + if ( response.blockTheme ) { + _this.model.set( { 'block_theme': true } ); + } } ); wp.updates.installTheme( { diff --git a/src/js/media/views/frame/video-details.js b/src/js/media/views/frame/video-details.js index 2dbb22f774a91..6a0d6042026e3 100644 --- a/src/js/media/views/frame/video-details.js +++ b/src/js/media/views/frame/video-details.js @@ -106,6 +106,7 @@ VideoDetails = MediaDetails.extend(/** @lends wp.media.view.MediaFrame.VideoDeta wp.ajax.send( 'set-attachment-thumbnail', { data : { + _ajax_nonce: wp.media.view.settings.nonce.setAttachmentThumbnail, urls: urls, thumbnail_id: attachment.get( 'id' ) } diff --git a/src/wp-admin/about.php b/src/wp-admin/about.php index fe9ef5979ec87..c3a39d4a628de 100644 --- a/src/wp-admin/about.php +++ b/src/wp-admin/about.php @@ -39,6 +39,272 @@
    +
    +
    +

    +

    + Version %s addressed some security issues.' ), + '5.9.12' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.12' ) + ) + ); + ?> +

    +

    + Version %s addressed one security issue.' ), + '5.9.11' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.11' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.10' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.10' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.9' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.9' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.8' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.8' ) + ) + ); + ?> +

    +

    + Version %1$s addressed a security issue and fixed %2$s bug.', + 'Version %1$s addressed a security issue and fixed %2$s bugs.', + 1 + ), + '5.9.7', + '1' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.7' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.6' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.6' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.5' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.5' ) + ) + ); + ?> +

    +

    + Version %s addressed some security issues.' ), + '5.9.4' + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.4' ) + ) + ); + ?> +

    +

    + Version %1$s addressed %2$s bug.', + 'Version %1$s addressed %2$s bugs.', + 19 + ), + '5.9.3', + number_format_i18n( 19 ) + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.3' ) + ) + ); + ?> +

    +

    + Version %1$s addressed some security issues and fixed %2$s bug.', + 'Version %1$s addressed some security issues and fixed %2$s bugs.', + 1 + ), + '5.9.2', + number_format_i18n( 1 ) + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.2' ) + ) + ); + ?> +

    +

    + Version %1$s addressed %2$s bug.', + 'Version %1$s addressed %2$s bugs.', + 82 + ), + '5.9.1', + number_format_i18n( 82 ) + ); + ?> + the release notes.' ), + sprintf( + /* translators: %s: WordPress version. */ + esc_url( __( 'https://wordpress.org/support/wordpress-version/version-%s/' ) ), + sanitize_title( '5.9.1' ) + ) + ); + ?> +

    +
    +
    +
    @@ -52,11 +318,11 @@
    -
    +
    -
    +

    @@ -80,8 +346,8 @@
    -
    -
    +
    +

    @@ -97,11 +363,11 @@
    -
    +
    -
    +

    @@ -127,11 +393,11 @@
    -
    +
    -
    +

    @@ -141,8 +407,8 @@
    -
    -
    +
    +

    @@ -158,11 +424,11 @@
    -
    +
    -
    +

    @@ -172,8 +438,8 @@
    -
    -
    +
    +

    @@ -203,8 +469,8 @@
    -
    -
    +
    +

    @@ -218,7 +484,7 @@ ?>

    -
    +

    @@ -233,8 +499,8 @@

    -
    -
    +
    +

    @@ -242,7 +508,7 @@

    -
    +

    @@ -270,8 +536,8 @@ learn.wordpress.org/workshops for short how-to video tutorials and expanding resources on new features in WordPress 5.9.' ), - 'https://learn.wordpress.org/workshops/' + __( 'Want to dive into 5.9 but don’t know where to start? Visit learn.wordpress.org for expanding resources on new features in WordPress 5.9.' ), + 'https://learn.wordpress.org' ); ?>

    @@ -288,7 +554,7 @@ printf( /* translators: %s: WordPress 5.9 Field Guide link. */ __( 'Check out the latest version of the WordPress Field Guide. It highlights developer notes for each change you may want to be aware of. WordPress 5.9 Field Guide.' ), - 'https://make.wordpress.org/core/2022/01/04/wordpress-5-9-field-guide/' + 'https://make.wordpress.org/core/2022/01/10/wordpress-5-9-field-guide/' ); ?>

    @@ -348,3 +614,15 @@ /* translators: %s: Documentation URL. */ __( 'For more information, see the release notes.' ); + +/* translators: 1: WordPress version number, 2: Link to update WordPress */ +__( 'Important! Your version of WordPress (%1$s) is no longer supported, you will not receive any security updates for your website. To keep your site secure, please update to the latest version of WordPress.' ); + +/* translators: 1: WordPress version number, 2: Link to update WordPress */ +__( 'Important! Your version of WordPress (%1$s) will stop receiving security updates in the near future. To keep your site secure, please update to the latest version of WordPress.' ); + +/* translators: %s: The major version of WordPress for this branch. */ +__( 'This is the final release of WordPress %s' ); + +/* translators: The localized WordPress download URL. */ +__( 'https://wordpress.org/download/' ); diff --git a/src/wp-admin/css/about.css b/src/wp-admin/css/about.css index 3bc9a9362dd6e..eff4e2940cbe8 100644 --- a/src/wp-admin/css/about.css +++ b/src/wp-admin/css/about.css @@ -141,8 +141,7 @@ } .about__section .column:not(.is-edge-to-edge) { - padding-left: var(--gap); - padding-right: var(--gap); + padding: var(--gap); } .about__section + .about__section .is-section-header { @@ -209,7 +208,8 @@ } .about__section.has-gutters { - gap: calc(var(--gap) / 2); + gap: var(--gap); + margin-bottom: calc(var(--gap) * 2); } .about__section.has-2-columns { @@ -331,14 +331,16 @@ padding-bottom: var(--gap); } - .about__section .column:not(.is-edge-to-edge) + .column { - padding-top: 0; + .about__section.has-2-columns.has-gutters.is-wider-right, + .about__section.has-2-columns.has-gutters.is-wider-left, + .about__section.has-3-columns.has-gutters { + margin-bottom: calc(var(--gap) * 2); } .about__section.has-2-columns.has-gutters .column, .about__section.has-2-columns.has-gutters .column, .about__section.has-3-columns.has-gutters .column { - margin-bottom: calc(var(--gap) / 2); + margin-bottom: var(--gap); } .about__section.has-2-columns.has-gutters .column:last-child, @@ -397,21 +399,25 @@ @media screen and (max-width: 600px) { .about__section.has-2-columns { display: block; + margin-bottom: var(--gap); + } + + .about__section.has-2-columns:not(.has-gutters) .column:nth-of-type(n) { + padding-top: calc(var(--gap) / 2); padding-bottom: calc(var(--gap) / 2); } + .about__section.has-2-columns.has-gutters { + margin-bottom: calc(var(--gap) * 2); + } + .about__section.has-2-columns.has-gutters .column { - margin-bottom: calc(var(--gap) / 2); + margin-bottom: var(--gap); } .about__section.has-2-columns.has-gutters .column:last-child { margin-bottom: 0; } - - .about__section.has-2-columns .column:nth-of-type(n) { - padding-top: calc(var(--gap) / 2); - padding-bottom: calc(var(--gap) / 2); - } } @media screen and (max-width: 480px) { @@ -610,8 +616,8 @@ } .freedoms-php .about__header::before { - top: 32px; - right: 0; + top: calc(50% - 182px); + right: 32px; width: 375px; height: 300px; background-image: url('../images/about-header-freedoms.svg'); @@ -619,8 +625,7 @@ .privacy-php .about__header::before { top: auto; - bottom: 70px; - height: 245px; + bottom: -16px; background-image: url('../images/about-header-privacy.svg'); } @@ -654,8 +659,8 @@ .freedoms-php .about__header-title, .freedoms-php .about__header-text { - /* 391px = 375px (balloon width) + 16px (spacing). */ - padding-right: 391px; + /* 423px = 375px (balloon width) + 32px (offset from edge) + 16px (spacing). */ + padding-right: 423px; margin-right: 0; } @@ -721,12 +726,14 @@ } .freedoms-php .about__header::before { + top: calc(50% - 132px); height: 192px; width: 240px; } .privacy-php .about__header::before { - height: 196px; + bottom: 0; + height: 280px; } .about__container .about__header-text { diff --git a/src/wp-admin/css/colors/_admin.scss b/src/wp-admin/css/colors/_admin.scss index 449b0a8e279f8..cb241905a0227 100644 --- a/src/wp-admin/css/colors/_admin.scss +++ b/src/wp-admin/css/colors/_admin.scss @@ -781,3 +781,17 @@ div#wp-responsive-toggle a:before { color: $link; } } + +/* Welcome Panel */ + +.welcome-panel { + background-color: $highlight-color; +} + +[class*="welcome-panel-icon"] { + @if ( $scheme-name == "light" ) { + background-color: $icon-color; + } @else { + background-color: $base-color; + } +} diff --git a/src/wp-admin/css/colors/_variables.scss b/src/wp-admin/css/colors/_variables.scss index 8287a2320282c..21621342a42ea 100644 --- a/src/wp-admin/css/colors/_variables.scss +++ b/src/wp-admin/css/colors/_variables.scss @@ -1,5 +1,6 @@ // assign default value to all undefined variables +$scheme-name: "default" !default; // core variables diff --git a/src/wp-admin/css/colors/blue/colors.scss b/src/wp-admin/css/colors/blue/colors.scss index b254d73a8fa51..f44e540adf129 100644 --- a/src/wp-admin/css/colors/blue/colors.scss +++ b/src/wp-admin/css/colors/blue/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "blue"; $base-color: #52accc; $icon-color: #e5f8ff; $highlight-color: #096484; diff --git a/src/wp-admin/css/colors/coffee/colors.scss b/src/wp-admin/css/colors/coffee/colors.scss index 64de62e4918de..a52491d57de9d 100644 --- a/src/wp-admin/css/colors/coffee/colors.scss +++ b/src/wp-admin/css/colors/coffee/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "coffee"; $base-color: #59524c; $highlight-color: #c7a589; $notification-color: #9ea476; diff --git a/src/wp-admin/css/colors/ectoplasm/colors.scss b/src/wp-admin/css/colors/ectoplasm/colors.scss index 8d145707705f9..230ff9efb4986 100644 --- a/src/wp-admin/css/colors/ectoplasm/colors.scss +++ b/src/wp-admin/css/colors/ectoplasm/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "ectoplasm"; $base-color: #523f6d; $icon-color: #ece6f6; $highlight-color: #a3b745; diff --git a/src/wp-admin/css/colors/light/colors.scss b/src/wp-admin/css/colors/light/colors.scss index 5a75889a55fd6..817bd34549948 100644 --- a/src/wp-admin/css/colors/light/colors.scss +++ b/src/wp-admin/css/colors/light/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "light"; $base-color: #e5e5e5; $icon-color: #999; $text-color: #333; diff --git a/src/wp-admin/css/colors/midnight/colors.scss b/src/wp-admin/css/colors/midnight/colors.scss index 591232b70810b..8570c9526eb95 100644 --- a/src/wp-admin/css/colors/midnight/colors.scss +++ b/src/wp-admin/css/colors/midnight/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "midnight"; $base-color: #363b3f; $highlight-color: #e14d43; $notification-color: #69a8bb; diff --git a/src/wp-admin/css/colors/modern/colors.scss b/src/wp-admin/css/colors/modern/colors.scss index dc32bf0e4d525..7b7918174cd74 100644 --- a/src/wp-admin/css/colors/modern/colors.scss +++ b/src/wp-admin/css/colors/modern/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "modern"; $base-color: #1e1e1e; $highlight-color: #3858e9; $menu-submenu-focus-text: #33f078; diff --git a/src/wp-admin/css/colors/ocean/colors.scss b/src/wp-admin/css/colors/ocean/colors.scss index 807d98dccf0ad..027c27d470ac0 100644 --- a/src/wp-admin/css/colors/ocean/colors.scss +++ b/src/wp-admin/css/colors/ocean/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "ocean"; $base-color: #738e96; $icon-color: #f2fcff; $highlight-color: #9ebaa0; diff --git a/src/wp-admin/css/colors/sunrise/colors.scss b/src/wp-admin/css/colors/sunrise/colors.scss index 5dd8d82fc1e58..75d74d867067a 100644 --- a/src/wp-admin/css/colors/sunrise/colors.scss +++ b/src/wp-admin/css/colors/sunrise/colors.scss @@ -1,3 +1,4 @@ +$scheme-name: "sunrise"; $base-color: #cf4944; $highlight-color: #dd823b; $notification-color: #ccaf0b; diff --git a/src/wp-admin/css/customize-controls.css b/src/wp-admin/css/customize-controls.css index bdd28880c19f0..20596fa23cdec 100644 --- a/src/wp-admin/css/customize-controls.css +++ b/src/wp-admin/css/customize-controls.css @@ -1733,6 +1733,12 @@ p.customize-section-description { font-weight: 400; } +#customize-notifications-area .notification-message button.switch-to-editor { + display: block; + margin-top: 6px; + font-weight: 400; +} + #customize-theme-controls .control-panel-themes > .accordion-section-title:after { display: none; } diff --git a/src/wp-admin/css/dashboard.css b/src/wp-admin/css/dashboard.css index 4014b7ca75374..e8f414a9f5387 100644 --- a/src/wp-admin/css/dashboard.css +++ b/src/wp-admin/css/dashboard.css @@ -110,17 +110,22 @@ max-width: 100%; } +/* Screen meta exception for when the "Dashboard" heading is missing or located below the Welcome Panel. */ +.index-php #screen-meta-links { + margin: 0 20px 8px 0; +} + /* Welcome Panel */ .welcome-panel { position: relative; overflow: auto; margin: 16px 0; - background: #3858e9 url(../images/about-texture.png) center repeat; + background: #2271b1 url(../images/about-texture.png) center repeat; background-size: 500px 500px; background-blend-mode: overlay; - color: #fff; font-size: 14px; line-height: 1.3; + clear: both; } .welcome-panel::before { @@ -148,16 +153,32 @@ font-size: 20px; font-weight: 400; line-height: 1.4; +} + +.welcome-panel p { + font-size: inherit; + line-height: inherit; +} + +.welcome-panel-header { color: #fff; } -.welcome-panel a { +.welcome-panel-header a { color: #fff; } -.welcome-panel p { - font-size: inherit; - line-height: inherit; +.welcome-panel-header a:focus, +.welcome-panel-header a:hover { + color: #f5e6ab; + text-decoration: none; +} + +.welcome-panel-header a:focus, +.welcome-panel .welcome-panel-close:focus { + outline-color: currentColor; + outline-offset: 1px; + box-shadow: none; } .welcome-panel-header p { @@ -186,6 +207,10 @@ color: #fff; } +.welcome-panel .welcome-panel-close { + color: #fff; +} + .welcome-panel .welcome-panel-close:hover, .welcome-panel .welcome-panel-close:focus, .welcome-panel .welcome-panel-close:hover::before, @@ -230,13 +255,13 @@ grid-template-columns: repeat(3, 1fr); gap: 32px; align-self: flex-end; - background: #3858e9; + background: #fff; } [class*="welcome-panel-icon"] { height: 60px; width: 60px; - background-color: #1d35b4; + background-color: #1d2327; background-position: center; background-size: 24px 24px; background-repeat: no-repeat; diff --git a/src/wp-admin/customize.php b/src/wp-admin/customize.php index aed0646336faf..0df5d81ae571a 100644 --- a/src/wp-admin/customize.php +++ b/src/wp-admin/customize.php @@ -222,7 +222,7 @@
      -
      +

      diff --git a/src/wp-admin/edit-form-blocks.php b/src/wp-admin/edit-form-blocks.php index e05be4c356a3f..9d683b2afd2f5 100644 --- a/src/wp-admin/edit-form-blocks.php +++ b/src/wp-admin/edit-form-blocks.php @@ -28,6 +28,10 @@ $current_screen = get_current_screen(); $current_screen->is_block_editor( true ); +// Load block patterns from w.org. +_load_remote_block_patterns(); +_load_remote_featured_patterns(); + // Default to is-fullscreen-mode to avoid jumps in the UI. add_filter( 'admin_body_class', @@ -53,16 +57,16 @@ static function( $classes ) { // Preload common data. $preload_paths = array( - '/', '/wp/v2/types?context=edit', - '/wp/v2/taxonomies?per_page=-1&context=edit', + '/wp/v2/taxonomies?context=edit', '/wp/v2/themes?status=active', add_query_arg( 'context', 'edit', $rest_path ), sprintf( '/wp/v2/types/%s?context=edit', $post_type ), - sprintf( '/wp/v2/users/me?post_type=%s&context=edit', $post_type ), + '/wp/v2/users/me', array( rest_get_route_for_post_type_items( 'attachment' ), 'OPTIONS' ), array( rest_get_route_for_post_type_items( 'wp_block' ), 'OPTIONS' ), sprintf( '%s/autosaves?context=edit', $rest_path ), + '/wp/v2/settings', ); block_editor_rest_api_preload( $preload_paths, $block_editor_context ); @@ -187,7 +191,6 @@ static function( $classes ) { 'titlePlaceholder' => apply_filters( 'enter_title_here', __( 'Add title' ), $post ), 'bodyPlaceholder' => $body_placeholder, 'autosaveInterval' => AUTOSAVE_INTERVAL, - 'styles' => get_block_editor_theme_styles(), 'richEditingEnabled' => user_can_richedit(), 'postLock' => $lock_details, 'postLockUtils' => array( diff --git a/src/wp-admin/freedoms.php b/src/wp-admin/freedoms.php index 03fe6a68087b5..b22f621f67a08 100644 --- a/src/wp-admin/freedoms.php +++ b/src/wp-admin/freedoms.php @@ -103,8 +103,6 @@ ); ?>

      - -

      Free Software Foundation.' ); ?>

      diff --git a/src/wp-admin/images/about-header-freedoms.svg b/src/wp-admin/images/about-header-freedoms.svg index 84e914fa0756e..2b1f539437516 100644 --- a/src/wp-admin/images/about-header-freedoms.svg +++ b/src/wp-admin/images/about-header-freedoms.svg @@ -1,21 +1,18 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/src/wp-admin/images/about-header-privacy.svg b/src/wp-admin/images/about-header-privacy.svg index 3dc196a59f6ac..2d7166b84c36d 100644 --- a/src/wp-admin/images/about-header-privacy.svg +++ b/src/wp-admin/images/about-header-privacy.svg @@ -1,19 +1,12 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php index 191e5b54ddd8b..ea74f37b25294 100644 --- a/src/wp-admin/includes/ajax-actions.php +++ b/src/wp-admin/includes/ajax-actions.php @@ -2732,6 +2732,10 @@ function wp_ajax_set_attachment_thumbnail() { wp_send_json_error(); } + if ( false === check_ajax_referer( 'set-attachment-thumbnail', '_ajax_nonce', false ) ) { + wp_send_json_error(); + } + $post_ids = array(); // For each URL, try to find its corresponding post ID. foreach ( $_POST['urls'] as $url ) { @@ -2984,7 +2988,7 @@ function wp_ajax_query_attachments() { // Filter query clauses to include filenames. if ( isset( $query['s'] ) ) { - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); } /** @@ -3568,6 +3572,19 @@ function wp_ajax_query_themes() { $update_php = network_admin_url( 'update.php?action=install-theme' ); + $installed_themes = search_theme_directories(); + + if ( false === $installed_themes ) { + $installed_themes = array(); + } + + foreach ( $installed_themes as $theme_slug => $theme_data ) { + // Ignore child themes. + if ( str_contains( $theme_slug, '/' ) ) { + unset( $installed_themes[ $theme_slug ] ); + } + } + foreach ( $api->themes as &$theme ) { $theme->install_url = add_query_arg( array( @@ -3599,12 +3616,19 @@ function wp_ajax_query_themes() { } } + $is_theme_installed = array_key_exists( $theme->slug, $installed_themes ); + + // We only care about installed themes. + $theme->block_theme = $is_theme_installed && wp_get_theme( $theme->slug )->is_block_theme(); + if ( ! is_multisite() && current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { + $customize_url = $theme->block_theme ? admin_url( 'site-editor.php' ) : wp_customize_url( $theme->slug ); + $theme->customize_url = add_query_arg( array( 'return' => urlencode( network_admin_url( 'theme-install.php', 'relative' ) ), ), - wp_customize_url( $theme->slug ) + $customize_url ); } @@ -3788,13 +3812,29 @@ function wp_ajax_parse_media_shortcode() { $shortcode = wp_unslash( $_POST['shortcode'] ); + // Only process previews for media related shortcodes: + $found_shortcodes = get_shortcode_tags_in_content( $shortcode ); + $media_shortcodes = array( + 'audio', + 'embed', + 'playlist', + 'video', + 'gallery', + ); + + $other_shortcodes = array_diff( $found_shortcodes, $media_shortcodes ); + + if ( ! empty( $other_shortcodes ) ) { + wp_send_json_error(); + } + if ( ! empty( $_POST['post_ID'] ) ) { $post = get_post( (int) $_POST['post_ID'] ); } // The embed shortcode requires a post. if ( ! $post || ! current_user_can( 'edit_post', $post->ID ) ) { - if ( 'embed' === $shortcode ) { + if ( in_array( 'embed', $found_shortcodes, true ) ) { wp_send_json_error(); } } else { @@ -4139,6 +4179,9 @@ function wp_ajax_install_theme() { } } + $theme = wp_get_theme( $slug ); + $status['blockTheme'] = $theme->is_block_theme(); + if ( ! is_multisite() && current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { $status['customizeUrl'] = add_query_arg( array( diff --git a/src/wp-admin/includes/class-file-upload-upgrader.php b/src/wp-admin/includes/class-file-upload-upgrader.php index 3bdae332c8a55..f9991c27b1876 100644 --- a/src/wp-admin/includes/class-file-upload-upgrader.php +++ b/src/wp-admin/includes/class-file-upload-upgrader.php @@ -68,6 +68,30 @@ public function __construct( $form, $urlholder ) { wp_die( $file['error'] ); } + if ( 'pluginzip' === $form || 'themezip' === $form ) { + $archive_is_valid = false; + + /** This filter is documented in wp-admin/includes/file.php */ + if ( class_exists( 'ZipArchive', false ) && apply_filters( 'unzip_file_use_ziparchive', true ) ) { + $archive = new ZipArchive(); + $archive_is_valid = $archive->open( $file['file'], ZIPARCHIVE::CHECKCONS ); + + if ( true === $archive_is_valid ) { + $archive->close(); + } + } else { + require_once ABSPATH . 'wp-admin/includes/class-pclzip.php'; + + $archive = new PclZip( $file['file'] ); + $archive_is_valid = is_array( $archive->properties() ); + } + + if ( true !== $archive_is_valid ) { + wp_delete_file( $file['file'] ); + wp_die( __( 'Incompatible Archive.' ) ); + } + } + $this->filename = $_FILES[ $form ]['name']; $this->package = $file['file']; diff --git a/src/wp-admin/includes/class-theme-installer-skin.php b/src/wp-admin/includes/class-theme-installer-skin.php index 46d4c22d8c18b..4c140ba66ea85 100644 --- a/src/wp-admin/includes/class-theme-installer-skin.php +++ b/src/wp-admin/includes/class-theme-installer-skin.php @@ -115,7 +115,7 @@ public function after() { $install_actions = array(); - if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) ) { + if ( current_user_can( 'edit_theme_options' ) && current_user_can( 'customize' ) && ! $theme_info->is_block_theme() ) { $customize_url = add_query_arg( array( 'theme' => urlencode( $stylesheet ), diff --git a/src/wp-admin/includes/class-wp-comments-list-table.php b/src/wp-admin/includes/class-wp-comments-list-table.php index d806262a273bf..ab028f9e28232 100644 --- a/src/wp-admin/includes/class-wp-comments-list-table.php +++ b/src/wp-admin/includes/class-wp-comments-list-table.php @@ -640,6 +640,19 @@ public function single_row( $item ) { $this->user_can = current_user_can( 'edit_comment', $comment->comment_ID ); + $edit_post_cap = $post ? 'edit_post' : 'edit_posts'; + if ( + current_user_can( $edit_post_cap, $comment->comment_post_ID ) || + ( + empty( $post->post_password ) && + current_user_can( 'read_post', $comment->comment_post_ID ) + ) + ) { + // The user has access to the post + } else { + return false; + } + echo "
      "; $this->single_row_columns( $comment ); echo "
      \n"; diff --git a/src/wp-admin/includes/class-wp-filesystem-ssh2.php b/src/wp-admin/includes/class-wp-filesystem-ssh2.php index 7687d2d75082a..b3337160e0d26 100644 --- a/src/wp-admin/includes/class-wp-filesystem-ssh2.php +++ b/src/wp-admin/includes/class-wp-filesystem-ssh2.php @@ -88,7 +88,7 @@ public function __construct( $opt = '' ) { $this->options['public_key'] = $opt['public_key']; $this->options['private_key'] = $opt['private_key']; - $this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa' ); + $this->options['hostkey'] = array( 'hostkey' => 'ssh-rsa,ssh-ed25519' ); $this->keys = true; } elseif ( empty( $opt['username'] ) ) { diff --git a/src/wp-admin/includes/class-wp-list-table.php b/src/wp-admin/includes/class-wp-list-table.php index 3a658b9ace18d..1ed734bd57ef8 100644 --- a/src/wp-admin/includes/class-wp-list-table.php +++ b/src/wp-admin/includes/class-wp-list-table.php @@ -739,6 +739,20 @@ protected function comments_bubble( $post_id, $pending_comments ) { $pending_comments_number ); + $post_object = get_post( $post_id ); + $edit_post_cap = $post_object ? 'edit_post' : 'edit_posts'; + if ( + current_user_can( $edit_post_cap, $post_id ) || + ( + empty( $post_object->post_password ) && + current_user_can( 'read_post', $post_id ) + ) + ) { + // The user has access to the post and thus can see comments + } else { + return false; + } + if ( ! $approved_comments && ! $pending_comments ) { // No comments at all. printf( diff --git a/src/wp-admin/includes/dashboard.php b/src/wp-admin/includes/dashboard.php index a328a33a7acd7..01d9720272025 100644 --- a/src/wp-admin/includes/dashboard.php +++ b/src/wp-admin/includes/dashboard.php @@ -1085,7 +1085,17 @@ function wp_dashboard_recent_comments( $total_items = 5 ) { echo '
        '; foreach ( $comments as $comment ) { - _wp_dashboard_recent_comments_row( $comment ); + + $comment_post = get_post( $comment->comment_post_ID ); + if ( + current_user_can( 'edit_post', $comment->comment_post_ID ) || + ( + empty( $comment_post->post_password ) && + current_user_can( 'read_post', $comment->comment_post_ID ) + ) + ) { + _wp_dashboard_recent_comments_row( $comment ); + } } echo '
      '; diff --git a/src/wp-admin/includes/file.php b/src/wp-admin/includes/file.php index 1fbfe39678193..6a322082eb03a 100644 --- a/src/wp-admin/includes/file.php +++ b/src/wp-admin/includes/file.php @@ -1198,6 +1198,8 @@ function download_url( $url, $timeout = 300, $signature_verification = false ) { if ( $tmpfname_disposition && is_string( $tmpfname_disposition ) && ( 0 === validate_file( $tmpfname_disposition ) ) ) { + $tmpfname_disposition = dirname( $tmpfname ) . '/' . $tmpfname_disposition; + if ( rename( $tmpfname, $tmpfname_disposition ) ) { $tmpfname = $tmpfname_disposition; } diff --git a/src/wp-admin/includes/post.php b/src/wp-admin/includes/post.php index c9b29b5df451f..aa33446d5edc2 100644 --- a/src/wp-admin/includes/post.php +++ b/src/wp-admin/includes/post.php @@ -1302,7 +1302,7 @@ function wp_edit_attachments_query_vars( $q = false ) { // Filter query clauses to include filenames. if ( isset( $q['s'] ) ) { - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); } return $q; diff --git a/src/wp-admin/includes/schema.php b/src/wp-admin/includes/schema.php index d7728e2dff046..3287c3313b3b9 100644 --- a/src/wp-admin/includes/schema.php +++ b/src/wp-admin/includes/schema.php @@ -587,14 +587,12 @@ function populate_options( array $options = array() ) { $autoload = 'yes'; } - if ( is_array( $value ) ) { - $value = serialize( $value ); - } - if ( ! empty( $insert ) ) { $insert .= ', '; } + $value = maybe_serialize( sanitize_option( $option, $value ) ); + $insert .= $wpdb->prepare( '(%s, %s, %s)', $option, $value, $autoload ); } diff --git a/src/wp-admin/includes/update-core.php b/src/wp-admin/includes/update-core.php index 63538751ae5c7..b7666c6719b1e 100644 --- a/src/wp-admin/includes/update-core.php +++ b/src/wp-admin/includes/update-core.php @@ -826,6 +826,23 @@ 'wp-includes/css/dist/editor/editor-styles.min.css', 'wp-includes/css/dist/editor/editor-styles-rtl.css', 'wp-includes/css/dist/editor/editor-styles-rtl.min.css', + // 5.9 + 'wp-includes/blocks/heading/editor.css', + 'wp-includes/blocks/heading/editor.min.css', + 'wp-includes/blocks/heading/editor-rtl.css', + 'wp-includes/blocks/heading/editor-rtl.min.css', + 'wp-includes/blocks/post-content/editor.css', + 'wp-includes/blocks/post-content/editor.min.css', + 'wp-includes/blocks/post-content/editor-rtl.css', + 'wp-includes/blocks/post-content/editor-rtl.min.css', + 'wp-includes/blocks/query-title/editor.css', + 'wp-includes/blocks/query-title/editor.min.css', + 'wp-includes/blocks/query-title/editor-rtl.css', + 'wp-includes/blocks/query-title/editor-rtl.min.css', + 'wp-includes/blocks/tag-cloud/editor.css', + 'wp-includes/blocks/tag-cloud/editor.min.css', + 'wp-includes/blocks/tag-cloud/editor-rtl.css', + 'wp-includes/blocks/tag-cloud/editor-rtl.min.css', ); /** diff --git a/src/wp-admin/includes/upgrade.php b/src/wp-admin/includes/upgrade.php index 2af5946558f4c..aee7beb69b208 100644 --- a/src/wp-admin/includes/upgrade.php +++ b/src/wp-admin/includes/upgrade.php @@ -1621,8 +1621,8 @@ function upgrade_280() { $start = 0; while ( $rows = $wpdb->get_results( "SELECT option_name, option_value FROM $wpdb->options ORDER BY option_id LIMIT $start, 20" ) ) { foreach ( $rows as $row ) { - $value = $row->option_value; - if ( ! @unserialize( $value ) ) { + $value = maybe_unserialize( $row->option_value ); + if ( $value === $row->option_value ) { $value = stripslashes( $value ); } if ( $value !== $row->option_value ) { @@ -2269,9 +2269,12 @@ function upgrade_590() { if ( $wp_current_db_version < 51917 ) { $crons = _get_cron_array(); - // Remove errant `false` values, see #53950. - $crons = array_filter( $crons ); - _set_cron_array( $crons ); + + if ( $crons && is_array( $crons ) ) { + // Remove errant `false` values, see #53950, #54906. + $crons = array_filter( $crons ); + _set_cron_array( $crons ); + } } } diff --git a/src/wp-admin/includes/user.php b/src/wp-admin/includes/user.php index 930a24da171b5..045bccb8c2af0 100644 --- a/src/wp-admin/includes/user.php +++ b/src/wp-admin/includes/user.php @@ -599,6 +599,8 @@ function admin_created_user_email( $text ) { * Checks if the Authorize Application Password request is valid. * * @since 5.6.0 + * @since 6.2.0 Allow insecure HTTP connections for the local environment. + * @since 6.3.2 Validates the success and reject URLs to prevent javascript pseudo protocol being executed. * * @param array $request { * The array of request data. All arguments are optional and may be empty. @@ -614,24 +616,22 @@ function admin_created_user_email( $text ) { function wp_is_authorize_application_password_request_valid( $request, $user ) { $error = new WP_Error(); - if ( ! empty( $request['success_url'] ) ) { - $scheme = wp_parse_url( $request['success_url'], PHP_URL_SCHEME ); - - if ( 'http' === $scheme ) { + if ( isset( $request['success_url'] ) ) { + $validated_success_url = wp_is_authorize_application_redirect_url_valid( $request['success_url'] ); + if ( is_wp_error( $validated_success_url ) ) { $error->add( - 'invalid_redirect_scheme', - __( 'The success URL must be served over a secure connection.' ) + $validated_success_url->get_error_code(), + $validated_success_url->get_error_message() ); } } - if ( ! empty( $request['reject_url'] ) ) { - $scheme = wp_parse_url( $request['reject_url'], PHP_URL_SCHEME ); - - if ( 'http' === $scheme ) { + if ( isset( $request['reject_url'] ) ) { + $validated_reject_url = wp_is_authorize_application_redirect_url_valid( $request['reject_url'] ); + if ( is_wp_error( $validated_reject_url ) ) { $error->add( - 'invalid_redirect_scheme', - __( 'The rejection URL must be served over a secure connection.' ) + $validated_reject_url->get_error_code(), + $validated_reject_url->get_error_message() ); } } @@ -660,3 +660,59 @@ function wp_is_authorize_application_password_request_valid( $request, $user ) { return true; } + +/** + * Validates the redirect URL protocol scheme. The protocol can be anything except http and javascript. + * + * @since 6.3.2 + * + * @param string $url - The redirect URL to be validated. + * + * @return true|WP_Error True if the redirect URL is valid, a WP_Error object otherwise. + */ +function wp_is_authorize_application_redirect_url_valid( $url ) { + $bad_protocols = array( 'javascript', 'data' ); + if ( empty( $url ) ) { + return true; + } + + // Based on https://www.rfc-editor.org/rfc/rfc2396#section-3.1 + $valid_scheme_regex = '/^[a-zA-Z][a-zA-Z0-9+.-]*:/'; + if ( ! preg_match( $valid_scheme_regex, $url ) ) { + return new WP_Error( + 'invalid_redirect_url_format', + __( 'Invalid URL format.' ) + ); + } + + /** + * Filters the list of invalid protocols used in applications redirect URLs. + * + * @since 6.3.2 + * + * @param string[] $bad_protocols Array of invalid protocols. + * @param string $url The redirect URL to be validated. + */ + $invalid_protocols = array_map( 'strtolower', apply_filters( 'wp_authorize_application_redirect_url_invalid_protocols', $bad_protocols, $url ) ); + + $scheme = wp_parse_url( $url, PHP_URL_SCHEME ); + $host = wp_parse_url( $url, PHP_URL_HOST ); + $is_local = 'local' === wp_get_environment_type(); + + // validates if the proper URI format is applied to the $url + if ( empty( $host ) || empty( $scheme ) || in_array( strtolower( $scheme ), $invalid_protocols, true ) ) { + return new WP_Error( + 'invalid_redirect_url_format', + __( 'Invalid URL format.' ) + ); + } + + if ( 'http' === $scheme && ! $is_local ) { + return new WP_Error( + 'invalid_redirect_scheme', + __( 'The URL must be served over a secure connection.' ) + ); + } + + return true; +} diff --git a/src/wp-admin/plugins.php b/src/wp-admin/plugins.php index 373e1f8ad74a2..b1489111ec4cf 100644 --- a/src/wp-admin/plugins.php +++ b/src/wp-admin/plugins.php @@ -612,7 +612,7 @@ /* translators: 1: Plugin file, 2: Error message. */ __( 'The plugin %1$s has been deactivated due to an error: %2$s' ), '' . esc_html( $plugin_file ) . '', - $error->get_error_message() + esc_html( $error->get_error_message() ) ); echo '

      '; } @@ -676,7 +676,7 @@ printf( /* translators: %s: Error message. */ __( 'Plugin could not be deleted due to an error: %s' ), - $delete_result->get_error_message() + esc_html( $delete_result->get_error_message() ) ); ?>

      diff --git a/src/wp-admin/site-editor.php b/src/wp-admin/site-editor.php index 421ceb4861b9a..71779f307a190 100644 --- a/src/wp-admin/site-editor.php +++ b/src/wp-admin/site-editor.php @@ -31,6 +31,10 @@ $current_screen = get_current_screen(); $current_screen->is_block_editor( true ); +// Load block patterns from w.org. +_load_remote_block_patterns(); +_load_remote_featured_patterns(); + // Default to is-fullscreen-mode to avoid jumps in the UI. add_filter( 'admin_body_class', @@ -68,7 +72,6 @@ static function( $classes ) { $active_theme = wp_get_theme()->get_stylesheet(); $preload_paths = array( array( '/wp/v2/media', 'OPTIONS' ), - '/', '/wp/v2/types?context=edit', '/wp/v2/types/wp_template?context=edit', '/wp/v2/types/wp_template-part?context=edit', diff --git a/src/wp-admin/theme-install.php b/src/wp-admin/theme-install.php index cd3a607ea91fd..7d592dda6500d 100644 --- a/src/wp-admin/theme-install.php +++ b/src/wp-admin/theme-install.php @@ -35,9 +35,10 @@ $installed_themes = array(); } -foreach ( $installed_themes as $k => $v ) { - if ( false !== strpos( $k, '/' ) ) { - unset( $installed_themes[ $k ] ); +foreach ( $installed_themes as $theme_slug => $theme_data ) { + // Ignore child themes. + if ( str_contains( $theme_slug, '/' ) ) { + unset( $installed_themes[ $theme_slug ] ); } } @@ -373,7 +374,9 @@ <# } #> <# if ( data.customize_url ) { #> <# if ( ! data.active ) { #> - + <# if ( ! data.block_theme ) { #> + + <# } #> <# } else { #> <# } #> diff --git a/src/wp-admin/update-core.php b/src/wp-admin/update-core.php index ea9df4eeba27b..783fc601ce3e1 100644 --- a/src/wp-admin/update-core.php +++ b/src/wp-admin/update-core.php @@ -206,18 +206,26 @@ function dismissed_updates() { 'available' => false, ) ); - if ( $dismissed ) { + if ( $dismissed ) { $show_text = esc_js( __( 'Show hidden updates' ) ); $hide_text = esc_js( __( 'Hide hidden updates' ) ); ?> - +

      '; echo '
        '; diff --git a/src/wp-admin/update.php b/src/wp-admin/update.php index a4a2abf8dbf21..98134844f851a 100644 --- a/src/wp-admin/update.php +++ b/src/wp-admin/update.php @@ -154,6 +154,10 @@ check_admin_referer( 'plugin-upload' ); + if ( isset( $_FILES['pluginzip']['name'] ) && ! str_ends_with( strtolower( $_FILES['pluginzip']['name'] ), '.zip' ) ) { + wp_die( __( 'Only .zip archives may be uploaded.' ) ); + } + $file_upload = new File_Upload_Upgrader( 'pluginzip', 'package' ); // Used in the HTML title tag. @@ -302,6 +306,10 @@ check_admin_referer( 'theme-upload' ); + if ( isset( $_FILES['themezip']['name'] ) && ! str_ends_with( strtolower( $_FILES['themezip']['name'] ), '.zip' ) ) { + wp_die( __( 'Only .zip archives may be uploaded.' ) ); + } + $file_upload = new File_Upload_Upgrader( 'themezip', 'package' ); // Used in the HTML title tag. diff --git a/src/wp-content/themes/twentyeleven/readme.txt b/src/wp-content/themes/twentyeleven/readme.txt index 1e5cc6f0cb231..3dad441371f13 100644 --- a/src/wp-content/themes/twentyeleven/readme.txt +++ b/src/wp-content/themes/twentyeleven/readme.txt @@ -2,7 +2,7 @@ Contributors: wordpressdotorg Requires at least: WordPress 3.2 Tested up to: 5.9 -Stable tag: 3.9 +Stable tag: 4.0 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, one-column, two-columns, left-sidebar, right-sidebar, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, footer-widgets, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, block-patterns @@ -47,6 +47,11 @@ Images == Changelog == += 4.0 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Eleven_Theme_Changelog#Version_4.0 + = 3.9 = * Released: July 26, 2021 diff --git a/src/wp-content/themes/twentyeleven/style.css b/src/wp-content/themes/twentyeleven/style.css index 0c4778aff7dac..3a29877ace430 100644 --- a/src/wp-content/themes/twentyeleven/style.css +++ b/src/wp-content/themes/twentyeleven/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyeleven/ Author: the WordPress team Author URI: https://wordpress.org/ Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats. -Version: 3.9 +Version: 4.0 Tested up to: 5.9 Requires PHP: 5.2.4 License: GNU General Public License v2 or later diff --git a/src/wp-content/themes/twentyfifteen/readme.txt b/src/wp-content/themes/twentyfifteen/readme.txt index a6092631e6687..c16c4acf96e13 100644 --- a/src/wp-content/themes/twentyfifteen/readme.txt +++ b/src/wp-content/themes/twentyfifteen/readme.txt @@ -2,7 +2,7 @@ Contributors: wordpressdotorg Requires at least: WordPress 4.1 Tested up to: 5.9 -Version: 3.0 +Version: 3.1 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, two-columns, left-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-logo, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready, block-patterns @@ -61,6 +61,11 @@ Source: https://stocksnap.io/photo/purple-yellow-ACF0693B9C == Changelog == += 3.1 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Fifteen_Theme_Changelog#Version_3.1 + = 3.0 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentyfifteen/style.css b/src/wp-content/themes/twentyfifteen/style.css index b863ba5ed0cb4..66ee45694fb2a 100644 --- a/src/wp-content/themes/twentyfifteen/style.css +++ b/src/wp-content/themes/twentyfifteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyfifteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Our 2015 default theme is clean, blog-focused, and designed for clarity. Twenty Fifteen's simple, straightforward typography is readable on a wide variety of screen sizes, and suitable for multiple languages. We designed it using a mobile-first approach, meaning your content takes center-stage, regardless of whether your visitors arrive by smartphone, tablet, laptop, or desktop computer. -Version: 3.0 +Version: 3.1 Tested up to: 5.9 Requires PHP: 5.2.4 License: GNU General Public License v2 or later diff --git a/src/wp-content/themes/twentyfourteen/readme.txt b/src/wp-content/themes/twentyfourteen/readme.txt index d384b1a4354bc..4225b761aba6d 100644 --- a/src/wp-content/themes/twentyfourteen/readme.txt +++ b/src/wp-content/themes/twentyfourteen/readme.txt @@ -2,7 +2,7 @@ Contributors: wordpressdotorg Requires at least: WordPress 3.6 Tested up to: 5.9 -Stable tag: 3.2 +Stable tag: 3.3 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, news, two-columns, three-columns, left-sidebar, right-sidebar, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, footer-widgets, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, accessibility-ready, block-patterns @@ -58,6 +58,11 @@ Source: https://stocksnap.io/photo/fog-mountain-ZKN6UKFKEO == Changelog == += 3.3 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Fourteen_Theme_Changelog#Version_3.3 + = 3.2 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentyfourteen/style.css b/src/wp-content/themes/twentyfourteen/style.css index 68fc9854806bf..10049af230791 100644 --- a/src/wp-content/themes/twentyfourteen/style.css +++ b/src/wp-content/themes/twentyfourteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyfourteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: In 2014, our default theme lets you create a responsive magazine website with a sleek, modern design. Feature your favorite homepage content in either a grid or a slider. Use the three widget areas to customize your website, and change your content's layout with a full-width page template and a contributor page to show off your authors. Creating a magazine website with WordPress has never been easier. -Version: 3.2 +Version: 3.3 Tested up to: 5.9 Requires PHP: 5.2.4 License: GNU General Public License v2 or later diff --git a/src/wp-content/themes/twentynineteen/package-lock.json b/src/wp-content/themes/twentynineteen/package-lock.json index 3a24e2c60ed0a..0d935104557d7 100644 --- a/src/wp-content/themes/twentynineteen/package-lock.json +++ b/src/wp-content/themes/twentynineteen/package-lock.json @@ -1,6 +1,6 @@ { "name": "twentynineteen", - "version": "2.1.0", + "version": "2.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/wp-content/themes/twentynineteen/package.json b/src/wp-content/themes/twentynineteen/package.json index 4135d5e0eb638..ff26c74e9219c 100644 --- a/src/wp-content/themes/twentynineteen/package.json +++ b/src/wp-content/themes/twentynineteen/package.json @@ -1,6 +1,6 @@ { "name": "twentynineteen", - "version": "2.1.0", + "version": "2.2.0", "description": "Default WP Theme", "bugs": { "url": "https://core.trac.wordpress.org/" diff --git a/src/wp-content/themes/twentynineteen/readme.txt b/src/wp-content/themes/twentynineteen/readme.txt index dad16c41c4f15..5161eb1ef2aa1 100644 --- a/src/wp-content/themes/twentynineteen/readme.txt +++ b/src/wp-content/themes/twentynineteen/readme.txt @@ -3,7 +3,7 @@ Contributors: wordpressdotorg Tags: one-column, flexible-header, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, rtl-language-support, sticky-post, threaded-comments, translation-ready, block-patterns Requires at least: 4.9.6 Tested up to: 5.9 -Stable tag: 2.1 +Stable tag: 2.2 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -39,6 +39,11 @@ GNU General Public License for more details. == Changelog == += 2.2 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Nineteen_Theme_Changelog#Version_2.2 + = 2.1 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentynineteen/style-rtl.css b/src/wp-content/themes/twentynineteen/style-rtl.css index 7046be4e65d9d..9382635db7008 100644 --- a/src/wp-content/themes/twentynineteen/style-rtl.css +++ b/src/wp-content/themes/twentynineteen/style-rtl.css @@ -8,7 +8,7 @@ Description: Our 2019 default theme is designed to show off the power of the blo Tested up to: 5.9 Requires at least: 4.9.6 Requires PHP: 5.2.4 -Version: 2.1 +Version: 2.2 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentynineteen diff --git a/src/wp-content/themes/twentynineteen/style.css b/src/wp-content/themes/twentynineteen/style.css index 16e80ce84e54b..dc2ea1ddb8a0a 100644 --- a/src/wp-content/themes/twentynineteen/style.css +++ b/src/wp-content/themes/twentynineteen/style.css @@ -8,7 +8,7 @@ Description: Our 2019 default theme is designed to show off the power of the blo Tested up to: 5.9 Requires at least: 4.9.6 Requires PHP: 5.2.4 -Version: 2.1 +Version: 2.2 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentynineteen diff --git a/src/wp-content/themes/twentynineteen/style.scss b/src/wp-content/themes/twentynineteen/style.scss index 668f4c6a74873..ed0e3cf8cf89a 100644 --- a/src/wp-content/themes/twentynineteen/style.scss +++ b/src/wp-content/themes/twentynineteen/style.scss @@ -4,9 +4,10 @@ Theme URI: https://wordpress.org/themes/twentynineteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Our 2019 default theme is designed to show off the power of the block editor. It features custom styles for all the default blocks, and is built so that what you see in the editor looks like what you'll see on your website. Twenty Nineteen is designed to be adaptable to a wide range of websites, whether you’re running a photo blog, launching a new business, or supporting a non-profit. Featuring ample whitespace and modern sans-serif headlines paired with classic serif body text, it's built to be beautiful on all screen sizes. +Tested up to: 5.9 Requires at least: 4.9.6 Requires PHP: 5.2.4 -Version: 2.1 +Version: 2.2 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentynineteen diff --git a/src/wp-content/themes/twentyseventeen/readme.txt b/src/wp-content/themes/twentyseventeen/readme.txt index c041d3f1464f0..8e6a41c735995 100644 --- a/src/wp-content/themes/twentyseventeen/readme.txt +++ b/src/wp-content/themes/twentyseventeen/readme.txt @@ -1,7 +1,7 @@ === Twenty Seventeen === Contributors: wordpressdotorg Tested up to: 5.9 -Version: 2.8 +Version: 2.9 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: one-column, two-columns, right-sidebar, flexible-header, accessibility-ready, custom-colors, custom-header, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, post-formats, rtl-language-support, sticky-post, theme-options, threaded-comments, translation-ready, block-patterns @@ -68,6 +68,11 @@ Source: https://stocksnap.io/photo/striped-fabric-9CBVWF2CDU == Changelog == += 2.9 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Seventeen_Theme_Changelog#Version_2.9 + = 2.8 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentyseventeen/style.css b/src/wp-content/themes/twentyseventeen/style.css index bfcc1260e79ab..f02339b716192 100644 --- a/src/wp-content/themes/twentyseventeen/style.css +++ b/src/wp-content/themes/twentyseventeen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyseventeen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Twenty Seventeen brings your site to life with header video and immersive featured images. With a focus on business sites, it features multiple sections on the front page as well as widgets, navigation and social menus, a logo, and more. Personalize its asymmetrical grid with a custom color scheme and showcase your multimedia content with post formats. Our default theme for 2017 works great in many languages, for any abilities, and on any device. -Version: 2.8 +Version: 2.9 Tested up to: 5.9 Requires at least: 4.7 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentysixteen/readme.txt b/src/wp-content/themes/twentysixteen/readme.txt index 06002d9a2eefe..6ded87f73f583 100644 --- a/src/wp-content/themes/twentysixteen/readme.txt +++ b/src/wp-content/themes/twentysixteen/readme.txt @@ -1,7 +1,7 @@ === Twenty Sixteen === Contributors: wordpressdotorg Tested up to: 5.9 -Version: 2.5 +Version: 2.6 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: one-column, two-columns, right-sidebar, accessibility-ready, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-images, flexible-header, microformats, post-formats, rtl-language-support, sticky-post, threaded-comments, translation-ready, blog, block-patterns @@ -55,6 +55,11 @@ Image used in screenshot.png: A photo by Austin Schmid (https://unsplash.com/sch == Changelog == += 2.6 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Sixteen_Theme_Changelog#Version_2.6 + = 2.5 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentysixteen/style.css b/src/wp-content/themes/twentysixteen/style.css index 21858c250e26d..269457f27df47 100644 --- a/src/wp-content/themes/twentysixteen/style.css +++ b/src/wp-content/themes/twentysixteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentysixteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: Twenty Sixteen is a modernized take on an ever-popular WordPress layout — the horizontal masthead with an optional right sidebar that works perfectly for blogs and websites. It has custom color options with beautiful default color schemes, a harmonious fluid grid using a mobile-first approach, and impeccable polish in every detail. Twenty Sixteen will make your WordPress look beautiful everywhere. -Version: 2.5 +Version: 2.6 Tested up to: 5.9 Requires at least: 4.4 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentyten/readme.txt b/src/wp-content/themes/twentyten/readme.txt index 5ee1ce473aab8..0ed204bf63fae 100644 --- a/src/wp-content/themes/twentyten/readme.txt +++ b/src/wp-content/themes/twentyten/readme.txt @@ -1,7 +1,7 @@ === Twenty Ten === Contributors: wordpressdotorg Tested up to: 5.9 -Stable tag: 3.5 +Stable tag: 3.6 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, two-columns, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu, flexible-header, featured-images, footer-widgets, featured-image-header, block-patterns @@ -42,6 +42,11 @@ Images == Changelog == += 3.6 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Ten_Theme_Changelog#Version_3.6 + = 3.5 = * Released: July 26, 2021 diff --git a/src/wp-content/themes/twentyten/style.css b/src/wp-content/themes/twentyten/style.css index 2786557881f13..4d29b88657209 100644 --- a/src/wp-content/themes/twentyten/style.css +++ b/src/wp-content/themes/twentyten/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentyten/ Description: The 2010 theme for WordPress is stylish, customizable, simple, and readable -- make it yours with a custom menu, header image, and background. Twenty Ten supports six widgetized areas (two in the sidebar, four in the footer) and featured images (thumbnails for gallery posts and custom header images for posts and pages). It includes stylesheets for print and the admin Visual Editor, special styles for posts in the "Asides" and "Gallery" categories, and has an optional one-column page template that removes the sidebar. Author: the WordPress team Author URI: https://wordpress.org/ -Version: 3.5 +Version: 3.6 Tested up to: 5.9 Requires at least: 3.0 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentythirteen/readme.txt b/src/wp-content/themes/twentythirteen/readme.txt index cced608c09129..cf8c990801e75 100644 --- a/src/wp-content/themes/twentythirteen/readme.txt +++ b/src/wp-content/themes/twentythirteen/readme.txt @@ -52,6 +52,11 @@ Toroidal Colony: https://www.flickr.com/photos/nasacommons/13889485757/in/album- == Changelog == += 3.5 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Thirteen_Theme_Changelog#Version_3.5 + = 3.4 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentythirteen/style.css b/src/wp-content/themes/twentythirteen/style.css index 0d2ea1aae1d88..730176c764e96 100644 --- a/src/wp-content/themes/twentythirteen/style.css +++ b/src/wp-content/themes/twentythirteen/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentythirteen/ Author: the WordPress team Author URI: https://wordpress.org/ Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small. -Version: 3.4 +Version: 3.5 Tested up to: 5.9 Requires at least: 3.6 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentytwelve/readme.txt b/src/wp-content/themes/twentytwelve/readme.txt index 0fff69c96280e..e6dba1a221e26 100644 --- a/src/wp-content/themes/twentytwelve/readme.txt +++ b/src/wp-content/themes/twentytwelve/readme.txt @@ -1,7 +1,7 @@ === Twenty Twelve === Contributors: wordpressdotorg Tested up to: 5.9 -Stable tag: 3.5 +Stable tag: 3.6 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Tags: blog, one-column, two-columns, right-sidebar, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, footer-widgets, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready, block-patterns @@ -46,10 +46,15 @@ Source: https://github.com/aFarkas/html5shiv == Changelog == += 3.6 = +* Released: January 25, 2022 + +https://codex.wordpress.org/Twenty_Twelve_Theme_Changelog#Version_3.6 + = 3.5 = * Released: July 26, 2021 -https://codex.wordpress.org/Twenty_Twelve_Theme_Changelog#Version_3.4 +https://codex.wordpress.org/Twenty_Twelve_Theme_Changelog#Version_3.5 = 3.4 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentytwelve/style.css b/src/wp-content/themes/twentytwelve/style.css index a27e9cf98a1db..b3989fc47d31e 100644 --- a/src/wp-content/themes/twentytwelve/style.css +++ b/src/wp-content/themes/twentytwelve/style.css @@ -4,7 +4,7 @@ Theme URI: https://wordpress.org/themes/twentytwelve/ Author: the WordPress team Author URI: https://wordpress.org/ Description: The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background. -Version: 3.5 +Version: 3.6 Tested up to: 5.9 Requires at least: 3.5 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentytwenty/package-lock.json b/src/wp-content/themes/twentytwenty/package-lock.json index abbf727cf901d..9a8150e9cdd97 100644 --- a/src/wp-content/themes/twentytwenty/package-lock.json +++ b/src/wp-content/themes/twentytwenty/package-lock.json @@ -1,6 +1,6 @@ { "name": "twentytwenty", - "version": "1.8.0", + "version": "1.9.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/wp-content/themes/twentytwenty/package.json b/src/wp-content/themes/twentytwenty/package.json index 69b83bc4aaa38..18b98886d9649 100644 --- a/src/wp-content/themes/twentytwenty/package.json +++ b/src/wp-content/themes/twentytwenty/package.json @@ -1,6 +1,6 @@ { "name": "twentytwenty", - "version": "1.8.0", + "version": "1.9.0", "description": "Default WP Theme", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/src/wp-content/themes/twentytwenty/readme.txt b/src/wp-content/themes/twentytwenty/readme.txt index fb9dcfe3f6df3..5ce24c1388c59 100644 --- a/src/wp-content/themes/twentytwenty/readme.txt +++ b/src/wp-content/themes/twentytwenty/readme.txt @@ -1,7 +1,7 @@ === Twenty Twenty === Contributors: the WordPress team Tested up to: 5.9 -Stable tag: 1.8 +Stable tag: 1.9 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -22,6 +22,11 @@ you pick, ensuring a high, accessible color contrast for your visitors. == Changelog == += 1.9 = +* Released: January 25, 2022 + +https://wordpress.org/support/article/twenty-twenty-changelog/#Version_1.9 + = 1.8 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentytwenty/style-rtl.css b/src/wp-content/themes/twentytwenty/style-rtl.css index d823d3143301c..13f0043aacbed 100644 --- a/src/wp-content/themes/twentytwenty/style-rtl.css +++ b/src/wp-content/themes/twentytwenty/style-rtl.css @@ -1,7 +1,7 @@ /* Theme Name: Twenty Twenty Text Domain: twentytwenty -Version: 1.8 +Version: 1.9 Tested up to: 5.9 Requires at least: 4.7 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentytwenty/style.css b/src/wp-content/themes/twentytwenty/style.css index a18ccc10187a5..e9fcdd43d9921 100644 --- a/src/wp-content/themes/twentytwenty/style.css +++ b/src/wp-content/themes/twentytwenty/style.css @@ -1,7 +1,7 @@ /* Theme Name: Twenty Twenty Text Domain: twentytwenty -Version: 1.8 +Version: 1.9 Tested up to: 5.9 Requires at least: 4.7 Requires PHP: 5.2.4 diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css index 5afd750a7a110..e91a00d68e00b 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css @@ -398,19 +398,6 @@ a:hover { /** * Block Options */ -[data-block].wp-block-buttons { - margin-top: 0; - margin-bottom: 0; -} - -[data-block].wp-block-buttons .wp-block-button:first-child { - margin-top: 30px; -} - -[data-block].wp-block-buttons .wp-block-button:last-child { - margin-bottom: 30px; -} - .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: #d1e4dd; } diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map index 24926990c8568..ff0c02120751f 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map @@ -1 +1 @@ -{"version":3,"sources":["style-editor.css","../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":"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;;AuCz7DA;EAMC,WAAA;AvCu7DD;AuC37DC;EAEC,WAAA;AvC67DF;;AuCr7DC;;;;;;;;EAQC,mBAAA;AvCw7DF;;AuCp7DA;EAMC,sBAAA;AvCk7DD;AuCt7DC;EAEC,sBAAA;AvCw7DF;;AuCn7DA;EAMC,yBAAA;AvCi7DD;AuCr7DC;EAEC,yBAAA;AvCu7DF;;AuCl7DA;EAMC,yBAAA;AvCg7DD;AuCp7DC;EAEC,yBAAA;AvCs7DF;;AuCj7DA;EAMC,yBAAA;AvC+6DD;AuCn7DC;EAEC,yBAAA;AvCq7DF;;AuCh7DA;EAMC,yBAAA;AvC86DD;AuCl7DC;EAEC,yBAAA;AvCo7DF;;AuC/6DA;EAMC,yBAAA;AvC66DD;AuCj7DC;EAEC,yBAAA;AvCm7DF;;AuC96DA;EAMC,yBAAA;AvC46DD;AuCh7DC;EAEC,yBAAA;AvCk7DF;;AuC76DA;EAMC,yBAAA;AvC26DD;AuC/6DC;EAEC,yBAAA;AvCi7DF;;AuC56DA;EAMC,yBAAA;AvC06DD;AuC96DC;EAEC,yBAAA;AvCg7DF;;AuC36DA;EAMC,yBAAA;AvCy6DD;AuC76DC;EAEC,yBAAA;AvC+6DF;;AuC16DA;EAMC,sBAAA;AvCw6DD;AuC56DC;EAEC,sBAAA;AvC86DF;;AuCv6DC;EAGG,WAAA;AvCw6DJ;;AuC36DC;EAGG,WAAA;AvCw6DJ;;AuC36DC;EAGG,WAAA;AvCw6DJ;AuCr6DE;EAMC;AvCm6DH;AuCz6DE;EAMC;AvCm6DH;AuCz6DE;EAMC;AvCm6DH;AuC/5DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuCr6DC;EAOG,cAAA;AvC85DJ;AuC35DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;AuC/5DE;EAMC;AvCy5DH;;AuCn5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD;;AuCt5DA;EACC,qDAAA;AvCy5DD","file":"ie-editor.css"} \ No newline at end of file +{"version":3,"sources":["style-editor.css","../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":"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;AvC66DF;;AuCz6DA;EAMC,sBAAA;AvCu6DD;AuC36DC;EAEC,sBAAA;AvC66DF;;AuCx6DA;EAMC,yBAAA;AvCs6DD;AuC16DC;EAEC,yBAAA;AvC46DF;;AuCv6DA;EAMC,yBAAA;AvCq6DD;AuCz6DC;EAEC,yBAAA;AvC26DF;;AuCt6DA;EAMC,yBAAA;AvCo6DD;AuCx6DC;EAEC,yBAAA;AvC06DF;;AuCr6DA;EAMC,yBAAA;AvCm6DD;AuCv6DC;EAEC,yBAAA;AvCy6DF;;AuCp6DA;EAMC,yBAAA;AvCk6DD;AuCt6DC;EAEC,yBAAA;AvCw6DF;;AuCn6DA;EAMC,yBAAA;AvCi6DD;AuCr6DC;EAEC,yBAAA;AvCu6DF;;AuCl6DA;EAMC,yBAAA;AvCg6DD;AuCp6DC;EAEC,yBAAA;AvCs6DF;;AuCj6DA;EAMC,yBAAA;AvC+5DD;AuCn6DC;EAEC,yBAAA;AvCq6DF;;AuCh6DA;EAMC,yBAAA;AvC85DD;AuCl6DC;EAEC,yBAAA;AvCo6DF;;AuC/5DA;EAMC,sBAAA;AvC65DD;AuCj6DC;EAEC,sBAAA;AvCm6DF;;AuC55DC;EAGG,WAAA;AvC65DJ;;AuCh6DC;EAGG,WAAA;AvC65DJ;;AuCh6DC;EAGG,WAAA;AvC65DJ;AuC15DE;EAMC;AvCw5DH;AuC95DE;EAMC;AvCw5DH;AuC95DE;EAMC;AvCw5DH;AuCp5DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuC15DC;EAOG,cAAA;AvCm5DJ;AuCh5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;AuCp5DE;EAMC;AvC84DH;;AuCx4DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD;;AuC34DA;EACC,qDAAA;AvC84DD","file":"ie-editor.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie.css b/src/wp-content/themes/twentytwentyone/assets/css/ie.css index 969aa1375043b..d2a042d4cf329 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/ie.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/ie.css @@ -9,7 +9,7 @@ Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the Requires at least: 5.3 Tested up to: 5.9 Requires PHP: 5.6 -Version: 1.4 +Version: 1.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyone diff --git a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css index d6019c45bb020..22cf90dd98a2a 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css +++ b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css @@ -586,19 +586,6 @@ a:hover { /** * Block Options */ -[data-block].wp-block-buttons { - margin-top: 0; - margin-bottom: 0; -} - -[data-block].wp-block-buttons .wp-block-button:first-child { - margin-top: var(--global--spacing-vertical); -} - -[data-block].wp-block-buttons .wp-block-button:last-child { - margin-bottom: var(--global--spacing-vertical); -} - .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) { color: var(--global--color-background); } diff --git a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map index 8006c92667847..c8665ac5a43be 100644 --- a/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map +++ b/src/wp-content/themes/twentytwentyone/assets/css/style-editor.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-comments/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;ACAA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;AAAyD;EACzD;AAAsD;EACtD;EACA;AAAwD;EACxD;AAAsD;AAEtD;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;IACC;IACA;IACA;IACA;IACA;;;ACtPF;AAAA;AAAA;AAIA;AAAA;AAAA;AA4EA;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AA/DC;EAoED;IACC;IACA;IACA;IACA;;;AApCA;EA0CD;IACC;IACA;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAhGC;EA2GD;IACC;IACA;IACA;IACA;;;ACzIF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;AAGD;EAGC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAEC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;ADlDA;ECpBF;IA0EE;;EAEA;IACC;;;;AC7EH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAIF;AACA;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC5CD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AAEC;EACA;EAEA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAEA;EACC;;AAKF;EACC;EACA;;AAEA;EACC;;AAIF;AAEC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;;AAQD;EAEC;;;AC1EF;ECsBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMC;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;;ADzEF;AAAA;AAAA;AAMA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;;AAYC;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;AAAA;EAEC;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CC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;ACxCD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAMD;AAAA;EAEC;;;AAIF;EACC;EACA;;;AC5BA;EACC;EACA;;AdiFD;EACC;;AAID;EACC;;AAID;EAEC;;AcxFD;EACC;;AAID;EACC;;;ACbD;EACC;EACA;;AAKA;EACC;;AAGD;EACC;EACA;EACA;;AAMD;EACC;;AAUC;EAEC;;AAKH;EACC;;;ACzCH;EACC;;AAEA;EACC;;;ACJF;EACC;EACA;EACA;;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAID;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EARD;IASE;;;AAGD;EACC;;AAGD;EAEC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;;AAUD;EACC;;;AAQF;AAAA;EACC;;;ACrGD;EACC;;AzBuBA;EyBxBD;IAIE;;;;ACNH;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EAIC;;AAIF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;A1B9EF;E0B6CD;IAsCE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;;A1B9FH;E0BpBF;IAyHE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A1BhHD;E0B1BF;IA+IE;;EAEA;IACC;;;;AClJH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;;AAGD;AAAA;EACC;;AAIF;EtBPA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EsBCC;EACA;;AtBIA;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;AsB5CA;EACC;EACA;;AAEA;EACC;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAKF;EACC;EACA;;AAMD;EACC;;AAGD;EACC;;AAQC;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAMJ;EAEC;;;AAKH;EACC;;;AAOC;EACC;;;AC9GH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;EAEC;;AAEA;AAAA;AAAA;EACC;;AAIF;AAAA;EACC;;AAIF;AAAA;AAAA;AAAA;AAAA;EAIC;;;AC1CD;EACC;EACA;;AAKA;EACC;;AAGD;EACC;;;ACZF;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;ACpFD;EACC;;;ACHF;EACC;EACA;;;ACCA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAAA;AAAA;AAAA;AAMA;EACC;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;;AAKF;EACC;EACA;;;AAID;EACC;;;AAGD;EACC;;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;;;AAID;EAIC;;AAGA;EAEC;;AAGD;EAEC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EAEC;IACC;IACA;;;EAGD;IACC;IACA;;;AAKF;EACC;;;AAID;EACC;;;AC1ID;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAID;EACC;;AAEA;EACC;;AAGD;EACC;EACA;;;AAQD;EAEC;;;AAIF;AAAA;EAEC;;;ACxCD;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAQD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAQC;;;AAIF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAKF;EAMC;;AAJA;EACC;EACA;;;AAOD;EAGG;;AAGF;EACC;EAKA;;AAHA;EACC;;AAMH;EAOG;;AAGF;EACC;EAKA;;AAHA;EACC;;;AAQJ;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;EACC","file":"style-editor.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-comments/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;ACAA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;AAAyD;EACzD;AAAsD;EACtD;EACA;AAAwD;EACxD;AAAsD;AAEtD;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;;;AAGD;EACC;;AAEA;EAHD;IAIE;;;;AAIF;EACC;IACC;IACA;IACA;IACA;IACA;;;ACtPF;AAAA;AAAA;AAIA;AAAA;AAAA;AA4EA;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AA/DC;EAoED;IACC;IACA;IACA;IACA;;;AApCA;EA0CD;IACC;IACA;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAhGC;EA2GD;IACC;IACA;IACA;IACA;;;ACzIF;EACC;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;AAGD;EAGC;;AAEA;EACC;EACA;EACA;;AAGD;AAAA;AAAA;EAEC;EACA;;AAIF;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;ADlDA;ECpBF;IA0EE;;EAEA;IACC;;;;AC7EH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAIF;AACA;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC5CD;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;ACXD;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AAEC;EACA;EAEA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAEA;EACC;;AAKF;EACC;EACA;;AAEA;EACC;;AAIF;AAEC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;;AAQD;EAEC;;;AC1EF;ECsBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMC;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAID;EACC;EACA;EACA;;;ADzEF;AAAA;AAAA;AAYG;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;AAAA;EAEC;EACA;EACA;;AAID;EACC;EACA;;AAUA;EAGC;;A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;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;ACxCD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAMD;AAAA;EAEC;;;AAIF;EACC;EACA;;;AC5BA;EACC;EACA;;AdiFD;EACC;;AAID;EACC;;AAID;EAEC;;AcxFD;EACC;;AAID;EACC;;;ACbD;EACC;EACA;;AAKA;EACC;;AAGD;EACC;EACA;EACA;;AAMD;EACC;;AAUC;EAEC;;AAKH;EACC;;;ACzCH;EACC;;AAEA;EACC;;;ACJF;EACC;EACA;EACA;;;ACHD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;;AAID;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EARD;IASE;;;AAGD;EACC;;AAGD;EAEC;EACA;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;;AAUD;EACC;;;AAQF;AAAA;EACC;;;ACrGD;EACC;;AzBuBA;EyBxBD;IAIE;;;;ACNH;EACC;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAEA;EAIC;;AAIF;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;EACC;;AAEA;EACC;;AAIF;EAEC;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;A1B9EF;E0B6CD;IAsCE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;;A1B9FH;E0BpBF;IAyHE;;EAEA;IACC;;EAGD;IACC;I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","file":"style-editor.css"} \ No newline at end of file diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/01-settings/file-header.scss b/src/wp-content/themes/twentytwentyone/assets/sass/01-settings/file-header.scss index 77df62889f7c0..dd3693f65aa76 100644 --- a/src/wp-content/themes/twentytwentyone/assets/sass/01-settings/file-header.scss +++ b/src/wp-content/themes/twentytwentyone/assets/sass/01-settings/file-header.scss @@ -7,7 +7,7 @@ Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the Requires at least: 5.3 Tested up to: 5.9 Requires PHP: 5.6 -Version: 1.4 +Version: 1.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyone diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_editor.scss b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_editor.scss index d932f7e6a7705..1aed34cf11f0e 100644 --- a/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_editor.scss +++ b/src/wp-content/themes/twentytwentyone/assets/sass/05-blocks/button/_editor.scss @@ -7,21 +7,6 @@ * Block Options */ -// The parent container does not need outer margins applied. -// The children should all have top and bottom margins. -[data-block].wp-block-buttons { - margin-top: 0; - margin-bottom: 0; - - .wp-block-button:first-child { - margin-top: var(--global--spacing-vertical); - } - - .wp-block-button:last-child { - margin-bottom: var(--global--spacing-vertical); - } -} - .wp-block-button { // Target the default and filled button states. diff --git a/src/wp-content/themes/twentytwentyone/package-lock.json b/src/wp-content/themes/twentytwentyone/package-lock.json index d50eae7390434..e2e41e99b7928 100644 --- a/src/wp-content/themes/twentytwentyone/package-lock.json +++ b/src/wp-content/themes/twentytwentyone/package-lock.json @@ -1,6 +1,6 @@ { "name": "twentytwentyone", - "version": "1.4.0", + "version": "1.5.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/wp-content/themes/twentytwentyone/package.json b/src/wp-content/themes/twentytwentyone/package.json index 6b3b25bda9e6a..405262b4ded07 100644 --- a/src/wp-content/themes/twentytwentyone/package.json +++ b/src/wp-content/themes/twentytwentyone/package.json @@ -1,6 +1,6 @@ { "name": "twentytwentyone", - "version": "1.4.0", + "version": "1.5.0", "description": "Default WP Theme", "author": "The WordPress Contributors", "license": "GPL-2.0-or-later", diff --git a/src/wp-content/themes/twentytwentyone/readme.txt b/src/wp-content/themes/twentytwentyone/readme.txt index a80eb9dcf8487..23b782b6bfe9e 100644 --- a/src/wp-content/themes/twentytwentyone/readme.txt +++ b/src/wp-content/themes/twentytwentyone/readme.txt @@ -3,7 +3,7 @@ Contributors: wordpressdotorg Requires at least: 5.3 Tested up to: 5.9 Requires PHP: 5.6 -Stable tag: 1.4 +Stable tag: 1.5 License: GPLv2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html @@ -30,6 +30,11 @@ No data is saved in the database or transferred. == Changelog == += 1.5 = +* Released: January 25, 2022 + +https://wordpress.org/support/article/twenty-twenty-one-changelog#Version_1.5 + = 1.4 = * Released: July 20, 2021 diff --git a/src/wp-content/themes/twentytwentyone/style-rtl.css b/src/wp-content/themes/twentytwentyone/style-rtl.css index 4859c68001060..4da41840a01c7 100644 --- a/src/wp-content/themes/twentytwentyone/style-rtl.css +++ b/src/wp-content/themes/twentytwentyone/style-rtl.css @@ -9,7 +9,7 @@ Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the Requires at least: 5.3 Tested up to: 5.9 Requires PHP: 5.6 -Version: 1.4 +Version: 1.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyone diff --git a/src/wp-content/themes/twentytwentyone/style.css b/src/wp-content/themes/twentytwentyone/style.css index 9048e620fa409..fed5ec25cdef4 100644 --- a/src/wp-content/themes/twentytwentyone/style.css +++ b/src/wp-content/themes/twentytwentyone/style.css @@ -9,7 +9,7 @@ Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the Requires at least: 5.3 Tested up to: 5.9 Requires PHP: 5.6 -Version: 1.4 +Version: 1.5 License: GNU General Public License v2 or later License URI: http://www.gnu.org/licenses/gpl-2.0.html Text Domain: twentytwentyone diff --git a/src/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg b/src/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg index 6e5c743474891..6c65eb4313aa3 100644 Binary files a/src/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg and b/src/wp-content/themes/twentytwentytwo/assets/images/ducks.jpg differ diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php index 092a8e874d9f3..dab9b04a86e85 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-about-title-logo.php @@ -6,9 +6,8 @@ 'title' => __( 'Footer with text, title, and logo', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        -
        + 'content' => ' +

        ' . esc_html__( 'About us', 'twentytwentytwo' ) . '

        @@ -29,6 +28,5 @@
        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php index 3e018729a1b35..c1306cbb833e0 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-blog.php @@ -6,9 +6,8 @@ 'title' => __( 'Blog footer', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        -
        + 'content' => ' +

        ' . esc_html__( 'About us', 'twentytwentytwo' ) . '

        @@ -52,6 +51,5 @@ ) . '

        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php index 81c78845bdd09..50259ebe3f5f9 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-dark.php @@ -6,9 +6,8 @@ 'title' => __( 'Dark footer with title and citation', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        - ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php index 7b2e7383658f9..3682643084326 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-default.php @@ -8,7 +8,7 @@ 'blockTypes' => array( 'core/template-part/footer' ), 'content' => '
        -
        +

        ' . diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php index f7764a952676a..caa44e8c34900 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-logo.php @@ -7,7 +7,6 @@ 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), 'content' => ' -

        @@ -20,6 +19,5 @@ ) . '

        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php index 32bdecede6c9e..79792c730df0a 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-navigation.php @@ -7,7 +7,6 @@ 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), 'content' => ' -
        @@ -22,6 +21,5 @@ ) . '

        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php index 470ccfd9ff1f3..a79c1d44cd51d 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-images-title-citation.php @@ -6,8 +6,7 @@ 'title' => __( 'Footer with query, featured images, title, and citation', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        + 'content' => '
        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php index 2d6999f0816a4..13bb43df5c34a 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-query-title-citation.php @@ -6,8 +6,7 @@ 'title' => __( 'Footer with query, title, and citation', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        + 'content' => '
        -
        ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php index 066b760c56b79..84d888b22d40d 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/footer-title-tagline-social.php @@ -6,8 +6,7 @@ 'title' => __( 'Footer with title, tagline, and social links on a dark background', 'twentytwentytwo' ), 'categories' => array( 'footer' ), 'blockTypes' => array( 'core/template-part/footer' ), - 'content' => ' -
        + 'content' => '
      -
      ', ); diff --git a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php index 8cb951de9a577..af680dc2cdf4b 100644 --- a/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php +++ b/src/wp-content/themes/twentytwentytwo/inc/patterns/general-list-events.php @@ -5,8 +5,8 @@ return array( 'title' => __( 'List of events', 'twentytwentytwo' ), 'categories' => array( 'featured', 'text' ), - 'content' => ' -
    • '; @@ -231,7 +231,7 @@ function render_block_core_navigation_submenu( $attributes, $content, $block ) { if ( $show_submenu_indicators ) { // The submenu icon is rendered in a button here - // so that there's a clickable elment to open the submenu. + // so that there's a clickable element to open the submenu. $html .= ''; } } else { diff --git a/src/wp-includes/blocks/navigation.php b/src/wp-includes/blocks/navigation.php index 6cb6eeacf0e36..9179a22eb34f6 100644 --- a/src/wp-includes/blocks/navigation.php +++ b/src/wp-includes/blocks/navigation.php @@ -513,7 +513,7 @@ function render_block_core_navigation( $attributes, $content, $block ) { ) ); - $modal_unique_id = uniqid(); + $modal_unique_id = wp_unique_id( 'modal-' ); // Determine whether or not navigation elements should be wrapped in the markup required to make it responsive, // return early if they don't. @@ -538,24 +538,24 @@ function render_block_core_navigation( $attributes, $content, $block ) { ); $responsive_container_markup = sprintf( - ' -
    • '; diff --git a/src/wp-includes/blocks/post-content.php b/src/wp-includes/blocks/post-content.php index 7edb2cd604a71..b1ed1b4542c01 100644 --- a/src/wp-includes/blocks/post-content.php +++ b/src/wp-includes/blocks/post-content.php @@ -46,6 +46,11 @@ function render_block_core_post_content( $attributes, $content, $block ) { // so that `the_preview` for the current post can apply. // We force this behavior by omitting the third argument (post ID) from the `get_the_content`. $content = get_the_content( null, false ); + // Check for nextpage to display page links for paginated posts. + if ( has_block( 'core/nextpage' ) ) { + $content .= wp_link_pages( array( 'echo' => 0 ) ); + } + /** This filter is documented in wp-includes/post-template.php */ $content = apply_filters( 'the_content', str_replace( ']]>', ']]>', $content ) ); unset( $seen_ids[ $post_id ] ); diff --git a/src/wp-includes/blocks/post-featured-image.php b/src/wp-includes/blocks/post-featured-image.php index 21e6aca445062..281030bf8612e 100644 --- a/src/wp-includes/blocks/post-featured-image.php +++ b/src/wp-includes/blocks/post-featured-image.php @@ -43,7 +43,7 @@ function render_block_core_post_featured_image( $attributes, $content, $block ) if ( ! empty( $attributes['scale'] ) ) { $image_styles .= "object-fit:{$attributes['scale']};"; } - $featured_image = str_replace( 'src=', "style='$image_styles' src=", $featured_image ); + $featured_image = str_replace( '$featured_image"; diff --git a/src/wp-includes/blocks/query-pagination-next.php b/src/wp-includes/blocks/query-pagination-next.php index d091e1c6bbc0f..ea581e705fb23 100644 --- a/src/wp-includes/blocks/query-pagination-next.php +++ b/src/wp-includes/blocks/query-pagination-next.php @@ -43,8 +43,9 @@ function render_block_core_query_pagination_next( $attributes, $content, $block $content = get_next_posts_link( $label, $max_page ); remove_filter( 'next_posts_link_attributes', $filter_link_attributes ); } elseif ( ! $max_page || $max_page > $page ) { - $custom_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); - if ( (int) $custom_query->max_num_pages !== $page ) { + $custom_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); + $custom_query_max_pages = (int) $custom_query->max_num_pages; + if ( $custom_query_max_pages && $custom_query_max_pages !== $page ) { $content = sprintf( '%3$s', esc_url( add_query_arg( $page_key, $page + 1 ) ), diff --git a/src/wp-includes/blocks/rss.php b/src/wp-includes/blocks/rss.php index b0a31bf2bbd6d..63e7e745e3eb2 100644 --- a/src/wp-includes/blocks/rss.php +++ b/src/wp-includes/blocks/rss.php @@ -16,7 +16,7 @@ function render_block_core_rss( $attributes ) { $rss = fetch_feed( $attributes['feedURL'] ); if ( is_wp_error( $rss ) ) { - return '
      ' . __( 'RSS Error:' ) . ' ' . $rss->get_error_message() . '
      '; + return '
      ' . __( 'RSS Error:' ) . ' ' . esc_html( $rss->get_error_message() ) . '
      '; } if ( ! $rss->get_item_quantity() ) { @@ -44,8 +44,8 @@ function render_block_core_rss( $attributes ) { if ( $date ) { $date = sprintf( ' ', - date_i18n( get_option( 'c' ), $date ), - date_i18n( get_option( 'date_format' ), $date ) + esc_attr( date_i18n( get_option( 'c' ), $date ) ), + esc_attr( date_i18n( get_option( 'date_format' ), $date ) ) ); } } diff --git a/src/wp-includes/blocks/search.php b/src/wp-includes/blocks/search.php index 64ac21ff3f551..f0f1742bf8cd1 100644 --- a/src/wp-includes/blocks/search.php +++ b/src/wp-includes/blocks/search.php @@ -43,16 +43,18 @@ function render_block_core_search( $attributes ) { // Border color classes need to be applied to the elements that have a border color. $border_color_classes = get_border_color_classes_for_block_core_search( $attributes ); + $label_inner_html = empty( $attributes['label'] ) ? __( 'Search' ) : wp_kses_post( $attributes['label'] ); + $label_markup = sprintf( '', - $input_id, - empty( $attributes['label'] ) ? __( 'Search' ) : $attributes['label'] + esc_attr( $input_id ), + $label_inner_html ); if ( $show_label && ! empty( $attributes['label'] ) ) { $label_markup = sprintf( '', $input_id, - $attributes['label'] + $label_inner_html ); } @@ -61,7 +63,7 @@ function render_block_core_search( $attributes ) { $input_markup = sprintf( '', $input_id, - $input_classes, + esc_attr( $input_classes ), esc_attr( get_search_query() ), esc_attr( $attributes['placeholder'] ), $inline_styles['input'] @@ -71,26 +73,29 @@ function render_block_core_search( $attributes ) { if ( $show_button ) { $button_internal_markup = ''; $button_classes = $color_classes; + $aria_label = ''; if ( ! $is_button_inside ) { $button_classes .= ' ' . $border_color_classes; } if ( ! $use_icon_button ) { if ( ! empty( $attributes['buttonText'] ) ) { - $button_internal_markup = $attributes['buttonText']; + $button_internal_markup = wp_kses_post( $attributes['buttonText'] ); } } else { + $aria_label = sprintf( 'aria-label="%s"', esc_attr( wp_strip_all_tags( $attributes['label'] ) ) ); $button_classes .= ' has-icon'; $button_internal_markup = ' - - '; + + '; } $button_markup = sprintf( - '', - $button_classes, + '', + esc_attr( $button_classes ), $inline_styles['button'], + $aria_label, $button_internal_markup ); } @@ -98,7 +103,7 @@ function render_block_core_search( $attributes ) { $field_markup_classes = $is_button_inside ? $border_color_classes : ''; $field_markup = sprintf( '
      %s
      ', - $field_markup_classes, + esc_attr( $field_markup_classes ), $inline_styles['wrapper'], $input_markup . $button_markup ); @@ -271,12 +276,12 @@ function styles_for_block_core_search( $attributes ) { // Add color styles. $has_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_text_color ) { - $button_styles[] = sprintf( 'color: %s;', esc_attr( $attributes['style']['color']['text'] ) ); + $button_styles[] = sprintf( 'color: %s;', $attributes['style']['color']['text'] ); } $has_background_color = ! empty( $attributes['style']['color']['background'] ); if ( $has_background_color ) { - $button_styles[] = sprintf( 'background-color: %s;', esc_attr( $attributes['style']['color']['background'] ) ); + $button_styles[] = sprintf( 'background-color: %s;', $attributes['style']['color']['background'] ); } $has_custom_gradient = ! empty( $attributes['style']['color']['gradient'] ); @@ -285,9 +290,9 @@ function styles_for_block_core_search( $attributes ) { } return array( - 'input' => ! empty( $input_styles ) ? sprintf( ' style="%s"', implode( ' ', $input_styles ) ) : '', - 'button' => ! empty( $button_styles ) ? sprintf( ' style="%s"', implode( ' ', $button_styles ) ) : '', - 'wrapper' => ! empty( $wrapper_styles ) ? sprintf( ' style="%s"', implode( ' ', $wrapper_styles ) ) : '', + 'input' => ! empty( $input_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $input_styles ) ) ) ) : '', + 'button' => ! empty( $button_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $button_styles ) ) ) ) : '', + 'wrapper' => ! empty( $wrapper_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $wrapper_styles ) ) ) ) : '', ); } diff --git a/src/wp-includes/blocks/site-logo.php b/src/wp-includes/blocks/site-logo.php index 37a8417ea0274..cff1ff51444e5 100644 --- a/src/wp-includes/blocks/site-logo.php +++ b/src/wp-includes/blocks/site-logo.php @@ -14,7 +14,7 @@ */ function render_block_core_site_logo( $attributes ) { $adjust_width_height_filter = function ( $image ) use ( $attributes ) { - if ( empty( $attributes['width'] ) || empty( $image ) ) { + if ( empty( $attributes['width'] ) || empty( $image ) || ! $image[1] || ! $image[2] ) { return $image; } $height = (float) $attributes['width'] / ( (float) $image[1] / (float) $image[2] ); diff --git a/src/wp-includes/blocks/site-title.php b/src/wp-includes/blocks/site-title.php index a7de6feffa1f0..ea878d47d909c 100644 --- a/src/wp-includes/blocks/site-title.php +++ b/src/wp-includes/blocks/site-title.php @@ -35,7 +35,6 @@ function render_block_core_site_title( $attributes ) { ); if ( '_blank' === $attributes['linkTarget'] ) { $link_attrs[] = 'target="_blank"'; - $link_attrs[] = 'aria-label="' . esc_attr__( '(opens in a new tab)' ) . '"'; } $site_title = sprintf( '%2$s', implode( ' ', $link_attrs ), $site_title ); } diff --git a/src/wp-includes/blocks/spacer/block.json b/src/wp-includes/blocks/spacer/block.json index b85de6e4ab630..df58ef2cdfcf6 100644 --- a/src/wp-includes/blocks/spacer/block.json +++ b/src/wp-includes/blocks/spacer/block.json @@ -7,11 +7,11 @@ "textdomain": "default", "attributes": { "height": { - "type": "number", - "default": 100 + "type": "string", + "default": "100px" }, "width": { - "type": "number" + "type": "string" } }, "usesContext": [ "orientation" ], diff --git a/src/wp-includes/blocks/template-part.php b/src/wp-includes/blocks/template-part.php index 20bc6900f83bb..7e7ccea5ec4ec 100644 --- a/src/wp-includes/blocks/template-part.php +++ b/src/wp-includes/blocks/template-part.php @@ -128,20 +128,20 @@ function render_block_core_template_part( $attributes ) { } // Run through the actions that are typically taken on the_content. + $content = shortcode_unautop( $content ); + $content = do_shortcode( $content ); $seen_ids[ $template_part_id ] = true; $content = do_blocks( $content ); unset( $seen_ids[ $template_part_id ] ); $content = wptexturize( $content ); $content = convert_smilies( $content ); - $content = shortcode_unautop( $content ); $content = wp_filter_content_tags( $content ); - $content = do_shortcode( $content ); // Handle embeds for block template parts. global $wp_embed; $content = $wp_embed->autoembed( $content ); - if ( empty( $attributes['tagName'] ) ) { + if ( empty( $attributes['tagName'] ) || tag_escape( $attributes['tagName'] ) !== $attributes['tagName'] ) { $defined_areas = get_allowed_block_template_part_areas(); $area_tag = 'div'; foreach ( $defined_areas as $defined_area ) { diff --git a/src/wp-includes/blocks/template-part/block.json b/src/wp-includes/blocks/template-part/block.json index 647dcdd6f14f9..1f78e8febd09e 100644 --- a/src/wp-includes/blocks/template-part/block.json +++ b/src/wp-includes/blocks/template-part/block.json @@ -22,14 +22,6 @@ "supports": { "align": true, "html": false, - "color": { - "gradients": true, - "link": true - }, - "spacing": { - "padding": true - }, - "__experimentalLayout": true, "reusable": false }, "editorStyle": "wp-block-template-part-editor" diff --git a/src/wp-includes/blocks/widget-group.php b/src/wp-includes/blocks/widget-group.php index 6cf6442346a30..8c8584b296d57 100644 --- a/src/wp-includes/blocks/widget-group.php +++ b/src/wp-includes/blocks/widget-group.php @@ -28,7 +28,7 @@ function render_block_core_widget_group( $attributes, $content, $block ) { $html = ''; if ( ! empty( $attributes['title'] ) ) { - $html .= $before_title . $attributes['title'] . $after_title; + $html .= $before_title . esc_html( $attributes['title'] ) . $after_title; } $html .= '
      '; diff --git a/src/wp-includes/bookmark.php b/src/wp-includes/bookmark.php index f46ae93b54438..cee56d7d21059 100644 --- a/src/wp-includes/bookmark.php +++ b/src/wp-includes/bookmark.php @@ -307,7 +307,7 @@ function get_bookmarks( $args = '' ) { $query .= " $exclusions $inclusions $search"; $query .= " ORDER BY $orderby $order"; if ( -1 != $parsed_args['limit'] ) { - $query .= ' LIMIT ' . $parsed_args['limit']; + $query .= ' LIMIT ' . absint( $parsed_args['limit'] ); } $results = $wpdb->get_results( $query ); diff --git a/src/wp-includes/certificates/ca-bundle.crt b/src/wp-includes/certificates/ca-bundle.crt index c8a4358d3eb5f..8a3b090ff8cdb 100644 --- a/src/wp-includes/certificates/ca-bundle.crt +++ b/src/wp-includes/certificates/ca-bundle.crt @@ -1,86 +1,10 @@ ## ## Bundle of CA Root Certificates ## -## Certificate data from Mozilla as of: Wed Jul 22 03:12:14 2020 GMT -## Includes a WordPress Modification - We include the 'legacy' 1024bit certificates +## WordPress Modification - We prepend some unexpired 'legacy' 1024bit certificates ## for backward compatibility. See https://core.trac.wordpress.org/ticket/34935#comment:10 ## -## This is a bundle of X.509 certificates of public Certificate Authorities -## (CA). These were automatically extracted from Mozilla's root certificates -## file (certdata.txt). This file can be found in the mozilla source tree: -## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt -## -## It contains the certificates in PEM format and therefore -## can be directly used with curl / libcurl / php_curl, or with -## an Apache+mod_ssl webserver for SSL client authentication. -## Just configure this file as the SSLCACertificateFile. -## -## Conversion done with mk-ca-bundle.pl version 1.27. -## SHA256: fffa309937c3be940649293f749b8207fabc6eb224e50e4bb3f2c5e44e0d6a6b -## -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - -Thawte Server CA -================ ------BEGIN CERTIFICATE----- -MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE -AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j -b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV -BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u -c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG -A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0 -ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl -/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7 -1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR -MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J -GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ -GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc= ------END CERTIFICATE----- - -Thawte Premium Server CA -======================== ------BEGIN CERTIFICATE----- -MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT -DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs -dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE -AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl -ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT -AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU -VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2 -aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ -cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2 -aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh -Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/ -qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm -SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf -8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t -UCemDaYj+bvLpgcUQg== ------END CERTIFICATE----- Verisign Class 3 Public Primary Certification Authority ======================================================= @@ -117,59 +41,6 @@ MA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01UbSuvDV1Ai2TT Oaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpYoJ2daZH9 -----END CERTIFICATE----- -America Online Root Certification Authority 1 -============================================= ------BEGIN CERTIFICATE----- -MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQAD -ggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CG -v2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44z -DyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145LcxVR5lu9Rh -sCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP -8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Z -o/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQB8itEf -GDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkFZu90821fnZmv9ov761KyBZiibyrF -VL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft -3OJvx8Fi8eNy1gTIdGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g -Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds -sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7 ------END CERTIFICATE----- - -America Online Root Certification Authority 2 -============================================= ------BEGIN CERTIFICATE----- -MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT -QW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZp -Y2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkG -A1UEBhMCVVMxHDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2Eg -T25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC206B89en -fHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8 -f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE18aO6lhO -qKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JN -RvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0 -gBe4lL8BPeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn -6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9W6Wa6897Gqid -FEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZo2C7HK2JNDJiuEMhBnIMoVxtRsX6 -Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnj -B453cMor9H124HhnAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op -aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE -AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmnxPBUlgtk87FY -T15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p -+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXg -JXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//Zoy -zH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgO -ZtMADjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh -1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZZLF0Kjhf -GEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y3WRayhgoPmMEEf0cjQAPuDff -Z4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuP -cX/9XhmgD0uRuMRUvAawRY8mkaKO/qk= ------END CERTIFICATE----- - Verisign Class 3 Public Primary Certification Authority ======================================================= -----BEGIN CERTIFICATE----- @@ -186,117 +57,28 @@ bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/ D/xwzoiQ -----END CERTIFICATE----- -GlobalSign Root CA -================== ------BEGIN CERTIFICATE----- -MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx -GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds -b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV -BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD -VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa -DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc -THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb -Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP -c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX -gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV -HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF -AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj -Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG -j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH -hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC -X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== ------END CERTIFICATE----- - -GlobalSign Root CA - R2 -======================= ------BEGIN CERTIFICATE----- -MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv -YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh -bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT -aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln -bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 -ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp -s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN -S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL -TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C -ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E -FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i -YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN -BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp -9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu -01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 -9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 -TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== ------END CERTIFICATE----- - -Verisign Class 3 Public Primary Certification Authority - G3 -============================================================ ------BEGIN CERTIFICATE----- -MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh -dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw -CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy -dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 -EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc -cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw -EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj -055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA -ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f -j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC -/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 -xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa -t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== ------END CERTIFICATE----- - -Entrust.net Premium 2048 Secure Server CA -========================================= ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u -ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp -bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV -BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx -NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 -d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl -MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u -ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL -Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr -hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW -nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi -VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E -BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ -KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy -T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf -zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT -J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e -nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= ------END CERTIFICATE----- - -Baltimore CyberTrust Root -========================= ------BEGIN CERTIFICATE----- -MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE -ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li -ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC -SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs -dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME -uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB -UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C -G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 -XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr -l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI -VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB -BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh -cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 -hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa -Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H -RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp ------END CERTIFICATE----- + +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Tue Nov 4 04:12:02 2025 GMT +## +## Find updated versions here: https://curl.se/docs/caextract.html +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://raw.githubusercontent.com/mozilla-firefox/firefox/refs/heads/release/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.29. +## SHA256: 039132bff5179ce57cec5803ba59fe37abe6d0297aeb538c5af27847f0702517 +## + Entrust Root Certification Authority ==================================== @@ -324,143 +106,6 @@ W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 -----END CERTIFICATE----- -GeoTrust Global CA -================== ------BEGIN CERTIFICATE----- -MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK -Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw -MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j -LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo -BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet -8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc -T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU -vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD -AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk -DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q -zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 -d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 -mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p -XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm -Mw== ------END CERTIFICATE----- - -GeoTrust Universal CA -===================== ------BEGIN CERTIFICATE----- -MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 -MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu -Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP -ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t -JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e -RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs -7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d -8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V -qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga -Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB -Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu -KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 -ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 -XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB -hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc -aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 -qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL -oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK -xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF -KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 -DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK -xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU -p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI -P/rmMuGNG2+k5o7Y+SlIis5z/iw= ------END CERTIFICATE----- - -GeoTrust Universal CA 2 -======================= ------BEGIN CERTIFICATE----- -MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN -R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 -MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg -SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA -A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 -DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 -j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q -JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a -QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 -WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP -20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn -ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC -SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG -8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 -+/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E -BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z -dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ -4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ -mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq -A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg -Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP -pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d -FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp -gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm -X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS ------END CERTIFICATE----- - -Comodo AAA Services root -======================== ------BEGIN CERTIFICATE----- -MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS -R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg -TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw -MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl -c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV -BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG -C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs -i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW -Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH -Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK -Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f -BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl -cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz -LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm -7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz -Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z -8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C -12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== ------END CERTIFICATE----- - -QuoVadis Root CA -================ ------BEGIN CERTIFICATE----- -MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE -ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 -eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz -MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp -cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD -EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk -J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL -F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL -YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen -AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w -PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y -ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 -MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj -YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs -ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh -Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW -Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu -BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw -FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 -tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo -fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul -LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x -gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi -5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi -5nrQNiOKSnQ2+Q== ------END CERTIFICATE----- - QuoVadis Root CA 2 ================== -----BEGIN CERTIFICATE----- @@ -527,149 +172,6 @@ vGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbr qZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto= -----END CERTIFICATE----- -Security Communication Root CA -============================== ------BEGIN CERTIFICATE----- -MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP -U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw -ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw -8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM -DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX -5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd -DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 -JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw -DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g -0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a -mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ -s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ -6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi -FL39vmwLAw== ------END CERTIFICATE----- - -Sonera Class 2 Root CA -====================== ------BEGIN CERTIFICATE----- -MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG -U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw -NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh -IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 -/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT -dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG -f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P -tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH -nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT -XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt -0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI -cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph -Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx -EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH -llpwrN9M ------END CERTIFICATE----- - -XRamp Global CA Root -==================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE -BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj -dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB -dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx -HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg -U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp -dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu -IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx -foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE -zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs -AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry -xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud -EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap -oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC -AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc -/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt -qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n -nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz -8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= ------END CERTIFICATE----- - -Go Daddy Class 2 CA -=================== ------BEGIN CERTIFICATE----- -MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY -VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG -A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g -RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD -ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv -2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 -qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j -YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY -vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O -BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o -atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu -MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG -A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim -PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt -I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ -HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI -Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b -vZ8= ------END CERTIFICATE----- - -Starfield Class 2 CA -==================== ------BEGIN CERTIFICATE----- -MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc -U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg -Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo -MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG -A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG -SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY -bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ -JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm -epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN -F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF -MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f -hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo -bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g -QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs -afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM -PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl -xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD -KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 -QBFGmh95DmK/D5fs4C8fF5Q= ------END CERTIFICATE----- - -Taiwan GRCA -=========== ------BEGIN CERTIFICATE----- -MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG -EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X -DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv -dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD -ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN -w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 -BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O -1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO -htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov -J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 -Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t -B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB -O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 -lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV -HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 -09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ -TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj -Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 -Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU -D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz -DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk -Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk -7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ -CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy -+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS ------END CERTIFICATE----- - DigiCert Assured ID Root CA =========================== -----BEGIN CERTIFICATE----- @@ -767,109 +269,6 @@ NU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6Lqj viOvrv1vA+ACOzB2+httQc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ -----END CERTIFICATE----- -SwissSign Silver CA - G2 -======================== ------BEGIN CERTIFICATE----- -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 ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority -======================================== ------BEGIN CERTIFICATE----- -MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG -EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx -CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ -cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB -CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN -b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 -nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge -RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt -tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD -AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI -hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K -Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN -NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa -Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG -1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= ------END CERTIFICATE----- - -thawte Primary Root CA -====================== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 -MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg -SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv -KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT -FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs -oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ -1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc -q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K -aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p -afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD -VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF -AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE -uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX -xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 -jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH -z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G5 -============================================================ ------BEGIN CERTIFICATE----- -MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp -ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB -yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln -biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh -dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt -YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw -ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz -j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD -Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ -Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r -fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ -BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv -Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy -aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG -SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ -X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE -KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC -Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE -ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq ------END CERTIFICATE----- - SecureTrust CA ============== -----BEGIN CERTIFICATE----- @@ -938,29 +337,6 @@ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== -----END CERTIFICATE----- -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - COMODO ECC Certification Authority ================================== -----BEGIN CERTIFICATE----- @@ -978,29 +354,6 @@ FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= -----END CERTIFICATE----- -OISTE WISeKey Global Root GA CA -=============================== ------BEGIN CERTIFICATE----- -MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE -BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG -A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH -bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD -VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw -IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 -IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 -Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg -Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD -d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ -/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R -LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw -AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ -KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm -MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 -+vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa -hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY -okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= ------END CERTIFICATE----- - Certigna ======== -----BEGIN CERTIFICATE----- @@ -1023,28 +376,6 @@ PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== -----END CERTIFICATE----- -Cybertrust Global Root -====================== ------BEGIN CERTIFICATE----- -MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li -ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 -MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD -ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA -+Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW -0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL -AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin -89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT -8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 -MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G -A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO -lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi -5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 -hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T -X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW -WL1WMRJOEcgh4LMRkWXbtKaIOM5V ------END CERTIFICATE----- - ePKI Root Certification Authority ================================= -----BEGIN CERTIFICATE----- @@ -1096,136 +427,6 @@ vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD -----END CERTIFICATE----- -GeoTrust Primary Certification Authority - G3 -============================================= ------BEGIN CERTIFICATE----- -MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE -BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 -IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy -eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz -NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo -YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT -LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI -hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j -K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE -c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C -IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu -dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr -2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 -cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE -Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD -AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s -t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt ------END CERTIFICATE----- - -thawte Primary Root CA - G2 -=========================== ------BEGIN CERTIFICATE----- -MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC -VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu -IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg -Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV -MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG -b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt -IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS -LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 -8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU -mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN -G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K -rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== ------END CERTIFICATE----- - -thawte Primary Root CA - G3 -=========================== ------BEGIN CERTIFICATE----- -MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE -BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 -aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w -ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh -d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD -VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG -A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A -MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At -P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC -+BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY -7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW -vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ -KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK -A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu -t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC -8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm -er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= ------END CERTIFICATE----- - -GeoTrust Primary Certification Authority - G2 -============================================= ------BEGIN CERTIFICATE----- -MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC -VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu -Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD -ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 -OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg -MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl -b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG -BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc -KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ -EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m -ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 -npaqBA+K ------END CERTIFICATE----- - -VeriSign Universal Root Certification Authority -=============================================== ------BEGIN CERTIFICATE----- -MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE -BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO -ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk -IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u -IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV -UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv -cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl -IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 -aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj -1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP -MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 -9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I -AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR -tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G -CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O -a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud -DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 -Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx -Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx -P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P -wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 -mJO37M2CYfE45k+XmCpajQ== ------END CERTIFICATE----- - -VeriSign Class 3 Public Primary Certification Authority - G4 -============================================================ ------BEGIN CERTIFICATE----- -MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC -VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 -b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz -ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj -YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL -MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU -cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo -b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 -IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 -Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz -rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB -/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw -HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u -Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD -A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx -AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== ------END CERTIFICATE----- - NetLock Arany (Class Gold) Főtanúsítvány ======================================== -----BEGIN CERTIFICATE----- @@ -1250,47 +451,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - -SecureSign RootCA11 -=================== ------BEGIN CERTIFICATE----- -MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi -SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS -b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw -KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 -cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL -TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO -wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq -g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP -O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA -bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX -t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh -OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r -bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ -Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 -y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 -lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= ------END CERTIFICATE----- - Microsec e-Szigno Root CA 2009 ============================== -----BEGIN CERTIFICATE----- @@ -1336,39 +496,6 @@ YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r kpeDMdmztcpHWD9f -----END CERTIFICATE----- -Autoridad de Certificacion Firmaprofesional CIF A62634068 -========================================================= ------BEGIN CERTIFICATE----- -MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA -BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 -MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw -QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB -NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD -Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P -B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY -7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH -ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI -plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX -MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX -LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK -bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU -vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud -EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH -DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp -cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA -bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx -ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx -51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk -R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP -T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f -Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl -osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR -crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR -saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD -KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi -6Et8Vcad+qMUu2WFbm5PEn4KPJ2V ------END CERTIFICATE----- - Izenpe.com ========== -----BEGIN CERTIFICATE----- @@ -1401,82 +528,6 @@ Q0iy2+tzJOeRf1SktoA+naM8THLCV8Sg1Mw4J87VBp6iSNnpn86CcDaTmjvfliHjWbcM2pE38P1Z WrOZyGlsQyYBNWNgVYkDOnXYukrZVP/u3oDYLdE41V4tC5h9Pmzb/CaIxw== -----END CERTIFICATE----- -Chambers of Commerce Root - 2008 -================================ ------BEGIN CERTIFICATE----- -MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy -Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl -ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF -EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl -cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC -AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA -XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj -h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ -ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk -NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g -D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 -lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ -0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj -ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 -EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI -G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ -BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh -bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh -bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC -CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH -AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 -wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH -3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU -RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 -M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 -YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF -9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK -zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG -nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg -OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ ------END CERTIFICATE----- - -Global Chambersign Root - 2008 -============================== ------BEGIN CERTIFICATE----- -MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD -MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv -bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu -QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx -NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg -Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ -QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD -aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf -VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf -XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 -ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB -/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA -TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M -H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe -Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF -HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh -wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB -AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT -BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE -BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm -aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm -aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp -1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 -dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG -/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 -ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s -dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg -9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH -foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du -qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr -P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq -c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z -09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B ------END CERTIFICATE----- - Go Daddy Root Certificate Authority - G2 ======================================== -----BEGIN CERTIFICATE----- @@ -1693,60 +744,6 @@ tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 -----END CERTIFICATE----- -EC-ACC -====== ------BEGIN CERTIFICATE----- -MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE -BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w -ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD -VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE -CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT -BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 -MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt -SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl -Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh -cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK -w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT -ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 -HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a -E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw -0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E -BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD -VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 -Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l -dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ -lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa -Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe -l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 -E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D -5EI= ------END CERTIFICATE----- - -Hellenic Academic and Research Institutions RootCA 2011 -======================================================= ------BEGIN CERTIFICATE----- -MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT -O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y -aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT -AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z -IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo -IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI -1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa -71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u -8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH -3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ -MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 -MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu -b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt -XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 -TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD -/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N -7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 ------END CERTIFICATE----- - Actalis Authentication Root CA ============================== -----BEGIN CERTIFICATE----- @@ -1778,27 +775,6 @@ OR/qnuOf0GZvBeyqdn6/axag67XH/JJULysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9 vwGYT7JZVEc+NHt4bVaTLnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== -----END CERTIFICATE----- -Trustis FPS Root CA -=================== ------BEGIN CERTIFICATE----- -MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG -EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 -IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV -BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ -KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ -RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk -H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa -cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt -o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA -AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd -BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c -GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC -yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P -8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV -l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl -iB6XzCGcKQENZetX2fNXlrtIzYE= ------END CERTIFICATE----- - Buypass Class 2 Root CA ======================= -----BEGIN CERTIFICATE----- @@ -1881,30 +857,6 @@ P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== -----END CERTIFICATE----- -EE Certification Centre Root CA -=============================== ------BEGIN CERTIFICATE----- -MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG -EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy -dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw -MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB -UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy -ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB -DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM -TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 -rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw -93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN -P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ -MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF -BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj -xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM -lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u -uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU -3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM -dcGWxZ0= ------END CERTIFICATE----- - D-TRUST Root Class 3 CA 2 2009 ============================== -----BEGIN CERTIFICATE----- @@ -2083,40 +1035,6 @@ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= -----END CERTIFICATE----- -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - T-TeleSec GlobalRoot Class 2 ============================ -----BEGIN CERTIFICATE----- @@ -2438,20 +1356,6 @@ HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu 9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= -----END CERTIFICATE----- -GlobalSign ECC Root CA - R4 -=========================== ------BEGIN CERTIFICATE----- -MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb -R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD -EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl -OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P -AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV -MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF -JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= ------END CERTIFICATE----- - GlobalSign ECC Root CA - R5 =========================== -----BEGIN CERTIFICATE----- @@ -2467,66 +1371,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 -----END CERTIFICATE----- -Staat der Nederlanden Root CA - G3 -================================== ------BEGIN CERTIFICATE----- -MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC -TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l -ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y -olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t -x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy -EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K -Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur -mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 -1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp -07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo -FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE -41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB -AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu -yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD -U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq -KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 -v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA -8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b -8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r -mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq -1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI -JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV -tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= ------END CERTIFICATE----- - -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - IdenTrust Commercial Root CA 1 ============================== -----BEGIN CERTIFICATE----- @@ -2978,87 +1822,6 @@ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== -----END CERTIFICATE----- -TrustCor RootCert CA-1 -====================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx -MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu -YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe -VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy -dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq -jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 -pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 -JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h -gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw -/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j -BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 -mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C -qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P -3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -TrustCor RootCert CA-2 -====================== ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w -DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT -eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 -eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy -MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h -bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 -IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb -ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk -RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 -oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb -XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 -/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q -jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP -eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg -rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU -2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h -Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp -kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv -2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 -S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw -PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv -DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU -RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE -xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX -RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ ------END CERTIFICATE----- - -TrustCor ECA-1 -============== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw -N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 -MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y -IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR -MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 -xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc -p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ -fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj -YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL -f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF -AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u -/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs -J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC -jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== ------END CERTIFICATE----- - SSL.com Root Certification Authority RSA ======================================== -----BEGIN CERTIFICATE----- @@ -3203,96 +1966,6 @@ AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 -----END CERTIFICATE----- -GTS Root R1 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx -9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r -aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW -r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM -LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly -4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr -06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 -wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om -3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu -JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM -BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 -d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv -fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm -ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b -gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq -4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr -tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo -pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 -sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql -CFF1pkgl ------END CERTIFICATE----- - -GTS Root R2 -=========== ------BEGIN CERTIFICATE----- -MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG -EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv -b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG -A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi -MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk -k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo -7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI -m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm -dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu -ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz -cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW -Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl -aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy -5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD -VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM -BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT -vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ -+YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw -c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da -WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r -n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu -Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ -7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs -gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld -o/DUhgkC ------END CERTIFICATE----- - -GTS Root R3 -=========== ------BEGIN CERTIFICATE----- -MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU -Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP -0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 -glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa -KaqW04MjyaR7YbPMAuhd ------END CERTIFICATE----- - -GTS Root R4 -=========== ------BEGIN CERTIFICATE----- -MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV -UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg -UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE -ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq -hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa -6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj -QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV -2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI -N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x -zPKwTdb+mciUqXWi4w== ------END CERTIFICATE----- - UCA Global G2 Root ================== -----BEGIN CERTIFICATE----- @@ -3492,40 +2165,6 @@ hcErulWuBurQB7Lcq9CClnXO0lD+mefPL5/ndtFhKvshuzHQqp9HpLIiyhY6UFfEW0NnxWViA0kB dBb9HxEGmpv0 -----END CERTIFICATE----- -Entrust Root Certification Authority - G4 -========================================= ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAwgb4xCzAJBgNV -BAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3Qu -bmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1 -dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1 -dGhvcml0eSAtIEc0MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYT -AlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 -L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhv -cml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhv -cml0eSAtIEc0MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3D -umSXbcr3DbVZwbPLqGgZ2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV -3imz/f3ET+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j5pds -8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAMC1rlLAHGVK/XqsEQ -e9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73TDtTUXm6Hnmo9RR3RXRv06QqsYJn7 -ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNXwbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5X -xNMhIWNlUpEbsZmOeX7m640A2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV -7rtNOzK+mndmnqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8 -dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwlN4y6mACXi0mW -Hv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNjc0kCAwEAAaNCMEAwDwYDVR0T -AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9n -MA0GCSqGSIb3DQEBCwUAA4ICAQAS5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4Q -jbRaZIxowLByQzTSGwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht -7LGrhFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/B7NTeLUK -YvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uIAeV8KEsD+UmDfLJ/fOPt -jqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbwH5Lk6rWS02FREAutp9lfx1/cH6NcjKF+ -m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKW -RGhXxNUzzxkvFMSUHHuk2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjA -JOgc47OlIQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk5F6G -+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuYn/PIjhs4ViFqUZPT -kcpG2om3PVODLAgfi49T3f+sHw== ------END CERTIFICATE----- - Microsoft ECC Root Certificate Authority 2017 ============================================= -----BEGIN CERTIFICATE----- @@ -3617,3 +2256,1406 @@ Sxfj03k9bWtJySgOLnRQvwzZRjoQhsmnP+mg7H/rpXdYaXHmgwo38oZJar55CJD2AhZkPuXaTH4M NMn5X7azKFGnpyuqSfqNZSlO42sTp5SjLVFteAxEy9/eCG/Oo2Sr05WE1LlSVHJ7liXMvGnjSG4N 0MedJ5qq+BOS3R7fY581qRY27Iy4g/Q9iY/NtBde17MXQRBdJ3NghVdJIgc= -----END CERTIFICATE----- + +Trustwave Global Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +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 +29FpHOTKyeC2nOnOcXHebD8WpHk= +-----END CERTIFICATE----- + +Trustwave Global ECC P256 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDI1 +NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABH77bOYj +43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoNFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqm +P62jQzBBMA8GA1UdEwEB/wQFMAMBAf8wDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt +0UrrdaVKEJmzsaGLSvcwCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjz +RM4q3wghDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7 +-----END CERTIFICATE----- + +Trustwave Global ECC P384 Certification Authority +================================================= +-----BEGIN CERTIFICATE----- +MIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYDVQQGEwJVUzER +MA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBI +b2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYD +VQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRy +dXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBFQ0MgUDM4 +NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuBBAAiA2IABGvaDXU1CDFH +Ba5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr +/TklZvFe/oyujUF5nQlgziip04pt89ZF1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNV +HQ8BAf8EBQMDBwYAMB0GA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNn +ADBkAjA3AZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsCMGcl +CrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVuSw== +-----END CERTIFICATE----- + +NAVER Global Root Certification Authority +========================================= +-----BEGIN CERTIFICATE----- +MIIFojCCA4qgAwIBAgIUAZQwHqIL3fXFMyqxQ0Rx+NZQTQ0wDQYJKoZIhvcNAQEMBQAwaTELMAkG +A1UEBhMCS1IxJjAkBgNVBAoMHU5BVkVSIEJVU0lORVNTIFBMQVRGT1JNIENvcnAuMTIwMAYDVQQD +DClOQVZFUiBHbG9iYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MTgwODU4 +NDJaFw0zNzA4MTgyMzU5NTlaMGkxCzAJBgNVBAYTAktSMSYwJAYDVQQKDB1OQVZFUiBCVVNJTkVT +UyBQTEFURk9STSBDb3JwLjEyMDAGA1UEAwwpTkFWRVIgR2xvYmFsIFJvb3QgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC21PGTXLVAiQqrDZBb +UGOukJR0F0Vy1ntlWilLp1agS7gvQnXp2XskWjFlqxcX0TM62RHcQDaH38dq6SZeWYp34+hInDEW ++j6RscrJo+KfziFTowI2MMtSAuXaMl3Dxeb57hHHi8lEHoSTGEq0n+USZGnQJoViAbbJAh2+g1G7 +XNr4rRVqmfeSVPc0W+m/6imBEtRTkZazkVrd/pBzKPswRrXKCAfHcXLJZtM0l/aM9BhK4dA9WkW2 +aacp+yPOiNgSnABIqKYPszuSjXEOdMWLyEz59JuOuDxp7W87UC9Y7cSw0BwbagzivESq2M0UXZR4 +Yb8ObtoqvC8MC3GmsxY/nOb5zJ9TNeIDoKAYv7vxvvTWjIcNQvcGufFt7QSUqP620wbGQGHfnZ3z +VHbOUzoBppJB7ASjjw2i1QnK1sua8e9DXcCrpUHPXFNwcMmIpi3Ua2FzUCaGYQ5fG8Ir4ozVu53B +A0K6lNpfqbDKzE0K70dpAy8i+/Eozr9dUGWokG2zdLAIx6yo0es+nPxdGoMuK8u180SdOqcXYZai +cdNwlhVNt0xz7hlcxVs+Qf6sdWA7G2POAN3aCJBitOUt7kinaxeZVL6HSuOpXgRM6xBtVNbv8ejy +YhbLgGvtPe31HzClrkvJE+2KAQHJuFFYwGY6sWZLxNUxAmLpdIQM201GLQIDAQABo0IwQDAdBgNV +HQ4EFgQU0p+I36HNLL3s9TsBAZMzJ7LrYEswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB +Af8wDQYJKoZIhvcNAQEMBQADggIBADLKgLOdPVQG3dLSLvCkASELZ0jKbY7gyKoNqo0hV4/GPnrK +21HUUrPUloSlWGB/5QuOH/XcChWB5Tu2tyIvCZwTFrFsDDUIbatjcu3cvuzHV+YwIHHW1xDBE1UB +jCpD5EHxzzp6U5LOogMFDTjfArsQLtk70pt6wKGm+LUx5vR1yblTmXVHIloUFcd4G7ad6Qz4G3bx +hYTeodoS76TiEJd6eN4MUZeoIUCLhr0N8F5OSza7OyAfikJW4Qsav3vQIkMsRIz75Sq0bBwcupTg +E34h5prCy8VCZLQelHsIJchxzIdFV4XTnyliIoNRlwAYl3dqmJLJfGBs32x9SuRwTMKeuB330DTH +D8z7p/8Dvq1wkNoL3chtl1+afwkyQf3NosxabUzyqkn+Zvjp2DXrDige7kgvOtB5CTh8piKCk5XQ +A76+AqAF3SAi428diDRgxuYKuQl1C/AH6GmWNcf7I4GOODm4RStDeKLRLBT/DShycpWbXgnbiUSY +qqFJu3FS8r/2/yehNq+4tneI3TqkbZs0kNwUXTC/t+sX5Ie3cdCh13cV1ELX8vMxmV2b3RZtP+oG +I/hGoiLtk/bdmuYqh7GYVPEi92tF4+KOdh2ajcQGjTa3FPOdVGm3jjzVpG2Tgbet9r1ke8LJaDmg +kpzNNIaRkPpkUZ3+/uul9XXeifdy +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM SERVIDORES SEGUROS +=================================== +-----BEGIN CERTIFICATE----- +MIICbjCCAfOgAwIBAgIQYvYybOXE42hcG2LdnC6dlTAKBggqhkjOPQQDAzB4MQswCQYDVQQGEwJF +UzERMA8GA1UECgwIRk5NVC1SQ00xDjAMBgNVBAsMBUNlcmVzMRgwFgYDVQRhDA9WQVRFUy1RMjgy +NjAwNEoxLDAqBgNVBAMMI0FDIFJBSVogRk5NVC1SQ00gU0VSVklET1JFUyBTRUdVUk9TMB4XDTE4 +MTIyMDA5MzczM1oXDTQzMTIyMDA5MzczM1oweDELMAkGA1UEBhMCRVMxETAPBgNVBAoMCEZOTVQt +UkNNMQ4wDAYDVQQLDAVDZXJlczEYMBYGA1UEYQwPVkFURVMtUTI4MjYwMDRKMSwwKgYDVQQDDCNB +QyBSQUlaIEZOTVQtUkNNIFNFUlZJRE9SRVMgU0VHVVJPUzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BPa6V1PIyqvfNkpSIeSX0oNnnvBlUdBeh8dHsVnyV0ebAAKTRBdp20LHsbI6GA60XYyzZl2hNPk2 +LEnb80b8s0RpRBNm/dfF/a82Tc4DTQdxz69qBdKiQ1oKUm8BA06Oi6NCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFAG5L++/EYZg8k/QQW6rcx/n0m5JMAoGCCqG +SM49BAMDA2kAMGYCMQCuSuMrQMN0EfKVrRYj3k4MGuZdpSRea0R7/DjiT8ucRRcRTBQnJlU5dUoD +zBOQn5ICMQD6SmxgiHPz7riYYqnOK8LZiqZwMR2vsJRM60/G49HzYqc8/5MuB1xJAWdpEgJyv+c= +-----END CERTIFICATE----- + +GlobalSign Root R46 +=================== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgISEdK7udcjGJ5AXwqdLdDfJWfRMA0GCSqGSIb3DQEBDAUAMEYxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJv +b3QgUjQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAX +BgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBSNDYwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCsrHQy6LNl5brtQyYdpokNRbopiLKkHWPd08Es +CVeJOaFV6Wc0dwxu5FUdUiXSE2te4R2pt32JMl8Nnp8semNgQB+msLZ4j5lUlghYruQGvGIFAha/ +r6gjA7aUD7xubMLL1aa7DOn2wQL7Id5m3RerdELv8HQvJfTqa1VbkNud316HCkD7rRlr+/fKYIje +2sGP1q7Vf9Q8g+7XFkyDRTNrJ9CG0Bwta/OrffGFqfUo0q3v84RLHIf8E6M6cqJaESvWJ3En7YEt +bWaBkoe0G1h6zD8K+kZPTXhc+CtI4wSEy132tGqzZfxCnlEmIyDLPRT5ge1lFgBPGmSXZgjPjHvj +K8Cd+RTyG/FWaha/LIWFzXg4mutCagI0GIMXTpRW+LaCtfOW3T3zvn8gdz57GSNrLNRyc0NXfeD4 +12lPFzYE+cCQYDdF3uYM2HSNrpyibXRdQr4G9dlkbgIQrImwTDsHTUB+JMWKmIJ5jqSngiCNI/on +ccnfxkF0oE32kRbcRoxfKWMxWXEM2G/CtjJ9++ZdU6Z+Ffy7dXxd7Pj2Fxzsx2sZy/N78CsHpdls +eVR2bJ0cpm4O6XkMqCNqo98bMDGfsVR7/mrLZqrcZdCinkqaByFrgY/bxFn63iLABJzjqls2k+g9 +vXqhnQt2sQvHnf3PmKgGwvgqo6GDoLclcqUC4wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA1yrc4GHqMywptWU4jaWSf8FmSwwDQYJKoZIhvcNAQEM +BQADggIBAHx47PYCLLtbfpIrXTncvtgdokIzTfnvpCo7RGkerNlFo048p9gkUbJUHJNOxO97k4Vg +JuoJSOD1u8fpaNK7ajFxzHmuEajwmf3lH7wvqMxX63bEIaZHU1VNaL8FpO7XJqti2kM3S+LGteWy +gxk6x9PbTZ4IevPuzz5i+6zoYMzRx6Fcg0XERczzF2sUyQQCPtIkpnnpHs6i58FZFZ8d4kuaPp92 +CC1r2LpXFNqD6v6MVenQTqnMdzGxRBF6XLE+0xRFFRhiJBPSy03OXIPBNvIQtQ6IbbjhVp+J3pZm +OUdkLG5NrmJ7v2B0GbhWrJKsFjLtrWhV/pi60zTe9Mlhww6G9kuEYO4Ne7UyWHmRVSyBQ7N0H3qq +JZ4d16GLuc1CLgSkZoNNiTW2bKg2SnkheCLQQrzRQDGQob4Ez8pn7fXwgNNgyYMqIgXQBztSvwye +qiv5u+YfjyW6hY0XHgL+XVAEV8/+LbzvXMAaq7afJMbfc2hIkCwU9D9SGuTSyxTDYWnP4vkYxboz +nxSjBF25cfe1lNj2M8FawTSLfJvdkzrnE6JwYZ+vj+vYxXX4M2bUdGc6N3ec592kD3ZDZopD8p/7 +DEJ4Y9HiD2971KE9dJeFt0g5QdYg/NA6s/rob8SKunE3vouXsXgxT7PntgMTzlSdriVZzH81Xwj3 +QEUxeCp6 +-----END CERTIFICATE----- + +GlobalSign Root E46 +=================== +-----BEGIN CERTIFICATE----- +MIICCzCCAZGgAwIBAgISEdK7ujNu1LzmJGjFDYQdmOhDMAoGCCqGSM49BAMDMEYxCzAJBgNVBAYT +AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRwwGgYDVQQDExNHbG9iYWxTaWduIFJvb3Qg +RTQ2MB4XDTE5MDMyMDAwMDAwMFoXDTQ2MDMyMDAwMDAwMFowRjELMAkGA1UEBhMCQkUxGTAXBgNV +BAoTEEdsb2JhbFNpZ24gbnYtc2ExHDAaBgNVBAMTE0dsb2JhbFNpZ24gUm9vdCBFNDYwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAScDrHPt+ieUnd1NPqlRqetMhkytAepJ8qUuwzSChDH2omwlwxwEwkB +jtjqR+q+soArzfwoDdusvKSGN+1wCAB16pMLey5SnCNoIwZD7JIvU4Tb+0cUB+hflGddyXqBPCCj +QjBAMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQxCpCPtsad0kRL +gLWi5h+xEk8blTAKBggqhkjOPQQDAwNoADBlAjEA31SQ7Zvvi5QCkxeCmb6zniz2C5GMn0oUsfZk +vLtoURMMA/cVi4RguYv/Uo7njLwcAjA8+RHUjE7AwWHCFUyqqx0LMV87HOIAl0Qx5v5zli/altP+ +CAezNIm8BZ/3Hobui3A= +-----END CERTIFICATE----- + +GLOBALTRUST 2020 +================ +-----BEGIN CERTIFICATE----- +MIIFgjCCA2qgAwIBAgILWku9WvtPilv6ZeUwDQYJKoZIhvcNAQELBQAwTTELMAkGA1UEBhMCQVQx +IzAhBgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVT +VCAyMDIwMB4XDTIwMDIxMDAwMDAwMFoXDTQwMDYxMDAwMDAwMFowTTELMAkGA1UEBhMCQVQxIzAh +BgNVBAoTGmUtY29tbWVyY2UgbW9uaXRvcmluZyBHbWJIMRkwFwYDVQQDExBHTE9CQUxUUlVTVCAy +MDIwMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAri5WrRsc7/aVj6B3GyvTY4+ETUWi +D59bRatZe1E0+eyLinjF3WuvvcTfk0Uev5E4C64OFudBc/jbu9G4UeDLgztzOG53ig9ZYybNpyrO +VPu44sB8R85gfD+yc/LAGbaKkoc1DZAoouQVBGM+uq/ufF7MpotQsjj3QWPKzv9pj2gOlTblzLmM +CcpL3TGQlsjMH/1WljTbjhzqLL6FLmPdqqmV0/0plRPwyJiT2S0WR5ARg6I6IqIoV6Lr/sCMKKCm +fecqQjuCgGOlYx8ZzHyyZqjC0203b+J+BlHZRYQfEs4kUmSFC0iAToexIiIwquuuvuAC4EDosEKA +A1GqtH6qRNdDYfOiaxaJSaSjpCuKAsR49GiKweR6NrFvG5Ybd0mN1MkGco/PU+PcF4UgStyYJ9OR +JitHHmkHr96i5OTUawuzXnzUJIBHKWk7buis/UDr2O1xcSvy6Fgd60GXIsUf1DnQJ4+H4xj04KlG +DfV0OoIu0G4skaMxXDtG6nsEEFZegB31pWXogvziB4xiRfUg3kZwhqG8k9MedKZssCz3AwyIDMvU +clOGvGBG85hqwvG/Q/lwIHfKN0F5VVJjjVsSn8VoxIidrPIwq7ejMZdnrY8XD2zHc+0klGvIg5rQ +mjdJBKuxFshsSUktq6HQjJLyQUp5ISXbY9e2nKd+Qmn7OmMCAwEAAaNjMGEwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFNwuH9FhN3nkq9XVsxJxaD1qaJwiMB8GA1Ud +IwQYMBaAFNwuH9FhN3nkq9XVsxJxaD1qaJwiMA0GCSqGSIb3DQEBCwUAA4ICAQCR8EICaEDuw2jA +VC/f7GLDw56KoDEoqoOOpFaWEhCGVrqXctJUMHytGdUdaG/7FELYjQ7ztdGl4wJCXtzoRlgHNQIw +4Lx0SsFDKv/bGtCwr2zD/cuz9X9tAy5ZVp0tLTWMstZDFyySCstd6IwPS3BD0IL/qMy/pJTAvoe9 +iuOTe8aPmxadJ2W8esVCgmxcB9CpwYhgROmYhRZf+I/KARDOJcP5YBugxZfD0yyIMaK9MOzQ0MAS +8cE54+X1+NZK3TTN+2/BT+MAi1bikvcoskJ3ciNnxz8RFbLEAwW+uxF7Cr+obuf/WEPPm2eggAe2 +HcqtbepBEX4tdJP7wry+UUTF72glJ4DjyKDUEuzZpTcdN3y0kcra1LGWge9oXHYQSa9+pTeAsRxS +vTOBTI/53WXZFM2KJVj04sWDpQmQ1GwUY7VA3+vA/MRYfg0UFodUJ25W5HCEuGwyEn6CMUO+1918 +oa2u1qsgEu8KwxCMSZY13At1XrFP1U80DhEgB3VDRemjEdqso5nCtnkn4rnvyOL2NSl6dPrFf4IF +YqYK6miyeUcGbvJXqBUzxvd4Sj1Ce2t+/vdG6tHrju+IaFvowdlxfv1k7/9nR4hYJS8+hge9+6jl +gqispdNpQ80xiEmEU5LAsTkbOYMBMMTyqfrQA71yN2BWHzZ8vTmR9W0Nv3vXkg== +-----END CERTIFICATE----- + +ANF Secure Server Root CA +========================= +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Certum EC-384 CA +================ +-----BEGIN CERTIFICATE----- +MIICZTCCAeugAwIBAgIQeI8nXIESUiClBNAt3bpz9DAKBggqhkjOPQQDAzB0MQswCQYDVQQGEwJQ +TDEhMB8GA1UEChMYQXNzZWNvIERhdGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkxGTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwHhcNMTgwMzI2 +MDcyNDU0WhcNNDMwMzI2MDcyNDU0WjB0MQswCQYDVQQGEwJQTDEhMB8GA1UEChMYQXNzZWNvIERh +dGEgU3lzdGVtcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx +GTAXBgNVBAMTEENlcnR1bSBFQy0zODQgQ0EwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATEKI6rGFtq +vm5kN2PkzeyrOvfMobgOgknXhimfoZTy42B4mIF4Bk3y7JoOV2CDn7TmFy8as10CW4kjPMIRBSqn +iBMY81CE1700LCeJVf/OTOffph8oxPBUw7l8t1Ot68KjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFI0GZnQkdjrzife81r1HfS+8EF9LMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNo +ADBlAjADVS2m5hjEfO/JUG7BJw+ch69u1RsIGL2SKcHvlJF40jocVYli5RsJHrpka/F2tNQCMQC0 +QoSZ/6vnnvuRlydd3LBbMHHOXjgaatkl5+r3YZJW+OraNsKHZZYuciUvf9/DE8k= +-----END CERTIFICATE----- + +Certum Trusted Root CA +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TunTrust Root CA +================ +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +HARICA TLS RSA Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG +EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz +OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl +bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB +IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN +JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu +a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y +Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K +5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv +dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR +0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH +GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm +haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ +CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU +EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq +QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD +QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR +j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5 +vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0 +qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6 +Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/ +PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn +kf3/W9b3raYvAwtt41dU63ZTGI0RmLo= +-----END CERTIFICATE----- + +HARICA TLS ECC Root CA 2021 +=========================== +-----BEGIN CERTIFICATE----- +MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH +UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD +QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX +DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj +IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv +b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l +AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b +ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW +0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi +rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw +CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIG3Dp0v+ubHEwDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0xNDA5MjMxNTIyMDdaFw0zNjA1MDUxNTIyMDdaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMB0GA1Ud +DgQWBBRlzeurNR4APn7VdMActHNHDhpkLzASBgNVHRMBAf8ECDAGAQH/AgEBMIGmBgNVHSAEgZ4w +gZswgZgGBFUdIAAwgY8wLwYIKwYBBQUHAgEWI2h0dHA6Ly93d3cuZmlybWFwcm9mZXNpb25hbC5j +b20vY3BzMFwGCCsGAQUFBwICMFAeTgBQAGEAcwBlAG8AIABkAGUAIABsAGEAIABCAG8AbgBhAG4A +bwB2AGEAIAA0ADcAIABCAGEAcgBjAGUAbABvAG4AYQAgADAAOAAwADEANzAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggIBAHSHKAIrdx9miWTtj3QuRhy7qPj4Cx2Dtjqn6EWKB7fgPiDL +4QjbEwj4KKE1soCzC1HA01aajTNFSa9J8OA9B3pFE1r/yJfY0xgsfZb43aJlQ3CTkBW6kN/oGbDb +LIpgD7dvlAceHabJhfa9NPhAeGIQcDq+fUs5gakQ1JZBu/hfHAsdCPKxsIl68veg4MSPi3i1O1il +I45PVf42O+AMt8oqMEEgtIDNrvx2ZnOorm7hfNoD6JQg5iKj0B+QXSBTFCZX2lSX3xZEEAEeiGaP +cjiT3SC3NL7X8e5jjkd5KAb881lFJWAiMxujX6i6KtoaPc1A6ozuBRWV1aUsIC+nmCjuRfzxuIgA +LI9C2lHVnOUTaHFFQ4ueCyE8S1wF3BqfmI7avSKecs2tCsvMo2ebKHTEm9caPARYpoKdrcd7b/+A +lun4jWq9GJAd/0kakFI3ky88Al2CdgtR5xbHV/g4+afNmyJU72OwFW1TZQNKXkqgsqeOSQBZONXH +9IBk9W6VULgRfhVwOEqwf9DEMnDAGf/JOC0ULGb0QkTmVXYbgBVX/8Cnp6o5qtjTcNAuuuuUavpf +NIbnYrX9ivAwhZTJryQCL2/W3Wf+47BVTwSYT6RBVuKT0Gro1vP7ZeDOdcQxWQzugsgMYDNKGbqE +ZycPvEJdvSRUDewdcAZfpLz6IHxV +-----END CERTIFICATE----- + +vTrus ECC Root CA +================= +-----BEGIN CERTIFICATE----- +MIICDzCCAZWgAwIBAgIUbmq8WapTvpg5Z6LSa6Q75m0c1towCgYIKoZIzj0EAwMwRzELMAkGA1UE +BhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBS +b290IENBMB4XDTE4MDczMTA3MjY0NFoXDTQzMDczMTA3MjY0NFowRzELMAkGA1UEBhMCQ04xHDAa +BgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xGjAYBgNVBAMTEXZUcnVzIEVDQyBSb290IENBMHYw +EAYHKoZIzj0CAQYFK4EEACIDYgAEZVBKrox5lkqqHAjDo6LN/llWQXf9JpRCux3NCNtzslt188+c +ToL0v/hhJoVs1oVbcnDS/dtitN9Ti72xRFhiQgnH+n9bEOf+QP3A2MMrMudwpremIFUde4BdS49n +TPEQo0IwQDAdBgNVHQ4EFgQUmDnNvtiyjPeyq+GtJK97fKHbH88wDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwCgYIKoZIzj0EAwMDaAAwZQIwV53dVvHH4+m4SVBrm2nDb+zDfSXkV5UT +QJtS0zvzQBm8JsctBp61ezaf9SXUY2sAAjEA6dPGnlaaKsyh2j/IZivTWJwghfqrkYpwcBE4YGQL +YgmRWAD5Tfs0aNoJrSEGGJTO +-----END CERTIFICATE----- + +vTrus Root CA +============= +-----BEGIN CERTIFICATE----- +MIIFVjCCAz6gAwIBAgIUQ+NxE9izWRRdt86M/TX9b7wFjUUwDQYJKoZIhvcNAQELBQAwQzELMAkG +A1UEBhMCQ04xHDAaBgNVBAoTE2lUcnVzQ2hpbmEgQ28uLEx0ZC4xFjAUBgNVBAMTDXZUcnVzIFJv +b3QgQ0EwHhcNMTgwNzMxMDcyNDA1WhcNNDMwNzMxMDcyNDA1WjBDMQswCQYDVQQGEwJDTjEcMBoG +A1UEChMTaVRydXNDaGluYSBDby4sTHRkLjEWMBQGA1UEAxMNdlRydXMgUm9vdCBDQTCCAiIwDQYJ +KoZIhvcNAQEBBQADggIPADCCAgoCggIBAL1VfGHTuB0EYgWgrmy3cLRB6ksDXhA/kFocizuwZots +SKYcIrrVQJLuM7IjWcmOvFjai57QGfIvWcaMY1q6n6MLsLOaXLoRuBLpDLvPbmyAhykUAyyNJJrI +ZIO1aqwTLDPxn9wsYTwaP3BVm60AUn/PBLn+NvqcwBauYv6WTEN+VRS+GrPSbcKvdmaVayqwlHeF +XgQPYh1jdfdr58tbmnDsPmcF8P4HCIDPKNsFxhQnL4Z98Cfe/+Z+M0jnCx5Y0ScrUw5XSmXX+6KA +YPxMvDVTAWqXcoKv8R1w6Jz1717CbMdHflqUhSZNO7rrTOiwCcJlwp2dCZtOtZcFrPUGoPc2BX70 +kLJrxLT5ZOrpGgrIDajtJ8nU57O5q4IikCc9Kuh8kO+8T/3iCiSn3mUkpF3qwHYw03dQ+A0Em5Q2 +AXPKBlim0zvc+gRGE1WKyURHuFE5Gi7oNOJ5y1lKCn+8pu8fA2dqWSslYpPZUxlmPCdiKYZNpGvu +/9ROutW04o5IWgAZCfEF2c6Rsffr6TlP9m8EQ5pV9T4FFL2/s1m02I4zhKOQUqqzApVg+QxMaPnu +1RcN+HFXtSXkKe5lXa/R7jwXC1pDxaWG6iSe4gUH3DRCEpHWOXSuTEGC2/KmSNGzm/MzqvOmwMVO +9fSddmPmAsYiS8GVP1BkLFTltvA8Kc9XAgMBAAGjQjBAMB0GA1UdDgQWBBRUYnBj8XWEQ1iO0RYg +scasGrz2iTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOC +AgEAKbqSSaet8PFww+SX8J+pJdVrnjT+5hpk9jprUrIQeBqfTNqK2uwcN1LgQkv7bHbKJAs5EhWd +nxEt/Hlk3ODg9d3gV8mlsnZwUKT+twpw1aA08XXXTUm6EdGz2OyC/+sOxL9kLX1jbhd47F18iMjr +jld22VkE+rxSH0Ws8HqA7Oxvdq6R2xCOBNyS36D25q5J08FsEhvMKar5CKXiNxTKsbhm7xqC5PD4 +8acWabfbqWE8n/Uxy+QARsIvdLGx14HuqCaVvIivTDUHKgLKeBRtRytAVunLKmChZwOgzoy8sHJn +xDHO2zTlJQNgJXtxmOTAGytfdELSS8VZCAeHvsXDf+eW2eHcKJfWjwXj9ZtOyh1QRwVTsMo554Wg +icEFOwE30z9J4nfrI8iIZjs9OXYhRvHsXyO466JmdXTBQPfYaJqT4i2pLr0cox7IdMakLXogqzu4 +sEb9b91fUlV1YvCXoHzXOP0l382gmxDPi7g4Xl7FtKYCNqEeXxzP4padKar9mK5S4fNBUvupLnKW +nyfjqnN9+BojZns7q2WwMgFLFT49ok8MKzWixtlnEjUwzXYuFrOZnk1PTi07NEPhmg4NpGaXutIc +SkwsKouLgU9xGqndXHt7CMUADTdA43x7VF8vhV929vensBxXVsFy6K2ir40zSbofitzmdHxghm+H +l3s= +-----END CERTIFICATE----- + +ISRG Root X2 +============ +-----BEGIN CERTIFICATE----- +MIICGzCCAaGgAwIBAgIQQdKd0XLq7qeAwSxs6S+HUjAKBggqhkjOPQQDAzBPMQswCQYDVQQGEwJV +UzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElT +UkcgUm9vdCBYMjAeFw0yMDA5MDQwMDAwMDBaFw00MDA5MTcxNjAwMDBaME8xCzAJBgNVBAYTAlVT +MSkwJwYDVQQKEyBJbnRlcm5ldCBTZWN1cml0eSBSZXNlYXJjaCBHcm91cDEVMBMGA1UEAxMMSVNS +RyBSb290IFgyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEzZvVn4CDCuwJSvMWSj5cz3es3mcFDR0H +ttwW+1qLFNvicWDEukWVEYmO6gbf9yoWHKS5xcUy4APgHoIYOIvXRdgKam7mAHf7AlF9ItgKbppb +d9/w+kHsOdx1ymgHDB/qo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUfEKWrt5LSDv6kviejM9ti6lyN5UwCgYIKoZIzj0EAwMDaAAwZQIwe3lORlCEwkSHRhtF +cP9Ymd70/aTSVaYgLXTWNLxBo1BfASdWtL4ndQavEi51mI38AjEAi/V3bNTIZargCyzuFJ0nN6T5 +U6VR5CmD1/iQMVtCnwr1/q4AaOeMSQ+2b1tbFfLn +-----END CERTIFICATE----- + +HiPKI Root CA - G1 +================== +-----BEGIN CERTIFICATE----- +MIIFajCCA1KgAwIBAgIQLd2szmKXlKFD6LDNdmpeYDANBgkqhkiG9w0BAQsFADBPMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xGzAZBgNVBAMMEkhpUEtJ +IFJvb3QgQ0EgLSBHMTAeFw0xOTAyMjIwOTQ2MDRaFw0zNzEyMzExNTU5NTlaME8xCzAJBgNVBAYT +AlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEbMBkGA1UEAwwSSGlQS0kg +Um9vdCBDQSAtIEcxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9B5/UnMyDHPkvRN0 +o9QwqNCuS9i233VHZvR85zkEHmpwINJaR3JnVfSl6J3VHiGh8Ge6zCFovkRTv4354twvVcg3Px+k +wJyz5HdcoEb+d/oaoDjq7Zpy3iu9lFc6uux55199QmQ5eiY29yTw1S+6lZgRZq2XNdZ1AYDgr/SE +YYwNHl98h5ZeQa/rh+r4XfEuiAU+TCK72h8q3VJGZDnzQs7ZngyzsHeXZJzA9KMuH5UHsBffMNsA +GJZMoYFL3QRtU6M9/Aes1MU3guvklQgZKILSQjqj2FPseYlgSGDIcpJQ3AOPgz+yQlda22rpEZfd +hSi8MEyr48KxRURHH+CKFgeW0iEPU8DtqX7UTuybCeyvQqww1r/REEXgphaypcXTT3OUM3ECoWqj +1jOXTyFjHluP2cFeRXF3D4FdXyGarYPM+l7WjSNfGz1BryB1ZlpK9p/7qxj3ccC2HTHsOyDry+K4 +9a6SsvfhhEvyovKTmiKe0xRvNlS9H15ZFblzqMF8b3ti6RZsR1pl8w4Rm0bZ/W3c1pzAtH2lsN0/ +Vm+h+fbkEkj9Bn8SV7apI09bA8PgcSojt/ewsTu8mL3WmKgMa/aOEmem8rJY5AIJEzypuxC00jBF +8ez3ABHfZfjcK0NVvxaXxA/VLGGEqnKG/uY6fsI/fe78LxQ+5oXdUG+3Se0CAwEAAaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ncX+l6o/vY9cdVouslGDDjYr7AwDgYDVR0PAQH/BAQD +AgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBQUfB13HAE4/+qddRxosuej6ip0691x1TPOhwEmSKsxBHi +7zNKpiMdDg1H2DfHb680f0+BazVP6XKlMeJ45/dOlBhbQH3PayFUhuaVevvGyuqcSE5XCV0vrPSl +tJczWNWseanMX/mF+lLFjfiRFOs6DRfQUsJ748JzjkZ4Bjgs6FzaZsT0pPBWGTMpWmWSBUdGSquE +wx4noR8RkpkndZMPvDY7l1ePJlsMu5wP1G4wB9TcXzZoZjmDlicmisjEOf6aIW/Vcobpf2Lll07Q +JNBAsNB1CI69aO4I1258EHBGG3zgiLKecoaZAeO/n0kZtCW+VmWuF2PlHt/o/0elv+EmBYTksMCv +5wiZqAxeJoBF1PhoL5aPruJKHJwWDBNvOIf2u8g0X5IDUXlwpt/L9ZlNec1OvFefQ05rLisY+Gpz +jLrFNe85akEez3GoorKGB1s6yeHvP2UEgEcyRHCVTjFnanRbEEV16rCf0OY1/k6fi8wrkkVbbiVg +hUbN0aqwdmaTd5a+g744tiROJgvM7XpWGuDpWsZkrUx6AEhEL7lAuxM+vhV4nYWBSipX3tUZQ9rb +yltHhoMLP7YNdnhzeSJesYAfz77RP1YQmCuVh6EfnWQUYDksswBVLuT1sw5XxJFBAJw/6KXf6vb/ +yPCtbVKoF6ubYfwSUTXkJf2vqmqGOQ== +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB3DCCAYOgAwIBAgINAgPlfvU/k/2lCSGypjAKBggqhkjOPQQDAjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTIxMTEzMDAwMDAwWhcNMzgwMTE5MDMxNDA3WjBQMSQwIgYDVQQLExtHbG9i +YWxTaWduIEVDQyBSb290IENBIC0gUjQxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAS4xnnTj2wlDp8uORkcA6SumuU5BwkW +ymOxuYb4ilfBV85C+nOh92VC/x7BALJucw7/xyHlGKSq2XE/qNS5zowdo0IwQDAOBgNVHQ8BAf8E +BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVLB7rUW44kB/+wpu+74zyTyjhNUwCgYI +KoZIzj0EAwIDRwAwRAIgIk90crlgr/HmnKAWBVBfw147bmF0774BxL4YSFlhgjICICadVGNA3jdg +UM/I2O2dgq43mLyjj0xMqTQrbO/7lZsm +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlk28xsBNJiGuiFzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx9vaM +f/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7raKb0 +xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnWr4+w +B7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqMLnXW +nOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly4cpk +9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr06zq +kUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92wO1A +K/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om3xPX +V2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNuJLDW +cfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEMBQAD +ggIBAJ+qQibbC5u+/x6Wki4+omVKapi6Ist9wTrYggoGxval3sBOh2Z5ofmmWJyq+bXmYOfg6LEe +QkEzCzc9zolwFcq1JKjPa7XSQCGYzyI0zzvFIoTgxQ6KfF2I5DUkzps+GlQebtuyh6f88/qBVRRi +ClmpIgUxPoLW7ttXNLwzldMXG+gnoot7TiYaelpkttGsN/H9oPM47HLwEXWdyzRSjeZ2axfG34ar +J45JK3VmgRAhpuo+9K4l/3wV3s6MJT/KYnAK9y8JZgfIPxz88NtFMN9iiMG1D53Dn0reWVlHxYci +NuaCp+0KueIHoI17eko8cdLiA6EfMgfdG+RCzgwARWGAtQsgWSl4vflVy2PFPEz0tv/bal8xa5me +LMFrUKTX5hgUvYU/Z6tGn6D/Qqc6f1zLXbBwHSs09dR2CQzreExZBfMzQsNhFRAbd03OIozUhfJF +fbdT6u9AWpQKXCBfTkBdYiJ23//OYb2MI3jSNwLgjt7RETeJ9r/tSQdirpLsQBqvFAnZ0E6yove+ +7u7Y/9waLd64NnHi/Hm3lCXRSHNboTXns5lndcEZOitHTtNCjv0xyBZm2tIMPNuzjsmhDYAPexZ3 +FL//2wmUspO8IFgV6dtxQ/PeEMMA3KgqlbbC1j+Qa3bbbP6MvPJwNQzcmRk13NfIRmPVNnGuV/u3 +gm3c +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFVzCCAz+gAwIBAgINAgPlrsWNBCUaqxElqjANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTukk3Lv +CvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo7JUl +e3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWIm8Wb +a96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5GmdFrS ++LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbuak7M +kogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscszcTJG +r61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RWIr9q +S34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73VululycslaVNV +J1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy5okL +dWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0T +AQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEMBQAD +ggIBAB/Kzt3HvqGf2SdMC9wXmBFqiN495nFWcrKeGk6c1SuYJF2ba3uwM4IJvd8lRuqYnrYb/oM8 +0mJhwQTtzuDFycgTE1XnqGOtjHsB/ncw4c5omwX4Eu55MaBBRTUoCnGkJE+M3DyCB19m3H0Q/gxh +swWV7uGugQ+o+MePTagjAiZrHYNSVc61LwDKgEDg4XSsYPWHgJ2uNmSRXbBoGOqKYcl3qJfEycel +/FVL8/B/uWU9J2jQzGv6U53hkRrJXRqWbTKH7QMgyALOWr7Z6v2yTcQvG99fevX4i8buMTolUVVn +jWQye+mew4K6Ki3pHrTgSAai/GevHyICc/sgCq+dVEuhzf9gR7A/Xe8bVr2XIZYtCtFenTgCR2y5 +9PYjJbigapordwj6xLEokCZYCDzifqrXPW+6MYgKBesntaFJ7qBFVHvmJ2WZICGoo7z7GJa7Um8M +7YNRTOlZ4iBgxcJlkoKM8xAfDoqXvneCbT+PHV28SSe9zE8P4c52hgQjxcCMElv924SgJPFI/2R8 +0L5cFtHvma3AH/vLrrw4IgYmZNralw4/KBVEqE8AyvCazM90arQ+POuV7LXTWtiBmelDGDfrs7vR +WGJB82bSj6p4lVQgw1oudCvV0b4YacCs1aTPObpRhANl6WLAYv7YTVWW4tAR+kg0Eeye7QUd5MjW +HYbL +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPluILrIPglJ209ZjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUURout +736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24CejQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP0/Eq +Er24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEA9uEglRR7VKOQFhG/hMjqb2sXnh5GmCCbn9MN2azT +L818+FsuVbu/3ZL3pAzcMeGiAjEA/JdmZuVDFhOD3cffL74UOO0BzrEXGhF16b0DjyZ+hOXJYKaV +11RZt+cRLInUue4X +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCTCCAY6gAwIBAgINAgPlwGjvYxqccpBQUjAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJVUzEi +MCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQw +HhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UEChMZ +R29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcqhkjO +PQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa6zzu +hXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqjQjBA +MA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV2Py1 +PsVq8JQdjDAKBggqhkjOPQQDAwNpADBmAjEA6ED/g94D9J+uHXqnLrmvT/aDHQ4thQEd0dlq7A/C +r8deVl5c1RxYIigL9zC2L7F8AjEA8GE8p/SgguMh1YQdc4acLa/KNJvxn7kjNuK8YAOdgLOaVsjh +4rsUecrNIdSUtUlD +-----END CERTIFICATE----- + +Telia Root CA v2 +================ +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIPAWdfJ9b+euPkrL4JWwWeMA0GCSqGSIb3DQEBCwUAMEQxCzAJBgNVBAYT +AkZJMRowGAYDVQQKDBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2 +MjAeFw0xODExMjkxMTU1NTRaFw00MzExMjkxMTU1NTRaMEQxCzAJBgNVBAYTAkZJMRowGAYDVQQK +DBFUZWxpYSBGaW5sYW5kIE95ajEZMBcGA1UEAwwQVGVsaWEgUm9vdCBDQSB2MjCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBALLQPwe84nvQa5n44ndp586dpAO8gm2h/oFlH0wnrI4AuhZ7 +6zBqAMCzdGh+sq/H1WKzej9Qyow2RCRj0jbpDIX2Q3bVTKFgcmfiKDOlyzG4OiIjNLh9vVYiQJ3q +9HsDrWj8soFPmNB06o3lfc1jw6P23pLCWBnglrvFxKk9pXSW/q/5iaq9lRdU2HhE8Qx3FZLgmEKn +pNaqIJLNwaCzlrI6hEKNfdWV5Nbb6WLEWLN5xYzTNTODn3WhUidhOPFZPY5Q4L15POdslv5e2QJl +tI5c0BE0312/UqeBAMN/mUWZFdUXyApT7GPzmX3MaRKGwhfwAZ6/hLzRUssbkmbOpFPlob/E2wnW +5olWK8jjfN7j/4nlNW4o6GwLI1GpJQXrSPjdscr6bAhR77cYbETKJuFzxokGgeWKrLDiKca5JLNr +RBH0pUPCTEPlcDaMtjNXepUugqD0XBCzYYP2AgWGLnwtbNwDRm41k9V6lS/eINhbfpSQBGq6WT0E +BXWdN6IOLj3rwaRSg/7Qa9RmjtzG6RJOHSpXqhC8fF6CfaamyfItufUXJ63RDolUK5X6wK0dmBR4 +M0KGCqlztft0DbcbMBnEWg4cJ7faGND/isgFuvGqHKI3t+ZIpEYslOqodmJHixBTB0hXbOKSTbau +BcvcwUpej6w9GU7C7WB1K9vBykLVAgMBAAGjYzBhMB8GA1UdIwQYMBaAFHKs5DN5qkWH9v2sHZ7W +xy+G2CQ5MB0GA1UdDgQWBBRyrOQzeapFh/b9rB2e1scvhtgkOTAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAoDtZpwmUPjaE0n4vOaWWl/oRrfxn83EJ +8rKJhGdEr7nv7ZbsnGTbMjBvZ5qsfl+yqwE2foH65IRe0qw24GtixX1LDoJt0nZi0f6X+J8wfBj5 +tFJ3gh1229MdqfDBmgC9bXXYfef6xzijnHDoRnkDry5023X4blMMA8iZGok1GTzTyVR8qPAs5m4H +eW9q4ebqkYJpCh3DflminmtGFZhb069GHWLIzoBSSRE/yQQSwxN8PzuKlts8oB4KtItUsiRnDe+C +y748fdHif64W1lZYudogsYMVoe+KTTJvQS8TUoKU1xrBeKJR3Stwbbca+few4GeXVtt8YVMJAygC +QMez2P2ccGrGKMOF6eLtGpOg3kuYooQ+BXcBlj37tCAPnHICehIv1aO6UXivKitEZU61/Qrowc15 +h2Er3oBXRb9n8ZuRXqWk7FlIEA04x7D6w0RtBPV4UBySllva9bguulvP5fBqnUsvWHMtTy3EHD70 +sz+rFQ47GUGKpMFXEmZxTPpT41frYpUJnlTd0cI8Vzy9OK2YZLe4A5pTVmBds9hCG1xLEooc6+t9 +xnppxyd/pPiL8uSUZodL6ZQHCRJ5irLrdATczvREWeAWysUsWNc8e89ihmpQfTU2Zqf7N+cox9jQ +raVplI/owd8k+BsHMYeB2F326CjYSlKArBPuUBQemMc= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQfMmPK4TX3+oPyWWa00tNljAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTA5NDUwMFoXDTM1MDIxMTA5NDQ1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABMbLxyjR+4T1mu9CFCDhQ2tuda38KwOE1HaTJddZO0Flax7mNCq7 +dPYSzuht56vkPE4/RAiLzRZxy7+SmfSk1zxQVFKQhYN4lGdnoxwJGT11NIXe7WB9xwy0QVK5buXu +QqOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHOREKv/VbNafAkl1bK6CKBrqx9t +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2JyX3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwQlIlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAlJAtE/rhY/hhY+ithXhUkZy4kzg+GkHaQBZTQgjKL47xPoFWwKrY7RjEsK70Pvom +AjEA8yjixtsrmfu3Ubgko6SUeho/5jbiA1czijDLgsfWFBHVdWNbFJWcHwHP2NVypw87 +-----END CERTIFICATE----- + +D-TRUST EV Root CA 1 2020 +========================= +-----BEGIN CERTIFICATE----- +MIIC2zCCAmCgAwIBAgIQXwJB13qHfEwDo6yWjfv/0DAKBggqhkjOPQQDAzBIMQswCQYDVQQGEwJE +RTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0EgMSAy +MDIwMB4XDTIwMDIxMTEwMDAwMFoXDTM1MDIxMTA5NTk1OVowSDELMAkGA1UEBhMCREUxFTATBgNV +BAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDEgMjAyMDB2MBAG +ByqGSM49AgEGBSuBBAAiA2IABPEL3YZDIBnfl4XoIkqbz52Yv7QFJsnL46bSj8WeeHsxiamJrSc8 +ZRCC/N/DnU7wMyPE0jL1HLDfMxddxfCxivnvubcUyilKwg+pf3VlSSowZ/Rk99Yad9rDwpdhQntJ +raOCAQ0wggEJMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFH8QARY3OqQo5FD4pPfsazK2/umL +MA4GA1UdDwEB/wQEAwIBBjCBxgYDVR0fBIG+MIG7MD6gPKA6hjhodHRwOi8vY3JsLmQtdHJ1c3Qu +bmV0L2NybC9kLXRydXN0X2V2X3Jvb3RfY2FfMV8yMDIwLmNybDB5oHegdYZzbGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwRVYlMjBSb290JTIwQ0ElMjAxJTIwMjAyMCxP +PUQtVHJ1c3QlMjBHbWJILEM9REU/Y2VydGlmaWNhdGVyZXZvY2F0aW9ubGlzdDAKBggqhkjOPQQD +AwNpADBmAjEAyjzGKnXCXnViOTYAYFqLwZOZzNnbQTs7h5kXO9XMT8oi96CAy/m0sRtW9XLS/BnR +AjEAkfcwkz8QRitxpNA7RJvAKQIFskF3UfN5Wp6OFKBOQtJbgfM0agPnIjhQW+0ZT0MW +-----END CERTIFICATE----- + +DigiCert TLS ECC P384 Root G5 +============================= +-----BEGIN CERTIFICATE----- +MIICGTCCAZ+gAwIBAgIQCeCTZaz32ci5PhwLBCou8zAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJjAkBgNVBAMTHURpZ2lDZXJ0IFRMUyBFQ0MgUDM4 +NCBSb290IEc1MB4XDTIxMDExNTAwMDAwMFoXDTQ2MDExNDIzNTk1OVowTjELMAkGA1UEBhMCVVMx +FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSYwJAYDVQQDEx1EaWdpQ2VydCBUTFMgRUNDIFAzODQg +Um9vdCBHNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABMFEoc8Rl1Ca3iOCNQfN0MsYndLxf3c1Tzvd +lHJS7cI7+Oz6e2tYIOyZrsn8aLN1udsJ7MgT9U7GCh1mMEy7H0cKPGEQQil8pQgO4CLp0zVozptj +n4S1mU1YoI71VOeVyaNCMEAwHQYDVR0OBBYEFMFRRVBZqz7nLFr6ICISB4CIfBFqMA4GA1UdDwEB +/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gAMGUCMQCJao1H5+z8blUD2Wds +Jk6Dxv3J+ysTvLd6jLRl0mlpYxNjOyZQLgGheQaRnUi/wr4CMEfDFXuxoJGZSZOoPHzoRgaLLPIx +AJSdYsiJvRmEFOml+wG4DXZDjC5Ty3zfDBeWUA== +-----END CERTIFICATE----- + +DigiCert TLS RSA4096 Root G5 +============================ +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCPm0eKj6ftpqMzeJ3nzPijANBgkqhkiG9w0BAQwFADBNMQswCQYDVQQG +EwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0 +MDk2IFJvb3QgRzUwHhcNMjEwMTE1MDAwMDAwWhcNNDYwMTE0MjM1OTU5WjBNMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xJTAjBgNVBAMTHERpZ2lDZXJ0IFRMUyBSU0E0MDk2 +IFJvb3QgRzUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCz0PTJeRGd/fxmgefM1eS8 +7IE+ajWOLrfn3q/5B03PMJ3qCQuZvWxX2hhKuHisOjmopkisLnLlvevxGs3npAOpPxG02C+JFvuU +AT27L/gTBaF4HI4o4EXgg/RZG5Wzrn4DReW+wkL+7vI8toUTmDKdFqgpwgscONyfMXdcvyej/Ces +tyu9dJsXLfKB2l2w4SMXPohKEiPQ6s+d3gMXsUJKoBZMpG2T6T867jp8nVid9E6P/DsjyG244gXa +zOvswzH016cpVIDPRFtMbzCe88zdH5RDnU1/cHAN1DrRN/BsnZvAFJNY781BOHW8EwOVfH/jXOnV +DdXifBBiqmvwPXbzP6PosMH976pXTayGpxi0KcEsDr9kvimM2AItzVwv8n/vFfQMFawKsPHTDU9q +TXeXAaDxZre3zu/O7Oyldcqs4+Fj97ihBMi8ez9dLRYiVu1ISf6nL3kwJZu6ay0/nTvEF+cdLvvy +z6b84xQslpghjLSR6Rlgg/IwKwZzUNWYOwbpx4oMYIwo+FKbbuH2TbsGJJvXKyY//SovcfXWJL5/ +MZ4PbeiPT02jP/816t9JXkGPhvnxd3lLG7SjXi/7RgLQZhNeXoVPzthwiHvOAbWWl9fNff2C+MIk +wcoBOU+NosEUQB+cZtUMCUbW8tDRSHZWOkPLtgoRObqME2wGtZ7P6wIDAQABo0IwQDAdBgNVHQ4E +FgQUUTMc7TZArxfTJc1paPKvTiM+s0EwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w +DQYJKoZIhvcNAQEMBQADggIBAGCmr1tfV9qJ20tQqcQjNSH/0GEwhJG3PxDPJY7Jv0Y02cEhJhxw +GXIeo8mH/qlDZJY6yFMECrZBu8RHANmfGBg7sg7zNOok992vIGCukihfNudd5N7HPNtQOa27PShN +lnx2xlv0wdsUpasZYgcYQF+Xkdycx6u1UQ3maVNVzDl92sURVXLFO4uJ+DQtpBflF+aZfTCIITfN +MBc9uPK8qHWgQ9w+iUuQrm0D4ByjoJYJu32jtyoQREtGBzRj7TG5BO6jm5qu5jF49OokYTurWGT/ +u4cnYiWB39yhL/btp/96j1EuMPikAdKFOV8BmZZvWltwGUb+hmA+rYAQCd05JS9Yf7vSdPD3Rh9G +OUrYU9DzLjtxpdRv/PNn5AeP3SYZ4Y1b+qOTEZvpyDrDVWiakuFSdjjo4bq9+0/V77PnSIMx8IIh +47a+p6tv75/fTM8BuGJqIz3nCU2AG3swpMPdB380vqQmsvZB6Akd4yCYqjdP//fx4ilwMUc/dNAU +FvohigLVigmUdy7yWSiLfFCSCmZ4OIN1xLVaqBHG5cGdZlXPU8Sv13WFqUITVuwhd4GTWgzqltlJ +yqEI8pc7bZsEGCREjnwB8twl2F6GmrE52/WRMmrRpnCKovfepEWFJqgejF0pW8hL2JpqA15w8oVP +bEtoL8pU9ozaMv7Da4M/OMZ+ +-----END CERTIFICATE----- + +Certainly Root R1 +================= +-----BEGIN CERTIFICATE----- +MIIFRzCCAy+gAwIBAgIRAI4P+UuQcWhlM1T01EQ5t+AwDQYJKoZIhvcNAQELBQAwPTELMAkGA1UE +BhMCVVMxEjAQBgNVBAoTCUNlcnRhaW5seTEaMBgGA1UEAxMRQ2VydGFpbmx5IFJvb3QgUjEwHhcN +MjEwNDAxMDAwMDAwWhcNNDYwNDAxMDAwMDAwWjA9MQswCQYDVQQGEwJVUzESMBAGA1UEChMJQ2Vy +dGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBSMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBANA21B/q3avk0bbm+yLA3RMNansiExyXPGhjZjKcA7WNpIGD2ngwEc/csiu+kr+O +5MQTvqRoTNoCaBZ0vrLdBORrKt03H2As2/X3oXyVtwxwhi7xOu9S98zTm/mLvg7fMbedaFySpvXl +8wo0tf97ouSHocavFwDvA5HtqRxOcT3Si2yJ9HiG5mpJoM610rCrm/b01C7jcvk2xusVtyWMOvwl +DbMicyF0yEqWYZL1LwsYpfSt4u5BvQF5+paMjRcCMLT5r3gajLQ2EBAHBXDQ9DGQilHFhiZ5shGI +XsXwClTNSaa/ApzSRKft43jvRl5tcdF5cBxGX1HpyTfcX35pe0HfNEXgO4T0oYoKNp43zGJS4YkN +KPl6I7ENPT2a/Z2B7yyQwHtETrtJ4A5KVpK8y7XdeReJkd5hiXSSqOMyhb5OhaRLWcsrxXiOcVTQ +AjeZjOVJ6uBUcqQRBi8LjMFbvrWhsFNunLhgkR9Za/kt9JQKl7XsxXYDVBtlUrpMklZRNaBA2Cnb +rlJ2Oy0wQJuK0EJWtLeIAaSHO1OWzaMWj/Nmqhexx2DgwUMFDO6bW2BvBlyHWyf5QBGenDPBt+U1 +VwV/J84XIIwc/PH72jEpSe31C4SnT8H2TsIonPru4K8H+zMReiFPCyEQtkA6qyI6BJyLm4SGcprS +p6XEtHWRqSsjAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1Ud +DgQWBBTgqj8ljZ9EXME66C6ud0yEPmcM9DANBgkqhkiG9w0BAQsFAAOCAgEAuVevuBLaV4OPaAsz +HQNTVfSVcOQrPbA56/qJYv331hgELyE03fFo8NWWWt7CgKPBjcZq91l3rhVkz1t5BXdm6ozTaw3d +8VkswTOlMIAVRQdFGjEitpIAq5lNOo93r6kiyi9jyhXWx8bwPWz8HA2YEGGeEaIi1wrykXprOQ4v +MMM2SZ/g6Q8CRFA3lFV96p/2O7qUpUzpvD5RtOjKkjZUbVwlKNrdrRT90+7iIgXr0PK3aBLXWopB +GsaSpVo7Y0VPv+E6dyIvXL9G+VoDhRNCX8reU9ditaY1BMJH/5n9hN9czulegChB8n3nHpDYT3Y+ +gjwN/KUD+nsa2UUeYNrEjvn8K8l7lcUq/6qJ34IxD3L/DCfXCh5WAFAeDJDBlrXYFIW7pw0WwfgH +JBu6haEaBQmAupVjyTrsJZ9/nbqkRxWbRHDxakvWOF5D8xh+UG7pWijmZeZ3Gzr9Hb4DJqPb1OG7 +fpYnKx3upPvaJVQTA945xsMfTZDsjxtK0hzthZU4UHlG1sGQUDGpXJpuHfUzVounmdLyyCwzk5Iw +x06MZTMQZBf9JBeW0Y3COmor6xOLRPIh80oat3df1+2IpHLlOR+Vnb5nwXARPbv0+Em34yaXOp/S +X3z7wJl8OSngex2/DaeP0ik0biQVy96QXr8axGbqwua6OV+KmalBWQewLK8= +-----END CERTIFICATE----- + +Certainly Root E1 +================= +-----BEGIN CERTIFICATE----- +MIIB9zCCAX2gAwIBAgIQBiUzsUcDMydc+Y2aub/M+DAKBggqhkjOPQQDAzA9MQswCQYDVQQGEwJV +UzESMBAGA1UEChMJQ2VydGFpbmx5MRowGAYDVQQDExFDZXJ0YWlubHkgUm9vdCBFMTAeFw0yMTA0 +MDEwMDAwMDBaFw00NjA0MDEwMDAwMDBaMD0xCzAJBgNVBAYTAlVTMRIwEAYDVQQKEwlDZXJ0YWlu +bHkxGjAYBgNVBAMTEUNlcnRhaW5seSBSb290IEUxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE3m/4 +fxzf7flHh4axpMCK+IKXgOqPyEpeKn2IaKcBYhSRJHpcnqMXfYqGITQYUBsQ3tA3SybHGWCA6TS9 +YBk2QNYphwk8kXr2vBMj3VlOBF7PyAIcGFPBMdjaIOlEjeR2o0IwQDAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU8ygYy2R17ikq6+2uI1g4hevIIgcwCgYIKoZIzj0E +AwMDaAAwZQIxALGOWiDDshliTd6wT99u0nCK8Z9+aozmut6Dacpps6kFtZaSF4fC0urQe87YQVt8 +rgIwRt7qy12a7DLCZRawTDBcMPPaTnOGBtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR +-----END CERTIFICATE----- + +Security Communication ECC RootCA1 +================================== +-----BEGIN CERTIFICATE----- +MIICODCCAb6gAwIBAgIJANZdm7N4gS7rMAoGCCqGSM49BAMDMGExCzAJBgNVBAYTAkpQMSUwIwYD +VQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMSswKQYDVQQDEyJTZWN1cml0eSBDb21t +dW5pY2F0aW9uIEVDQyBSb290Q0ExMB4XDTE2MDYxNjA1MTUyOFoXDTM4MDExODA1MTUyOFowYTEL +MAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xKzApBgNV +BAMTIlNlY3VyaXR5IENvbW11bmljYXRpb24gRUNDIFJvb3RDQTEwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAASkpW9gAwPDvTH00xecK4R1rOX9PVdu12O/5gSJko6BnOPpR27KkBLIE+CnnfdldB9sELLo +5OnvbYUymUSxXv3MdhDYW72ixvnWQuRXdtyQwjWpS4g8EkdtXP9JTxpKULGjQjBAMB0GA1UdDgQW +BBSGHOf+LaVKiwj+KBH6vqNm+GBZLzAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAK +BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L +snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e +N9k= +-----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root E46 +============================================= +-----BEGIN CERTIFICATE----- +MIICOjCCAcGgAwIBAgIQQvLM2htpN0RfFf51KBC49DAKBggqhkjOPQQDAzBfMQswCQYDVQQGEwJH +QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBTZXJ2 +ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1OTU5 +WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0 +aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBFNDYwdjAQBgcqhkjOPQIBBgUr +gQQAIgNiAAR2+pmpbiDt+dd34wc7qNs9Xzjoq1WmVk/WSOrsfy2qw7LFeeyZYX8QeccCWvkEN/U0 +NSt3zn8gj1KjAIns1aeibVvjS5KToID1AZTc8GgHHs3u/iVStSBDHBv+6xnOQ6OjQjBAMB0GA1Ud +DgQWBBTRItpMWfFLXyY4qp3W7usNw/upYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAKBggqhkjOPQQDAwNnADBkAjAn7qRaqCG76UeXlImldCBteU/IvZNeWBj7LRoAasm4PdCkT0RH +lAFWovgzJQxC36oCMB3q4S6ILuH5px0CMk7yn2xVdOOurvulGu7t0vzCAxHrRVxgED1cf5kDW21U +SAGKcw== +-----END CERTIFICATE----- + +Sectigo Public Server Authentication Root R46 +============================================= +-----BEGIN CERTIFICATE----- +MIIFijCCA3KgAwIBAgIQdY39i658BwD6qSWn4cetFDANBgkqhkiG9w0BAQwFADBfMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1TZWN0aWdvIFB1YmxpYyBT +ZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwHhcNMjEwMzIyMDAwMDAwWhcNNDYwMzIxMjM1 +OTU5WjBfMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQDEy1T +ZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYwggIiMA0GCSqGSIb3 +DQEBAQUAA4ICDwAwggIKAoICAQCTvtU2UnXYASOgHEdCSe5jtrch/cSV1UgrJnwUUxDaef0rty2k +1Cz66jLdScK5vQ9IPXtamFSvnl0xdE8H/FAh3aTPaE8bEmNtJZlMKpnzSDBh+oF8HqcIStw+Kxwf +GExxqjWMrfhu6DtK2eWUAtaJhBOqbchPM8xQljeSM9xfiOefVNlI8JhD1mb9nxc4Q8UBUQvX4yMP +FF1bFOdLvt30yNoDN9HWOaEhUTCDsG3XME6WW5HwcCSrv0WBZEMNvSE6Lzzpng3LILVCJ8zab5vu +ZDCQOc2TZYEhMbUjUDM3IuM47fgxMMxF/mL50V0yeUKH32rMVhlATc6qu/m1dkmU8Sf4kaWD5Qaz +Yw6A3OASVYCmO2a0OYctyPDQ0RTp5A1NDvZdV3LFOxxHVp3i1fuBYYzMTYCQNFu31xR13NgESJ/A +wSiItOkcyqex8Va3e0lMWeUgFaiEAin6OJRpmkkGj80feRQXEgyDet4fsZfu+Zd4KKTIRJLpfSYF +plhym3kT2BFfrsU4YjRosoYwjviQYZ4ybPUHNs2iTG7sijbt8uaZFURww3y8nDnAtOFr94MlI1fZ +EoDlSfB1D++N6xybVCi0ITz8fAr/73trdf+LHaAZBav6+CuBQug4urv7qv094PPK306Xlynt8xhW +6aWWrL3DkJiy4Pmi1KZHQ3xtzwIDAQABo0IwQDAdBgNVHQ4EFgQUVnNYZJX5khqwEioEYnmhQBWI +IUkwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAC9c +mTz8Bl6MlC5w6tIyMY208FHVvArzZJ8HXtXBc2hkeqK5Duj5XYUtqDdFqij0lgVQYKlJfp/imTYp +E0RHap1VIDzYm/EDMrraQKFz6oOht0SmDpkBm+S8f74TlH7Kph52gDY9hAaLMyZlbcp+nv4fjFg4 +exqDsQ+8FxG75gbMY/qB8oFM2gsQa6H61SilzwZAFv97fRheORKkU55+MkIQpiGRqRxOF3yEvJ+M +0ejf5lG5Nkc/kLnHvALcWxxPDkjBJYOcCj+esQMzEhonrPcibCTRAUH4WAP+JWgiH5paPHxsnnVI +84HxZmduTILA7rpXDhjvLpr3Etiga+kFpaHpaPi8TD8SHkXoUsCjvxInebnMMTzD9joiFgOgyY9m +pFuiTdaBJQbpdqQACj7LzTWb4OE4y2BThihCQRxEV+ioratF4yUQvNs+ZUH7G6aXD+u5dHn5Hrwd +Vw1Hr8Mvn4dGp+smWg9WY7ViYG4A++MnESLn/pmPNPW56MORcr3Ywx65LvKRRFHQV80MNNVIIb/b +E/FmJUNS0nAiNs2fxBx1IK1jcmMGDw4nztJqDby1ORrp0XZ60Vzk50lJLVU3aPAaOpg+VBeHVOmm +J1CJeyAvP/+/oYtKR5j/K3tJPsMpRmAYQqszKbrAKbkTidOIijlBO8n9pu0f9GBj39ItVQGL +-----END CERTIFICATE----- + +SSL.com TLS RSA Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIIFiTCCA3GgAwIBAgIQb77arXO9CEDii02+1PdbkTANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQG +EwJVUzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBSU0Eg +Um9vdCBDQSAyMDIyMB4XDTIyMDgyNTE2MzQyMloXDTQ2MDgxOTE2MzQyMVowTjELMAkGA1UEBhMC +VVMxGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgUlNBIFJv +b3QgQ0EgMjAyMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANCkCXJPQIgSYT41I57u +9nTPL3tYPc48DRAokC+X94xI2KDYJbFMsBFMF3NQ0CJKY7uB0ylu1bUJPiYYf7ISf5OYt6/wNr/y +7hienDtSxUcZXXTzZGbVXcdotL8bHAajvI9AI7YexoS9UcQbOcGV0insS657Lb85/bRi3pZ7Qcac +oOAGcvvwB5cJOYF0r/c0WRFXCsJbwST0MXMwgsadugL3PnxEX4MN8/HdIGkWCVDi1FW24IBydm5M +R7d1VVm0U3TZlMZBrViKMWYPHqIbKUBOL9975hYsLfy/7PO0+r4Y9ptJ1O4Fbtk085zx7AGL0SDG +D6C1vBdOSHtRwvzpXGk3R2azaPgVKPC506QVzFpPulJwoxJF3ca6TvvC0PeoUidtbnm1jPx7jMEW +TO6Af77wdr5BUxIzrlo4QqvXDz5BjXYHMtWrifZOZ9mxQnUjbvPNQrL8VfVThxc7wDNY8VLS+YCk +8OjwO4s4zKTGkH8PnP2L0aPP2oOnaclQNtVcBdIKQXTbYxE3waWglksejBYSd66UNHsef8JmAOSq +g+qKkK3ONkRN0VHpvB/zagX9wHQfJRlAUW7qglFA35u5CCoGAtUjHBPW6dvbxrB6y3snm/vg1UYk +7RBLY0ulBY+6uB0rpvqR4pJSvezrZ5dtmi2fgTIFZzL7SAg/2SW4BCUvAgMBAAGjYzBhMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU+y437uOEeicuzRk1sTN8/9REQrkwHQYDVR0OBBYEFPsu +N+7jhHonLs0ZNbEzfP/UREK5MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAjYlt +hEUY8U+zoO9opMAdrDC8Z2awms22qyIZZtM7QbUQnRC6cm4pJCAcAZli05bg4vsMQtfhWsSWTVTN +j8pDU/0quOr4ZcoBwq1gaAafORpR2eCNJvkLTqVTJXojpBzOCBvfR4iyrT7gJ4eLSYwfqUdYe5by +iB0YrrPRpgqU+tvT5TgKa3kSM/tKWTcWQA673vWJDPFs0/dRa1419dvAJuoSc06pkZCmF8NsLzjU +o3KUQyxi4U5cMj29TH0ZR6LDSeeWP4+a0zvkEdiLA9z2tmBVGKaBUfPhqBVq6+AL8BQx1rmMRTqo +ENjwuSfr98t67wVylrXEj5ZzxOhWc5y8aVFjvO9nHEMaX3cZHxj4HCUp+UmZKbaSPaKDN7Egkaib +MOlqbLQjk2UEqxHzDh1TJElTHaE/nUiSEeJ9DU/1172iWD54nR4fK/4huxoTtrEoZP2wAgDHbICi +vRZQIA9ygV/MlP+7mea6kMvq+cYMwq7FGc4zoWtcu358NFcXrfA/rs3qr5nsLFR+jM4uElZI7xc7 +P0peYNLcdDa8pUNjyw9bowJWCZ4kLOGGgYz+qxcs+sjiMho6/4UIyYOf8kpIEFR3N+2ivEC+5BB0 +9+Rbu7nzifmPQdjH5FCQNYA+HLhNkNPU98OwoX6EyneSMSy4kLGCenROmxMmtNVQZlR4rmA= +-----END CERTIFICATE----- + +SSL.com TLS ECC Root CA 2022 +============================ +-----BEGIN CERTIFICATE----- +MIICOjCCAcCgAwIBAgIQFAP1q/s3ixdAW+JDsqXRxDAKBggqhkjOPQQDAzBOMQswCQYDVQQGEwJV +UzEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMSUwIwYDVQQDDBxTU0wuY29tIFRMUyBFQ0MgUm9v +dCBDQSAyMDIyMB4XDTIyMDgyNTE2MzM0OFoXDTQ2MDgxOTE2MzM0N1owTjELMAkGA1UEBhMCVVMx +GDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcU1NMLmNvbSBUTFMgRUNDIFJvb3Qg +Q0EgMjAyMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABEUpNXP6wrgjzhR9qLFNoFs27iosU8NgCTWy +JGYmacCzldZdkkAZDsalE3D07xJRKF3nzL35PIXBz5SQySvOkkJYWWf9lCcQZIxPBLFNSeR7T5v1 +5wj4A4j3p8OSSxlUgaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSJjy+j6CugFFR7 +81a4Jl9nOAuc0DAdBgNVHQ4EFgQUiY8vo+groBRUe/NWuCZfZzgLnNAwDgYDVR0PAQH/BAQDAgGG +MAoGCCqGSM49BAMDA2gAMGUCMFXjIlbp15IkWE8elDIPDAI2wv2sdDJO4fscgIijzPvX6yv/N33w +7deedWo1dlJF4AIxAMeNb0Igj762TVntd00pxCAgRWSGOlDGxK0tk/UYfXLtqc/ErFc2KAhl3zx5 +Zn6g6g== +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA ECC TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIICFTCCAZugAwIBAgIQPZg7pmY9kGP3fiZXOATvADAKBggqhkjOPQQDAzBMMS4wLAYDVQQDDCVB +dG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgRUNDIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQswCQYD +VQQGEwJERTAeFw0yMTA0MjIwOTI2MjNaFw00MTA0MTcwOTI2MjJaMEwxLjAsBgNVBAMMJUF0b3Mg +VHJ1c3RlZFJvb3QgUm9vdCBDQSBFQ0MgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNVBAYT +AkRFMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEloZYKDcKZ9Cg3iQZGeHkBQcfl+3oZIK59sRxUM6K +DP/XtXa7oWyTbIOiaG6l2b4siJVBzV3dscqDY4PMwL502eCdpO5KTlbgmClBk1IQ1SQ4AjJn8ZQS +b+/Xxd4u/RmAo0IwQDAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR2KCXWfeBmmnoJsmo7jjPX +NtNPojAOBgNVHQ8BAf8EBAMCAYYwCgYIKoZIzj0EAwMDaAAwZQIwW5kp85wxtolrbNa9d+F851F+ +uDrNozZffPc8dz7kUK2o59JZDCaOMDtuCCrCp1rIAjEAmeMM56PDr9NJLkaCI2ZdyQAUEv049OGY +a3cpetskz2VAv9LcjBHo9H1/IISpQuQo +-----END CERTIFICATE----- + +Atos TrustedRoot Root CA RSA TLS 2021 +===================================== +-----BEGIN CERTIFICATE----- +MIIFZDCCA0ygAwIBAgIQU9XP5hmTC/srBRLYwiqipDANBgkqhkiG9w0BAQwFADBMMS4wLAYDVQQD +DCVBdG9zIFRydXN0ZWRSb290IFJvb3QgQ0EgUlNBIFRMUyAyMDIxMQ0wCwYDVQQKDARBdG9zMQsw +CQYDVQQGEwJERTAeFw0yMTA0MjIwOTIxMTBaFw00MTA0MTcwOTIxMDlaMEwxLjAsBgNVBAMMJUF0 +b3MgVHJ1c3RlZFJvb3QgUm9vdCBDQSBSU0EgVExTIDIwMjExDTALBgNVBAoMBEF0b3MxCzAJBgNV +BAYTAkRFMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAtoAOxHm9BYx9sKOdTSJNy/BB +l01Z4NH+VoyX8te9j2y3I49f1cTYQcvyAh5x5en2XssIKl4w8i1mx4QbZFc4nXUtVsYvYe+W/CBG +vevUez8/fEc4BKkbqlLfEzfTFRVOvV98r61jx3ncCHvVoOX3W3WsgFWZkmGbzSoXfduP9LVq6hdK +ZChmFSlsAvFr1bqjM9xaZ6cF4r9lthawEO3NUDPJcFDsGY6wx/J0W2tExn2WuZgIWWbeKQGb9Cpt +0xU6kGpn8bRrZtkh68rZYnxGEFzedUlnnkL5/nWpo63/dgpnQOPF943HhZpZnmKaau1Fh5hnstVK +PNe0OwANwI8f4UDErmwh3El+fsqyjW22v5MvoVw+j8rtgI5Y4dtXz4U2OLJxpAmMkokIiEjxQGMY +sluMWuPD0xeqqxmjLBvk1cbiZnrXghmmOxYsL3GHX0WelXOTwkKBIROW1527k2gV+p2kHYzygeBY +Br3JtuP2iV2J+axEoctr+hbxx1A9JNr3w+SH1VbxT5Aw+kUJWdo0zuATHAR8ANSbhqRAvNncTFd+ +rrcztl524WWLZt+NyteYr842mIycg5kDcPOvdO3GDjbnvezBc6eUWsuSZIKmAMFwoW4sKeFYV+xa +fJlrJaSQOoD0IJ2azsct+bJLKZWD6TWNp0lIpw9MGZHQ9b8Q4HECAwEAAaNCMEAwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUdEmZ0f+0emhFdcN+tNzMzjkz2ggwDgYDVR0PAQH/BAQDAgGGMA0G +CSqGSIb3DQEBDAUAA4ICAQAjQ1MkYlxt/T7Cz1UAbMVWiLkO3TriJQ2VSpfKgInuKs1l+NsW4AmS +4BjHeJi78+xCUvuppILXTdiK/ORO/auQxDh1MoSf/7OwKwIzNsAQkG8dnK/haZPso0UvFJ/1TCpl +Q3IM98P4lYsU84UgYt1UU90s3BiVaU+DR3BAM1h3Egyi61IxHkzJqM7F78PRreBrAwA0JrRUITWX +AdxfG/F851X6LWh3e9NpzNMOa7pNdkTWwhWaJuywxfW70Xp0wmzNxbVe9kzmWy2B27O3Opee7c9G +slA9hGCZcbUztVdF5kJHdWoOsAgMrr3e97sPWD2PAzHoPYJQyi9eDF20l74gNAf0xBLh7tew2Vkt +afcxBPTy+av5EzH4AXcOPUIjJsyacmdRIXrMPIWo6iFqO9taPKU0nprALN+AnCng33eU0aKAQv9q +TFsR0PXNor6uzFFcw9VUewyu1rkGd4Di7wcaaMxZUa1+XGdrudviB0JbuAEFWDlN5LuYo7Ey7Nmj +1m+UI/87tyll5gfp77YZ6ufCOB0yiJA8EytuzO+rdwY0d4RPcuSBhPm5dDTedk+SKlOxJTnbPP/l +PqYO5Wue/9vsL3SD3460s6neFE3/MaNFcyT6lSnMEpcEoji2jbDwN/zIIX8/syQbPYtuzE2wFg2W +HYMfRsCbvUOZ58SWLs5fyQ== +-----END CERTIFICATE----- + +TrustAsia Global Root CA G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIFpTCCA42gAwIBAgIUZPYOZXdhaqs7tOqFhLuxibhxkw8wDQYJKoZIhvcNAQEMBQAwWjELMAkG +A1UEBhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMM +G1RydXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHMzAeFw0yMTA1MjAwMjEwMTlaFw00NjA1MTkwMjEw +MTlaMFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMu +MSQwIgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzMwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQDAMYJhkuSUGwoqZdC+BqmHO1ES6nBBruL7dOoKjbmzTNyPtxNST1QY4Sxz +lZHFZjtqz6xjbYdT8PfxObegQ2OwxANdV6nnRM7EoYNl9lA+sX4WuDqKAtCWHwDNBSHvBm3dIZwZ +Q0WhxeiAysKtQGIXBsaqvPPW5vxQfmZCHzyLpnl5hkA1nyDvP+uLRx+PjsXUjrYsyUQE49RDdT/V +P68czH5GX6zfZBCK70bwkPAPLfSIC7Epqq+FqklYqL9joDiR5rPmd2jE+SoZhLsO4fWvieylL1Ag +dB4SQXMeJNnKziyhWTXAyB1GJ2Faj/lN03J5Zh6fFZAhLf3ti1ZwA0pJPn9pMRJpxx5cynoTi+jm +9WAPzJMshH/x/Gr8m0ed262IPfN2dTPXS6TIi/n1Q1hPy8gDVI+lhXgEGvNz8teHHUGf59gXzhqc +D0r83ERoVGjiQTz+LISGNzzNPy+i2+f3VANfWdP3kXjHi3dqFuVJhZBFcnAvkV34PmVACxmZySYg +WmjBNb9Pp1Hx2BErW+Canig7CjoKH8GB5S7wprlppYiU5msTf9FkPz2ccEblooV7WIQn3MSAPmea +mseaMQ4w7OYXQJXZRe0Blqq/DPNL0WP3E1jAuPP6Z92bfW1K/zJMtSU7/xxnD4UiWQWRkUF3gdCF +TIcQcf+eQxuulXUtgQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEDk5PIj +7zjKsK5Xf/IhMBY027ySMB0GA1UdDgQWBBRA5OTyI+84yrCuV3/yITAWNNu8kjAOBgNVHQ8BAf8E +BAMCAQYwDQYJKoZIhvcNAQEMBQADggIBACY7UeFNOPMyGLS0XuFlXsSUT9SnYaP4wM8zAQLpw6o1 +D/GUE3d3NZ4tVlFEbuHGLige/9rsR82XRBf34EzC4Xx8MnpmyFq2XFNFV1pF1AWZLy4jVe5jaN/T +G3inEpQGAHUNcoTpLrxaatXeL1nHo+zSh2bbt1S1JKv0Q3jbSwTEb93mPmY+KfJLaHEih6D4sTNj +duMNhXJEIlU/HHzp/LgV6FL6qj6jITk1dImmasI5+njPtqzn59ZW/yOSLlALqbUHM/Q4X6RJpstl +cHboCoWASzY9M/eVVHUl2qzEc4Jl6VL1XP04lQJqaTDFHApXB64ipCz5xUG3uOyfT0gA+QEEVcys ++TIxxHWVBqB/0Y0n3bOppHKH/lmLmnp0Ft0WpWIp6zqW3IunaFnT63eROfjXy9mPX1onAX1daBli +2MjN9LdyR75bl87yraKZk62Uy5P2EgmVtqvXO9A/EcswFi55gORngS1d7XB4tmBZrOFdRWOPyN9y +aFvqHbgB8X7754qz41SgOAngPN5C8sLtLpvzHzW2NtjjgKGLzZlkD8Kqq7HK9W+eQ42EVJmzbsAS +ZthwEPEGNTNDqJwuuhQxzhB/HIbjj9LV+Hfsm6vxL2PZQl/gZ4FkkfGXL/xuJvYz+NO1+MRiqzFR +JQJ6+N1rZdVtTTDIZbpoFGWsJwt0ivKH +-----END CERTIFICATE----- + +TrustAsia Global Root CA G4 +=========================== +-----BEGIN CERTIFICATE----- +MIICVTCCAdygAwIBAgIUTyNkuI6XY57GU4HBdk7LKnQV1tcwCgYIKoZIzj0EAwMwWjELMAkGA1UE +BhMCQ04xJTAjBgNVBAoMHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xJDAiBgNVBAMMG1Ry +dXN0QXNpYSBHbG9iYWwgUm9vdCBDQSBHNDAeFw0yMTA1MjAwMjEwMjJaFw00NjA1MTkwMjEwMjJa +MFoxCzAJBgNVBAYTAkNOMSUwIwYDVQQKDBxUcnVzdEFzaWEgVGVjaG5vbG9naWVzLCBJbmMuMSQw +IgYDVQQDDBtUcnVzdEFzaWEgR2xvYmFsIFJvb3QgQ0EgRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNi +AATxs8045CVD5d4ZCbuBeaIVXxVjAd7Cq92zphtnS4CDr5nLrBfbK5bKfFJV4hrhPVbwLxYI+hW8 +m7tH5j/uqOFMjPXTNvk4XatwmkcN4oFBButJ+bAp3TPsUKV/eSm4IJijYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAUpbtKl86zK3+kMd6Xg1mDpm9xy94wHQYDVR0OBBYEFKW7SpfOsyt/ +pDHel4NZg6ZvccveMA4GA1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjBe8usGzEkxn0AA +bbd+NvBNEU/zy4k6LHiRUKNbwMp1JvK/kF0LgoxgKJ/GcJpo5PECMFxYDlZ2z1jD1xCMuo6u47xk +dUfFVZDj/bpV6wfEU6s3qe4hsiFbYI89MvHVI5TWWA== +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIICHTCCAaOgAwIBAgIUQ3CCd89NXTTxyq4yLzf39H91oJ4wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMTAeFw0yMTA0MjgxNzM1NDNaFw00NjA0MjgxNzM1NDJaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARLNumuV16ocNfQj3Rid8NeeqrltqLx +eP0CflfdkXmcbLlSiFS8LwS+uM32ENEp7LXQoMPwiXAZu1FlxUOcw5tjnSCDPgYLpkJEhRGnSjot +6dZoL0hOUysHP029uax3OVejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBSOB2LAUN3GGQYARnQE9/OufXVNMDAKBggqhkjOPQQDAwNoADBlAjEAnDPfQeMjqEI2 +Jpc1XHvr20v4qotzVRVcrHgpD7oh2MSg2NED3W3ROT3Ek2DS43KyAjB8xX6I01D1HiXo+k515liW +pDVfG2XqYZpwI7UNo5uSUm9poIyNStDuiw7LR47QjRE= +-----END CERTIFICATE----- + +CommScope Public Trust ECC Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIICHDCCAaOgAwIBAgIUKP2ZYEFHpgE6yhR7H+/5aAiDXX0wCgYIKoZIzj0EAwMwTjELMAkGA1UE +BhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBUcnVz +dCBFQ0MgUm9vdC0wMjAeFw0yMTA0MjgxNzQ0NTRaFw00NjA0MjgxNzQ0NTNaME4xCzAJBgNVBAYT +AlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1c3Qg +RUNDIFJvb3QtMDIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR4MIHoYx7l63FRD/cHB8o5mXxO1Q/M +MDALj2aTPs+9xYa9+bG3tD60B8jzljHz7aRP+KNOjSkVWLjVb3/ubCK1sK9IRQq9qEmUv4RDsNuE +SgMjGWdqb8FuvAY5N9GIIvejQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTmGHX/72DehKT1RsfeSlXjMjZ59TAKBggqhkjOPQQDAwNnADBkAjAmc0l6tqvmSfR9 +Uj/UQQSugEODZXW5hYA4O9Zv5JOGq4/nich/m35rChJVYaoR4HkCMHfoMXGsPHED1oQmHhS48zs7 +3u1Z/GtMMH9ZzkXpc2AVmkzw5l4lIhVtwodZ0LKOag== +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-01 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUPgNJgXUWdDGOTKvVxZAplsU5EN0wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMTAeFw0yMTA0MjgxNjQ1NTRaFw00NjA0MjgxNjQ1NTNaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwSGWjDR1C45Ft +nYSkYZYSwu3D2iM0GXb26v1VWvZVAVMP8syMl0+5UMuzAURWlv2bKOx7dAvnQmtVzslhsuitQDy6 +uUEKBU8bJoWPQ7VAtYXR1HHcg0Hz9kXHgKKEUJdGzqAMxGBWBB0HW0alDrJLpA6lfO741GIDuZNq +ihS4cPgugkY4Iw50x2tBt9Apo52AsH53k2NC+zSDO3OjWiE260f6GBfZumbCk6SP/F2krfxQapWs +vCQz0b2If4b19bJzKo98rwjyGpg/qYFlP8GMicWWMJoKz/TUyDTtnS+8jTiGU+6Xn6myY5QXjQ/c +Zip8UlF1y5mO6D1cv547KI2DAg+pn3LiLCuz3GaXAEDQpFSOm117RTYm1nJD68/A6g3czhLmfTif +BSeolz7pUcZsBSjBAg/pGG3svZwG1KdJ9FQFa2ww8esD1eo9anbCyxooSU1/ZOD6K9pzg4H/kQO9 +lLvkuI6cMmPNn7togbGEW682v3fuHX/3SZtS7NJ3Wn2RnU3COS3kuoL4b/JOHg9O5j9ZpSPcPYeo +KFgo0fEbNttPxP/hjFtyjMcmAyejOQoBqsCyMWCDIqFPEgkBEa801M/XrmLTBQe0MXXgDW1XT2mH ++VepuhX2yFJtocucH+X8eKg1mp9BFM6ltM6UCBwJrVbl2rZJmkrqYxhTnCwuwwIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUN12mmnQywsL5x6YVEFm4 +5P3luG0wDQYJKoZIhvcNAQELBQADggIBAK+nz97/4L1CjU3lIpbfaOp9TSp90K09FlxD533Ahuh6 +NWPxzIHIxgvoLlI1pKZJkGNRrDSsBTtXAOnTYtPZKdVUvhwQkZyybf5Z/Xn36lbQnmhUQo8mUuJM +3y+Xpi/SB5io82BdS5pYV4jvguX6r2yBS5KPQJqTRlnLX3gWsWc+QgvfKNmwrZggvkN80V4aCRck +jXtdlemrwWCrWxhkgPut4AZ9HcpZuPN4KWfGVh2vtrV0KnahP/t1MJ+UXjulYPPLXAziDslg+Mkf +Foom3ecnf+slpoq9uC02EJqxWE2aaE9gVOX2RhOOiKy8IUISrcZKiX2bwdgt6ZYD9KJ0DLwAHb/W +NyVntHKLr4W96ioDj8z7PEQkguIBpQtZtjSNMgsSDesnwv1B10A8ckYpwIzqug/xBpMu95yo9GA+ +o/E4Xo4TwbM6l4c/ksp4qRyv0LAbJh6+cOx69TOY6lz/KwsETkPdY34Op054A5U+1C0wlREQKC6/ +oAI+/15Z0wUOlV9TRe9rh9VIzRamloPh37MG88EU26fsHItdkJANclHnYfkUyq+Dj7+vsQpZXdxc +1+SWrVtgHdqul7I52Qb1dgAT+GhMIbA1xNxVssnBQVocicCMb3SgazNNtQEo/a2tiRc7ppqEvOuM +6sRxJKi6KfkIsidWNTJf6jn7MZrVGczw +-----END CERTIFICATE----- + +CommScope Public Trust RSA Root-02 +================================== +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIUVBa/O345lXGN0aoApYYNK496BU4wDQYJKoZIhvcNAQELBQAwTjELMAkG +A1UEBhMCVVMxEjAQBgNVBAoMCUNvbW1TY29wZTErMCkGA1UEAwwiQ29tbVNjb3BlIFB1YmxpYyBU +cnVzdCBSU0EgUm9vdC0wMjAeFw0yMTA0MjgxNzE2NDNaFw00NjA0MjgxNzE2NDJaME4xCzAJBgNV +BAYTAlVTMRIwEAYDVQQKDAlDb21tU2NvcGUxKzApBgNVBAMMIkNvbW1TY29wZSBQdWJsaWMgVHJ1 +c3QgUlNBIFJvb3QtMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh+g77aAASyE3V +rCLENQE7xVTlWXZjpX/rwcRqmL0yjReA61260WI9JSMZNRTpf4mnG2I81lDnNJUDMrG0kyI9p+Kx +7eZ7Ti6Hmw0zdQreqjXnfuU2mKKuJZ6VszKWpCtYHu8//mI0SFHRtI1CrWDaSWqVcN3SAOLMV2MC +e5bdSZdbkk6V0/nLKR8YSvgBKtJjCW4k6YnS5cciTNxzhkcAqg2Ijq6FfUrpuzNPDlJwnZXjfG2W +Wy09X6GDRl224yW4fKcZgBzqZUPckXk2LHR88mcGyYnJ27/aaL8j7dxrrSiDeS/sOKUNNwFnJ5rp +M9kzXzehxfCrPfp4sOcsn/Y+n2Dg70jpkEUeBVF4GiwSLFworA2iI540jwXmojPOEXcT1A6kHkIf +hs1w/tkuFT0du7jyU1fbzMZ0KZwYszZ1OC4PVKH4kh+Jlk+71O6d6Ts2QrUKOyrUZHk2EOH5kQMr +eyBUzQ0ZGshBMjTRsJnhkB4BQDa1t/qp5Xd1pCKBXbCL5CcSD1SIxtuFdOa3wNemKfrb3vOTlycE +VS8KbzfFPROvCgCpLIscgSjX74Yxqa7ybrjKaixUR9gqiC6vwQcQeKwRoi9C8DfF8rhW3Q5iLc4t +Vn5V8qdE9isy9COoR+jUKgF4z2rDN6ieZdIs5fq6M8EGRPbmz6UNp2YINIos8wIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUR9DnsSL/nSz12Vdgs7Gx +cJXvYXowDQYJKoZIhvcNAQELBQADggIBAIZpsU0v6Z9PIpNojuQhmaPORVMbc0RTAIFhzTHjCLqB +KCh6krm2qMhDnscTJk3C2OVVnJJdUNjCK9v+5qiXz1I6JMNlZFxHMaNlNRPDk7n3+VGXu6TwYofF +1gbTl4MgqX67tiHCpQ2EAOHyJxCDut0DgdXdaMNmEMjRdrSzbymeAPnCKfWxkxlSaRosTKCL4BWa +MS/TiJVZbuXEs1DIFAhKm4sTg7GkcrI7djNB3NyqpgdvHSQSn8h2vS/ZjvQs7rfSOBAkNlEv41xd +gSGn2rtO/+YHqP65DSdsu3BaVXoT6fEqSWnHX4dXTEN5bTpl6TBcQe7rd6VzEojov32u5cSoHw2O +HG1QAk8mGEPej1WFsQs3BWDJVTkSBKEqz3EWnzZRSb9wO55nnPt7eck5HHisd5FUmrh1CoFSl+Nm +YWvtPjgelmFV4ZFUjO2MJB+ByRCac5krFk5yAD9UG/iNuovnFNa2RU9g7Jauwy8CTl2dlklyALKr +dVwPaFsdZcJfMw8eD/A7hvWwTruc9+olBdytoptLFwG+Qt81IR2tq670v64fG9PiO/yzcnMcmyiQ +iRM9HcEARwmWmjgb3bHPDcK0RPOWlc4yOo80nOAXx17Org3bhzjlP1v9mxnhMUF6cKojawHhRUzN +lM47ni3niAIi9G7oyOzWPPO5std3eqx7 +-----END CERTIFICATE----- + +Telekom Security TLS ECC Root 2020 +================================== +-----BEGIN CERTIFICATE----- +MIICQjCCAcmgAwIBAgIQNjqWjMlcsljN0AFdxeVXADAKBggqhkjOPQQDAzBjMQswCQYDVQQGEwJE +RTEnMCUGA1UECgweRGV1dHNjaGUgVGVsZWtvbSBTZWN1cml0eSBHbWJIMSswKQYDVQQDDCJUZWxl +a29tIFNlY3VyaXR5IFRMUyBFQ0MgUm9vdCAyMDIwMB4XDTIwMDgyNTA3NDgyMFoXDTQ1MDgyNTIz +NTk1OVowYzELMAkGA1UEBhMCREUxJzAlBgNVBAoMHkRldXRzY2hlIFRlbGVrb20gU2VjdXJpdHkg +R21iSDErMCkGA1UEAwwiVGVsZWtvbSBTZWN1cml0eSBUTFMgRUNDIFJvb3QgMjAyMDB2MBAGByqG +SM49AgEGBSuBBAAiA2IABM6//leov9Wq9xCazbzREaK9Z0LMkOsVGJDZos0MKiXrPk/OtdKPD/M1 +2kOLAoC+b1EkHQ9rK8qfwm9QMuU3ILYg/4gND21Ju9sGpIeQkpT0CdDPf8iAC8GXs7s1J8nCG6NC +MEAwHQYDVR0OBBYEFONyzG6VmUex5rNhTNHLq+O6zd6fMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMHVSi7ekEE+uShCLsoRbQuHmKjYC2qBuGT8lv9pZ +Mo7k+5Dck2TOrbRBR2Diz6fLHgIwN0GMZt9Ba9aDAEH9L1r3ULRn0SyocddDypwnJJGDSA3PzfdU +ga/sf+Rn27iQ7t0l +-----END CERTIFICATE----- + +Telekom Security TLS RSA Root 2023 +================================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +FIRMAPROFESIONAL CA ROOT-A WEB +============================== +-----BEGIN CERTIFICATE----- +MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJF +UzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4 +MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENBIFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2 +WhcNNDcwMzMxMDkwMTM2WjBuMQswCQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25h +bCBTQTEYMBYGA1UEYQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFM +IENBIFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zfe9MEkVz6 +iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6CcyvHZpsKjECcfIr28jlg +st7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FD +Y1w8ndYn81LsF7Kpryz3dvgwHQYDVR0OBBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB +/wQEAwIBBjAKBggqhkjOPQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgL +cFBTApFwhVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dGXSaQ +pYXFuXqUPoeovQA= +-----END CERTIFICATE----- + +TWCA CYBER Root CA +================== +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQG +EwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NB +IENZQkVSIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1s +Ts6P40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxFavcokPFh +V8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/34bKS1PE2Y2yHer43CdT +o0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684iJkXXYJndzk834H/nY62wuFm40AZoNWDT +Nq5xQwTxaWV4fPMf88oon1oglWa0zbfuj3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK +/c/WMw+f+5eesRycnupfXtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkH +IuNZW0CP2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDAS9TM +fAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDAoS/xUgXJP+92ZuJF +2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzCkHDXShi8fgGwsOsVHkQGzaRP6AzR +wyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83 +QOGt4A1WNzAdBgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB +AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0ttGlTITVX1olN +c79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn68xDiBaiA9a5F/gZbG0jAn/x +X9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNnTKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDR +IG4kqIQnoVesqlVYL9zZyvpoBJ7tRCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq +/p1hvIbZv97Tujqxf36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0R +FxbIQh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz8ppy6rBe +Pm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4NxKfKjLji7gh7MMrZQzv +It6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzXxeSDwWrruoBa3lwtcHb4yOWHh8qgnaHl +IhInD0Q9HWzq1MKLL295q39QpsQZp6F6t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X +-----END CERTIFICATE----- + +SecureSign Root CA12 +==================== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgwNTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3 +emhFKxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mtp7JIKwcc +J/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zdJ1M3s6oYwlkm7Fsf0uZl +fO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gurFzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBF +EaCeVESE99g2zvVQR9wsMJvuwPWW0v4JhscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1Uef +NzFJM3IFTQy2VYzxV4+Kh9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsFAAOC +AQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6LdmmQOmFxv3Y67ilQi +LUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJmBClnW8Zt7vPemVV2zfrPIpyMpce +mik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPS +vWKErI4cqc1avTc7bgoitPQV55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhga +aaI5gdka9at/yOPiZwud9AzqVN/Ssq+xIvEg37xEHA== +-----END CERTIFICATE----- + +SecureSign Root CA14 +==================== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEMBQAwUTELMAkG +A1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRT +ZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgwNzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJ +BgNVBAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMU +U2VjdXJlU2lnbiBSb290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh +1oq/FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOgvlIfX8xn +bacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy6pJxaeQp8E+BgQQ8sqVb +1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa +/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9JkdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOE +kJTRX45zGRBdAuVwpcAQ0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSx +jVIHvXiby8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac18iz +ju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs0Wq2XSqypWa9a4X0 +dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIABSMbHdPTGrMNASRZhdCyvjG817XsY +AFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVLApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeq +YR3r6/wtbyPk86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E +rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ibed87hwriZLoA +ymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopTzfFP7ELyk+OZpDc8h7hi2/Ds +Hzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHSDCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPG +FrojutzdfhrGe0K22VoF3Jpf1d+42kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6q +nsb58Nn4DSEC5MUoFlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/ +OfVyK4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6dB7h7sxa +OgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtlLor6CZpO2oYofaphNdgO +pygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB365jJ6UeTo3cKXhZ+PmhIIynJkBugnLN +eLLIjzwec+fBH7/PzqUqm9tEZDKgu39cJRNItX+S +-----END CERTIFICATE----- + +SecureSign Root CA15 +==================== +-----BEGIN CERTIFICATE----- +MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMwUTELMAkGA1UE +BhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBMdGQuMR0wGwYDVQQDExRTZWN1 +cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMyNTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNV +BAYTAkpQMSMwIQYDVQQKExpDeWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2Vj +dXJlU2lnbiBSb290IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5G +dCx4wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSRZHX+AezB +2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT9DAKBggqhkjOPQQDAwNoADBlAjEA2S6J +fl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJ +SwdLZrWeqrqgHkHZAXQ6bkU6iYAZezKYVWOr62Nuk22rGwlgMU4= +-----END CERTIFICATE----- + +D-TRUST BR Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEJSIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUwOTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCT +cfKri3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNEgXtRr90z +sWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8k12b9py0i4a6Ibn08OhZ +WiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCTRphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6 +++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LUL +QyReS2tNZ9/WtT5PeB+UcSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIv +x9gvdhFP/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bSuREV +MweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+0bpwHJwh5Q8xaRfX +/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4NDfTisl01gLmB1IRpkQLLddCNxbU9 +CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUZ5Dw1t61GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tIFoE9c+CeJyrr +d6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67nriv6uvw8l5VAk1/DLQOj7aRv +U9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTRVFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4 +nj8+AybmTNudX0KEPUUDAxxZiMrcLmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdij +YQ6qgYF/6FKC0ULn4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff +/vtDhQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsGkoHU6XCP +pz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46ls/pdu4D58JDUjxqgejB +WoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aSEcr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/ +5usWDiJFAbzdNpQ0qTUmiteXue4Icr80knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jt +n/mtd+ArY0+ew+43u3gJhJ65bvspmZDogNOfJA== +-----END CERTIFICATE----- + +TrustAsia TLS ECC Root CA +========================= +-----BEGIN CERTIFICATE----- +MIICMTCCAbegAwIBAgIUNnThTXxlE8msg1UloD5Sfi9QaMcwCgYIKoZIzj0EAwMwWDELMAkGA1UE +BhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xIjAgBgNVBAMTGVRy +dXN0QXNpYSBUTFMgRUNDIFJvb3QgQ0EwHhcNMjQwNTE1MDU0MTU2WhcNNDQwNTE1MDU0MTU1WjBY +MQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEiMCAG +A1UEAxMZVHJ1c3RBc2lhIFRMUyBFQ0MgUm9vdCBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABLh/ +pVs/AT598IhtrimY4ZtcU5nb9wj/1WrgjstEpvDBjL1P1M7UiFPoXlfXTr4sP/MSpwDpguMqWzJ8 +S5sUKZ74LYO1644xST0mYekdcouJtgq7nDM1D9rs3qlKH8kzsaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQULIVTu7FDzTLqnqOH/qKYqKaT6RAwDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49 +BAMDA2gAMGUCMFRH18MtYYZI9HlaVQ01L18N9mdsd0AaRuf4aFtOJx24mH1/k78ITcTaRTChD15K +eAIxAKORh/IRM4PDwYqROkwrULG9IpRdNYlzg8WbGf60oenUoWa2AaU2+dhoYSi3dOGiMQ== +-----END CERTIFICATE----- + +TrustAsia TLS RSA Root CA +========================= +-----BEGIN CERTIFICATE----- +MIIFgDCCA2igAwIBAgIUHBjYz+VTPyI1RlNUJDxsR9FcSpwwDQYJKoZIhvcNAQEMBQAwWDELMAkG +A1UEBhMCQ04xJTAjBgNVBAoTHFRydXN0QXNpYSBUZWNobm9sb2dpZXMsIEluYy4xIjAgBgNVBAMT +GVRydXN0QXNpYSBUTFMgUlNBIFJvb3QgQ0EwHhcNMjQwNTE1MDU0MTU3WhcNNDQwNTE1MDU0MTU2 +WjBYMQswCQYDVQQGEwJDTjElMCMGA1UEChMcVHJ1c3RBc2lhIFRlY2hub2xvZ2llcywgSW5jLjEi +MCAGA1UEAxMZVHJ1c3RBc2lhIFRMUyBSU0EgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAMMWuBtqpERz5dZO9LnPWwvB0ZqB9WOwj0PBuwhaGnrhB3YmH49pVr7+NmDQDIPN +lOrnxS1cLwUWAp4KqC/lYCZUlviYQB2srp10Zy9U+5RjmOMmSoPGlbYJQ1DNDX3eRA5gEk9bNb2/ +mThtfWza4mhzH/kxpRkQcwUqwzIZheo0qt1CHjCNP561HmHVb70AcnKtEj+qpklz8oYVlQwQX1Fk +zv93uMltrOXVmPGZLmzjyUT5tUMnCE32ft5EebuyjBza00tsLtbDeLdM1aTk2tyKjg7/D8OmYCYo +zza/+lcK7Fs/6TAWe8TbxNRkoDD75f0dcZLdKY9BWN4ArTr9PXwaqLEX8E40eFgl1oUh63kd0Nyr +z2I8sMeXi9bQn9P+PN7F4/w6g3CEIR0JwqH8uyghZVNgepBtljhb//HXeltt08lwSUq6HTrQUNoy +IBnkiz/r1RYmNzz7dZ6wB3C4FGB33PYPXFIKvF1tjVEK2sUYyJtt3LCDs3+jTnhMmCWr8n4uIF6C +FabW2I+s5c0yhsj55NqJ4js+k8UTav/H9xj8Z7XvGCxUq0DTbE3txci3OE9kxJRMT6DNrqXGJyV1 +J23G2pyOsAWZ1SgRxSHUuPzHlqtKZFlhaxP8S8ySpg+kUb8OWJDZgoM5pl+z+m6Ss80zDoWo8SnT +q1mt1tve1CuBAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFLgHkXlcBvRG/XtZ +ylomkadFK/hTMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQwFAAOCAgEAIZtqBSBdGBanEqT3 +Rz/NyjuujsCCztxIJXgXbODgcMTWltnZ9r96nBO7U5WS/8+S4PPFJzVXqDuiGev4iqME3mmL5Dw8 +veWv0BIb5Ylrc5tvJQJLkIKvQMKtuppgJFqBTQUYo+IzeXoLH5Pt7DlK9RME7I10nYEKqG/odv6L +TytpEoYKNDbdgptvT+Bz3Ul/KD7JO6NXBNiT2Twp2xIQaOHEibgGIOcberyxk2GaGUARtWqFVwHx +tlotJnMnlvm5P1vQiJ3koP26TpUJg3933FEFlJ0gcXax7PqJtZwuhfG5WyRasQmr2soaB82G39tp +27RIGAAtvKLEiUUjpQ7hRGU+isFqMB3iYPg6qocJQrmBktwliJiJ8Xw18WLK7nn4GS/+X/jbh87q +qA8MpugLoDzga5SYnH+tBuYc6kIQX+ImFTw3OffXvO645e8D7r0i+yiGNFjEWn9hongPXvPKnbwb +PKfILfanIhHKA9jnZwqKDss1jjQ52MjqjZ9k4DewbNfFj8GQYSbbJIweSsCI3zWQzj8C9GRh3sfI +B5XeMhg6j6JCQCTl1jNdfK7vsU1P1FeQNWrcrgSXSYk0ly4wBOeY99sLAZDBHwo/+ML+TvrbmnNz +FrwFuHnYWa8G5z9nODmxfKuU4CkUpijy323imttUQ/hHWKNddBWcwauwxzQ= +-----END CERTIFICATE----- + +D-TRUST EV Root CA 2 2023 +========================= +-----BEGIN CERTIFICATE----- +MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBIMQswCQYDVQQG +EwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlELVRSVVNUIEVWIFJvb3QgQ0Eg +MiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUwOTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTAT +BgNVBAoTDEQtVHJ1c3QgR21iSDEiMCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCC +AiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1 +sJkKF8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE7CUXFId/ +MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFeEMbsh2aJgWi6zCudR3Mf +vc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6lHPTGGkKSv/BAQP/eX+1SH977ugpbzZM +lWGG2Pmic4ruri+W7mjNPU0oQvlFKzIbRlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3 +YG14C8qKXO0elg6DpkiVjTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq910 +7PncjLgcjmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZxTnXo +nMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+ARZZaBhDM7DS3LAa +QzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nkhbDhezGdpn9yo7nELC7MmVcOIQxF +AZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knFNXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUqvyREBuHkV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRC +MEAwPqA8oDqGOGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y +XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14QvBukEdHjqOS +Mo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4pZt+UPJ26oUFKidBK7GB0aL2 +QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xD +UmPBEcrCRbH0O1P1aa4846XerOhUt7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V +4U/M5d40VxDJI3IXcI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuo +dNv8ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT2vFp4LJi +TZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs7dpn1mKmS00PaaLJvOwi +S5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNPgofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/ +HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAstNl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L ++KIkBI3Y4WNeApI02phhXBxvWHZks/wCuPWdCg== +-----END CERTIFICATE----- + +SwissSign RSA TLS Root CA 2022 - 1 +================================== +-----BEGIN CERTIFICATE----- +MIIFkzCCA3ugAwIBAgIUQ/oMX04bgBhE79G0TzUfRPSA7cswDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzErMCkGA1UEAxMiU3dpc3NTaWduIFJTQSBU +TFMgUm9vdCBDQSAyMDIyIC0gMTAeFw0yMjA2MDgxMTA4MjJaFw00NzA2MDgxMTA4MjJaMFExCzAJ +BgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxKzApBgNVBAMTIlN3aXNzU2lnbiBSU0Eg +VExTIFJvb3QgQ0EgMjAyMiAtIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDLKmji +C8NXvDVjvHClO/OMPE5Xlm7DTjak9gLKHqquuN6orx122ro10JFwB9+zBvKK8i5VUXu7LCTLf5Im +gKO0lPaCoaTo+nUdWfMHamFk4saMla+ju45vVs9xzF6BYQ1t8qsCLqSX5XH8irCRIFucdFJtrhUn +WXjyCcplDn/L9Ovn3KlMd/YrFgSVrpxxpT8q2kFC5zyEEPThPYxr4iuRR1VPuFa+Rd4iUU1OKNlf +GUEGjw5NBuBwQCMBauTLE5tzrE0USJIt/m2n+IdreXXhvhCxqohAWVTXz8TQm0SzOGlkjIHRI36q +OTw7D59Ke4LKa2/KIj4x0LDQKhySio/YGZxH5D4MucLNvkEM+KRHBdvBFzA4OmnczcNpI/2aDwLO +EGrOyvi5KaM2iYauC8BPY7kGWUleDsFpswrzd34unYyzJ5jSmY0lpx+Gs6ZUcDj8fV3oT4MM0ZPl +EuRU2j7yrTrePjxF8CgPBrnh25d7mUWe3f6VWQQvdT/TromZhqwUtKiE+shdOxtYk8EXlFXIC+OC +eYSf8wCENO7cMdWP8vpPlkwGqnj73mSiI80fPsWMvDdUDrtaclXvyFu1cvh43zcgTFeRc5JzrBh3 +Q4IgaezprClG5QtO+DdziZaKHG29777YtvTKwP1H8K4LWCDFyB02rpeNUIMmJCn3nTsPBQIDAQAB +o2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBRvjmKLk0Ow +4UD2p8P98Q+4DxU4pTAdBgNVHQ4EFgQUb45ii5NDsOFA9qfD/fEPuA8VOKUwDQYJKoZIhvcNAQEL +BQADggIBAKwsKUF9+lz1GpUYvyypiqkkVHX1uECry6gkUSsYP2OprphWKwVDIqO310aewCoSPY6W +lkDfDDOLazeROpW7OSltwAJsipQLBwJNGD77+3v1dj2b9l4wBlgzHqp41eZUBDqyggmNzhYzWUUo +8aWjlw5DI/0LIICQ/+Mmz7hkkeUFjxOgdg3XNwwQiJb0Pr6VvfHDffCjw3lHC1ySFWPtUnWK50Zp +y1FVCypM9fJkT6lc/2cyjlUtMoIcgC9qkfjLvH4YoiaoLqNTKIftV+Vlek4ASltOU8liNr3Cjlvr +zG4ngRhZi0Rjn9UMZfQpZX+RLOV/fuiJz48gy20HQhFRJjKKLjpHE7iNvUcNCfAWpO2Whi4Z2L6M +OuhFLhG6rlrnub+xzI/goP+4s9GFe3lmozm1O2bYQL7Pt2eLSMkZJVX8vY3PXtpOpvJpzv1/THfQ +wUY1mFwjmwJFQ5Ra3bxHrSL+ul4vkSkphnsh3m5kt8sNjzdbowhq6/TdAo9QAwKxuDdollDruF/U +KIqlIgyKhPBZLtU30WHlQnNYKoH3dtvi4k0NX/a3vgW0rk4N3hY9A4GzJl5LuEsAz/+MF7psYC0n +hzck5npgL7XTgwSqT0N1osGDsieYK7EOgLrAhV5Cud+xYJHT6xh+cHiudoO+cVrQkOPKwRYlZ0rw +tnu64ZzZ +-----END CERTIFICATE----- + +OISTE Server Root ECC G1 +======================== +-----BEGIN CERTIFICATE----- +MIICNTCCAbqgAwIBAgIQI/nD1jWvjyhLH/BU6n6XnTAKBggqhkjOPQQDAzBLMQswCQYDVQQGEwJD +SDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwYT0lTVEUgU2VydmVyIFJvb3Qg +RUNDIEcxMB4XDTIzMDUzMTE0NDIyOFoXDTQ4MDUyNDE0NDIyN1owSzELMAkGA1UEBhMCQ0gxGTAX +BgNVBAoMEE9JU1RFIEZvdW5kYXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IEVDQyBH +MTB2MBAGByqGSM49AgEGBSuBBAAiA2IABBcv+hK8rBjzCvRE1nZCnrPoH7d5qVi2+GXROiFPqOuj +vqQycvO2Ackr/XeFblPdreqqLiWStukhEaivtUwL85Zgmjvn6hp4LrQ95SjeHIC6XG4N2xml4z+c +KrhAS93mT6NjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBQ3TYhlz/w9itWj8UnATgwQ +b0K0nDAdBgNVHQ4EFgQUN02IZc/8PYrVo/FJwE4MEG9CtJwwDgYDVR0PAQH/BAQDAgGGMAoGCCqG +SM49BAMDA2kAMGYCMQCpKjAd0MKfkFFRQD6VVCHNFmb3U2wIFjnQEnx/Yxvf4zgAOdktUyBFCxxg +ZzFDJe0CMQCSia7pXGKDYmH5LVerVrkR3SW+ak5KGoJr3M/TvEqzPNcum9v4KGm8ay3sMaE641c= +-----END CERTIFICATE----- + + OISTE Server Root RSA G1 +========================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIQVaXZZ5Qoxu0M+ifdWwFNGDANBgkqhkiG9w0BAQwFADBLMQswCQYDVQQG +EwJDSDEZMBcGA1UECgwQT0lTVEUgRm91bmRhdGlvbjEhMB8GA1UEAwwYT0lTVEUgU2VydmVyIFJv +b3QgUlNBIEcxMB4XDTIzMDUzMTE0MzcxNloXDTQ4MDUyNDE0MzcxNVowSzELMAkGA1UEBhMCQ0gx +GTAXBgNVBAoMEE9JU1RFIEZvdW5kYXRpb24xITAfBgNVBAMMGE9JU1RFIFNlcnZlciBSb290IFJT +QSBHMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKqu9KuCz/vlNwvn1ZatkOhLKdxV +YOPMvLO8LZK55KN68YG0nnJyQ98/qwsmtO57Gmn7KNByXEptaZnwYx4M0rH/1ow00O7brEi56rAU +jtgHqSSY3ekJvqgiG1k50SeH3BzN+Puz6+mTeO0Pzjd8JnduodgsIUzkik/HEzxux9UTl7Ko2yRp +g1bTacuCErudG/L4NPKYKyqOBGf244ehHa1uzjZ0Dl4zO8vbUZeUapU8zhhabkvG/AePLhq5Svdk +NCncpo1Q4Y2LS+VIG24ugBA/5J8bZT8RtOpXaZ+0AOuFJJkk9SGdl6r7NH8CaxWQrbueWhl/pIzY ++m0o/DjH40ytas7ZTpOSjswMZ78LS5bOZmdTaMsXEY5Z96ycG7mOaES3GK/m5Q9l3JUJsJMStR8+ +lKXHiHUhsd4JJCpM4rzsTGdHwimIuQq6+cF0zowYJmXa92/GjHtoXAvuY8BeS/FOzJ8vD+HomnqT +8eDI278n5mUpezbgMxVz8p1rhAhoKzYHKyfMeNhqhw5HdPSqoBNdZH702xSu+zrkL8Fl47l6QGzw +Brd7KJvX4V84c5Ss2XCTLdyEr0YconosP4EmQufU2MVshGYRi3drVByjtdgQ8K4p92cIiBdcuJd5 +z+orKu5YM+Vt6SmqZQENghPsJQtdLEByFSnTkCz3GkPVavBpAgMBAAGjYzBhMA8GA1UdEwEB/wQF +MAMBAf8wHwYDVR0jBBgwFoAU8snBDw1jALvsRQ5KH7WxszbNDo0wHQYDVR0OBBYEFPLJwQ8NYwC7 +7EUOSh+1sbM2zQ6NMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQwFAAOCAgEANGd5sjrG5T33 +I3K5Ce+SrScfoE4KsvXaFwyihdJ+klH9FWXXXGtkFu6KRcoMQzZENdl//nk6HOjG5D1rd9QhEOP2 +8yBOqb6J8xycqd+8MDoX0TJD0KqKchxRKEzdNsjkLWd9kYccnbz8qyiWXmFcuCIzGEgWUOrKL+ml +Sdx/PKQZvDatkuK59EvV6wit53j+F8Bdh3foZ3dPAGav9LEDOr4SfEE15fSmG0eLy3n31r8Xbk5l +8PjaV8GUgeV6Vg27Rn9vkf195hfkgSe7BYhW3SCl95gtkRlpMV+bMPKZrXJAlszYd2abtNUOshD+ +FKrDgHGdPY3ofRRsYWSGRqbXVMW215AWRqWFyp464+YTFrYVI8ypKVL9AMb2kI5Wj4kI3Zaq5tNq +qYY19tVFeEJKRvwDyF7YZvZFZSS0vod7VSCd9521Kvy5YhnLbDuv0204bKt7ph6N/Ome/msVuduC +msuY33OhkKCgxeDoAaijFJzIwZqsFVAzje18KotzlUBDJvyBpCpfOZC3J8tRd/iWkx7P8nd9H0aT +olkelUTFLXVksNb54Dxp6gS1HAviRkRNQzuXSXERvSS2wq1yVAb+axj5d9spLFKebXd7Yv0PTY6Y +MjAwcRLWJTXjn/hvnLXrahut6hDTlhZyBiElxky8j3C7DOReIoMt0r7+hVu05L0= +-----END CERTIFICATE----- diff --git a/src/wp-includes/class-wp-block-patterns-registry.php b/src/wp-includes/class-wp-block-patterns-registry.php index 7066cb08d1bcf..2ca87f5055696 100644 --- a/src/wp-includes/class-wp-block-patterns-registry.php +++ b/src/wp-includes/class-wp-block-patterns-registry.php @@ -156,6 +156,21 @@ public function is_registered( $pattern_name ) { return isset( $this->registered_patterns[ $pattern_name ] ); } + public function __wakeup() { + if ( ! $this->registered_patterns ) { + return; + } + if ( ! is_array( $this->registered_patterns ) ) { + throw new UnexpectedValueException(); + } + foreach ( $this->registered_patterns as $value ) { + if ( ! is_array( $value ) ) { + throw new UnexpectedValueException(); + } + } + $this->registered_patterns_outside_init = array(); + } + /** * Utility method to retrieve the main instance of the class. * diff --git a/src/wp-includes/class-wp-block-type-registry.php b/src/wp-includes/class-wp-block-type-registry.php index c9a5776c551c0..066eff4e51c3d 100644 --- a/src/wp-includes/class-wp-block-type-registry.php +++ b/src/wp-includes/class-wp-block-type-registry.php @@ -167,6 +167,20 @@ public function is_registered( $name ) { return isset( $this->registered_block_types[ $name ] ); } + public function __wakeup() { + if ( ! $this->registered_block_types ) { + return; + } + if ( ! is_array( $this->registered_block_types ) ) { + throw new UnexpectedValueException(); + } + foreach ( $this->registered_block_types as $value ) { + if ( ! $value instanceof WP_Block_Type ) { + throw new UnexpectedValueException(); + } + } + } + /** * Utility method to retrieve the main instance of the class. * diff --git a/src/wp-includes/class-wp-customize-nav-menus.php b/src/wp-includes/class-wp-customize-nav-menus.php index f438e358fde9d..518a858219943 100644 --- a/src/wp-includes/class-wp-customize-nav-menus.php +++ b/src/wp-includes/class-wp-customize-nav-menus.php @@ -190,13 +190,15 @@ public function load_available_items_query( $type = 'post_type', $object = 'page } } elseif ( 'post' !== $object && 0 === $page && $post_type->has_archive ) { // Add a post type archive link. + $title = $post_type->labels->archives; $items[] = array( - 'id' => $object . '-archive', - 'title' => $post_type->labels->archives, - 'type' => 'post_type_archive', - 'type_label' => __( 'Post Type Archive' ), - 'object' => $object, - 'url' => get_post_type_archive_link( $object ), + 'id' => $object . '-archive', + 'title' => $title, + 'original_title' => $title, + 'type' => 'post_type_archive', + 'type_label' => __( 'Post Type Archive' ), + 'object' => $object, + 'url' => get_post_type_archive_link( $object ), ); } @@ -243,14 +245,16 @@ public function load_available_items_query( $type = 'post_type', $object = 'page $post_type_label = implode( ',', $post_states ); } + $title = html_entity_decode( $post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ); $items[] = array( - 'id' => "post-{$post->ID}", - 'title' => html_entity_decode( $post_title, ENT_QUOTES, get_bloginfo( 'charset' ) ), - 'type' => 'post_type', - 'type_label' => $post_type_label, - 'object' => $post->post_type, - 'object_id' => (int) $post->ID, - 'url' => get_permalink( (int) $post->ID ), + 'id' => "post-{$post->ID}", + 'title' => $title, + 'original_title' => $title, + 'type' => 'post_type', + 'type_label' => $post_type_label, + 'object' => $post->post_type, + 'object_id' => (int) $post->ID, + 'url' => get_permalink( (int) $post->ID ), ); } } elseif ( 'taxonomy' === $type ) { @@ -275,14 +279,16 @@ public function load_available_items_query( $type = 'post_type', $object = 'page } foreach ( $terms as $term ) { + $title = html_entity_decode( $term->name, ENT_QUOTES, get_bloginfo( 'charset' ) ); $items[] = array( - 'id' => "term-{$term->term_id}", - 'title' => html_entity_decode( $term->name, ENT_QUOTES, get_bloginfo( 'charset' ) ), - 'type' => 'taxonomy', - 'type_label' => get_taxonomy( $term->taxonomy )->labels->singular_name, - 'object' => $term->taxonomy, - 'object_id' => (int) $term->term_id, - 'url' => get_term_link( (int) $term->term_id, $term->taxonomy ), + 'id' => "term-{$term->term_id}", + 'title' => $title, + 'original_title' => $title, + 'type' => 'taxonomy', + 'type_label' => get_taxonomy( $term->taxonomy )->labels->singular_name, + 'object' => $term->taxonomy, + 'object_id' => (int) $term->term_id, + 'url' => get_term_link( (int) $term->term_id, $term->taxonomy ), ); } } diff --git a/src/wp-includes/class-wp-customize-panel.php b/src/wp-includes/class-wp-customize-panel.php index 02c46ed695c6b..6ec6cd55e0d3d 100644 --- a/src/wp-includes/class-wp-customize-panel.php +++ b/src/wp-includes/class-wp-customize-panel.php @@ -232,10 +232,11 @@ public function json() { * feature support required by the panel. * * @since 4.0.0 + * @since 5.9.0 Method was marked non-final. * * @return bool False if theme doesn't support the panel or the user doesn't have the capability. */ - final public function check_capabilities() { + public function check_capabilities() { if ( $this->capability && ! current_user_can( $this->capability ) ) { return false; } diff --git a/src/wp-includes/class-wp-date-query.php b/src/wp-includes/class-wp-date-query.php index 570608f493a7b..6272b5a03fe5d 100644 --- a/src/wp-includes/class-wp-date-query.php +++ b/src/wp-includes/class-wp-date-query.php @@ -149,8 +149,8 @@ public function __construct( $date_query, $default_column = 'post_date' ) { return; } - if ( isset( $date_query['relation'] ) && 'OR' === strtoupper( $date_query['relation'] ) ) { - $this->relation = 'OR'; + if ( isset( $date_query['relation'] ) ) { + $this->relation = $this->sanitize_relation( $date_query['relation'] ); } else { $this->relation = 'AND'; } @@ -219,6 +219,9 @@ public function sanitize_query( $queries, $parent_query = null ) { $this->validate_date_values( $queries ); } + // Sanitize the relation parameter. + $queries['relation'] = $this->sanitize_relation( $queries['relation'] ); + foreach ( $queries as $key => $q ) { if ( ! is_array( $q ) || in_array( $key, $this->time_keys, true ) ) { // This is a first-order query. Trust the values and sanitize when building SQL. @@ -1040,4 +1043,20 @@ public function build_time_query( $column, $compare, $hour = null, $minute = nul return $wpdb->prepare( "DATE_FORMAT( $column, %s ) $compare %f", $format, $time ); } + + /** + * Sanitizes a 'relation' operator. + * + * @since 6.0.3 + * + * @param string $relation Raw relation key from the query argument. + * @return string Sanitized relation ('AND' or 'OR'). + */ + public function sanitize_relation( $relation ) { + if ( 'OR' === strtoupper( $relation ) ) { + return 'OR'; + } else { + return 'AND'; + } + } } diff --git a/src/wp-includes/class-wp-meta-query.php b/src/wp-includes/class-wp-meta-query.php index 2c2ac84d347f3..ac1da7d1f6f68 100644 --- a/src/wp-includes/class-wp-meta-query.php +++ b/src/wp-includes/class-wp-meta-query.php @@ -848,7 +848,7 @@ protected function find_compatible_table_alias( $clause, $parent_query ) { $clause_compare = strtoupper( $clause['compare'] ); $sibling_compare = strtoupper( $sibling['compare'] ); if ( in_array( $clause_compare, $compatible_compares, true ) && in_array( $sibling_compare, $compatible_compares, true ) ) { - $alias = $sibling['alias']; + $alias = preg_replace( '/\W/', '_', $sibling['alias'] ); break; } } diff --git a/src/wp-includes/class-wp-query.php b/src/wp-includes/class-wp-query.php index 975d1318a52cf..917160df56a1e 100644 --- a/src/wp-includes/class-wp-query.php +++ b/src/wp-includes/class-wp-query.php @@ -444,6 +444,13 @@ class WP_Query { */ public $thumbnails_cached = false; + /** + * Controls whether an attachment query should include filenames or not. + * + * @since 6.0.3 + * @var bool + */ + protected $allow_query_attachment_by_filename = false; /** * Cached list of search stopwords. * @@ -1414,7 +1421,12 @@ protected function parse_search( &$q ) { } $like = $n . $wpdb->esc_like( $term ) . $n; - $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s))", $like, $like, $like ); + + if ( ! empty( $this->allow_query_attachment_by_filename ) ) { + $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s) $andor_op (sq1.meta_value $like_op %s))", $like, $like, $like, $like ); + } else { + $search .= $wpdb->prepare( "{$searchand}(({$wpdb->posts}.post_title $like_op %s) $andor_op ({$wpdb->posts}.post_excerpt $like_op %s) $andor_op ({$wpdb->posts}.post_content $like_op %s))", $like, $like, $like ); + } $searchand = ' AND '; } @@ -1809,6 +1821,16 @@ public function get_posts() { // Fill again in case 'pre_get_posts' unset some vars. $q = $this->fill_query_vars( $q ); + /** + * Filters whether an attachment query should include filenames or not. + * + * @since 6.0.3 + * + * @param bool $allow_query_attachment_by_filename Whether or not to include filenames. + */ + $this->allow_query_attachment_by_filename = apply_filters( 'wp_allow_query_attachment_by_filename', false ); + remove_all_filters( 'wp_allow_query_attachment_by_filename' ); + // Parse meta query. $this->meta_query = new WP_Meta_Query(); $this->meta_query->parse_query_vars( $q ); @@ -2240,7 +2262,7 @@ public function get_posts() { } } - if ( ! empty( $this->tax_query->queries ) || ! empty( $this->meta_query->queries ) ) { + if ( ! empty( $this->tax_query->queries ) || ! empty( $this->meta_query->queries ) || ! empty( $this->allow_query_attachment_by_filename ) ) { $groupby = "{$wpdb->posts}.ID"; } @@ -2317,6 +2339,10 @@ public function get_posts() { } $where .= $search . $whichauthor . $whichmimetype; + if ( ! empty( $this->allow_query_attachment_by_filename ) ) { + $join .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )"; + } + if ( ! empty( $this->meta_query->queries ) ) { $clauses = $this->meta_query->get_sql( 'post', $wpdb->posts, 'ID', $this ); $join .= $clauses['join']; diff --git a/src/wp-includes/class-wp-tax-query.php b/src/wp-includes/class-wp-tax-query.php index 68b12ffbe4a09..eb4b7849e269c 100644 --- a/src/wp-includes/class-wp-tax-query.php +++ b/src/wp-includes/class-wp-tax-query.php @@ -527,7 +527,7 @@ protected function find_compatible_table_alias( $clause, $parent_query ) { // The sibling must both have compatible operator to share its alias. if ( in_array( strtoupper( $sibling['operator'] ), $compatible_operators, true ) ) { - $alias = $sibling['alias']; + $alias = preg_replace( '/\W/', '_', $sibling['alias'] ); break; } } @@ -556,7 +556,11 @@ private function clean_query( &$query ) { return; } - $query['terms'] = array_unique( (array) $query['terms'] ); + if ( 'slug' === $query['field'] || 'name' === $query['field'] ) { + $query['terms'] = array_unique( (array) $query['terms'] ); + } else { + $query['terms'] = wp_parse_id_list( $query['terms'] ); + } if ( is_taxonomy_hierarchical( $query['taxonomy'] ) && $query['include_children'] ) { $this->transform_query( $query, 'term_id' ); diff --git a/src/wp-includes/class-wp-theme-json-resolver.php b/src/wp-includes/class-wp-theme-json-resolver.php index 38df6cebf1e82..56d398aacbfe1 100644 --- a/src/wp-includes/class-wp-theme-json-resolver.php +++ b/src/wp-includes/class-wp-theme-json-resolver.php @@ -25,7 +25,7 @@ class WP_Theme_JSON_Resolver { * @since 5.8.0 * @var WP_Theme_JSON */ - private static $core = null; + protected static $core = null; /** * Container for data coming from the theme. @@ -33,7 +33,7 @@ class WP_Theme_JSON_Resolver { * @since 5.8.0 * @var WP_Theme_JSON */ - private static $theme = null; + protected static $theme = null; /** * Whether or not the theme supports theme.json. @@ -41,7 +41,7 @@ class WP_Theme_JSON_Resolver { * @since 5.8.0 * @var bool */ - private static $theme_has_support = null; + protected static $theme_has_support = null; /** * Container for data coming from the user. @@ -49,7 +49,7 @@ class WP_Theme_JSON_Resolver { * @since 5.9.0 * @var WP_Theme_JSON */ - private static $user = null; + protected static $user = null; /** * Stores the ID of the custom post type @@ -58,7 +58,7 @@ class WP_Theme_JSON_Resolver { * @since 5.9.0 * @var int */ - private static $user_custom_post_type_id = null; + protected static $user_custom_post_type_id = null; /** * Container to keep loaded i18n schema for `theme.json`. @@ -67,7 +67,7 @@ class WP_Theme_JSON_Resolver { * @since 5.9.0 Renamed from `$theme_json_i18n` to `$i18n_schema`. * @var array */ - private static $i18n_schema = null; + protected static $i18n_schema = null; /** * Processes a file that adheres to the theme.json schema @@ -78,7 +78,7 @@ class WP_Theme_JSON_Resolver { * @param string $file_path Path to file. Empty if no file. * @return array Contents that adhere to the theme.json schema. */ - private static function read_json_file( $file_path ) { + protected static function read_json_file( $file_path ) { $config = array(); if ( $file_path ) { $decoded_file = wp_json_file_decode( $file_path, array( 'associative' => true ) ); @@ -113,13 +113,13 @@ public static function get_fields_to_translate() { * Default 'default'. * @return array Returns the modified $theme_json_structure. */ - private static function translate( $theme_json, $domain = 'default' ) { - if ( null === self::$i18n_schema ) { - $i18n_schema = wp_json_file_decode( __DIR__ . '/theme-i18n.json' ); - self::$i18n_schema = null === $i18n_schema ? array() : $i18n_schema; + protected static function translate( $theme_json, $domain = 'default' ) { + if ( null === static::$i18n_schema ) { + $i18n_schema = wp_json_file_decode( __DIR__ . '/theme-i18n.json' ); + static::$i18n_schema = null === $i18n_schema ? array() : $i18n_schema; } - return translate_settings_using_i18n_schema( self::$i18n_schema, $theme_json, $domain ); + return translate_settings_using_i18n_schema( static::$i18n_schema, $theme_json, $domain ); } /** @@ -130,15 +130,15 @@ private static function translate( $theme_json, $domain = 'default' ) { * @return WP_Theme_JSON Entity that holds core data. */ public static function get_core_data() { - if ( null !== self::$core ) { - return self::$core; + if ( null !== static::$core ) { + return static::$core; } - $config = self::read_json_file( __DIR__ . '/theme.json' ); - $config = self::translate( $config ); - self::$core = new WP_Theme_JSON( $config, 'default' ); + $config = static::read_json_file( __DIR__ . '/theme.json' ); + $config = static::translate( $config ); + static::$core = new WP_Theme_JSON( $config, 'default' ); - return self::$core; + return static::$core; } /** @@ -159,21 +159,21 @@ public static function get_theme_data( $deprecated = array() ) { if ( ! empty( $deprecated ) ) { _deprecated_argument( __METHOD__, '5.9.0' ); } - if ( null === self::$theme ) { - $theme_json_data = self::read_json_file( self::get_file_path_from_theme( 'theme.json' ) ); - $theme_json_data = self::translate( $theme_json_data, wp_get_theme()->get( 'TextDomain' ) ); - self::$theme = new WP_Theme_JSON( $theme_json_data ); + if ( null === static::$theme ) { + $theme_json_data = static::read_json_file( static::get_file_path_from_theme( 'theme.json' ) ); + $theme_json_data = static::translate( $theme_json_data, wp_get_theme()->get( 'TextDomain' ) ); + static::$theme = new WP_Theme_JSON( $theme_json_data ); if ( wp_get_theme()->parent() ) { // Get parent theme.json. - $parent_theme_json_data = self::read_json_file( self::get_file_path_from_theme( 'theme.json', true ) ); - $parent_theme_json_data = self::translate( $parent_theme_json_data, wp_get_theme()->parent()->get( 'TextDomain' ) ); + $parent_theme_json_data = static::read_json_file( static::get_file_path_from_theme( 'theme.json', true ) ); + $parent_theme_json_data = static::translate( $parent_theme_json_data, wp_get_theme()->parent()->get( 'TextDomain' ) ); $parent_theme = new WP_Theme_JSON( $parent_theme_json_data ); // Merge the child theme.json into the parent theme.json. // The child theme takes precedence over the parent. - $parent_theme->merge( self::$theme ); - self::$theme = $parent_theme; + $parent_theme->merge( static::$theme ); + static::$theme = $parent_theme; } } @@ -181,10 +181,10 @@ public static function get_theme_data( $deprecated = array() ) { * We want the presets and settings declared in theme.json * to override the ones declared via theme supports. * So we take theme supports, transform it to theme.json shape - * and merge the self::$theme upon that. + * and merge the static::$theme upon that. */ $theme_support_data = WP_Theme_JSON::get_from_editor_settings( get_default_block_editor_settings() ); - if ( ! self::theme_has_support() ) { + if ( ! static::theme_has_support() ) { if ( ! isset( $theme_support_data['settings']['color'] ) ) { $theme_support_data['settings']['color'] = array(); } @@ -210,7 +210,7 @@ public static function get_theme_data( $deprecated = array() ) { $theme_support_data['settings']['color']['defaultGradients'] = $default_gradients; } $with_theme_supports = new WP_Theme_JSON( $theme_support_data ); - $with_theme_supports->merge( self::$theme ); + $with_theme_supports->merge( static::$theme ); return $with_theme_supports; } @@ -299,12 +299,12 @@ public static function get_user_data_from_wp_global_styles( $theme, $create_post * @return WP_Theme_JSON Entity that holds styles for user data. */ public static function get_user_data() { - if ( null !== self::$user ) { - return self::$user; + if ( null !== static::$user ) { + return static::$user; } $config = array(); - $user_cpt = self::get_user_data_from_wp_global_styles( wp_get_theme() ); + $user_cpt = static::get_user_data_from_wp_global_styles( wp_get_theme() ); if ( array_key_exists( 'post_content', $user_cpt ) ) { $decoded_data = json_decode( $user_cpt['post_content'], true ); @@ -326,9 +326,9 @@ public static function get_user_data() { $config = $decoded_data; } } - self::$user = new WP_Theme_JSON( $config, 'custom' ); + static::$user = new WP_Theme_JSON( $config, 'custom' ); - return self::$user; + return static::$user; } /** @@ -363,11 +363,11 @@ public static function get_merged_data( $origin = 'custom' ) { } $result = new WP_Theme_JSON(); - $result->merge( self::get_core_data() ); - $result->merge( self::get_theme_data() ); + $result->merge( static::get_core_data() ); + $result->merge( static::get_theme_data() ); if ( 'custom' === $origin ) { - $result->merge( self::get_user_data() ); + $result->merge( static::get_user_data() ); } return $result; @@ -382,17 +382,17 @@ public static function get_merged_data( $origin = 'custom' ) { * @return integer|null */ public static function get_user_global_styles_post_id() { - if ( null !== self::$user_custom_post_type_id ) { - return self::$user_custom_post_type_id; + if ( null !== static::$user_custom_post_type_id ) { + return static::$user_custom_post_type_id; } - $user_cpt = self::get_user_data_from_wp_global_styles( wp_get_theme(), true ); + $user_cpt = static::get_user_data_from_wp_global_styles( wp_get_theme(), true ); if ( array_key_exists( 'ID', $user_cpt ) ) { - self::$user_custom_post_type_id = $user_cpt['ID']; + static::$user_custom_post_type_id = $user_cpt['ID']; } - return self::$user_custom_post_type_id; + return static::$user_custom_post_type_id; } /** @@ -404,14 +404,14 @@ public static function get_user_global_styles_post_id() { * @return bool */ public static function theme_has_support() { - if ( ! isset( self::$theme_has_support ) ) { - self::$theme_has_support = ( - is_readable( self::get_file_path_from_theme( 'theme.json' ) ) || - is_readable( self::get_file_path_from_theme( 'theme.json', true ) ) + if ( ! isset( static::$theme_has_support ) ) { + static::$theme_has_support = ( + is_readable( static::get_file_path_from_theme( 'theme.json' ) ) || + is_readable( static::get_file_path_from_theme( 'theme.json', true ) ) ); } - return self::$theme_has_support; + return static::$theme_has_support; } /** @@ -426,7 +426,7 @@ public static function theme_has_support() { * @param bool $template Optional. Use template theme directory. Default false. * @return string The whole file path or empty if the file doesn't exist. */ - private static function get_file_path_from_theme( $file_name, $template = false ) { + protected static function get_file_path_from_theme( $file_name, $template = false ) { $path = $template ? get_template_directory() : get_stylesheet_directory(); $candidate = $path . '/' . $file_name; @@ -441,12 +441,12 @@ private static function get_file_path_from_theme( $file_name, $template = false * and `$i18n_schema` variables to reset. */ public static function clean_cached_data() { - self::$core = null; - self::$theme = null; - self::$user = null; - self::$user_custom_post_type_id = null; - self::$theme_has_support = null; - self::$i18n_schema = null; + static::$core = null; + static::$theme = null; + static::$user = null; + static::$user_custom_post_type_id = null; + static::$theme_has_support = null; + static::$i18n_schema = null; } } diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php index 5c643cf138a67..34893ffb785c3 100644 --- a/src/wp-includes/class-wp-theme-json.php +++ b/src/wp-includes/class-wp-theme-json.php @@ -24,7 +24,7 @@ class WP_Theme_JSON { * @since 5.8.0 * @var array */ - private $theme_json = null; + protected $theme_json = null; /** * Holds block metadata extracted from block.json @@ -34,7 +34,7 @@ class WP_Theme_JSON { * @since 5.8.0 * @var array */ - private static $blocks_metadata = null; + protected static $blocks_metadata = null; /** * The CSS selector for the top-level styles. @@ -132,7 +132,7 @@ class WP_Theme_JSON { 'path' => array( 'color', 'duotone' ), 'override' => true, 'use_default_names' => false, - 'value_func' => 'wp_render_duotone_filter_preset', + 'value_func' => 'wp_get_duotone_filter_property', 'css_vars' => '--wp--preset--duotone--$slug', 'classes' => array(), 'properties' => array( 'filter' ), @@ -366,20 +366,20 @@ class WP_Theme_JSON { * One of 'default', 'theme', or 'custom'. Default 'theme'. */ public function __construct( $theme_json = array(), $origin = 'theme' ) { - if ( ! in_array( $origin, self::VALID_ORIGINS, true ) ) { + if ( ! in_array( $origin, static::VALID_ORIGINS, true ) ) { $origin = 'theme'; } $this->theme_json = WP_Theme_JSON_Schema::migrate( $theme_json ); - $valid_block_names = array_keys( self::get_blocks_metadata() ); - $valid_element_names = array_keys( self::ELEMENTS ); - $theme_json = self::sanitize( $this->theme_json, $valid_block_names, $valid_element_names ); - $this->theme_json = self::maybe_opt_in_into_settings( $theme_json ); + $valid_block_names = array_keys( static::get_blocks_metadata() ); + $valid_element_names = array_keys( static::ELEMENTS ); + $theme_json = static::sanitize( $this->theme_json, $valid_block_names, $valid_element_names ); + $this->theme_json = static::maybe_opt_in_into_settings( $theme_json ); // Internally, presets are keyed by origin. - $nodes = self::get_setting_nodes( $this->theme_json ); + $nodes = static::get_setting_nodes( $this->theme_json ); foreach ( $nodes as $node ) { - foreach ( self::PRESETS_METADATA as $preset_metadata ) { + foreach ( static::PRESETS_METADATA as $preset_metadata ) { $path = array_merge( $node['path'], $preset_metadata['path'] ); $preset = _wp_array_get( $this->theme_json, $path, null ); if ( null !== $preset ) { @@ -400,20 +400,20 @@ public function __construct( $theme_json = array(), $origin = 'theme' ) { * @param array $theme_json A theme.json structure to modify. * @return array The modified theme.json structure. */ - private static function maybe_opt_in_into_settings( $theme_json ) { + protected static function maybe_opt_in_into_settings( $theme_json ) { $new_theme_json = $theme_json; if ( isset( $new_theme_json['settings']['appearanceTools'] ) && true === $new_theme_json['settings']['appearanceTools'] ) { - self::do_opt_in_into_settings( $new_theme_json['settings'] ); + static::do_opt_in_into_settings( $new_theme_json['settings'] ); } if ( isset( $new_theme_json['settings']['blocks'] ) && is_array( $new_theme_json['settings']['blocks'] ) ) { foreach ( $new_theme_json['settings']['blocks'] as &$block ) { if ( isset( $block['appearanceTools'] ) && ( true === $block['appearanceTools'] ) ) { - self::do_opt_in_into_settings( $block ); + static::do_opt_in_into_settings( $block ); } } } @@ -428,7 +428,7 @@ private static function maybe_opt_in_into_settings( $theme_json ) { * * @param array $context The context to which the settings belong. */ - private static function do_opt_in_into_settings( &$context ) { + protected static function do_opt_in_into_settings( &$context ) { $to_opt_in = array( array( 'border', 'color' ), array( 'border', 'radius' ), @@ -463,18 +463,18 @@ private static function do_opt_in_into_settings( &$context ) { * @param array $valid_element_names List of valid element names. * @return array The sanitized output. */ - private static function sanitize( $input, $valid_block_names, $valid_element_names ) { + protected static function sanitize( $input, $valid_block_names, $valid_element_names ) { $output = array(); if ( ! is_array( $input ) ) { return $output; } - $output = array_intersect_key( $input, array_flip( self::VALID_TOP_LEVEL_KEYS ) ); + $output = array_intersect_key( $input, array_flip( static::VALID_TOP_LEVEL_KEYS ) ); // Some styles are only meant to be available at the top-level (e.g.: blockGap), // hence, the schema for blocks & elements should not have them. - $styles_non_top_level = self::VALID_STYLES; + $styles_non_top_level = static::VALID_STYLES; foreach ( array_keys( $styles_non_top_level ) as $section ) { foreach ( array_keys( $styles_non_top_level[ $section ] ) as $prop ) { if ( 'top' === $styles_non_top_level[ $section ][ $prop ] ) { @@ -492,14 +492,14 @@ private static function sanitize( $input, $valid_block_names, $valid_element_nam $schema_styles_blocks = array(); $schema_settings_blocks = array(); foreach ( $valid_block_names as $block ) { - $schema_settings_blocks[ $block ] = self::VALID_SETTINGS; + $schema_settings_blocks[ $block ] = static::VALID_SETTINGS; $schema_styles_blocks[ $block ] = $styles_non_top_level; $schema_styles_blocks[ $block ]['elements'] = $schema_styles_elements; } - $schema['styles'] = self::VALID_STYLES; + $schema['styles'] = static::VALID_STYLES; $schema['styles']['blocks'] = $schema_styles_blocks; $schema['styles']['elements'] = $schema_styles_elements; - $schema['settings'] = self::VALID_SETTINGS; + $schema['settings'] = static::VALID_SETTINGS; $schema['settings']['blocks'] = $schema_settings_blocks; // Remove anything that's not present in the schema. @@ -513,7 +513,7 @@ private static function sanitize( $input, $valid_block_names, $valid_element_nam continue; } - $result = self::remove_keys_not_in_schema( $input[ $subtree ], $schema[ $subtree ] ); + $result = static::remove_keys_not_in_schema( $input[ $subtree ], $schema[ $subtree ] ); if ( empty( $result ) ) { unset( $output[ $subtree ] ); @@ -554,12 +554,12 @@ private static function sanitize( $input, $valid_block_names, $valid_element_nam * * @return array Block metadata. */ - private static function get_blocks_metadata() { - if ( null !== self::$blocks_metadata ) { - return self::$blocks_metadata; + protected static function get_blocks_metadata() { + if ( null !== static::$blocks_metadata ) { + return static::$blocks_metadata; } - self::$blocks_metadata = array(); + static::$blocks_metadata = array(); $registry = WP_Block_Type_Registry::get_instance(); $blocks = $registry->get_all_registered(); @@ -568,32 +568,32 @@ private static function get_blocks_metadata() { isset( $block_type->supports['__experimentalSelector'] ) && is_string( $block_type->supports['__experimentalSelector'] ) ) { - self::$blocks_metadata[ $block_name ]['selector'] = $block_type->supports['__experimentalSelector']; + static::$blocks_metadata[ $block_name ]['selector'] = $block_type->supports['__experimentalSelector']; } else { - self::$blocks_metadata[ $block_name ]['selector'] = '.wp-block-' . str_replace( '/', '-', str_replace( 'core/', '', $block_name ) ); + static::$blocks_metadata[ $block_name ]['selector'] = '.wp-block-' . str_replace( '/', '-', str_replace( 'core/', '', $block_name ) ); } if ( isset( $block_type->supports['color']['__experimentalDuotone'] ) && is_string( $block_type->supports['color']['__experimentalDuotone'] ) ) { - self::$blocks_metadata[ $block_name ]['duotone'] = $block_type->supports['color']['__experimentalDuotone']; + static::$blocks_metadata[ $block_name ]['duotone'] = $block_type->supports['color']['__experimentalDuotone']; } // Assign defaults, then overwrite those that the block sets by itself. // If the block selector is compounded, will append the element to each // individual block selector. - $block_selectors = explode( ',', self::$blocks_metadata[ $block_name ]['selector'] ); - foreach ( self::ELEMENTS as $el_name => $el_selector ) { + $block_selectors = explode( ',', static::$blocks_metadata[ $block_name ]['selector'] ); + foreach ( static::ELEMENTS as $el_name => $el_selector ) { $element_selector = array(); foreach ( $block_selectors as $selector ) { $element_selector[] = $selector . ' ' . $el_selector; } - self::$blocks_metadata[ $block_name ]['elements'][ $el_name ] = implode( ',', $element_selector ); + static::$blocks_metadata[ $block_name ]['elements'][ $el_name ] = implode( ',', $element_selector ); } } - return self::$blocks_metadata; + return static::$blocks_metadata; } /** @@ -607,7 +607,7 @@ private static function get_blocks_metadata() { * @param array $schema Schema to adhere to. * @return array Returns the modified $tree. */ - private static function remove_keys_not_in_schema( $tree, $schema ) { + protected static function remove_keys_not_in_schema( $tree, $schema ) { $tree = array_intersect_key( $tree, $schema ); foreach ( $schema as $key => $data ) { @@ -616,7 +616,7 @@ private static function remove_keys_not_in_schema( $tree, $schema ) { } if ( is_array( $schema[ $key ] ) && is_array( $tree[ $key ] ) ) { - $tree[ $key ] = self::remove_keys_not_in_schema( $tree[ $key ], $schema[ $key ] ); + $tree[ $key ] = static::remove_keys_not_in_schema( $tree[ $key ], $schema[ $key ] ); if ( empty( $tree[ $key ] ) ) { unset( $tree[ $key ] ); @@ -670,10 +670,14 @@ public function get_settings() { * - `variables`: only the CSS Custom Properties for presets & custom ones. * - `styles`: only the styles section in theme.json. * - `presets`: only the classes for the presets. - * @param array $origins A list of origins to include. By default it includes `self::VALID_ORIGINS`. + * @param array $origins A list of origins to include. By default it includes VALID_ORIGINS. * @return string Stylesheet. */ - public function get_stylesheet( $types = array( 'variables', 'styles', 'presets' ), $origins = self::VALID_ORIGINS ) { + public function get_stylesheet( $types = array( 'variables', 'styles', 'presets' ), $origins = null ) { + if ( null === $origins ) { + $origins = static::VALID_ORIGINS; + } + if ( is_string( $types ) ) { // Dispatch error and map old arguments to new ones. _deprecated_argument( __FUNCTION__, '5.9.0' ); @@ -686,9 +690,9 @@ public function get_stylesheet( $types = array( 'variables', 'styles', 'presets' } } - $blocks_metadata = self::get_blocks_metadata(); - $style_nodes = self::get_style_nodes( $this->theme_json, $blocks_metadata ); - $setting_nodes = self::get_setting_nodes( $this->theme_json, $blocks_metadata ); + $blocks_metadata = static::get_blocks_metadata(); + $style_nodes = static::get_style_nodes( $this->theme_json, $blocks_metadata ); + $setting_nodes = static::get_setting_nodes( $this->theme_json, $blocks_metadata ); $stylesheet = ''; @@ -775,7 +779,7 @@ public function get_template_parts() { * @param array $style_nodes Nodes with styles. * @return string The new stylesheet. */ - private function get_block_classes( $style_nodes ) { + protected function get_block_classes( $style_nodes ) { $block_rules = ''; foreach ( $style_nodes as $metadata ) { @@ -786,7 +790,7 @@ private function get_block_classes( $style_nodes ) { $node = _wp_array_get( $this->theme_json, $metadata['path'], array() ); $selector = $metadata['selector']; $settings = _wp_array_get( $this->theme_json, array( 'settings' ) ); - $declarations = self::compute_style_properties( $node, $settings ); + $declarations = static::compute_style_properties( $node, $settings ); // 1. Separate the ones who use the general selector // and the ones who use the duotone selector. @@ -806,20 +810,20 @@ private function get_block_classes( $style_nodes ) { * user-generated values take precedence in the CSS cascade. * @link https://github.com/WordPress/gutenberg/issues/36147. */ - if ( self::ROOT_BLOCK_SELECTOR === $selector ) { + if ( static::ROOT_BLOCK_SELECTOR === $selector ) { $block_rules .= 'body { margin: 0; }'; } // 2. Generate the rules that use the general selector. - $block_rules .= self::to_ruleset( $selector, $declarations ); + $block_rules .= static::to_ruleset( $selector, $declarations ); // 3. Generate the rules that use the duotone selector. if ( isset( $metadata['duotone'] ) && ! empty( $declarations_duotone ) ) { - $selector_duotone = self::scope_selector( $metadata['selector'], $metadata['duotone'] ); - $block_rules .= self::to_ruleset( $selector_duotone, $declarations_duotone ); + $selector_duotone = static::scope_selector( $metadata['selector'], $metadata['duotone'] ); + $block_rules .= static::to_ruleset( $selector_duotone, $declarations_duotone ); } - if ( self::ROOT_BLOCK_SELECTOR === $selector ) { + if ( static::ROOT_BLOCK_SELECTOR === $selector ) { $block_rules .= '.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }'; $block_rules .= '.wp-site-blocks > .alignright { float: right; margin-left: 2em; }'; $block_rules .= '.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }'; @@ -864,7 +868,7 @@ private function get_block_classes( $style_nodes ) { * @param array $origins List of origins to process presets from. * @return string The new stylesheet. */ - private function get_preset_classes( $setting_nodes, $origins ) { + protected function get_preset_classes( $setting_nodes, $origins ) { $preset_rules = ''; foreach ( $setting_nodes as $metadata ) { @@ -874,7 +878,7 @@ private function get_preset_classes( $setting_nodes, $origins ) { $selector = $metadata['selector']; $node = _wp_array_get( $this->theme_json, $metadata['path'], array() ); - $preset_rules .= self::compute_preset_classes( $node, $selector, $origins ); + $preset_rules .= static::compute_preset_classes( $node, $selector, $origins ); } return $preset_rules; @@ -901,7 +905,7 @@ private function get_preset_classes( $setting_nodes, $origins ) { * @param array $origins List of origins to process. * @return string The new stylesheet. */ - private function get_css_variables( $nodes, $origins ) { + protected function get_css_variables( $nodes, $origins ) { $stylesheet = ''; foreach ( $nodes as $metadata ) { if ( null === $metadata['selector'] ) { @@ -911,9 +915,9 @@ private function get_css_variables( $nodes, $origins ) { $selector = $metadata['selector']; $node = _wp_array_get( $this->theme_json, $metadata['path'], array() ); - $declarations = array_merge( self::compute_preset_vars( $node, $origins ), self::compute_theme_vars( $node ) ); + $declarations = array_merge( static::compute_preset_vars( $node, $origins ), static::compute_theme_vars( $node ) ); - $stylesheet .= self::to_ruleset( $selector, $declarations ); + $stylesheet .= static::to_ruleset( $selector, $declarations ); } return $stylesheet; @@ -929,7 +933,7 @@ private function get_css_variables( $nodes, $origins ) { * @param array $declarations List of declarations. * @return string CSS ruleset. */ - private static function to_ruleset( $selector, $declarations ) { + protected static function to_ruleset( $selector, $declarations ) { if ( empty( $declarations ) ) { return ''; } @@ -957,7 +961,7 @@ static function ( $carry, $element ) { * @param string $to_append Selector to append. * @return string */ - private static function append_to_selector( $selector, $to_append ) { + protected static function append_to_selector( $selector, $to_append ) { $new_selectors = array(); $selectors = explode( ',', $selector ); foreach ( $selectors as $sel ) { @@ -979,22 +983,22 @@ private static function append_to_selector( $selector, $to_append ) { * @param array $origins List of origins to process. * @return string The result of processing the presets. */ - private static function compute_preset_classes( $settings, $selector, $origins ) { - if ( self::ROOT_BLOCK_SELECTOR === $selector ) { + protected static function compute_preset_classes( $settings, $selector, $origins ) { + if ( static::ROOT_BLOCK_SELECTOR === $selector ) { // Classes at the global level do not need any CSS prefixed, // and we don't want to increase its specificity. $selector = ''; } $stylesheet = ''; - foreach ( self::PRESETS_METADATA as $preset_metadata ) { - $slugs = self::get_settings_slugs( $settings, $preset_metadata, $origins ); + foreach ( static::PRESETS_METADATA as $preset_metadata ) { + $slugs = static::get_settings_slugs( $settings, $preset_metadata, $origins ); foreach ( $preset_metadata['classes'] as $class => $property ) { foreach ( $slugs as $slug ) { - $css_var = self::replace_slug_in_string( $preset_metadata['css_vars'], $slug ); - $class_name = self::replace_slug_in_string( $class, $slug ); - $stylesheet .= self::to_ruleset( - self::append_to_selector( $selector, $class_name ), + $css_var = static::replace_slug_in_string( $preset_metadata['css_vars'], $slug ); + $class_name = static::replace_slug_in_string( $class, $slug ); + $stylesheet .= static::to_ruleset( + static::append_to_selector( $selector, $class_name ), array( array( 'name' => $property, @@ -1026,7 +1030,7 @@ private static function compute_preset_classes( $settings, $selector, $origins ) * @param string $selector Original selector. * @return string Scoped selector. */ - private static function scope_selector( $scope, $selector ) { + protected static function scope_selector( $scope, $selector ) { $scopes = explode( ',', $scope ); $selectors = explode( ',', $selector ); @@ -1076,7 +1080,7 @@ private static function scope_selector( $scope, $selector ) { * @param array $origins List of origins to process. * @return array Array of presets where each key is a slug and each value is the preset value. */ - private static function get_settings_values_by_slug( $settings, $preset_metadata, $origins ) { + protected static function get_settings_values_by_slug( $settings, $preset_metadata, $origins ) { $preset_per_origin = _wp_array_get( $settings, $preset_metadata['path'], array() ); $result = array(); @@ -1088,7 +1092,7 @@ private static function get_settings_values_by_slug( $settings, $preset_metadata $slug = _wp_to_kebab_case( $preset['slug'] ); $value = ''; - if ( isset( $preset_metadata['value_key'] ) ) { + if ( isset( $preset_metadata['value_key'], $preset[ $preset_metadata['value_key'] ] ) ) { $value_key = $preset_metadata['value_key']; $value = $preset[ $value_key ]; } elseif ( @@ -1118,7 +1122,11 @@ private static function get_settings_values_by_slug( $settings, $preset_metadata * @param array $origins List of origins to process. * @return array Array of presets where the key and value are both the slug. */ - private static function get_settings_slugs( $settings, $preset_metadata, $origins = self::VALID_ORIGINS ) { + protected static function get_settings_slugs( $settings, $preset_metadata, $origins = null ) { + if ( null === $origins ) { + $origins = static::VALID_ORIGINS; + } + $preset_per_origin = _wp_array_get( $settings, $preset_metadata['path'], array() ); $result = array(); @@ -1145,7 +1153,7 @@ private static function get_settings_slugs( $settings, $preset_metadata, $origin * @param string $slug The slug value to use to generate the custom property. * @return string The CSS Custom Property. Something along the lines of `--wp--preset--color--black`. */ - private static function replace_slug_in_string( $input, $slug ) { + protected static function replace_slug_in_string( $input, $slug ) { return strtr( $input, array( '$slug' => $slug ) ); } @@ -1166,13 +1174,13 @@ private static function replace_slug_in_string( $input, $slug ) { * @param array $origins List of origins to process. * @return array Returns the modified $declarations. */ - private static function compute_preset_vars( $settings, $origins ) { + protected static function compute_preset_vars( $settings, $origins ) { $declarations = array(); - foreach ( self::PRESETS_METADATA as $preset_metadata ) { - $values_by_slug = self::get_settings_values_by_slug( $settings, $preset_metadata, $origins ); + foreach ( static::PRESETS_METADATA as $preset_metadata ) { + $values_by_slug = static::get_settings_values_by_slug( $settings, $preset_metadata, $origins ); foreach ( $values_by_slug as $slug => $value ) { $declarations[] = array( - 'name' => self::replace_slug_in_string( $preset_metadata['css_vars'], $slug ), + 'name' => static::replace_slug_in_string( $preset_metadata['css_vars'], $slug ), 'value' => $value, ); } @@ -1196,10 +1204,10 @@ private static function compute_preset_vars( $settings, $origins ) { * @param array $settings Settings to process. * @return array Returns the modified $declarations. */ - private static function compute_theme_vars( $settings ) { + protected static function compute_theme_vars( $settings ) { $declarations = array(); $custom_values = _wp_array_get( $settings, array( 'custom' ), array() ); - $css_vars = self::flatten_tree( $custom_values ); + $css_vars = static::flatten_tree( $custom_values ); foreach ( $css_vars as $key => $value ) { $declarations[] = array( 'name' => '--wp--custom--' . $key, @@ -1247,7 +1255,7 @@ private static function compute_theme_vars( $settings ) { * @param string $token Optional. Token to use between levels. Default '--'. * @return array The flattened tree. */ - private static function flatten_tree( $tree, $prefix = '', $token = '--' ) { + protected static function flatten_tree( $tree, $prefix = '', $token = '--' ) { $result = array(); foreach ( $tree as $property => $value ) { $new_key = $prefix . str_replace( @@ -1260,7 +1268,7 @@ private static function flatten_tree( $tree, $prefix = '', $token = '--' ) { $new_prefix = $new_key . $token; $result = array_merge( $result, - self::flatten_tree( $value, $new_prefix, $token ) + static::flatten_tree( $value, $new_prefix, $token ) ); } else { $result[ $new_key ] = $value; @@ -1286,22 +1294,26 @@ private static function flatten_tree( $tree, $prefix = '', $token = '--' ) { * @param array $properties Properties metadata. * @return array Returns the modified $declarations. */ - private static function compute_style_properties( $styles, $settings = array(), $properties = self::PROPERTIES_METADATA ) { + protected static function compute_style_properties( $styles, $settings = array(), $properties = null ) { + if ( null === $properties ) { + $properties = static::PROPERTIES_METADATA; + } + $declarations = array(); if ( empty( $styles ) ) { return $declarations; } foreach ( $properties as $css_property => $value_path ) { - $value = self::get_property_value( $styles, $value_path ); + $value = static::get_property_value( $styles, $value_path ); // Look up protected properties, keyed by value path. // Skip protected properties that are explicitly set to `null`. if ( is_array( $value_path ) ) { $path_string = implode( '.', $value_path ); if ( - array_key_exists( $path_string, self::PROTECTED_PROPERTIES ) && - _wp_array_get( $settings, self::PROTECTED_PROPERTIES[ $path_string ], null ) === null + array_key_exists( $path_string, static::PROTECTED_PROPERTIES ) && + _wp_array_get( $settings, static::PROTECTED_PROPERTIES[ $path_string ], null ) === null ) { continue; } @@ -1336,7 +1348,7 @@ private static function compute_style_properties( $styles, $settings = array(), * @param array $path Which property to process. * @return string|array Style property value. */ - private static function get_property_value( $styles, $path ) { + protected static function get_property_value( $styles, $path ) { $value = _wp_array_get( $styles, $path, '' ); if ( '' === $value || is_array( $value ) ) { @@ -1379,7 +1391,7 @@ private static function get_property_value( $styles, $path ) { * @param array $selectors List of selectors per block. * @return array */ - private static function get_setting_nodes( $theme_json, $selectors = array() ) { + protected static function get_setting_nodes( $theme_json, $selectors = array() ) { $nodes = array(); if ( ! isset( $theme_json['settings'] ) ) { return $nodes; @@ -1388,7 +1400,7 @@ private static function get_setting_nodes( $theme_json, $selectors = array() ) { // Top-level. $nodes[] = array( 'path' => array( 'settings' ), - 'selector' => self::ROOT_BLOCK_SELECTOR, + 'selector' => static::ROOT_BLOCK_SELECTOR, ); // Calculate paths for blocks. @@ -1433,7 +1445,7 @@ private static function get_setting_nodes( $theme_json, $selectors = array() ) { * @param array $selectors List of selectors per block. * @return array */ - private static function get_style_nodes( $theme_json, $selectors = array() ) { + protected static function get_style_nodes( $theme_json, $selectors = array() ) { $nodes = array(); if ( ! isset( $theme_json['styles'] ) ) { return $nodes; @@ -1442,14 +1454,14 @@ private static function get_style_nodes( $theme_json, $selectors = array() ) { // Top-level. $nodes[] = array( 'path' => array( 'styles' ), - 'selector' => self::ROOT_BLOCK_SELECTOR, + 'selector' => static::ROOT_BLOCK_SELECTOR, ); if ( isset( $theme_json['styles']['elements'] ) ) { foreach ( $theme_json['styles']['elements'] as $element => $node ) { $nodes[] = array( 'path' => array( 'styles', 'elements', $element ), - 'selector' => self::ELEMENTS[ $element ], + 'selector' => static::ELEMENTS[ $element ], ); } } @@ -1523,10 +1535,10 @@ public function merge( $incoming ) { * with the equivalent dfefault presets: if a slug is present as a default * we remove it from the theme presets. */ - $nodes = self::get_setting_nodes( $incoming_data ); - $slugs_global = self::get_default_slugs( $this->theme_json, array( 'settings' ) ); + $nodes = static::get_setting_nodes( $incoming_data ); + $slugs_global = static::get_default_slugs( $this->theme_json, array( 'settings' ) ); foreach ( $nodes as $node ) { - $slugs_node = self::get_default_slugs( $this->theme_json, $node['path'] ); + $slugs_node = static::get_default_slugs( $this->theme_json, $node['path'] ); $slugs = array_merge_recursive( $slugs_global, $slugs_node ); // Replace the spacing.units. @@ -1537,10 +1549,10 @@ public function merge( $incoming ) { } // Replace the presets. - foreach ( self::PRESETS_METADATA as $preset ) { - $override_preset = self::should_override_preset( $this->theme_json, $node['path'], $preset['override'] ); + foreach ( static::PRESETS_METADATA as $preset ) { + $override_preset = static::should_override_preset( $this->theme_json, $node['path'], $preset['override'] ); - foreach ( self::VALID_ORIGINS as $origin ) { + foreach ( static::VALID_ORIGINS as $origin ) { $base_path = array_merge( $node['path'], $preset['path'] ); $path = array_merge( $base_path, array( $origin ) ); $content = _wp_array_get( $incoming_data, $path, null ); @@ -1551,7 +1563,7 @@ public function merge( $incoming ) { if ( 'theme' === $origin && $preset['use_default_names'] ) { foreach ( $content as &$item ) { if ( ! array_key_exists( 'name', $item ) ) { - $name = self::get_name_from_defaults( $item['slug'], $base_path ); + $name = static::get_name_from_defaults( $item['slug'], $base_path ); if ( null !== $name ) { $item['name'] = $name; } @@ -1566,7 +1578,7 @@ public function merge( $incoming ) { _wp_array_set( $this->theme_json, $path, $content ); } else { $slugs_for_preset = _wp_array_get( $slugs, $preset['path'], array() ); - $content = self::filter_slugs( $content, $slugs_for_preset ); + $content = static::filter_slugs( $content, $slugs_for_preset ); _wp_array_set( $this->theme_json, $path, $content ); } } @@ -1575,7 +1587,41 @@ public function merge( $incoming ) { } /** - * Returns whether a presets should be overriden or not. + * Converts all filter (duotone) presets into SVGs. + * + * @since 5.9.1 + * + * @param array $origins List of origins to process. + * @return string SVG filters. + */ + public function get_svg_filters( $origins ) { + $blocks_metadata = static::get_blocks_metadata(); + $setting_nodes = static::get_setting_nodes( $this->theme_json, $blocks_metadata ); + + $filters = ''; + foreach ( $setting_nodes as $metadata ) { + $node = _wp_array_get( $this->theme_json, $metadata['path'], array() ); + if ( empty( $node['color']['duotone'] ) ) { + continue; + } + + $duotone_presets = $node['color']['duotone']; + + foreach ( $origins as $origin ) { + if ( ! isset( $duotone_presets[ $origin ] ) ) { + continue; + } + foreach ( $duotone_presets[ $origin ] as $duotone_preset ) { + $filters .= wp_get_duotone_filter_svg( $duotone_preset ); + } + } + } + + return $filters; + } + + /** + * Returns whether a presets should be overridden or not. * * @since 5.9.0 * @@ -1584,7 +1630,7 @@ public function merge( $incoming ) { * @param bool|array $override Data to compute whether to override the preset. * @return boolean */ - private static function should_override_preset( $theme_json, $path, $override ) { + protected static function should_override_preset( $theme_json, $path, $override ) { if ( is_bool( $override ) ) { return $override; } @@ -1593,8 +1639,8 @@ private static function should_override_preset( $theme_json, $path, $override ) * The relationship between whether to override the defaults * and whether the defaults are enabled is inverse: * - * - If defaults are enabled => theme presets should not be overriden - * - If defaults are disabled => theme presets should be overriden + * - If defaults are enabled => theme presets should not be overridden + * - If defaults are disabled => theme presets should be overridden * * For example, a theme sets defaultPalette to false, * making the default palette hidden from the user. @@ -1636,10 +1682,10 @@ private static function should_override_preset( $theme_json, $path, $override ) * @param array $node_path The path to inspect. It's 'settings' by default. * @return array */ - private static function get_default_slugs( $data, $node_path ) { + protected static function get_default_slugs( $data, $node_path ) { $slugs = array(); - foreach ( self::PRESETS_METADATA as $metadata ) { + foreach ( static::PRESETS_METADATA as $metadata ) { $path = array_merge( $node_path, $metadata['path'], array( 'default' ) ); $preset = _wp_array_get( $data, $path, null ); if ( ! isset( $preset ) ) { @@ -1668,7 +1714,7 @@ static function( $value ) { * @param array $base_path The path to inspect. It's 'settings' by default. * @return string|null */ - private function get_name_from_defaults( $slug, $base_path ) { + protected function get_name_from_defaults( $slug, $base_path ) { $path = array_merge( $base_path, array( 'default' ) ); $default_content = _wp_array_get( $this->theme_json, $path, null ); if ( ! $default_content ) { @@ -1688,10 +1734,10 @@ private function get_name_from_defaults( $slug, $base_path ) { * @since 5.9.0 * * @param array $node The node with the presets to validate. - * @param array $slugs The slugs that should not be overriden. + * @param array $slugs The slugs that should not be overridden. * @return array The new node. */ - private static function filter_slugs( $node, $slugs ) { + protected static function filter_slugs( $node, $slugs ) { if ( empty( $slugs ) ) { return $node; } @@ -1719,32 +1765,32 @@ public static function remove_insecure_properties( $theme_json ) { $theme_json = WP_Theme_JSON_Schema::migrate( $theme_json ); - $valid_block_names = array_keys( self::get_blocks_metadata() ); - $valid_element_names = array_keys( self::ELEMENTS ); - $theme_json = self::sanitize( $theme_json, $valid_block_names, $valid_element_names ); + $valid_block_names = array_keys( static::get_blocks_metadata() ); + $valid_element_names = array_keys( static::ELEMENTS ); + $theme_json = static::sanitize( $theme_json, $valid_block_names, $valid_element_names ); - $blocks_metadata = self::get_blocks_metadata(); - $style_nodes = self::get_style_nodes( $theme_json, $blocks_metadata ); + $blocks_metadata = static::get_blocks_metadata(); + $style_nodes = static::get_style_nodes( $theme_json, $blocks_metadata ); foreach ( $style_nodes as $metadata ) { $input = _wp_array_get( $theme_json, $metadata['path'], array() ); if ( empty( $input ) ) { continue; } - $output = self::remove_insecure_styles( $input ); + $output = static::remove_insecure_styles( $input ); if ( ! empty( $output ) ) { _wp_array_set( $sanitized, $metadata['path'], $output ); } } - $setting_nodes = self::get_setting_nodes( $theme_json ); + $setting_nodes = static::get_setting_nodes( $theme_json ); foreach ( $setting_nodes as $metadata ) { $input = _wp_array_get( $theme_json, $metadata['path'], array() ); if ( empty( $input ) ) { continue; } - $output = self::remove_insecure_settings( $input ); + $output = static::remove_insecure_settings( $input ); if ( ! empty( $output ) ) { _wp_array_set( $sanitized, $metadata['path'], $output ); } @@ -1774,10 +1820,10 @@ public static function remove_insecure_properties( $theme_json ) { * @param array $input Node to process. * @return array */ - private static function remove_insecure_settings( $input ) { + protected static function remove_insecure_settings( $input ) { $output = array(); - foreach ( self::PRESETS_METADATA as $preset_metadata ) { - foreach ( self::VALID_ORIGINS as $origin ) { + foreach ( static::PRESETS_METADATA as $preset_metadata ) { + foreach ( static::VALID_ORIGINS as $origin ) { $path_with_origin = array_merge( $preset_metadata['path'], array( $origin ) ); $presets = _wp_array_get( $input, $path_with_origin, null ); if ( null === $presets ) { @@ -1791,7 +1837,7 @@ private static function remove_insecure_settings( $input ) { sanitize_html_class( $preset['slug'] ) === $preset['slug'] ) { $value = null; - if ( isset( $preset_metadata['value_key'] ) ) { + if ( isset( $preset_metadata['value_key'], $preset[ $preset_metadata['value_key'] ] ) ) { $value = $preset[ $preset_metadata['value_key'] ]; } elseif ( isset( $preset_metadata['value_func'] ) && @@ -1802,7 +1848,7 @@ private static function remove_insecure_settings( $input ) { $preset_is_valid = true; foreach ( $preset_metadata['properties'] as $property ) { - if ( ! self::is_safe_css_declaration( $property, $value ) ) { + if ( ! static::is_safe_css_declaration( $property, $value ) ) { $preset_is_valid = false; break; } @@ -1831,13 +1877,13 @@ private static function remove_insecure_settings( $input ) { * @param array $input Node to process. * @return array */ - private static function remove_insecure_styles( $input ) { + protected static function remove_insecure_styles( $input ) { $output = array(); - $declarations = self::compute_style_properties( $input ); + $declarations = static::compute_style_properties( $input ); foreach ( $declarations as $declaration ) { - if ( self::is_safe_css_declaration( $declaration['name'], $declaration['value'] ) ) { - $path = self::PROPERTIES_METADATA[ $declaration['name'] ]; + if ( static::is_safe_css_declaration( $declaration['name'], $declaration['value'] ) ) { + $path = static::PROPERTIES_METADATA[ $declaration['name'] ]; // Check the value isn't an array before adding so as to not // double up shorthand and longhand styles. @@ -1859,7 +1905,7 @@ private static function remove_insecure_styles( $input ) { * @param string $property_value Value in a CSS declaration, i.e. the `red` in `color: red`. * @return bool */ - private static function is_safe_css_declaration( $property_name, $property_value ) { + protected static function is_safe_css_declaration( $property_name, $property_value ) { $style_to_validate = $property_name . ': ' . $property_value; $filtered = esc_html( safecss_filter_attr( $style_to_validate ) ); return ! empty( trim( $filtered ) ); @@ -1887,7 +1933,7 @@ public function get_raw_data() { */ public static function get_from_editor_settings( $settings ) { $theme_settings = array( - 'version' => self::LATEST_SCHEMA, + 'version' => static::LATEST_SCHEMA, 'settings' => array(), ); diff --git a/src/wp-includes/class-wp-theme.php b/src/wp-includes/class-wp-theme.php index 4a36addfbf6f4..609f7a91d51bb 100644 --- a/src/wp-includes/class-wp-theme.php +++ b/src/wp-includes/class-wp-theme.php @@ -704,6 +704,28 @@ public function parent() { return isset( $this->parent ) ? $this->parent : false; } + /** + * Perform reinitialization tasks. + * + * Prevents a callback from being injected during unserialization of an object. + * + * @return void + */ + public function __wakeup() { + if ( $this->parent && ! $this->parent instanceof self ) { + throw new UnexpectedValueException(); + } + if ( $this->headers && ! is_array( $this->headers ) ) { + throw new UnexpectedValueException(); + } + foreach ( $this->headers as $value ) { + if ( ! is_string( $value ) ) { + throw new UnexpectedValueException(); + } + } + $this->headers_sanitized = array(); + } + /** * Adds theme data to cache. * @@ -1763,4 +1785,16 @@ private static function _name_sort( $a, $b ) { private static function _name_sort_i18n( $a, $b ) { return strnatcasecmp( $a->name_translated, $b->name_translated ); } + + private static function _check_headers_property_has_correct_type( $headers ) { + if ( ! is_array( $headers ) ) { + return false; + } + foreach ( $headers as $key => $value ) { + if ( ! is_string( $key ) || ! is_string( $value ) ) { + return false; + } + } + return true; + } } diff --git a/src/wp-includes/comment.php b/src/wp-includes/comment.php index be1fda4e7f257..d9ed824840746 100644 --- a/src/wp-includes/comment.php +++ b/src/wp-includes/comment.php @@ -2486,6 +2486,15 @@ function wp_update_comment( $commentarr, $wp_error = false ) { } } + $filter_comment = false; + if ( ! has_filter( 'pre_comment_content', 'wp_filter_kses' ) ) { + $filter_comment = ! user_can( isset( $comment['user_id'] ) ? $comment['user_id'] : 0, 'unfiltered_html' ); + } + + if ( $filter_comment ) { + add_filter( 'pre_comment_content', 'wp_filter_kses' ); + } + // Escape data pulled from DB. $comment = wp_slash( $comment ); @@ -2496,6 +2505,10 @@ function wp_update_comment( $commentarr, $wp_error = false ) { $commentarr = wp_filter_comment( $commentarr ); + if ( $filter_comment ) { + remove_filter( 'pre_comment_content', 'wp_filter_kses' ); + } + // Now extract the merged array. $data = wp_unslash( $commentarr ); diff --git a/src/wp-includes/customize/class-wp-customize-header-image-control.php b/src/wp-includes/customize/class-wp-customize-header-image-control.php index 82c171426151e..701b9ea1028bf 100644 --- a/src/wp-includes/customize/class-wp-customize-header-image-control.php +++ b/src/wp-includes/customize/class-wp-customize-header-image-control.php @@ -130,10 +130,10 @@ public function print_header_image_template() { <# } else { #> <# if ( data.type === 'uploaded' ) { #> @@ -158,7 +158,7 @@ public function print_header_image_template() { <# } else { #> - {{{data.header.alt_text || data.header.description}}} + {{data.header.alt_text || data.header.description}} <# } #> <# } else { #> diff --git a/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php b/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php index 8e35e32238973..5f530b5bdfbd9 100644 --- a/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php +++ b/src/wp-includes/customize/class-wp-customize-nav-menu-item-setting.php @@ -56,7 +56,6 @@ class WP_Customize_Nav_Menu_Item_Setting extends WP_Customize_Setting { 'classes' => '', 'xfn' => '', 'status' => 'publish', - 'original_title' => '', 'nav_menu_term_id' => 0, // This will be supplied as the $menu_id arg for wp_update_nav_menu_item(). '_invalid' => false, ); @@ -211,6 +210,7 @@ public function flush_cached_value( $menu_id, $menu_item_id ) { * @return array|false Instance data array, or false if the item is marked for deletion. */ public function value() { + $type_label = null; if ( $this->is_previewed && get_current_blog_id() === $this->_previewed_blog_id ) { $undefined = new stdClass(); // Symbol. $post_value = $this->post_value( $undefined ); @@ -220,9 +220,6 @@ public function value() { } else { $value = $post_value; } - if ( ! empty( $value ) && empty( $value['original_title'] ) ) { - $value['original_title'] = $this->get_original_title( (object) $value ); - } } elseif ( isset( $this->value ) ) { $value = $this->value; } else { @@ -234,6 +231,9 @@ public function value() { if ( $post && self::POST_TYPE === $post->post_type ) { $is_title_empty = empty( $post->post_title ); $value = (array) wp_setup_nav_menu_item( $post ); + if ( isset( $value['type_label'] ) ) { + $type_label = $value['type_label']; + } if ( $is_title_empty ) { $value['title'] = ''; } @@ -250,20 +250,39 @@ public function value() { $value = $this->value; } - if ( ! empty( $value ) && empty( $value['type_label'] ) ) { - $value['type_label'] = $this->get_type_label( (object) $value ); + // These properties are read-only and are part of the setting for use in the Customizer UI. + if ( is_array( $value ) ) { + $value_obj = (object) $value; + $value['type_label'] = isset( $type_label ) ? $type_label : $this->get_type_label( $value_obj ); + $value['original_title'] = $this->get_original_title( $value_obj ); } return $value; } + /** + * Prepares the value for editing on the client. + * + * @since 6.8.3 + * + * @return array|false Value prepared for the client. + */ + public function js_value() { + $value = parent::js_value(); + if ( is_array( $value ) && isset( $value['original_title'] ) ) { + // Decode entities for the sake of displaying the original title as a placeholder. + $value['original_title'] = html_entity_decode( $value['original_title'], ENT_QUOTES, get_bloginfo( 'charset' ) ); + } + return $value; + } + /** * Get original title. * * @since 4.7.0 * * @param object $item Nav menu item. - * @return string The original title. + * @return string The original title, without entity decoding. */ protected function get_original_title( $item ) { $original_title = ''; @@ -289,7 +308,6 @@ protected function get_original_title( $item ) { $original_title = $original_object->labels->archives; } } - $original_title = html_entity_decode( $original_title, ENT_QUOTES, get_bloginfo( 'charset' ) ); return $original_title; } @@ -347,10 +365,6 @@ protected function populate_value() { unset( $this->value['post_status'] ); } - if ( ! isset( $this->value['original_title'] ) ) { - $this->value['original_title'] = $this->get_original_title( (object) $this->value ); - } - if ( ! isset( $this->value['nav_menu_term_id'] ) && $this->post_id > 0 ) { $menus = wp_get_post_terms( $this->post_id, @@ -595,11 +609,8 @@ public function value_as_wp_post_nav_menu_item() { $item->menu_order = $item->position; unset( $item->position ); - if ( empty( $item->original_title ) ) { - $item->original_title = $this->get_original_title( $item ); - } if ( empty( $item->title ) && ! empty( $item->original_title ) ) { - $item->title = $item->original_title; + $item->title = $item->original_title; // This is NOT entity-decoded. It comes from self::get_original_title(). } if ( $item->title ) { $item->post_title = $item->title; @@ -655,7 +666,7 @@ public function value_as_wp_post_nav_menu_item() { * @since 4.3.0 * @since 5.9.0 Renamed `$menu_item_value` to `$value` for PHP 8 named parameter support. * - * @param array $value The menu item value to sanitize. + * @param array|false $value The menu item value to sanitize. * @return array|false|null|WP_Error Null or WP_Error if an input isn't valid. False if it is marked for deletion. * Otherwise the sanitized value. */ @@ -712,8 +723,6 @@ public function sanitize( $value ) { $menu_item_value[ $key ] = implode( ' ', array_map( 'sanitize_html_class', $value ) ); } - $menu_item_value['original_title'] = sanitize_text_field( $menu_item_value['original_title'] ); - // Apply the same filters as when calling wp_insert_post(). /** This filter is documented in wp-includes/post.php */ diff --git a/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php b/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php index c0d098bc7df4c..18328e5d3f013 100644 --- a/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php +++ b/src/wp-includes/customize/class-wp-customize-nav-menus-panel.php @@ -98,4 +98,27 @@ protected function content_template() {
    • <?php esc_attr_e( 'Preview as a browser icon' ); ?> - + <?php esc_attr_e( 'Preview as an app icon' ); ?> diff --git a/src/wp-includes/default-filters.php b/src/wp-includes/default-filters.php index d9663946d623f..182f94eddf5ed 100644 --- a/src/wp-includes/default-filters.php +++ b/src/wp-includes/default-filters.php @@ -332,8 +332,6 @@ add_action( 'template_redirect', 'wp_shortlink_header', 11, 0 ); add_action( 'wp_print_footer_scripts', '_wp_footer_scripts' ); add_action( 'init', '_register_core_block_patterns_and_categories' ); -add_action( 'current_screen', '_load_remote_block_patterns' ); -add_action( 'current_screen', '_load_remote_featured_patterns' ); add_action( 'init', 'check_theme_switched', 99 ); add_action( 'init', array( 'WP_Block_Supports', 'init' ), 22 ); add_action( 'switch_theme', array( 'WP_Theme_JSON_Resolver', 'clean_cached_data' ) ); @@ -576,6 +574,10 @@ add_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' ); add_action( 'wp_footer', 'wp_enqueue_global_styles', 1 ); +// SVG filters like duotone have to be loaded at the beginning of the body in both admin and the front-end. +add_action( 'wp_body_open', 'wp_global_styles_render_svg_filters' ); +add_action( 'in_admin_header', 'wp_global_styles_render_svg_filters' ); + add_action( 'wp_default_styles', 'wp_default_styles' ); add_filter( 'style_loader_src', 'wp_style_loader_src', 10, 2 ); diff --git a/src/wp-includes/deprecated.php b/src/wp-includes/deprecated.php index 7f29f9dcb6330..295d12bac9d7b 100644 --- a/src/wp-includes/deprecated.php +++ b/src/wp-includes/deprecated.php @@ -4208,3 +4208,38 @@ function _excerpt_render_inner_columns_blocks( $columns, $allowed_blocks ) { _deprecated_function( __FUNCTION__, '5.8.0', '_excerpt_render_inner_blocks()' ); return _excerpt_render_inner_blocks( $columns, $allowed_blocks ); } + +/** + * Renders the duotone filter SVG and returns the CSS filter property to + * reference the rendered SVG. + * + * @since 5.9.0 + * @deprecated 5.9.1 Use `wp_get_duotone_filter_property` introduced in 5.9.1. + * + * @see wp_get_duotone_filter_property() + * + * @param array $preset Duotone preset value as seen in theme.json. + * @return string Duotone CSS filter property. + */ +function wp_render_duotone_filter_preset( $preset ) { + _deprecated_function( __FUNCTION__, '5.9.1', 'wp_get_duotone_filter_property()' ); + return wp_get_duotone_filter_property( $preset ); +} + +/** + * Filter the SQL clauses of an attachment query to include filenames. + * + * @since 4.7.0 + * @deprecated 6.0.3 + * @access private + * + * @param array $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY, + * DISTINCT, fields (SELECT), and LIMITS clauses. + * @return array The unmodified clauses. + */ +function _filter_query_attachment_filenames( $clauses ) { + _deprecated_function( __FUNCTION__, '6.0.3', 'add_filter( "wp_allow_query_attachment_by_filename", "__return_true" )'); + remove_filter( 'posts_clauses', __FUNCTION__ ); + return $clauses; +} + diff --git a/src/wp-includes/formatting.php b/src/wp-includes/formatting.php index 905b07b59897f..4b2b72895ea48 100644 --- a/src/wp-includes/formatting.php +++ b/src/wp-includes/formatting.php @@ -1138,12 +1138,14 @@ function wp_check_invalid_utf8( $string, $strip = false ) { * Encode the Unicode values to be used in the URI. * * @since 1.5.0 + * @since 5.8.3 Added the `encode_ascii_characters` parameter. * - * @param string $utf8_string - * @param int $length Max length of the string + * @param string $utf8_string String to encode. + * @param int $length Max length of the string + * @param bool $encode_ascii_characters Whether to encode ascii characters such as < " ' * @return string String with Unicode encoded for URI. */ -function utf8_uri_encode( $utf8_string, $length = 0 ) { +function utf8_uri_encode( $utf8_string, $length = 0, $encode_ascii_characters = false ) { $unicode = ''; $values = array(); $num_octets = 1; @@ -1158,11 +1160,14 @@ function utf8_uri_encode( $utf8_string, $length = 0 ) { $value = ord( $utf8_string[ $i ] ); if ( $value < 128 ) { - if ( $length && ( $unicode_length >= $length ) ) { + $char = chr( $value ); + $encoded_char = $encode_ascii_characters ? rawurlencode( $char ) : $char; + $encoded_char_length = strlen( $encoded_char ); + if ( $length && ( $unicode_length + $encoded_char_length ) > $length ) { break; } - $unicode .= chr( $value ); - $unicode_length++; + $unicode .= $encoded_char; + $unicode_length += $encoded_char_length; } else { if ( count( $values ) == 0 ) { if ( $value < 224 ) { @@ -2403,6 +2408,29 @@ function sanitize_html_class( $class, $fallback = '' ) { return apply_filters( 'sanitize_html_class', $sanitized, $class, $fallback ); } +/** + * Strips out all characters not allowed in a locale name. + * + * @since 6.2.1 + * + * @param string $locale_name The locale name to be sanitized. + * @return string The sanitized value. + */ +function sanitize_locale_name( $locale_name ) { + // Limit to A-Z, a-z, 0-9, '_', '-'. + $sanitized = preg_replace( '/[^A-Za-z0-9_-]/', '', $locale_name ); + + /** + * Filters a sanitized locale name string. + * + * @since 6.2.1 + * + * @param string $sanitized The sanitized locale name. + * @param string $locale_name The locale name before sanitization. + */ + return apply_filters( 'sanitize_locale_name', $sanitized, $locale_name ); +} + /** * Converts lone & characters into `&` (a.k.a. `&`) * @@ -4656,12 +4684,13 @@ static function( $matches ) { * Escape an HTML tag name. * * @since 2.5.0 + * @since 6.5.5 Allow hyphens in tag names (i.e. custom elements). * * @param string $tag_name * @return string */ function tag_escape( $tag_name ) { - $safe_tag = strtolower( preg_replace( '/[^a-zA-Z0-9_:]/', '', $tag_name ) ); + $safe_tag = strtolower( preg_replace( '/[^a-zA-Z0-9-_:]/', '', $tag_name ) ); /** * Filters a string cleaned and escaped for output as an HTML tag. * diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php index 4666f980c7b6a..0d75cb78386c0 100644 --- a/src/wp-includes/functions.php +++ b/src/wp-includes/functions.php @@ -3528,10 +3528,12 @@ function wp_nonce_ays( $action ) { } else { $html = __( 'The link you followed has expired.' ); if ( wp_get_referer() ) { + $wp_http_referer = remove_query_arg( 'updated', wp_get_referer() ); + $wp_http_referer = wp_validate_redirect( esc_url_raw( $wp_http_referer ) ); $html .= '

      '; $html .= sprintf( '%s', - esc_url( remove_query_arg( 'updated', wp_get_referer() ) ), + esc_url( $wp_http_referer ), __( 'Please try again.' ) ); } @@ -5185,6 +5187,7 @@ function wp_maybe_load_widgets() { * Append the Widgets menu to the themes main menu. * * @since 2.2.0 + * @since 5.9.3 Don't specify menu order when the active theme is a block theme. * * @global array $submenu */ @@ -5195,7 +5198,13 @@ function wp_widgets_add_menu() { return; } - $submenu['themes.php'][7] = array( __( 'Widgets' ), 'edit_theme_options', 'widgets.php' ); + $menu_name = __( 'Widgets' ); + if ( wp_is_block_theme() ) { + $submenu['themes.php'][] = array( $menu_name, 'edit_theme_options', 'widgets.php' ); + } else { + $submenu['themes.php'][7] = array( $menu_name, 'edit_theme_options', 'widgets.php' ); + } + ksort( $submenu['themes.php'], SORT_NUMERIC ); } @@ -5895,6 +5904,9 @@ function validate_file( $file, $allowed_files = array() ) { return 0; } + // Normalize path for Windows servers + $file = wp_normalize_path( $file ); + // `../` on its own is not allowed: if ( '../' === $file ) { return 1; @@ -8342,11 +8354,18 @@ function clean_dirsize_cache( $path ) { * * @since 5.2.0 * + * @global string $wp_version WordPress version. + * * @param string $required Minimum required WordPress version. * @return bool True if required version is compatible or empty, false if not. */ function is_wp_version_compatible( $required ) { - return empty( $required ) || version_compare( get_bloginfo( 'version' ), $required, '>=' ); + global $wp_version; + + // Strip off any -alpha, -RC, -beta, -src suffixes. + list( $version ) = explode( '-', $wp_version ); + + return empty( $required ) || version_compare( $version, $required, '>=' ); } /** diff --git a/src/wp-includes/global-styles-and-settings.php b/src/wp-includes/global-styles-and-settings.php index 9db95a3e95129..efc2edcaaa354 100644 --- a/src/wp-includes/global-styles-and-settings.php +++ b/src/wp-includes/global-styles-and-settings.php @@ -103,26 +103,44 @@ function wp_get_global_stylesheet( $types = array() ) { } } + $tree = WP_Theme_JSON_Resolver::get_merged_data(); + $supports_theme_json = WP_Theme_JSON_Resolver::theme_has_support(); - $supports_link_color = get_theme_support( 'experimental-link-color' ); if ( empty( $types ) && ! $supports_theme_json ) { $types = array( 'variables', 'presets' ); } elseif ( empty( $types ) ) { $types = array( 'variables', 'styles', 'presets' ); } - $origins = array( 'default', 'theme', 'custom' ); - if ( ! $supports_theme_json && ! $supports_link_color ) { - // In this case we only enqueue the core presets (CSS Custom Properties + the classes). - $origins = array( 'default' ); - } elseif ( ! $supports_theme_json && $supports_link_color ) { - // For the legacy link color feature to work, the CSS Custom Properties - // should be in scope (either the core or the theme ones). - $origins = array( 'default', 'theme' ); + /* + * If variables are part of the stylesheet, + * we add them for all origins (default, theme, user). + * This is so themes without a theme.json still work as before 5.9: + * they can override the default presets. + * See https://core.trac.wordpress.org/ticket/54782 + */ + $styles_variables = ''; + if ( in_array( 'variables', $types, true ) ) { + $styles_variables = $tree->get_stylesheet( array( 'variables' ) ); + $types = array_diff( $types, array( 'variables' ) ); + } + + /* + * For the remaining types (presets, styles), we do consider origins: + * + * - themes without theme.json: only the classes for the presets defined by core + * - themes with theme.json: the presets and styles classes, both from core and the theme + */ + $styles_rest = ''; + if ( ! empty( $types ) ) { + $origins = array( 'default', 'theme', 'custom' ); + if ( ! $supports_theme_json ) { + $origins = array( 'default' ); + } + $styles_rest = $tree->get_stylesheet( $types, $origins ); } - $tree = WP_Theme_JSON_Resolver::get_merged_data(); - $stylesheet = $tree->get_stylesheet( $types, $origins ); + $stylesheet = $styles_variables . $styles_rest; if ( $can_use_cached ) { // Cache for a minute. @@ -132,3 +150,45 @@ function wp_get_global_stylesheet( $types = array() ) { return $stylesheet; } + +/** + * Returns a string containing the SVGs to be referenced as filters (duotone). + * + * @since 5.9.1 + * + * @return string + */ +function wp_get_global_styles_svg_filters() { + // Return cached value if it can be used and exists. + // It's cached by theme to make sure that theme switching clears the cache. + $can_use_cached = ( + ( ! defined( 'WP_DEBUG' ) || ! WP_DEBUG ) && + ( ! defined( 'SCRIPT_DEBUG' ) || ! SCRIPT_DEBUG ) && + ( ! defined( 'REST_REQUEST' ) || ! REST_REQUEST ) && + ! is_admin() + ); + $transient_name = 'global_styles_svg_filters_' . get_stylesheet(); + if ( $can_use_cached ) { + $cached = get_transient( $transient_name ); + if ( $cached ) { + return $cached; + } + } + + $supports_theme_json = WP_Theme_JSON_Resolver::theme_has_support(); + + $origins = array( 'default', 'theme', 'custom' ); + if ( ! $supports_theme_json ) { + $origins = array( 'default' ); + } + + $tree = WP_Theme_JSON_Resolver::get_merged_data(); + $svgs = $tree->get_svg_filters( $origins ); + + if ( $can_use_cached ) { + // Cache for a minute, same as wp_get_global_stylesheet. + set_transient( $transient_name, $svgs, MINUTE_IN_SECONDS ); + } + + return $svgs; +} diff --git a/src/wp-includes/kses.php b/src/wp-includes/kses.php index 5ad504602bc7d..af22e5a70a04d 100644 --- a/src/wp-includes/kses.php +++ b/src/wp-includes/kses.php @@ -2201,12 +2201,14 @@ function kses_init_filters() { add_filter( 'pre_comment_content', 'wp_filter_kses' ); } + // Global Styles filtering: Global Styles filters should be executed before normal post_kses HTML filters. + add_filter( 'content_save_pre', 'wp_filter_global_styles_post', 9 ); + add_filter( 'content_filtered_save_pre', 'wp_filter_global_styles_post', 9 ); + // Post filtering. add_filter( 'content_save_pre', 'wp_filter_post_kses' ); - add_filter( 'content_save_pre', 'wp_filter_global_styles_post' ); add_filter( 'excerpt_save_pre', 'wp_filter_post_kses' ); add_filter( 'content_filtered_save_pre', 'wp_filter_post_kses' ); - add_filter( 'content_filtered_save_pre', 'wp_filter_global_styles_post' ); } /** @@ -2229,12 +2231,14 @@ function kses_remove_filters() { remove_filter( 'pre_comment_content', 'wp_filter_post_kses' ); remove_filter( 'pre_comment_content', 'wp_filter_kses' ); + // Global Styles filtering. + remove_filter( 'content_save_pre', 'wp_filter_global_styles_post', 9 ); + remove_filter( 'content_filtered_save_pre', 'wp_filter_global_styles_post', 9 ); + // Post filtering. remove_filter( 'content_save_pre', 'wp_filter_post_kses' ); - remove_filter( 'content_save_pre', 'wp_filter_global_styles_post' ); remove_filter( 'excerpt_save_pre', 'wp_filter_post_kses' ); remove_filter( 'content_filtered_save_pre', 'wp_filter_post_kses' ); - remove_filter( 'content_filtered_save_pre', 'wp_filter_global_styles_post' ); } /** @@ -2411,6 +2415,7 @@ function safecss_filter_attr( $css, $deprecated = '' ) { 'direction', 'float', 'list-style-type', + 'object-fit', 'object-position', 'overflow', 'vertical-align', diff --git a/src/wp-includes/l10n.php b/src/wp-includes/l10n.php index 794932a41f690..bb542dc5874c3 100644 --- a/src/wp-includes/l10n.php +++ b/src/wp-includes/l10n.php @@ -147,9 +147,9 @@ function determine_locale() { $wp_lang = ''; if ( ! empty( $_GET['wp_lang'] ) ) { - $wp_lang = sanitize_text_field( $_GET['wp_lang'] ); + $wp_lang = sanitize_locale_name( wp_unslash( $_GET['wp_lang'] ) ); } elseif ( ! empty( $_COOKIE['wp_lang'] ) ) { - $wp_lang = sanitize_text_field( $_COOKIE['wp_lang'] ); + $wp_lang = sanitize_locale_name( wp_unslash( $_COOKIE['wp_lang'] ) ); } if ( ! empty( $wp_lang ) && ! empty( $GLOBALS['pagenow'] ) && 'wp-login.php' === $GLOBALS['pagenow'] ) { diff --git a/src/wp-includes/media-template.php b/src/wp-includes/media-template.php index 6aac196df9d4c..06dc4345c9436 100644 --- a/src/wp-includes/media-template.php +++ b/src/wp-includes/media-template.php @@ -1493,7 +1493,7 @@ function wp_print_media_templates() {

      <?php esc_attr_e( 'Preview as a browser icon' ); ?>
      - + diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php index 0daff31b37010..96a273260c2e9 100644 --- a/src/wp-includes/media.php +++ b/src/wp-includes/media.php @@ -2354,6 +2354,7 @@ function gallery_shortcode( $attr ) { $attachments[ $val->ID ] = $_attachments[ $key ]; } } elseif ( ! empty( $atts['exclude'] ) ) { + $post_parent_id = $id; $attachments = get_children( array( 'post_parent' => $id, @@ -2366,6 +2367,7 @@ function gallery_shortcode( $attr ) { ) ); } else { + $post_parent_id = $id; $attachments = get_children( array( 'post_parent' => $id, @@ -2378,6 +2380,17 @@ function gallery_shortcode( $attr ) { ); } + if ( ! empty( $post_parent_id ) ) { + $post_parent = get_post( $post_parent_id ); + + // terminate the shortcode execution if user cannot read the post or password-protected + if ( + ( ! is_post_publicly_viewable( $post_parent->ID ) && ! current_user_can( 'read_post', $post_parent->ID ) ) + || post_password_required( $post_parent ) ) { + return ''; + } + } + if ( empty( $attachments ) ) { return ''; } @@ -2704,6 +2717,15 @@ function wp_playlist_shortcode( $attr ) { $attachments = get_children( $args ); } + if ( ! empty( $args['post_parent'] ) ) { + $post_parent = get_post( $id ); + + // terminate the shortcode execution if user cannot read the post or password-protected + if ( ! current_user_can( 'read_post', $post_parent->ID ) || post_password_required( $post_parent ) ) { + return ''; + } + } + if ( empty( $attachments ) ) { return ''; } @@ -4388,7 +4410,8 @@ function wp_enqueue_media( $args = array() ) { /** This filter is documented in wp-admin/includes/media.php */ 'captions' => ! apply_filters( 'disable_captions', '' ), 'nonce' => array( - 'sendToEditor' => wp_create_nonce( 'media-send-to-editor' ), + 'sendToEditor' => wp_create_nonce( 'media-send-to-editor' ), + 'setAttachmentThumbnail' => wp_create_nonce( 'set-attachment-thumbnail' ), ), 'post' => array( 'id' => 0, @@ -4779,9 +4802,12 @@ function get_post_galleries( $post, $html = true ) { continue; } - // All blocks nested inside non-Gallery blocks should be in the root array. - if ( $has_inner_blocks && 'core/gallery' !== $block['blockName'] ) { - array_push( $post_blocks, ...$block['innerBlocks'] ); + // Skip non-Gallery blocks. + if ( 'core/gallery' !== $block['blockName'] ) { + // Move inner blocks into the root array before skipping. + if ( $has_inner_blocks ) { + array_push( $post_blocks, ...$block['innerBlocks'] ); + } continue; } diff --git a/src/wp-includes/option.php b/src/wp-includes/option.php index f90e82017e175..d0eb6f9c83197 100644 --- a/src/wp-includes/option.php +++ b/src/wp-includes/option.php @@ -784,7 +784,7 @@ function delete_transient( $transient ) { */ do_action( "delete_transient_{$transient}", $transient ); - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $result = wp_cache_delete( $transient, 'transient' ); } else { $option_timeout = '_transient_timeout_' . $transient; @@ -846,7 +846,7 @@ function get_transient( $transient ) { return $pre; } - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $value = wp_cache_get( $transient, 'transient' ); } else { $transient_option = '_transient_' . $transient; @@ -930,7 +930,7 @@ function set_transient( $transient, $value, $expiration = 0 ) { */ $expiration = apply_filters( "expiration_of_transient_{$transient}", $expiration, $value, $transient ); - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $result = wp_cache_set( $transient, $value, 'transient', $expiration ); } else { $transient_timeout = '_transient_timeout_' . $transient; @@ -1858,7 +1858,7 @@ function delete_site_transient( $transient ) { */ do_action( "delete_site_transient_{$transient}", $transient ); - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $result = wp_cache_delete( $transient, 'site-transient' ); } else { $option_timeout = '_site_transient_timeout_' . $transient; @@ -1922,7 +1922,7 @@ function get_site_transient( $transient ) { return $pre; } - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $value = wp_cache_get( $transient, 'site-transient' ); } else { // Core transients that do not have a timeout. Listed here so querying timeouts can be avoided. @@ -2003,7 +2003,7 @@ function set_site_transient( $transient, $value, $expiration = 0 ) { */ $expiration = apply_filters( "expiration_of_site_transient_{$transient}", $expiration, $value, $transient ); - if ( wp_using_ext_object_cache() ) { + if ( wp_using_ext_object_cache() || wp_installing() ) { $result = wp_cache_set( $transient, $value, 'site-transient', $expiration ); } else { $transient_timeout = '_site_transient_timeout_' . $transient; diff --git a/src/wp-includes/pluggable.php b/src/wp-includes/pluggable.php index ffcd2bdcc383e..109dd0628c0c2 100644 --- a/src/wp-includes/pluggable.php +++ b/src/wp-includes/pluggable.php @@ -91,7 +91,6 @@ function get_userdata( $user_id ) { * * @since 2.8.0 * @since 4.4.0 Added 'ID' as an alias of 'id' for the `$field` parameter. - * @since 5.8.0 Returns the global `$current_user` if it's the user being fetched. * * @global WP_User $current_user The current user object which holds the user data. * @@ -100,18 +99,12 @@ function get_userdata( $user_id ) { * @return WP_User|false WP_User object on success, false on failure. */ function get_user_by( $field, $value ) { - global $current_user; - $userdata = WP_User::get_data_by( $field, $value ); if ( ! $userdata ) { return false; } - if ( $current_user instanceof WP_User && $current_user->ID === (int) $userdata->ID ) { - return $current_user; - } - $user = new WP_User; $user->init( $userdata ); @@ -361,6 +354,8 @@ function wp_mail( $to, $subject, $message, $headers = '', $attachments = array() $phpmailer->clearAttachments(); $phpmailer->clearCustomHeaders(); $phpmailer->clearReplyTos(); + $phpmailer->Body = ''; + $phpmailer->AltBody = ''; // Set "From" name and email. diff --git a/src/wp-includes/post-template.php b/src/wp-includes/post-template.php index dcf272051d510..16c7f7c3089ae 100644 --- a/src/wp-includes/post-template.php +++ b/src/wp-includes/post-template.php @@ -1088,9 +1088,10 @@ function post_custom( $key = '' ) { * * @since 1.2.0 * - * @internal This will probably change at some point... + * @deprecated 6.0.2 Use get_post_meta() to retrieve post meta and render manually. */ function the_meta() { + _deprecated_function( __FUNCTION__, '6.0.2', 'get_post_meta()' ); $keys = get_post_custom_keys(); if ( $keys ) { $li_html = ''; @@ -1106,8 +1107,8 @@ function the_meta() { $html = sprintf( "
    • %s
    • \n", /* translators: %s: Post custom field name. */ - sprintf( _x( '%s:', 'Post custom field name' ), $key ), - $value + esc_html( sprintf( _x( '%s:', 'Post custom field name' ), $key ) ), + esc_html( $value ) ); /** diff --git a/src/wp-includes/post-thumbnail-template.php b/src/wp-includes/post-thumbnail-template.php index 091ffe4811d19..58315bc60ff5d 100644 --- a/src/wp-includes/post-thumbnail-template.php +++ b/src/wp-includes/post-thumbnail-template.php @@ -195,7 +195,7 @@ function get_the_post_thumbnail( $post = null, $size = 'post-thumbnail', $attr = $attr = array( 'loading' => $loading ); } elseif ( is_array( $attr ) && ! array_key_exists( 'loading', $attr ) ) { $attr['loading'] = $loading; - } elseif ( is_string( $attr ) && ! preg_match( '/(^|&)loading=', $attr ) ) { + } elseif ( is_string( $attr ) && ! preg_match( '/(^|&)loading=/', $attr ) ) { $attr .= '&loading=' . $loading; } diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php index 5cc7f66244251..9f3ef3feb9dd3 100644 --- a/src/wp-includes/post.php +++ b/src/wp-includes/post.php @@ -356,7 +356,7 @@ function create_initial_post_types() { 'public' => false, '_builtin' => true, /* internal use only. don't use this when registering your own post type. */ 'has_archive' => false, - 'show_ui' => wp_is_block_theme(), + 'show_ui' => false, 'show_in_menu' => false, 'show_in_rest' => true, 'rewrite' => false, @@ -416,7 +416,7 @@ function create_initial_post_types() { 'public' => false, '_builtin' => true, /* internal use only. don't use this when registering your own post type. */ 'has_archive' => false, - 'show_ui' => wp_is_block_theme(), + 'show_ui' => false, 'show_in_menu' => false, 'show_in_rest' => true, 'rewrite' => false, @@ -503,7 +503,7 @@ function create_initial_post_types() { 'public' => false, '_builtin' => true, /* internal use only. don't use this when registering your own post type. */ 'has_archive' => false, - 'show_ui' => wp_is_block_theme(), + 'show_ui' => true, 'show_in_menu' => false, 'show_in_admin_bar' => false, 'show_in_rest' => true, @@ -520,6 +520,7 @@ function create_initial_post_types() { 'delete_others_posts' => 'edit_theme_options', 'edit_private_posts' => 'edit_theme_options', 'edit_published_posts' => 'edit_theme_options', + 'edit_posts' => 'edit_theme_options', ), 'rest_base' => 'navigation', 'rest_controller_class' => 'WP_REST_Posts_Controller', @@ -5142,7 +5143,7 @@ function _truncate_post_slug( $slug, $length = 200 ) { if ( $decoded_slug === $slug ) { $slug = substr( $slug, 0, $length ); } else { - $slug = utf8_uri_encode( $decoded_slug, $length ); + $slug = utf8_uri_encode( $decoded_slug, $length, true ); } } @@ -7925,36 +7926,6 @@ function wp_add_trashed_suffix_to_post_name_for_post( $post ) { return $post_name; } -/** - * Filters the SQL clauses of an attachment query to include filenames. - * - * @since 4.7.0 - * @access private - * - * @global wpdb $wpdb WordPress database abstraction object. - * - * @param string[] $clauses An array including WHERE, GROUP BY, JOIN, ORDER BY, - * DISTINCT, fields (SELECT), and LIMITS clauses. - * @return string[] The modified array of clauses. - */ -function _filter_query_attachment_filenames( $clauses ) { - global $wpdb; - remove_filter( 'posts_clauses', __FUNCTION__ ); - - // Add a LEFT JOIN of the postmeta table so we don't trample existing JOINs. - $clauses['join'] .= " LEFT JOIN {$wpdb->postmeta} AS sq1 ON ( {$wpdb->posts}.ID = sq1.post_id AND sq1.meta_key = '_wp_attached_file' )"; - - $clauses['groupby'] = "{$wpdb->posts}.ID"; - - $clauses['where'] = preg_replace( - "/\({$wpdb->posts}.post_content (NOT LIKE|LIKE) (\'[^']+\')\)/", - '$0 OR ( sq1.meta_value $1 $2 )', - $clauses['where'] - ); - - return $clauses; -} - /** * Sets the last changed time for the 'posts' cache group. * diff --git a/src/wp-includes/rest-api.php b/src/wp-includes/rest-api.php index a7cd0178b0a42..eae338a739a24 100644 --- a/src/wp-includes/rest-api.php +++ b/src/wp-includes/rest-api.php @@ -1044,6 +1044,7 @@ function rest_cookie_check_errors( $result ) { $result = wp_verify_nonce( $nonce, 'wp_rest' ); if ( ! $result ) { + add_filter( 'rest_send_nocache_headers', '__return_true', 20 ); return new WP_Error( 'rest_cookie_invalid_nonce', __( 'Cookie check failed' ), array( 'status' => 403 ) ); } diff --git a/src/wp-includes/rest-api/class-wp-rest-server.php b/src/wp-includes/rest-api/class-wp-rest-server.php index f7231712c1924..755d54636718c 100644 --- a/src/wp-includes/rest-api/class-wp-rest-server.php +++ b/src/wp-includes/rest-api/class-wp-rest-server.php @@ -330,24 +330,6 @@ public function serve_request( $path = null ) { $this->send_header( 'Access-Control-Allow-Headers', implode( ', ', $allow_headers ) ); - /** - * Filters whether to send nocache headers on a REST API request. - * - * @since 4.4.0 - * - * @param bool $rest_send_nocache_headers Whether to send no-cache headers. - */ - $send_no_cache_headers = apply_filters( 'rest_send_nocache_headers', is_user_logged_in() ); - if ( $send_no_cache_headers ) { - foreach ( wp_get_nocache_headers() as $header => $header_value ) { - if ( empty( $header_value ) ) { - $this->remove_header( $header ); - } else { - $this->send_header( $header, $header_value ); - } - } - } - /** * Filters whether the REST API is enabled. * @@ -402,10 +384,12 @@ public function serve_request( $path = null ) { * $_GET['_method']. If that is not set, we check for the HTTP_X_HTTP_METHOD_OVERRIDE * header. */ + $method_overridden = false; if ( isset( $_GET['_method'] ) ) { $request->set_method( $_GET['_method'] ); } elseif ( isset( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ) ) { $request->set_method( $_SERVER['HTTP_X_HTTP_METHOD_OVERRIDE'] ); + $method_overridden = true; } $result = $this->check_authentication(); @@ -464,6 +448,28 @@ public function serve_request( $path = null ) { */ $served = apply_filters( 'rest_pre_serve_request', false, $result, $request, $this ); + /** + * Filters whether to send nocache headers on a REST API request. + * + * @since 4.4.0 + * @since 6.x.x Moved the block to catch the filter added on rest_cookie_check_errors() from rest-api.php + * + * @param bool $rest_send_nocache_headers Whether to send no-cache headers. + */ + $send_no_cache_headers = apply_filters( 'rest_send_nocache_headers', is_user_logged_in() ); + + // send no cache headers if the $send_no_cache_headers is true + // OR if the HTTP_X_HTTP_METHOD_OVERRIDE is used but resulted a 4xx response code. + if ( $send_no_cache_headers || ( true === $method_overridden && strpos( $code, '4' ) === 0 ) ) { + foreach ( wp_get_nocache_headers() as $header => $header_value ) { + if ( empty( $header_value ) ) { + $this->remove_header( $header ); + } else { + $this->send_header( $header, $header_value ); + } + } + } + if ( ! $served ) { if ( 'HEAD' === $request->get_method() ) { return null; diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php index 423347a721a07..ff3c1dc42ffa5 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-attachments-controller.php @@ -97,7 +97,7 @@ protected function prepare_items_query( $prepared_args = array(), $request = nul // Filter query clauses to include filenames. if ( isset( $query_args['s'] ) ) { - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); } return $query_args; diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php index d9ff86e1fa9d4..e6771ff851cf3 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-global-styles-controller.php @@ -563,7 +563,10 @@ public function get_theme_item( $request ) { } if ( rest_is_field_included( 'styles', $fields ) ) { - $data['styles'] = $theme->get_raw_data()['styles']; + $raw_data = $theme->get_raw_data(); + if ( isset( $raw_data['styles'] ) ) { + $data['styles'] = $raw_data['styles']; + } } $context = ! empty( $request['context'] ) ? $request['context'] : 'view'; diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php index 57ddc380789cd..f25be71bef921 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-menu-items-controller.php @@ -816,7 +816,7 @@ public function get_item_schema() { ); $schema['properties']['object'] = array( - 'description' => __( 'The type of object originally represented, such as "category," "post", or "attachment."' ), + 'description' => __( 'The type of object originally represented, such as "category", "post", or "attachment".' ), 'context' => array( 'view', 'edit', 'embed' ), 'type' => 'string', 'arg_options' => array( diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php index 186387d8c03cc..4b4ae1819246d 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-pattern-directory-controller.php @@ -213,7 +213,7 @@ public function prepare_item_for_response( $item, $request ) { 'title' => sanitize_text_field( $raw_pattern->title->rendered ), 'content' => wp_kses_post( $raw_pattern->pattern_content ), 'categories' => array_map( 'sanitize_title', $raw_pattern->category_slugs ), - 'keywords' => array_map( 'sanitize_title', $raw_pattern->keyword_slugs ), + 'keywords' => array_map( 'sanitize_text_field', explode( ',', $raw_pattern->meta->wpop_keywords ) ), 'description' => sanitize_text_field( $raw_pattern->meta->wpop_description ), 'viewport_width' => absint( $raw_pattern->meta->wpop_viewport_width ), ); @@ -281,7 +281,7 @@ public function get_item_schema() { ), 'keywords' => array( - 'description' => __( "The pattern's keyword slugs." ), + 'description' => __( "The pattern's keywords." ), 'type' => 'array', 'uniqueItems' => true, 'items' => array( 'type' => 'string' ), diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php index dfb97f7b60333..cf18b3748d156 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php @@ -370,7 +370,13 @@ public function get_items( $request ) { $posts = array(); foreach ( $query_result as $post ) { - if ( ! $this->check_read_permission( $post ) ) { + if ( 'edit' === $request['context'] ) { + $permission = $this->check_update_permission( $post ); + } else { + $permission = $this->check_read_permission( $post ); + } + + if ( ! $permission ) { continue; } diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php index 8856609375ddd..9af9742ac6260 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-terms-controller.php @@ -144,6 +144,35 @@ public function register_routes() { ); } + /** + * Checks if the terms for a post can be read. + * + * @since 6.0.3 + * + * @param WP_Post $post Post object. + * @param WP_REST_Request $request Full details about the request. + * @return bool Whether the terms for the post can be read. + */ + public function check_read_terms_permission_for_post( $post, $request ) { + // If the requested post isn't associated with this taxonomy, deny access. + if ( ! is_object_in_taxonomy( $post->post_type, $this->taxonomy ) ) { + return false; + } + + // Grant access if the post is publicly viewable. + if ( is_post_publicly_viewable( $post ) ) { + return true; + } + + // Otherwise grant access if the post is readable by the logged in user. + if ( current_user_can( 'read_post', $post->ID ) ) { + return true; + } + + // Otherwise, deny access. + return false; + } + /** * Checks if a request has access to read terms in the specified taxonomy. * @@ -167,6 +196,30 @@ public function get_items_permissions_check( $request ) { ); } + if ( ! empty( $request['post'] ) ) { + $post = get_post( $request['post'] ); + + if ( ! $post ) { + return new WP_Error( + 'rest_post_invalid_id', + __( 'Invalid post ID.' ), + array( + 'status' => 400, + ) + ); + } + + if ( ! $this->check_read_terms_permission_for_post( $post, $request ) ) { + return new WP_Error( + 'rest_forbidden_context', + __( 'Sorry, you are not allowed to view terms for this post.' ), + array( + 'status' => rest_authorization_required_code(), + ) + ); + } + } + return true; } @@ -287,6 +340,10 @@ public function get_items( $request ) { $response = array(); foreach ( $query_result as $term ) { + if ( 'edit' === $request['context'] && ! current_user_can( 'edit_term', $term->term_id ) ) { + continue; + } + $data = $this->prepare_item_for_response( $term, $request ); $response[] = $this->prepare_response_for_collection( $data ); } diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php index a299580be1d2a..1b9101005366c 100644 --- a/src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php +++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-users-controller.php @@ -210,7 +210,7 @@ public function get_items_permissions_check( $request ) { if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) { return new WP_Error( 'rest_forbidden_context', - __( 'Sorry, you are not allowed to list users.' ), + __( 'Sorry, you are not allowed to edit users.' ), array( 'status' => rest_authorization_required_code() ) ); } @@ -318,6 +318,9 @@ public function get_items( $request ) { } if ( ! empty( $prepared_args['search'] ) ) { + if ( ! current_user_can( 'list_users' ) ) { + $prepared_args['search_columns'] = array( 'ID', 'user_login', 'user_nicename', 'display_name' ); + } $prepared_args['search'] = '*' . $prepared_args['search'] . '*'; } /** @@ -337,6 +340,10 @@ public function get_items( $request ) { $users = array(); foreach ( $query->results as $user ) { + if ( 'edit' === $request['context'] && ! current_user_can( 'edit_user', $user->ID ) ) { + continue; + } + $data = $this->prepare_item_for_response( $user, $request ); $users[] = $this->prepare_response_for_collection( $data ); } @@ -436,13 +443,15 @@ public function get_item_permissions_check( $request ) { return true; } - if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) { + if ( 'edit' === $request['context'] && ! current_user_can( 'edit_user', $user->ID ) ) { return new WP_Error( - 'rest_user_cannot_view', - __( 'Sorry, you are not allowed to list users.' ), + 'rest_forbidden_context', + __( 'Sorry, you are not allowed to edit this user.' ), array( 'status' => rest_authorization_required_code() ) ); - } elseif ( ! count_user_posts( $user->ID, $types ) && ! current_user_can( 'edit_user', $user->ID ) && ! current_user_can( 'list_users' ) ) { + } + + if ( ! current_user_can( 'edit_user', $user->ID ) && ! current_user_can( 'list_users' ) && ! count_user_posts( $user->ID, $types ) ) { return new WP_Error( 'rest_user_cannot_view', __( 'Sorry, you are not allowed to list users.' ), @@ -1039,7 +1048,7 @@ public function prepare_item_for_response( $item, $request ) { $data['slug'] = $user->user_nicename; } - if ( in_array( 'roles', $fields, true ) ) { + if ( in_array( 'roles', $fields, true ) && ( current_user_can( 'list_users' ) || current_user_can( 'edit_user', $user->ID ) ) ) { // Defensively call array_values() to ensure an array is returned. $data['roles'] = array_values( $user->roles ); } diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php index a15a8fc2db93f..81e6742bb00e0 100644 --- a/src/wp-includes/script-loader.php +++ b/src/wp-includes/script-loader.php @@ -765,55 +765,55 @@ function wp_default_scripts( $scripts ) { // In order to keep backwards compatibility, and to keep the optimized loading, // the source files were flattened and included with some modifications for AMD loading. // A notable change is that 'jquery-ui-core' now contains 'jquery-ui-position' and 'jquery-ui-widget'. - $scripts->add( 'jquery-ui-core', "/wp-includes/js/jquery/ui/core$suffix.js", array( 'jquery' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-core', "/wp-includes/js/jquery/ui/effect$suffix.js", array( 'jquery' ), '1.13.0', 1 ); - - $scripts->add( 'jquery-effects-blind', "/wp-includes/js/jquery/ui/effect-blind$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-bounce', "/wp-includes/js/jquery/ui/effect-bounce$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-clip', "/wp-includes/js/jquery/ui/effect-clip$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-drop', "/wp-includes/js/jquery/ui/effect-drop$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-explode', "/wp-includes/js/jquery/ui/effect-explode$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-fade', "/wp-includes/js/jquery/ui/effect-fade$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-fold', "/wp-includes/js/jquery/ui/effect-fold$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-highlight', "/wp-includes/js/jquery/ui/effect-highlight$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-puff', "/wp-includes/js/jquery/ui/effect-puff$suffix.js", array( 'jquery-effects-core', 'jquery-effects-scale' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-pulsate', "/wp-includes/js/jquery/ui/effect-pulsate$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-scale', "/wp-includes/js/jquery/ui/effect-scale$suffix.js", array( 'jquery-effects-core', 'jquery-effects-size' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-shake', "/wp-includes/js/jquery/ui/effect-shake$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-size', "/wp-includes/js/jquery/ui/effect-size$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-slide', "/wp-includes/js/jquery/ui/effect-slide$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-effects-transfer', "/wp-includes/js/jquery/ui/effect-transfer$suffix.js", array( 'jquery-effects-core' ), '1.13.0', 1 ); + $scripts->add( 'jquery-ui-core', "/wp-includes/js/jquery/ui/core$suffix.js", array( 'jquery' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-core', "/wp-includes/js/jquery/ui/effect$suffix.js", array( 'jquery' ), '1.13.1', 1 ); + + $scripts->add( 'jquery-effects-blind', "/wp-includes/js/jquery/ui/effect-blind$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-bounce', "/wp-includes/js/jquery/ui/effect-bounce$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-clip', "/wp-includes/js/jquery/ui/effect-clip$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-drop', "/wp-includes/js/jquery/ui/effect-drop$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-explode', "/wp-includes/js/jquery/ui/effect-explode$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-fade', "/wp-includes/js/jquery/ui/effect-fade$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-fold', "/wp-includes/js/jquery/ui/effect-fold$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-highlight', "/wp-includes/js/jquery/ui/effect-highlight$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-puff', "/wp-includes/js/jquery/ui/effect-puff$suffix.js", array( 'jquery-effects-core', 'jquery-effects-scale' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-pulsate', "/wp-includes/js/jquery/ui/effect-pulsate$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-scale', "/wp-includes/js/jquery/ui/effect-scale$suffix.js", array( 'jquery-effects-core', 'jquery-effects-size' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-shake', "/wp-includes/js/jquery/ui/effect-shake$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-size', "/wp-includes/js/jquery/ui/effect-size$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-slide', "/wp-includes/js/jquery/ui/effect-slide$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-effects-transfer', "/wp-includes/js/jquery/ui/effect-transfer$suffix.js", array( 'jquery-effects-core' ), '1.13.1', 1 ); // Widgets - $scripts->add( 'jquery-ui-accordion', "/wp-includes/js/jquery/ui/accordion$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-autocomplete', "/wp-includes/js/jquery/ui/autocomplete$suffix.js", array( 'jquery-ui-menu', 'wp-a11y' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-button', "/wp-includes/js/jquery/ui/button$suffix.js", array( 'jquery-ui-core', 'jquery-ui-controlgroup', 'jquery-ui-checkboxradio' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-datepicker', "/wp-includes/js/jquery/ui/datepicker$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-dialog', "/wp-includes/js/jquery/ui/dialog$suffix.js", array( 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-menu', "/wp-includes/js/jquery/ui/menu$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-mouse', "/wp-includes/js/jquery/ui/mouse$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-progressbar', "/wp-includes/js/jquery/ui/progressbar$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-selectmenu', "/wp-includes/js/jquery/ui/selectmenu$suffix.js", array( 'jquery-ui-menu' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-slider', "/wp-includes/js/jquery/ui/slider$suffix.js", array( 'jquery-ui-mouse' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-spinner', "/wp-includes/js/jquery/ui/spinner$suffix.js", array( 'jquery-ui-button' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-tabs', "/wp-includes/js/jquery/ui/tabs$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-tooltip', "/wp-includes/js/jquery/ui/tooltip$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); + $scripts->add( 'jquery-ui-accordion', "/wp-includes/js/jquery/ui/accordion$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-autocomplete', "/wp-includes/js/jquery/ui/autocomplete$suffix.js", array( 'jquery-ui-menu', 'wp-a11y' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-button', "/wp-includes/js/jquery/ui/button$suffix.js", array( 'jquery-ui-core', 'jquery-ui-controlgroup', 'jquery-ui-checkboxradio' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-datepicker', "/wp-includes/js/jquery/ui/datepicker$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-dialog', "/wp-includes/js/jquery/ui/dialog$suffix.js", array( 'jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-menu', "/wp-includes/js/jquery/ui/menu$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-mouse', "/wp-includes/js/jquery/ui/mouse$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-progressbar', "/wp-includes/js/jquery/ui/progressbar$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-selectmenu', "/wp-includes/js/jquery/ui/selectmenu$suffix.js", array( 'jquery-ui-menu' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-slider', "/wp-includes/js/jquery/ui/slider$suffix.js", array( 'jquery-ui-mouse' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-spinner', "/wp-includes/js/jquery/ui/spinner$suffix.js", array( 'jquery-ui-button' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-tabs', "/wp-includes/js/jquery/ui/tabs$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-tooltip', "/wp-includes/js/jquery/ui/tooltip$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); // New in 1.12.1 - $scripts->add( 'jquery-ui-checkboxradio', "/wp-includes/js/jquery/ui/checkboxradio$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-controlgroup', "/wp-includes/js/jquery/ui/controlgroup$suffix.js", array( 'jquery-ui-core' ), '1.13.0', 1 ); + $scripts->add( 'jquery-ui-checkboxradio', "/wp-includes/js/jquery/ui/checkboxradio$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-controlgroup', "/wp-includes/js/jquery/ui/controlgroup$suffix.js", array( 'jquery-ui-core' ), '1.13.1', 1 ); // Interactions - $scripts->add( 'jquery-ui-draggable', "/wp-includes/js/jquery/ui/draggable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-droppable', "/wp-includes/js/jquery/ui/droppable$suffix.js", array( 'jquery-ui-draggable' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-resizable', "/wp-includes/js/jquery/ui/resizable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-selectable', "/wp-includes/js/jquery/ui/selectable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-sortable', "/wp-includes/js/jquery/ui/sortable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.0', 1 ); + $scripts->add( 'jquery-ui-draggable', "/wp-includes/js/jquery/ui/draggable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-droppable', "/wp-includes/js/jquery/ui/droppable$suffix.js", array( 'jquery-ui-draggable' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-resizable', "/wp-includes/js/jquery/ui/resizable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-selectable', "/wp-includes/js/jquery/ui/selectable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-sortable', "/wp-includes/js/jquery/ui/sortable$suffix.js", array( 'jquery-ui-mouse' ), '1.13.1', 1 ); // As of 1.12.1 `jquery-ui-position` and `jquery-ui-widget` are part of `jquery-ui-core`. // Listed here for back-compat. - $scripts->add( 'jquery-ui-position', false, array( 'jquery-ui-core' ), '1.13.0', 1 ); - $scripts->add( 'jquery-ui-widget', false, array( 'jquery-ui-core' ), '1.13.0', 1 ); + $scripts->add( 'jquery-ui-position', false, array( 'jquery-ui-core' ), '1.13.1', 1 ); + $scripts->add( 'jquery-ui-widget', false, array( 'jquery-ui-core' ), '1.13.1', 1 ); // Strings for 'jquery-ui-autocomplete' live region messages. did_action( 'init' ) && $scripts->localize( @@ -835,7 +835,7 @@ function wp_default_scripts( $scripts ) { // jQuery plugins. $scripts->add( 'jquery-color', '/wp-includes/js/jquery/jquery.color.min.js', array( 'jquery' ), '2.1.2', 1 ); $scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array( 'jquery' ), '20m', 1 ); - $scripts->add( 'jquery-query', '/wp-includes/js/jquery/jquery.query.js', array( 'jquery' ), '2.1.7', 1 ); + $scripts->add( 'jquery-query', '/wp-includes/js/jquery/jquery.query.js', array( 'jquery' ), '2.2.3', 1 ); $scripts->add( 'jquery-serialize-object', '/wp-includes/js/jquery/jquery.serialize-object.js', array( 'jquery' ), '0.2-wp', 1 ); $scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array( 'jquery' ), '0.0.2m', 1 ); $scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array( 'jquery', 'jquery-hotkeys' ), false, 1 ); @@ -1142,7 +1142,7 @@ function wp_default_scripts( $scripts ) { $scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox', 'shortcode' ), false, 1 ); - $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array( 'jquery' ), '1.10.1', 1 ); + $scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array( 'jquery' ), '1.10.2', 1 ); // JS-only version of hoverintent (no dependencies). $scripts->add( 'hoverintent-js', '/wp-includes/js/hoverintent-js.min.js', array(), '2.2.1', 1 ); @@ -1220,6 +1220,16 @@ function wp_default_scripts( $scripts ) { 'publishSettings' => __( 'Publish Settings' ), 'invalidDate' => __( 'Invalid date.' ), 'invalidValue' => __( 'Invalid value.' ), + 'blockThemeNotification' => sprintf( + /* translators: 1: Link to Site Editor documentation on HelpHub, 2: HTML button. */ + __( 'Hurray! Your theme supports Full Site Editing with blocks. Tell me more. %2$s' ), + __( 'https://wordpress.org/support/article/site-editor/' ), + sprintf( + '', + esc_url( admin_url( 'site-editor.php' ) ), + __( 'Use Site Editor' ) + ) + ), ) ); $scripts->add( 'customize-selective-refresh', "/wp-includes/js/customize-selective-refresh$suffix.js", array( 'jquery', 'wp-util', 'customize-preview' ), false, 1 ); @@ -2307,11 +2317,9 @@ function wp_common_block_scripts_and_styles() { * @since 5.8.0 */ function wp_enqueue_global_styles() { - if ( ! WP_Theme_JSON_Resolver::theme_has_support() ) { - return; - } - - $separate_assets = wp_should_load_separate_core_block_assets(); + $separate_assets = wp_should_load_separate_core_block_assets(); + $is_block_theme = wp_is_block_theme(); + $is_classic_theme = ! $is_block_theme; /* * Global styles should be printed in the head when loading all styles combined. @@ -2319,7 +2327,11 @@ function wp_enqueue_global_styles() { * * See https://core.trac.wordpress.org/ticket/53494. */ - if ( ( ! $separate_assets && doing_action( 'wp_footer' ) ) || ( $separate_assets && doing_action( 'wp_enqueue_scripts' ) ) ) { + if ( + ( $is_block_theme && doing_action( 'wp_footer' ) ) || + ( $is_classic_theme && doing_action( 'wp_footer' ) && ! $separate_assets ) || + ( $is_classic_theme && doing_action( 'wp_enqueue_scripts' ) && $separate_assets ) + ) { return; } @@ -2334,6 +2346,34 @@ function wp_enqueue_global_styles() { wp_enqueue_style( 'global-styles' ); } +/** + * Render the SVG filters supplied by theme.json. + * + * Note that this doesn't render the per-block user-defined + * filters which are handled by wp_render_duotone_support, + * but it should be rendered before the filtered content + * in the body to satisfy Safari's rendering quirks. + * + * @since 5.9.1 + */ +function wp_global_styles_render_svg_filters() { + /* + * When calling via the in_admin_header action, we only want to render the + * SVGs on block editor pages. + */ + if ( + is_admin() && + ! get_current_screen()->is_block_editor() + ) { + return; + } + + $filters = wp_get_global_styles_svg_filters(); + if ( ! empty( $filters ) ) { + echo $filters; + } +} + /** * Checks if the editor scripts and styles for all registered block types * should be enqueued on the current screen. @@ -2774,6 +2814,16 @@ function _wp_normalize_relative_css_links( $css, $stylesheet_url ) { continue; } + // Skip if the URL is an HTML ID. + if ( str_starts_with( $src_result, '#' ) ) { + continue; + } + + // Skip if the URL is a data URI. + if ( str_starts_with( $src_result, 'data:' ) ) { + continue; + } + // Build the absolute URL. $absolute_url = dirname( $stylesheet_url ) . '/' . $src_result; $absolute_url = str_replace( '/./', '/', $absolute_url ); @@ -2876,3 +2926,31 @@ function wp_enqueue_global_styles_css_custom_properties() { wp_add_inline_style( 'global-styles-css-custom-properties', wp_get_global_stylesheet( array( 'variables' ) ) ); wp_enqueue_style( 'global-styles-css-custom-properties' ); } + +/** + * This function takes care of adding inline styles + * in the proper place, depending on the theme in use. + * + * @since 5.9.1 + * + * For block themes, it's loaded in the head. + * For classic ones, it's loaded in the body + * because the wp_head action happens before + * the render_block. + * + * @link https://core.trac.wordpress.org/ticket/53494. + * + * @param string $style String containing the CSS styles to be added. + */ +function wp_enqueue_block_support_styles( $style ) { + $action_hook_name = 'wp_footer'; + if ( wp_is_block_theme() ) { + $action_hook_name = 'wp_head'; + } + add_action( + $action_hook_name, + static function () use ( $style ) { + echo "\n"; + } + ); +} diff --git a/src/wp-includes/shortcodes.php b/src/wp-includes/shortcodes.php index 0d9fdc8148c8b..eaa2ee2641b85 100644 --- a/src/wp-includes/shortcodes.php +++ b/src/wp-includes/shortcodes.php @@ -170,7 +170,45 @@ function has_shortcode( $content, $tag ) { } /** - * Search content for shortcodes and filter shortcodes through their hooks. + * Returns a list of registered shortcode names found in the given content. + * + * Example usage: + * + * get_shortcode_tags_in_content( '[audio src="file.mp3"][/audio] [foo] [gallery ids="1,2,3"]' ); + * // array( 'audio', 'gallery' ) + * + * @since 6.3.2 + * + * @param string $content The content to check. + * @return string[] An array of registered shortcode names found in the content. + */ +function get_shortcode_tags_in_content( $content ) { + if ( false === strpos( $content, '[' ) ) { + return array(); + } + + preg_match_all( '/' . get_shortcode_regex() . '/', $content, $matches, PREG_SET_ORDER ); + if ( empty( $matches ) ) { + return array(); + } + + $tags = array(); + foreach ( $matches as $shortcode ) { + $tags[] = $shortcode[2]; + + if ( ! empty( $shortcode[5] ) ) { + $deep_tags = get_shortcode_tags_in_content( $shortcode[5] ); + if ( ! empty( $deep_tags ) ) { + $tags = array_merge( $tags, $deep_tags ); + } + } + } + + return $tags; +} + +/** + * Searches content for shortcodes and filter shortcodes through their hooks. * * This function is an alias for do_shortcode(). * diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php index 5b4624bc0a677..62e58b523f701 100644 --- a/src/wp-includes/user.php +++ b/src/wp-includes/user.php @@ -1710,15 +1710,10 @@ function update_user_caches( $user ) { * * @since 3.0.0 * @since 4.4.0 'clean_user_cache' action was added. - * @since 5.8.0 Refreshes the global user instance if cleaning the user cache for the current user. - * - * @global WP_User $current_user The current user object which holds the user data. * * @param WP_User|int $user User object or ID to be cleaned from the cache */ function clean_user_cache( $user ) { - global $current_user; - if ( is_numeric( $user ) ) { $user = new WP_User( $user ); } @@ -1741,13 +1736,6 @@ function clean_user_cache( $user ) { * @param WP_User $user User object. */ do_action( 'clean_user_cache', $user->ID, $user ); - - // Refresh the global user instance if the cleaning current user. - if ( get_current_user_id() === (int) $user->ID ) { - $user_id = (int) $user->ID; - $current_user = null; - wp_set_current_user( $user_id, '' ); - } } /** diff --git a/src/wp-includes/version.php b/src/wp-includes/version.php index eceb48c9a51c3..eb1308cfb6598 100644 --- a/src/wp-includes/version.php +++ b/src/wp-includes/version.php @@ -16,7 +16,7 @@ * * @global string $wp_version */ -$wp_version = '5.9-RC1-52446-src'; +$wp_version = '5.9.12-src'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema. diff --git a/src/wp-includes/widgets.php b/src/wp-includes/widgets.php index 4aaa6112b2f5c..5843d6b47210b 100644 --- a/src/wp-includes/widgets.php +++ b/src/wp-includes/widgets.php @@ -1578,7 +1578,7 @@ function wp_widget_rss_output( $rss, $args = array() ) { if ( is_wp_error( $rss ) ) { if ( is_admin() || current_user_can( 'manage_options' ) ) { - echo '

      ' . __( 'RSS Error:' ) . ' ' . $rss->get_error_message() . '

      '; + echo '

      ' . __( 'RSS Error:' ) . ' ' . esc_html( $rss->get_error_message() ) . '

      '; } return; } @@ -1701,7 +1701,7 @@ function wp_widget_rss_form( $args, $inputs = null ) { $args['show_date'] = isset( $args['show_date'] ) ? (int) $args['show_date'] : (int) $inputs['show_date']; if ( ! empty( $args['error'] ) ) { - echo '

      ' . __( 'RSS Error:' ) . ' ' . $args['error'] . '

      '; + echo '

      ' . __( 'RSS Error:' ) . ' ' . esc_html( $args['error'] ) . '

      '; } $esc_number = esc_attr( $args['number'] ); diff --git a/src/wp-mail.php b/src/wp-mail.php index c3f921ad69c6e..619ddb594f20b 100644 --- a/src/wp-mail.php +++ b/src/wp-mail.php @@ -65,6 +65,9 @@ wp_die( __( 'There doesn’t seem to be any new mail.' ) ); } +// Always run as an unauthenticated user. +wp_set_current_user( 0 ); + for ( $i = 1; $i <= $count; $i++ ) { $message = $pop3->get( $i ); @@ -134,8 +137,6 @@ } $author = sanitize_email( $author ); if ( is_email( $author ) ) { - /* translators: %s: Post author email address. */ - echo '

      ' . sprintf( __( 'Author is %s' ), $author ) . '

      '; $userdata = get_user_by( 'email', $author ); if ( ! empty( $userdata ) ) { $post_author = $userdata->ID; diff --git a/src/wp-trackback.php b/src/wp-trackback.php index 3d4f6056f57c2..4757727a58195 100644 --- a/src/wp-trackback.php +++ b/src/wp-trackback.php @@ -13,6 +13,9 @@ wp( array( 'tb' => '1' ) ); } +// Always run as an unauthenticated user. +wp_set_current_user( 0 ); + /** * Response to a trackback. * diff --git a/tests/phpunit/data/blocks/pattern-directory/browse-all.json b/tests/phpunit/data/blocks/pattern-directory/browse-all.json index 26131e33bb73e..8d0d2d4ba3522 100644 --- a/tests/phpunit/data/blocks/pattern-directory/browse-all.json +++ b/tests/phpunit/data/blocks/pattern-directory/browse-all.json @@ -9,6 +9,7 @@ "meta": { "spay_email": "", "wpop_description": "A heading preceded by a chapter number, and followed by a paragraph.", + "wpop_keywords": "blog post", "wpop_viewport_width": 1000 }, "category_slugs": [ "text" ], @@ -25,6 +26,7 @@ "meta": { "spay_email": "", "wpop_description": "A large hero section with an example background image and a heading in the center.", + "wpop_keywords": "header, hero", "wpop_viewport_width": 1000 }, "category_slugs": [ "header" ], @@ -41,6 +43,7 @@ "meta": { "spay_email": "", "wpop_description": "A large hero section with a bright gradient background, a big heading and a filled button.", + "wpop_keywords": "call to action, hero section", "wpop_viewport_width": 1000 }, "category_slugs": [ "header" ], diff --git a/tests/phpunit/data/blocks/pattern-directory/browse-category-2.json b/tests/phpunit/data/blocks/pattern-directory/browse-category-2.json index 947da16bfddd4..1fce1a0f80f92 100644 --- a/tests/phpunit/data/blocks/pattern-directory/browse-category-2.json +++ b/tests/phpunit/data/blocks/pattern-directory/browse-category-2.json @@ -9,6 +9,7 @@ "meta": { "spay_email": "", "wpop_description": "Three filled buttons with rounded corners, side by side.", + "wpop_keywords": "", "wpop_viewport_width": 600 }, "category_slugs": [ "buttons" ], @@ -25,6 +26,7 @@ "meta": { "spay_email": "", "wpop_description": "Two buttons, one filled and one outlined, side by side.", + "wpop_keywords": "", "wpop_viewport_width": 500 }, "category_slugs": [ "buttons" ], diff --git a/tests/phpunit/data/blocks/pattern-directory/browse-keyword-11.json b/tests/phpunit/data/blocks/pattern-directory/browse-keyword-11.json index 26131e33bb73e..383d7eff61f94 100644 --- a/tests/phpunit/data/blocks/pattern-directory/browse-keyword-11.json +++ b/tests/phpunit/data/blocks/pattern-directory/browse-keyword-11.json @@ -9,6 +9,7 @@ "meta": { "spay_email": "", "wpop_description": "A heading preceded by a chapter number, and followed by a paragraph.", + "wpop_keywords": "", "wpop_viewport_width": 1000 }, "category_slugs": [ "text" ], @@ -25,6 +26,7 @@ "meta": { "spay_email": "", "wpop_description": "A large hero section with an example background image and a heading in the center.", + "wpop_keywords": "", "wpop_viewport_width": 1000 }, "category_slugs": [ "header" ], @@ -41,6 +43,7 @@ "meta": { "spay_email": "", "wpop_description": "A large hero section with a bright gradient background, a big heading and a filled button.", + "wpop_keywords": "", "wpop_viewport_width": 1000 }, "category_slugs": [ "header" ], diff --git a/tests/phpunit/data/blocks/pattern-directory/search-button.json b/tests/phpunit/data/blocks/pattern-directory/search-button.json index b135e0ac5a958..10e5c6036fa8d 100644 --- a/tests/phpunit/data/blocks/pattern-directory/search-button.json +++ b/tests/phpunit/data/blocks/pattern-directory/search-button.json @@ -9,6 +9,7 @@ "meta": { "spay_email": "", "wpop_description": "A large hero section with a bright gradient background, a big heading and a filled button.", + "wpop_keywords": "", "wpop_viewport_width": 1000 }, "category_slugs": [ "header" ], @@ -25,6 +26,7 @@ "meta": { "spay_email": "", "wpop_description": "Three small columns of text, each with an outlined button with rounded corners at the bottom.", + "wpop_keywords": "", "wpop_viewport_width": 1000 }, "category_slugs": [ "columns" ], @@ -41,6 +43,7 @@ "meta": { "spay_email": "", "wpop_description": "Three filled buttons with rounded corners, side by side.", + "wpop_keywords": "", "wpop_viewport_width": 600 }, "category_slugs": [ "buttons" ], @@ -57,6 +60,7 @@ "meta": { "spay_email": "", "wpop_description": "Two buttons, one filled and one outlined, side by side.", + "wpop_keywords": "", "wpop_viewport_width": 500 }, "category_slugs": [ "buttons" ], diff --git a/tests/phpunit/includes/abstract-testcase.php b/tests/phpunit/includes/abstract-testcase.php index 765b514aa94bd..c0dc30b189c5d 100644 --- a/tests/phpunit/includes/abstract-testcase.php +++ b/tests/phpunit/includes/abstract-testcase.php @@ -202,20 +202,20 @@ public function clean_up_global_scope() { /** * Allows tests to be skipped on some automated runs. * - * For test runs on GitHub Actions for something other than trunk/master, - * we want to skip tests that only need to run for master. + * For test runs on GitHub Actions for something other than trunk, + * we want to skip tests that only need to run for trunk. */ public function skipOnAutomatedBranches() { // https://docs.github.com/en/free-pro-team@latest/actions/reference/environment-variables#default-environment-variables $github_event_name = getenv( 'GITHUB_EVENT_NAME' ); $github_ref = getenv( 'GITHUB_REF' ); - if ( $github_event_name && 'false' !== $github_event_name ) { + if ( $github_event_name ) { // We're on GitHub Actions. $skipped = array( 'pull_request', 'pull_request_target' ); - if ( in_array( $github_event_name, $skipped, true ) || 'refs/heads/master' !== $github_ref ) { - $this->markTestSkipped( 'For automated test runs, this test is only run on trunk/master' ); + if ( in_array( $github_event_name, $skipped, true ) || 'refs/heads/trunk' !== $github_ref ) { + $this->markTestSkipped( 'For automated test runs, this test is only run on trunk' ); } } } diff --git a/tests/phpunit/includes/functions.php b/tests/phpunit/includes/functions.php index 1434096067526..909a25cb6be26 100644 --- a/tests/phpunit/includes/functions.php +++ b/tests/phpunit/includes/functions.php @@ -346,5 +346,6 @@ function _unhook_block_registration() { remove_action( 'init', 'register_block_core_template_part' ); remove_action( 'init', 'register_block_core_term_description' ); remove_action( 'init', 'register_core_block_types_from_metadata' ); + remove_action( 'init', 'register_block_core_widget_group' ); } tests_add_filter( 'init', '_unhook_block_registration', 1000 ); diff --git a/tests/phpunit/tests/admin/includesFile.php b/tests/phpunit/tests/admin/includesFile.php index 421137bc14f8a..b598a2d3bdb36 100644 --- a/tests/phpunit/tests/admin/includesFile.php +++ b/tests/phpunit/tests/admin/includesFile.php @@ -114,6 +114,35 @@ public function data_download_url_should_respect_filename_from_content_dispositi ); } + /** + * @ticket 55109 + * @dataProvider data_save_to_temp_directory_when_getting_filename_from_content_disposition_header + * + * @covers ::download_url + * + * @param $filter A callback containing a fake Content-Disposition header. + */ + public function test_save_to_temp_directory_when_getting_filename_from_content_disposition_header( $filter ) { + add_filter( 'pre_http_request', array( $this, $filter ), 10, 3 ); + + $filename = download_url( 'url_with_content_disposition_header' ); + $this->assertStringContainsString( get_temp_dir(), $filename ); + $this->unlink( $filename ); + + remove_filter( 'pre_http_request', array( $this, $filter ) ); + } + + /** + * Data provider for test_save_to_temp_directory_when_getting_filename_from_content_disposition_header. + * + * @return array + */ + public function data_save_to_temp_directory_when_getting_filename_from_content_disposition_header() { + return array( + 'valid parameters' => array( 'filter_content_disposition_header_with_filename' ), + ); + } + /** * Filter callback for data_download_url_should_respect_filename_from_content_disposition_header. * diff --git a/tests/phpunit/tests/ajax/Attachments.php b/tests/phpunit/tests/ajax/Attachments.php index 657213d27841d..d89680aba5a73 100644 --- a/tests/phpunit/tests/ajax/Attachments.php +++ b/tests/phpunit/tests/ajax/Attachments.php @@ -114,4 +114,95 @@ public function test_wp_ajax_send_attachment_to_editor_should_return_a_link() { $this->assertTrue( $response['success'] ); $this->assertSame( $expected, $response['data'] ); } + + public function test_wp_ajax_set_attachment_thumbnail_success() { + // Become an administrator. + $post = $_POST; + $user_id = self::factory()->user->create( + array( + 'role' => 'administrator', + 'user_login' => 'user_36578_administrator', + 'user_email' => 'user_36578_administrator@example.com', + ) + ); + wp_set_current_user( $user_id ); + $_POST = array_merge( $_POST, $post ); + + // Upload the attachment itself. + $filename = DIR_TESTDATA . '/uploads/small-audio.mp3'; + $contents = file_get_contents( $filename ); + + $upload = wp_upload_bits( wp_basename( $filename ), null, $contents ); + $attachment = $this->_make_attachment( $upload ); + + // Upload the thumbnail. + $filename = DIR_TESTDATA . '/images/waffles.jpg'; + $contents = file_get_contents( $filename ); + + $upload = wp_upload_bits( wp_basename( $filename ), null, $contents ); + $thumbnail = $this->_make_attachment( $upload ); + + // Set up a default request. + $_POST['_ajax_nonce'] = wp_create_nonce( 'set-attachment-thumbnail' ); + $_POST['thumbnail_id'] = $thumbnail; + $_POST['urls'] = array( wp_get_attachment_url( $attachment ) ); + + // Make the request. + try { + $this->_handleAjax( 'set-attachment-thumbnail' ); + } catch ( WPAjaxDieContinueException $e ) { + unset( $e ); + } + + // Get the response. + $response = json_decode( $this->_last_response, true ); + + // Ensure everything is correct. + $this->assertTrue( $response['success'] ); + } + + public function test_wp_ajax_set_attachment_thumbnail_missing_nonce() { + // Become an administrator. + $post = $_POST; + $user_id = self::factory()->user->create( + array( + 'role' => 'administrator', + 'user_login' => 'user_36578_administrator', + 'user_email' => 'user_36578_administrator@example.com', + ) + ); + wp_set_current_user( $user_id ); + $_POST = array_merge( $_POST, $post ); + + // Upload the attachment itself. + $filename = DIR_TESTDATA . '/uploads/small-audio.mp3'; + $contents = file_get_contents( $filename ); + + $upload = wp_upload_bits( wp_basename( $filename ), null, $contents ); + $attachment = $this->_make_attachment( $upload ); + + // Upload the thumbnail. + $filename = DIR_TESTDATA . '/images/waffles.jpg'; + $contents = file_get_contents( $filename ); + + $upload = wp_upload_bits( wp_basename( $filename ), null, $contents ); + $thumbnail = $this->_make_attachment( $upload ); + + // Set up a default request. + $_POST['thumbnail_id'] = $thumbnail; + $_POST['urls'] = array( wp_get_attachment_url( $attachment ) ); + + // Make the request. + try { + $this->_handleAjax( 'set-attachment-thumbnail' ); + } catch ( WPAjaxDieContinueException $e ) { + unset( $e ); + } + + // Get the response. + $response = json_decode( $this->_last_response, true ); + + // Check that success is false without sending nonce. + $this->assertFalse( $response['success'] ); + } } diff --git a/tests/phpunit/tests/basic.php b/tests/phpunit/tests/basic.php index 5ffd6b24701fc..e8df915d07b46 100644 --- a/tests/phpunit/tests/basic.php +++ b/tests/phpunit/tests/basic.php @@ -8,7 +8,7 @@ class Tests_Basic extends WP_UnitTestCase { public function test_license() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); $license = file_get_contents( ABSPATH . 'license.txt' ); @@ -18,7 +18,7 @@ public function test_license() { } public function test_security_md() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); $security = file_get_contents( dirname( ABSPATH ) . '/SECURITY.md' ); diff --git a/tests/phpunit/tests/block-supports/elements.php b/tests/phpunit/tests/block-supports/elements.php index 84e7446f14e4e..ae524ac7679d9 100644 --- a/tests/phpunit/tests/block-supports/elements.php +++ b/tests/phpunit/tests/block-supports/elements.php @@ -11,7 +11,7 @@ class Tests_Block_Supports_Elements extends WP_UnitTestCase { * @return string String where the unique id classes were replaced with "wp-elements-1". */ private static function make_unique_id_one( $string ) { - return preg_replace( '/wp-elements-.{13}/', 'wp-elements-1', $string ); + return preg_replace( '/wp-elements-\d+/', 'wp-elements-1', $string ); } /** diff --git a/tests/phpunit/tests/block-template.php b/tests/phpunit/tests/block-template.php index 95dab825b98a1..7163fea70abf2 100644 --- a/tests/phpunit/tests/block-template.php +++ b/tests/phpunit/tests/block-template.php @@ -18,6 +18,7 @@ class Tests_Block_Template extends WP_UnitTestCase { public function set_up() { parent::set_up(); switch_theme( 'block-theme' ); + do_action( 'setup_theme' ); } public function tear_down() { diff --git a/tests/phpunit/tests/customize/nav-menu-item-setting.php b/tests/phpunit/tests/customize/nav-menu-item-setting.php index 212f871747ad1..48c1234c0cf56 100644 --- a/tests/phpunit/tests/customize/nav-menu-item-setting.php +++ b/tests/phpunit/tests/customize/nav-menu-item-setting.php @@ -89,7 +89,6 @@ public function test_construct() { 'classes' => '', 'xfn' => '', 'status' => 'publish', - 'original_title' => '', 'nav_menu_term_id' => 0, '_invalid' => false, ); @@ -581,7 +580,7 @@ public function test_sanitize() { 'classes' => 'hello inject', 'xfn' => 'hello inject', 'status' => 'draft', - 'original_title' => 'Hi', + 'original_title' => 'Hi', 'nav_menu_term_id' => 0, ); diff --git a/tests/phpunit/tests/customize/nav-menus.php b/tests/phpunit/tests/customize/nav-menus.php index e786e15183d45..de9fae383dd2a 100644 --- a/tests/phpunit/tests/customize/nav-menus.php +++ b/tests/phpunit/tests/customize/nav-menus.php @@ -168,13 +168,14 @@ public function test_load_available_items_query_returns_post_item_with_page_numb // Expected menu item array. $expected = array( - 'id' => "post-{$post_id}", - 'title' => 'Post Title', - 'type' => 'post_type', - 'type_label' => 'Post', - 'object' => 'post', - 'object_id' => (int) $post_id, - 'url' => get_permalink( (int) $post_id ), + 'id' => "post-{$post_id}", + 'title' => 'Post Title', + 'original_title' => 'Post Title', + 'type' => 'post_type', + 'type_label' => 'Post', + 'object' => 'post', + 'object_id' => (int) $post_id, + 'url' => get_permalink( (int) $post_id ), ); // Offset the query and get the second page of menu items. @@ -200,13 +201,14 @@ public function test_load_available_items_query_returns_page_item() { // Expected menu item array. $expected = array( - 'id' => "post-{$page_id}", - 'title' => 'Page Title', - 'type' => 'post_type', - 'type_label' => 'Page', - 'object' => 'page', - 'object_id' => (int) $page_id, - 'url' => get_permalink( (int) $page_id ), + 'id' => "post-{$page_id}", + 'title' => 'Page Title', + 'original_title' => 'Page Title', + 'type' => 'post_type', + 'type_label' => 'Page', + 'object' => 'page', + 'object_id' => (int) $page_id, + 'url' => get_permalink( (int) $page_id ), ); $items = $menus->load_available_items_query( 'post_type', 'page', 0 ); @@ -226,13 +228,14 @@ public function test_load_available_items_query_returns_post_item() { // Expected menu item array. $expected = array( - 'id' => "post-{$post_id}", - 'title' => 'Post Title', - 'type' => 'post_type', - 'type_label' => 'Post', - 'object' => 'post', - 'object_id' => (int) $post_id, - 'url' => get_permalink( (int) $post_id ), + 'id' => "post-{$post_id}", + 'title' => 'Post Title', + 'original_title' => 'Post Title', + 'type' => 'post_type', + 'type_label' => 'Post', + 'object' => 'post', + 'object_id' => (int) $post_id, + 'url' => get_permalink( (int) $post_id ), ); $items = $menus->load_available_items_query( 'post_type', 'post', 0 ); @@ -252,13 +255,14 @@ public function test_load_available_items_query_returns_term_item() { // Expected menu item array. $expected = array( - 'id' => "term-{$term_id}", - 'title' => 'Term Title', - 'type' => 'taxonomy', - 'type_label' => 'Category', - 'object' => 'category', - 'object_id' => (int) $term_id, - 'url' => get_term_link( (int) $term_id, 'category' ), + 'id' => "term-{$term_id}", + 'title' => 'Term Title', + 'original_title' => 'Term Title', + 'type' => 'taxonomy', + 'type_label' => 'Category', + 'object' => 'category', + 'object_id' => (int) $term_id, + 'url' => get_term_link( (int) $term_id, 'category' ), ); $items = $menus->load_available_items_query( 'taxonomy', 'category', 0 ); diff --git a/tests/phpunit/tests/date/currentTime.php b/tests/phpunit/tests/date/currentTime.php index c98292ef0dee9..4a56098c930fa 100644 --- a/tests/phpunit/tests/date/currentTime.php +++ b/tests/phpunit/tests/date/currentTime.php @@ -81,7 +81,7 @@ public function test_should_work_with_changed_timezone() { * @ticket 40653 */ public function test_should_return_wp_timestamp() { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $timestamp = time(); $datetime = new DateTime( '@' . $timestamp ); @@ -106,7 +106,7 @@ public function test_should_return_wp_timestamp() { * @ticket 40653 */ public function test_should_return_correct_local_time() { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $timestamp = time(); $datetime_local = new DateTime( '@' . $timestamp ); diff --git a/tests/phpunit/tests/date/dateI18n.php b/tests/phpunit/tests/date/dateI18n.php index 9279aca4eb9c7..79598539cdec1 100644 --- a/tests/phpunit/tests/date/dateI18n.php +++ b/tests/phpunit/tests/date/dateI18n.php @@ -11,7 +11,7 @@ class Tests_Date_DateI18n extends WP_UnitTestCase { * @ticket 28636 */ public function test_should_return_current_time_on_invalid_timestamp() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTime( 'now', new DateTimeZone( $timezone ) ); @@ -24,7 +24,7 @@ public function test_should_return_current_time_on_invalid_timestamp() { * @ticket 28636 */ public function test_should_handle_zero_timestamp() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = DateTimeImmutable::createFromFormat( @@ -143,7 +143,7 @@ public function data_formats() { * @ticket 25768 */ public function test_should_return_wp_timestamp() { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $datetime = new DateTimeImmutable( 'now', wp_timezone() ); $timestamp = $datetime->getTimestamp(); @@ -193,10 +193,10 @@ public function test_should_handle_dst( $time, $timezone ) { public function dst_times() { return array( - 'Before DST start' => array( '2019-03-31 02:59:00', 'Europe/Kiev' ), - 'After DST start' => array( '2019-03-31 04:01:00', 'Europe/Kiev' ), - 'Before DST end' => array( '2019-10-27 02:59:00', 'Europe/Kiev' ), - 'After DST end' => array( '2019-10-27 04:01:00', 'Europe/Kiev' ), + 'Before DST start' => array( '2019-03-31 02:59:00', 'Europe/Helsinki' ), + 'After DST start' => array( '2019-03-31 04:01:00', 'Europe/Helsinki' ), + 'Before DST end' => array( '2019-10-27 02:59:00', 'Europe/Helsinki' ), + 'After DST end' => array( '2019-10-27 04:01:00', 'Europe/Helsinki' ), ); } } diff --git a/tests/phpunit/tests/date/getFeedBuildDate.php b/tests/phpunit/tests/date/getFeedBuildDate.php index 23d97aa4730a5..c5dcc7ce2f42e 100644 --- a/tests/phpunit/tests/date/getFeedBuildDate.php +++ b/tests/phpunit/tests/date/getFeedBuildDate.php @@ -47,7 +47,7 @@ public function test_should_return_correct_feed_build_date() { public function test_should_fall_back_to_last_post_modified() { global $wp_query; - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $datetime = new DateTimeImmutable( 'now', wp_timezone() ); $datetime_utc = $datetime->setTimezone( new DateTimeZone( 'UTC' ) ); diff --git a/tests/phpunit/tests/date/getPostTime.php b/tests/phpunit/tests/date/getPostTime.php index ad9eb0cf314e6..58cb4eb7fedc5 100644 --- a/tests/phpunit/tests/date/getPostTime.php +++ b/tests/phpunit/tests/date/getPostTime.php @@ -51,7 +51,7 @@ public function test_get_post_modified_time_returns_false_with_null_or_non_exist * @ticket 25002 */ public function test_should_return_wp_timestamp() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTimeImmutable( 'now', new DateTimeZone( $timezone ) ); @@ -80,7 +80,7 @@ public function test_should_return_wp_timestamp() { * @ticket 25002 */ public function test_should_return_time() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTimeImmutable( 'now', new DateTimeZone( $timezone ) ); @@ -121,7 +121,7 @@ public function test_should_keep_utc_time_on_timezone_change() { ) ); - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $this->assertSame( $rfc3339, get_post_time( DATE_RFC3339, true, $post_id ) ); $this->assertSame( $rfc3339, get_post_modified_time( DATE_RFC3339, true, $post_id ) ); diff --git a/tests/phpunit/tests/date/mysql2date.php b/tests/phpunit/tests/date/mysql2date.php index 7c83446b0003b..0054150a3e97e 100644 --- a/tests/phpunit/tests/date/mysql2date.php +++ b/tests/phpunit/tests/date/mysql2date.php @@ -33,7 +33,7 @@ public function test_mysql2date_returns_gmt_or_unix_timestamp() { * @ticket 28992 */ public function test_mysql2date_should_format_time() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTime( 'now', new DateTimeZone( $timezone ) ); $rfc3339 = $datetime->format( DATE_RFC3339 ); @@ -47,7 +47,7 @@ public function test_mysql2date_should_format_time() { * @ticket 28992 */ public function test_mysql2date_should_format_time_with_changed_time_zone() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; // phpcs:ignore WordPress.DateTime.RestrictedFunctions.timezone_change_date_default_timezone_set date_default_timezone_set( $timezone ); update_option( 'timezone_string', $timezone ); @@ -63,7 +63,7 @@ public function test_mysql2date_should_format_time_with_changed_time_zone() { * @ticket 28992 */ public function test_mysql2date_should_return_wp_timestamp() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTime( 'now', new DateTimeZone( $timezone ) ); $wp_timestamp = $datetime->getTimestamp() + $datetime->getOffset(); @@ -77,7 +77,7 @@ public function test_mysql2date_should_return_wp_timestamp() { * @ticket 28992 */ public function test_mysql2date_should_return_unix_timestamp_for_gmt_time() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTime( 'now', new DateTimeZone( 'UTC' ) ); $timestamp = $datetime->getTimestamp(); diff --git a/tests/phpunit/tests/date/query.php b/tests/phpunit/tests/date/query.php index e3f4ba0f6f222..95a9782c8d41a 100644 --- a/tests/phpunit/tests/date/query.php +++ b/tests/phpunit/tests/date/query.php @@ -561,7 +561,7 @@ public function mysql_datetime_input_provider() { * @param bool $default_to_max Flag to default missing values to max. */ public function test_build_mysql_datetime_with_custom_timezone( $datetime, $expected, $default_to_max = false ) { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $q = new WP_Date_Query( array() ); @@ -583,7 +583,7 @@ public function mysql_datetime_input_provider_custom_timezone() { * @ticket 41782 */ public function test_build_mysql_datetime_with_relative_date() { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); $q = new WP_Date_Query( array() ); diff --git a/tests/phpunit/tests/date/wpTimezone.php b/tests/phpunit/tests/date/wpTimezone.php index 8b1f09e4d19f3..fdd369917b4b3 100644 --- a/tests/phpunit/tests/date/wpTimezone.php +++ b/tests/phpunit/tests/date/wpTimezone.php @@ -31,13 +31,13 @@ public function test_should_convert_gmt_offset( $gmt_offset, $tz_name ) { * @ticket 24730 */ public function test_should_return_timezone_string() { - update_option( 'timezone_string', 'Europe/Kiev' ); + update_option( 'timezone_string', 'Europe/Helsinki' ); - $this->assertSame( 'Europe/Kiev', wp_timezone_string() ); + $this->assertSame( 'Europe/Helsinki', wp_timezone_string() ); $timezone = wp_timezone(); - $this->assertSame( 'Europe/Kiev', $timezone->getName() ); + $this->assertSame( 'Europe/Helsinki', $timezone->getName() ); } /** diff --git a/tests/phpunit/tests/date/xmlrpc.php b/tests/phpunit/tests/date/xmlrpc.php index 8a4efaf46d2b6..f00d88ff4c0f3 100644 --- a/tests/phpunit/tests/date/xmlrpc.php +++ b/tests/phpunit/tests/date/xmlrpc.php @@ -24,7 +24,7 @@ public function test_date_new_post() { $this->expectDeprecationMessageMatches( '`Passing null to parameter \#[0-9]+ \(\$[^\)]+\) of type [^ ]+ is deprecated`' ); } - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTimeImmutable( 'now', new DateTimeZone( $timezone ) ); @@ -144,7 +144,7 @@ public function test_date_new_post() { * @covers wp_xmlrpc_server::mw_editPost */ public function test_date_edit_post() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTimeImmutable( 'now', new DateTimeZone( $timezone ) ); @@ -213,7 +213,7 @@ public function test_date_edit_post() { * @covers wp_xmlrpc_server::wp_editComment */ public function test_date_edit_comment() { - $timezone = 'Europe/Kiev'; + $timezone = 'Europe/Helsinki'; update_option( 'timezone_string', $timezone ); $datetime = new DateTimeImmutable( 'now', new DateTimeZone( $timezone ) ); diff --git a/tests/phpunit/tests/dependencies/styles.php b/tests/phpunit/tests/dependencies/styles.php index bec55ac032efa..8e7721d1e91f3 100644 --- a/tests/phpunit/tests/dependencies/styles.php +++ b/tests/phpunit/tests/dependencies/styles.php @@ -195,6 +195,7 @@ public function test_inline_styles_concat() { * @dataProvider data_normalize_relative_css_links * * @ticket 54243 + * @ticket 54922 * * @covers ::_wp_normalize_relative_css_links * @@ -231,6 +232,14 @@ public function data_normalize_relative_css_links() { 'css' => 'p {background-image: url(\'http://foo.com/image2.png\');}', 'expected' => 'p {background-image: url(\'http://foo.com/image2.png\');}', ), + 'An HTML ID' => array( + 'css' => 'clip-path: url(#image1);', + 'expected' => 'clip-path: url(#image1);', + ), + 'Data URIs, shouldn\'t change' => array( + 'css' => 'img {mask-image: url(\'data:image/svg+xml;utf8,\');}', + 'expected' => 'img {mask-image: url(\'data:image/svg+xml;utf8,\');}', + ), ); } diff --git a/tests/phpunit/tests/external-http/basic.php b/tests/phpunit/tests/external-http/basic.php index b160e2b56fe3b..16bef21847c11 100644 --- a/tests/phpunit/tests/external-http/basic.php +++ b/tests/phpunit/tests/external-http/basic.php @@ -10,7 +10,7 @@ class Tests_External_HTTP_Basic extends WP_UnitTestCase { * @covers ::wp_remote_retrieve_body */ public function test_readme_php_version() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); $readme = file_get_contents( ABSPATH . 'readme.html' ); @@ -31,7 +31,7 @@ public function test_readme_php_version() { * @covers ::wp_remote_retrieve_body */ public function test_readme_mysql_version() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); $readme = file_get_contents( ABSPATH . 'readme.html' ); @@ -63,7 +63,7 @@ public function test_readme_mysql_version() { * @covers ::wp_remote_retrieve_body */ public function test_readme_mariadb_version() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); $readme = file_get_contents( ABSPATH . 'readme.html' ); diff --git a/tests/phpunit/tests/formatting/date.php b/tests/phpunit/tests/formatting/date.php index 9f0f975d4c09e..0b10c8da198d1 100644 --- a/tests/phpunit/tests/formatting/date.php +++ b/tests/phpunit/tests/formatting/date.php @@ -197,7 +197,7 @@ public function test_is8601_to_datetime_correct_time( $timezone_string, $gmt_off public function timezone_provider() { return array( array( - 'timezone_string' => 'Europe/Kiev', + 'timezone_string' => 'Europe/Helsinki', 'gmt_offset' => 3, ), array( diff --git a/tests/phpunit/tests/formatting/sanitizeLocaleName.php b/tests/phpunit/tests/formatting/sanitizeLocaleName.php new file mode 100644 index 0000000000000..cd22acbf2c60a --- /dev/null +++ b/tests/phpunit/tests/formatting/sanitizeLocaleName.php @@ -0,0 +1,49 @@ +assertSame( $expected, sanitize_locale_name( $input ) ); + } + + public function data_sanitize_locale_name_returns_non_empty_string() { + return array( + // array( expected, input ) + array( 'en_US', 'en_US' ), + array( 'en', 'en' ), + array( 'fr_FR', 'fr_FR' ), + array( 'fr_FR', 'fr_FR' ), + array( 'fr_FR-e2791ba830489d23043be8650a22a22b', 'fr_FR-e2791ba830489d23043be8650a22a22b' ), + array( '-fr_FRmo', '-fr_FR.mo' ), + array( '12324', '$12324' ), + array( '4124FRRa', '/4124$$$%%FRRa' ), + array( 'FR', 'assertSame( '', sanitize_locale_name( $input ) ); + } + + public function data_sanitize_locale_name_returns_empty_string() { + return array( + // array( input ) + array( '$<>' ), + array( '/$$$%%\\)' ), + array( '....' ), + array( '@///' ), + ); + } +} diff --git a/tests/phpunit/tests/functions.php b/tests/phpunit/tests/functions.php index 96dee380ec0ad..a1ff88e11a661 100644 --- a/tests/phpunit/tests/functions.php +++ b/tests/phpunit/tests/functions.php @@ -1443,11 +1443,15 @@ public function test_wp_check_filetype_and_ext_with_filtered_svg() { 'proper_filename' => false, ); - add_filter( 'upload_mimes', array( $this, 'filter_mime_types_svg' ) ); - $this->assertSame( $expected, wp_check_filetype_and_ext( $file, $filename ) ); + add_filter( + 'upload_mimes', + static function( $mimes ) { + $mimes['svg'] = 'image/svg+xml'; + return $mimes; + } + ); - // Cleanup. - remove_filter( 'upload_mimes', array( $this, 'filter_mime_types_svg' ) ); + $this->assertSame( $expected, wp_check_filetype_and_ext( $file, $filename ) ); } /** @@ -1459,27 +1463,33 @@ public function test_wp_check_filetype_and_ext_with_filtered_woff() { $file = DIR_TESTDATA . '/uploads/dashicons.woff'; $filename = 'dashicons.woff'; + $woff_mime_type = 'application/font-woff'; + + /* + * As of PHP 8.1.12, which includes libmagic/file update to version 5.42, + * the expected mime type for WOFF files is 'font/woff'. + * + * See https://github.com/php/php-src/issues/8805. + */ + if ( PHP_VERSION_ID >= 80112 ) { + $woff_mime_type = 'font/woff'; + } + $expected = array( 'ext' => 'woff', - 'type' => 'application/font-woff', + 'type' => $woff_mime_type, 'proper_filename' => false, ); - add_filter( 'upload_mimes', array( $this, 'filter_mime_types_woff' ) ); - $this->assertSame( $expected, wp_check_filetype_and_ext( $file, $filename ) ); - - // Cleanup. - remove_filter( 'upload_mimes', array( $this, 'filter_mime_types_woff' ) ); - } - - public function filter_mime_types_svg( $mimes ) { - $mimes['svg'] = 'image/svg+xml'; - return $mimes; - } + add_filter( + 'upload_mimes', + static function( $mimes ) use ( $woff_mime_type ) { + $mimes['woff'] = $woff_mime_type; + return $mimes; + } + ); - public function filter_mime_types_woff( $mimes ) { - $mimes['woff'] = 'application/font-woff'; - return $mimes; + $this->assertSame( $expected, wp_check_filetype_and_ext( $file, $filename ) ); } /** diff --git a/tests/phpunit/tests/functions/wpRemoteFopen.php b/tests/phpunit/tests/functions/wpRemoteFopen.php index e29c9d31813ff..86d504f19f8ef 100644 --- a/tests/phpunit/tests/functions/wpRemoteFopen.php +++ b/tests/phpunit/tests/functions/wpRemoteFopen.php @@ -26,10 +26,10 @@ public function test_wp_remote_fopen_bad_url() { */ public function test_wp_remote_fopen() { // This URL gives a direct 200 response. - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; + $url = 'https://s.w.org/screenshots/3.9/dashboard.png'; $response = wp_remote_fopen( $url ); $this->assertIsString( $response ); - $this->assertSame( 40148, strlen( $response ) ); + $this->assertSame( 153204, strlen( $response ) ); } } diff --git a/tests/phpunit/tests/http/base.php b/tests/phpunit/tests/http/base.php index ee42056bb3d36..ad104afe52c2e 100644 --- a/tests/phpunit/tests/http/base.php +++ b/tests/phpunit/tests/http/base.php @@ -435,31 +435,6 @@ public function test_https_url_without_ssl_verification() { $this->assertNotWPError( $res ); } - /** - * Test HTTP Redirects with multiple Location headers specified. - * - * @ticket 16890 - * - * @covers ::wp_remote_head - * @covers ::wp_remote_retrieve_header - * @covers ::wp_remote_get - * @covers ::wp_remote_retrieve_body - */ - public function test_multiple_location_headers() { - $url = 'http://api.wordpress.org/core/tests/1.0/redirection.php?multiple-location-headers=1'; - $res = wp_remote_head( $url, array( 'timeout' => 30 ) ); - - $this->skipTestOnTimeout( $res ); - $this->assertIsArray( wp_remote_retrieve_header( $res, 'location' ) ); - $this->assertCount( 2, wp_remote_retrieve_header( $res, 'location' ) ); - - $res = wp_remote_get( $url, array( 'timeout' => 30 ) ); - - $this->skipTestOnTimeout( $res ); - $this->assertSame( 'PASS', wp_remote_retrieve_body( $res ) ); - - } - /** * Test HTTP Cookie handling. * diff --git a/tests/phpunit/tests/http/functions.php b/tests/phpunit/tests/http/functions.php index 43ec8fd12ca2c..2ae09e3d0024f 100644 --- a/tests/phpunit/tests/http/functions.php +++ b/tests/phpunit/tests/http/functions.php @@ -11,7 +11,7 @@ class Tests_HTTP_Functions extends WP_UnitTestCase { */ public function test_head_request() { // This URL gives a direct 200 response. - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; + $url = 'https://s.w.org/screenshots/3.9/dashboard.png'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); @@ -20,8 +20,8 @@ public function test_head_request() { $this->assertIsArray( $response ); - $this->assertSame( 'image/jpeg', $headers['content-type'] ); - $this->assertSame( '40148', $headers['content-length'] ); + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } @@ -30,7 +30,7 @@ public function test_head_request() { */ public function test_head_redirect() { // This URL will 301 redirect. - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); @@ -41,7 +41,7 @@ public function test_head_redirect() { * @covers ::wp_remote_head */ public function test_head_404() { - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/awefasdfawef.jpg'; + $url = 'https://wordpress.org/screenshots/3.9/awefasdfawef.jpg'; $response = wp_remote_head( $url ); $this->skipTestOnTimeout( $response ); @@ -54,7 +54,7 @@ public function test_head_404() { * @covers ::wp_remote_retrieve_response_code */ public function test_get_request() { - $url = 'https://asdftestblog1.files.wordpress.com/2007/09/2007-06-30-dsc_4700-1.jpg'; + $url = 'https://s.w.org/screenshots/3.9/dashboard.png'; $response = wp_remote_get( $url ); @@ -65,8 +65,8 @@ public function test_get_request() { $this->assertIsArray( $response ); // Should return the same headers as a HEAD request. - $this->assertSame( 'image/jpeg', $headers['content-type'] ); - $this->assertSame( '40148', $headers['content-length'] ); + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } @@ -76,8 +76,8 @@ public function test_get_request() { * @covers ::wp_remote_retrieve_response_code */ public function test_get_redirect() { - // This will redirect to asdftestblog1.files.wordpress.com. - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + // This will redirect to wordpress.org. + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; $response = wp_remote_get( $url ); @@ -86,8 +86,8 @@ public function test_get_redirect() { $headers = wp_remote_retrieve_headers( $response ); // Should return the same headers as a HEAD request. - $this->assertSame( 'image/jpeg', $headers['content-type'] ); - $this->assertSame( '40148', $headers['content-length'] ); + $this->assertSame( 'image/png', $headers['Content-Type'] ); + $this->assertSame( '153204', $headers['Content-Length'] ); $this->assertSame( 200, wp_remote_retrieve_response_code( $response ) ); } @@ -95,8 +95,8 @@ public function test_get_redirect() { * @covers ::wp_remote_get */ public function test_get_redirect_limit_exceeded() { - // This will redirect to asdftestblog1.files.wordpress.com. - $url = 'https://asdftestblog1.wordpress.com/files/2007/09/2007-06-30-dsc_4700-1.jpg'; + // This will redirect to wordpress.org. + $url = 'https://wp.org/screenshots/3.9/dashboard.png'; // Pretend we've already redirected 5 times. $response = wp_remote_get( $url, array( 'redirection' => -1 ) ); diff --git a/tests/phpunit/tests/http/http.php b/tests/phpunit/tests/http/http.php index 23a28f4d75fd8..895e6ce7ced42 100644 --- a/tests/phpunit/tests/http/http.php +++ b/tests/phpunit/tests/http/http.php @@ -540,7 +540,7 @@ public function data_wp_http_validate_url_should_not_validate() { 'url' => 'http://[exam]ple.com/caniload.php', ), 'a host whose IPv4 address cannot be resolved' => array( - 'url' => 'http://exampleeeee.com/caniload.php', + 'url' => 'http://example.invalid/caniload.php', ), 'an external request when not allowed' => array( 'url' => 'http://192.168.0.1/caniload.php', @@ -567,4 +567,89 @@ public function callback_custom_safe_ports( $ports ) { public function callback_remove_safe_ports( $ports ) { return array(); } + + /** + * Test HTTP Redirects with multiple Location headers specified. + * + * Ensure the WP_HTTP::handle_redirects() method handles multiple Location headers + * and the HTTP request it makes uses the last Location header. + * + * @ticket 16890 + * @ticket 57306 + * + * @covers WP_HTTP::handle_redirects + */ + public function test_multiple_location_headers() { + $pre_http_request_filter_has_run = false; + // Filter the response made by WP_HTTP::handle_redirects(). + add_filter( + 'pre_http_request', + function( $response, $args, $url ) use ( &$pre_http_request_filter_has_run ) { + $pre_http_request_filter_has_run = true; + + // Assert the redirect URL is correct. + $this->assertSame( + $url, + 'http://example.com/?multiple-location-headers=1&redirected=two' + ); + + if ( 'http://example.com/?multiple-location-headers=1&redirected=two' === $url ) { + $body = 'PASS'; + } else { + $body = 'FAIL'; + } + + return array( + 'headers' => array(), + 'body' => $body, + 'response' => array( + 'code' => 200, + 'message' => 'OK', + ), + 'cookies' => array(), + 'filename' => null, + ); + }, + 10, + 3 + ); + + $headers = array( + 'server' => 'nginx', + 'date' => 'Sun, 11 Dec 2022 23:11:22 GMT', + 'content-type' => 'text/html; charset=utf-8', + 'location' => array( + 'http://example.com/?multiple-location-headers=1&redirected=one', + 'http://example.com/?multiple-location-headers=1&redirected=two', + ), + ); + + // Test the tests: ensure multiple locations are passed to WP_HTTP::handle_redirects(). + $this->assertIsArray( $headers['location'], 'Location header is expected to be an array.' ); + $this->assertCount( 2, $headers['location'], 'Location header is expected to contain two values.' ); + + $args = array( + 'timeout' => 30, + '_redirection' => 3, + 'redirection' => 2, + 'method' => 'GET', + ); + + $redirect_response = WP_HTTP::handle_redirects( + 'http://example.com/?multiple-location-headers=1', + $args, + array( + 'headers' => $headers, + 'body' => '', + 'cookies' => array(), + 'filename' => null, + 'response' => array( + 'code' => 302, + 'message' => 'Found', + ), + ) + ); + $this->assertSame( 'PASS', wp_remote_retrieve_body( $redirect_response ), 'Redirect response body is expected to be PASS.' ); + $this->assertTrue( $pre_http_request_filter_has_run, 'The pre_http_request filter is expected to run.' ); + } } diff --git a/tests/phpunit/tests/image/functions.php b/tests/phpunit/tests/image/functions.php index 8cd42a13b5529..50bcf3b32f2f5 100644 --- a/tests/phpunit/tests/image/functions.php +++ b/tests/phpunit/tests/image/functions.php @@ -372,7 +372,7 @@ public function test_wp_crop_image_file() { */ public function test_wp_crop_image_url() { $file = wp_crop_image( - 'https://asdftestblog1.files.wordpress.com/2008/04/canola.jpg', + 'https://s.w.org/screenshots/3.9/dashboard.png', 0, 0, 100, @@ -380,7 +380,7 @@ public function test_wp_crop_image_url() { 100, 100, false, - DIR_TESTDATA . '/images/' . __FUNCTION__ . '.jpg' + DIR_TESTDATA . '/images/' . __FUNCTION__ . '.png' ); if ( is_wp_error( $file ) && $file->get_error_code() === 'invalid_image' ) { @@ -415,7 +415,7 @@ public function test_wp_crop_image_file_not_exist() { */ public function test_wp_crop_image_url_not_exist() { $file = wp_crop_image( - 'https://asdftestblog1.files.wordpress.com/2008/04/canoladoesnotexist.jpg', + 'https://wordpress.org/screenshots/3.9/canoladoesnotexist.jpg', 0, 0, 100, diff --git a/tests/phpunit/tests/kses.php b/tests/phpunit/tests/kses.php index 7968dbecaa57a..0c519e1461ca0 100644 --- a/tests/phpunit/tests/kses.php +++ b/tests/phpunit/tests/kses.php @@ -1093,6 +1093,11 @@ public function data_test_safecss_filter_attr() { 'css' => 'background: conic-gradient(at 0% 30%, red 10%, yellow 30%, #1e90ff 50%)', 'expected' => 'background: conic-gradient(at 0% 30%, red 10%, yellow 30%, #1e90ff 50%)', ), + // `object-fit` introduced in 6.1. + array( + 'css' => 'object-fit: cover', + 'expected' => 'object-fit: cover', + ), // Expressions are not allowed. array( 'css' => 'height: expression( body.scrollTop + 50 + "px" )', diff --git a/tests/phpunit/tests/media/getPostGalleries.php b/tests/phpunit/tests/media/getPostGalleries.php index bd114b899f3b0..d42dce59150af 100644 --- a/tests/phpunit/tests/media/getPostGalleries.php +++ b/tests/phpunit/tests/media/getPostGalleries.php @@ -41,6 +41,82 @@ public function test_returns_empty_array_with_post_with_no_gallery() { $this->assertEmpty( $galleries ); } + /** + * Test that only galleries are returned. + * + * @dataProvider data_returns_only_galleries + * + * @ticket 55203 + * + * @param string $content The content of the post. + * @param string $needle The content of a non-gallery block. + */ + public function test_returns_only_galleries( $content, $needle ) { + $image_id = $this->factory->attachment->create_object( + array( + 'file' => 'test.jpg', + 'post_parent' => 0, + 'post_mime_type' => 'image/jpeg', + 'post_type' => 'attachment', + ) + ); + + $image_url = 'http://' . WP_TESTS_DOMAIN . '/wp-content/uploads/test.jpg'; + + $content = str_replace( + array( 'IMAGE_ID', 'IMAGE_URL' ), + array( $image_id, $image_url ), + $content + ); + + $post_id = $this->factory->post->create( + array( + 'post_content' => $content, + ) + ); + + $galleries = get_post_galleries( $post_id ); + $actual = implode( '', $galleries ); + + $this->assertStringNotContainsString( $needle, $actual ); + } + + /** + * Data provider. + * + * @return array + */ + public function data_returns_only_galleries() { + $gallery = ' + + + + '; + + return array( + 'a paragraph before a gallery' => array( + 'content' => '

      A paragraph before a gallery.

      ' . $gallery, + 'needle' => 'A paragraph before a gallery.', + ), + 'a paragraph after a gallery' => array( + 'content' => $gallery . '

      A paragraph after a gallery.

      ', + 'needle' => 'A paragraph after a gallery.', + ), + ); + } + /** * Test that no srcs are returned for a shortcode gallery * in a post with no attached images. diff --git a/tests/phpunit/tests/pluggable.php b/tests/phpunit/tests/pluggable.php index 0138ab371e864..ae5d0ff7a576d 100644 --- a/tests/phpunit/tests/pluggable.php +++ b/tests/phpunit/tests/pluggable.php @@ -323,20 +323,4 @@ public function get_pluggable_function_signatures() { return $signatures; } - - /** - * @ticket 28020 - */ - public function test_get_user_by_should_return_same_instance_as_wp_get_current_user() { - // Create a test user. - $new_user = self::factory()->user->create( array( 'role' => 'subscriber' ) ); - - // Set the test user as the current user. - $current_user = wp_set_current_user( $new_user ); - - // Get the test user using get_user_by(). - $from_get_user_by = get_user_by( 'id', $new_user ); - - $this->assertSame( $current_user, $from_get_user_by ); - } } diff --git a/tests/phpunit/tests/query/search.php b/tests/phpunit/tests/query/search.php index 418acbfc8520b..e1f595c14ee54 100644 --- a/tests/phpunit/tests/query/search.php +++ b/tests/phpunit/tests/query/search.php @@ -454,7 +454,7 @@ public function test_include_file_names_in_attachment_search_as_string() { ); add_post_meta( $attachment, '_wp_attached_file', 'some-image1.png', true ); - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); // Pass post_type a string value. $q = new WP_Query( @@ -484,7 +484,7 @@ public function test_include_file_names_in_attachment_search_as_array() { ); add_post_meta( $attachment, '_wp_attached_file', 'some-image2.png', true ); - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); // Pass post_type an array value. $q = new WP_Query( @@ -543,7 +543,7 @@ public function test_include_file_names_in_attachment_search_with_meta_query() { add_post_meta( $attachment, '_wp_attached_file', 'some-image4.png', true ); add_post_meta( $attachment, '_test_meta_key', 'value', true ); - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); // Pass post_type a string value. $q = new WP_Query( @@ -583,7 +583,7 @@ public function test_include_file_names_in_attachment_search_with_tax_query() { wp_set_post_terms( $attachment, 'test', 'post_tag' ); add_post_meta( $attachment, '_wp_attached_file', 'some-image5.png', true ); - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); // Pass post_type a string value. $q = new WP_Query( @@ -608,25 +608,37 @@ public function test_include_file_names_in_attachment_search_with_tax_query() { /** * @ticket 22744 */ - public function test_filter_query_attachment_filenames_unhooks_itself() { - add_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + public function test_wp_query_removes_filter_wp_allow_query_attachment_by_filename() { + $attachment = self::factory()->post->create( + array( + 'post_type' => 'attachment', + 'post_status' => 'publish', + 'post_title' => 'bar foo', + 'post_content' => 'foo bar', + 'post_excerpt' => 'This post has foo', + ) + ); - apply_filters( - 'posts_clauses', + add_post_meta( $attachment, '_wp_attached_file', 'some-image1.png', true ); + add_filter( 'wp_allow_query_attachment_by_filename', '__return_true' ); + + $q = new WP_Query( array( - 'where' => '', - 'groupby' => '', - 'join' => '', - 'orderby' => '', - 'distinct' => '', - 'fields' => '', - 'limit' => '', + 's' => 'image1', + 'fields' => 'ids', + 'post_type' => 'attachment', + 'post_status' => 'inherit', ) ); - $result = has_filter( 'posts_clauses', '_filter_query_attachment_filenames' ); + $this->assertSame( array( $attachment ), $q->posts ); - $this->assertFalse( $result ); + /* + * WP_Query should have removed the wp_allow_query_attachment_by_filename filter + * and thus not match the attachment created above + */ + $q->get_posts(); + $this->assertEmpty( $q->posts ); } public function filter_posts_search( $sql ) { diff --git a/tests/phpunit/tests/rest-api/rest-comments-controller.php b/tests/phpunit/tests/rest-api/rest-comments-controller.php index 99986a803756f..402ae75d12712 100644 --- a/tests/phpunit/tests/rest-api/rest-comments-controller.php +++ b/tests/phpunit/tests/rest-api/rest-comments-controller.php @@ -2972,6 +2972,7 @@ public function test_comment_roundtrip_as_editor_unfiltered_html() { 'content' => '
      div
      strong ', 'author_name' => '
      div
      strong ', 'author_user_agent' => '
      div
      strong ', + 'author' => self::$editor_id, ), array( 'content' => array( @@ -2980,6 +2981,7 @@ public function test_comment_roundtrip_as_editor_unfiltered_html() { ), 'author_name' => 'div strong', 'author_user_agent' => 'div strong', + 'author' => self::$editor_id, ) ); } else { @@ -2989,6 +2991,7 @@ public function test_comment_roundtrip_as_editor_unfiltered_html() { 'content' => '
      div
      strong ', 'author_name' => '
      div
      strong ', 'author_user_agent' => '
      div
      strong ', + 'author' => self::$editor_id, ), array( 'content' => array( @@ -2997,6 +3000,7 @@ public function test_comment_roundtrip_as_editor_unfiltered_html() { ), 'author_name' => 'div strong', 'author_user_agent' => 'div strong', + 'author' => self::$editor_id, ) ); } @@ -3011,6 +3015,7 @@ public function test_comment_roundtrip_as_superadmin() { 'content' => '\\\&\\\ & &invalid; < < &lt;', 'author_name' => '\\\&\\\ & &invalid; < < &lt;', 'author_user_agent' => '\\\&\\\ & &invalid; < < &lt;', + 'author' => self::$superadmin_id, ), array( 'content' => array( @@ -3019,6 +3024,7 @@ public function test_comment_roundtrip_as_superadmin() { ), 'author_name' => '\\\&\\\ & &invalid; < < &lt;', 'author_user_agent' => '\\\&\\\ & &invalid; < < &lt;', + 'author' => self::$superadmin_id, ) ); } @@ -3032,6 +3038,7 @@ public function test_comment_roundtrip_as_superadmin_unfiltered_html() { 'content' => '
      div
      strong ', 'author_name' => '
      div
      strong ', 'author_user_agent' => '
      div
      strong ', + 'author' => self::$superadmin_id, ), array( 'content' => array( @@ -3040,6 +3047,7 @@ public function test_comment_roundtrip_as_superadmin_unfiltered_html() { ), 'author_name' => 'div strong', 'author_user_agent' => 'div strong', + 'author' => self::$superadmin_id, ) ); } diff --git a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php index 4a12e663b5392..60cc1a2c92f8d 100644 --- a/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php +++ b/tests/phpunit/tests/rest-api/rest-pattern-directory-controller.php @@ -100,6 +100,9 @@ public function test_get_items() { $this->assertGreaterThan( 0, count( $patterns ) ); array_walk( $patterns, array( $this, 'assertPatternMatchesSchema' ) ); + $this->assertSame( array( 'blog post' ), $patterns[0]['keywords'] ); + $this->assertSame( array( 'header', 'hero' ), $patterns[1]['keywords'] ); + $this->assertSame( array( 'call to action', 'hero section' ), $patterns[2]['keywords'] ); } /** @@ -146,10 +149,6 @@ public function test_get_items_by_keyword() { $this->assertGreaterThan( 0, count( $patterns ) ); array_walk( $patterns, array( $this, 'assertPatternMatchesSchema' ) ); - - foreach ( $patterns as $pattern ) { - $this->assertContains( 'core', $pattern['keywords'] ); - } } /** diff --git a/tests/phpunit/tests/rest-api/rest-users-controller.php b/tests/phpunit/tests/rest-api/rest-users-controller.php index 4a28f210a162d..925b94964a2b5 100644 --- a/tests/phpunit/tests/rest-api/rest-users-controller.php +++ b/tests/phpunit/tests/rest-api/rest-users-controller.php @@ -1181,7 +1181,7 @@ public function test_get_item_published_author_wrong_context() { $request = new WP_REST_Request( 'GET', sprintf( '/wp/v2/users/%d', $this->author_id ) ); $request->set_param( 'context', 'edit' ); $response = rest_get_server()->dispatch( $request ); - $this->assertErrorResponse( 'rest_user_cannot_view', $response, 401 ); + $this->assertErrorResponse( 'rest_forbidden_context', $response, 401 ); } public function test_get_current_user() { diff --git a/tests/phpunit/tests/theme.php b/tests/phpunit/tests/theme.php index e16dd4c900d2a..14eccdf6da77a 100644 --- a/tests/phpunit/tests/theme.php +++ b/tests/phpunit/tests/theme.php @@ -213,7 +213,7 @@ public function test_default_themes_have_textdomain() { * @ticket 48566 */ public function test_year_in_readme() { - // This test is designed to only run on trunk/master. + // This test is designed to only run on trunk. $this->skipOnAutomatedBranches(); foreach ( $this->default_themes as $theme ) { diff --git a/tests/phpunit/tests/theme/wpGetGlobalStylesheet.php b/tests/phpunit/tests/theme/wpGetGlobalStylesheet.php new file mode 100644 index 0000000000000..b3bd7754bdf4b --- /dev/null +++ b/tests/phpunit/tests/theme/wpGetGlobalStylesheet.php @@ -0,0 +1,188 @@ +orig_theme_dir = $GLOBALS['wp_theme_directories']; + $this->theme_root = realpath( DIR_TESTDATA . '/themedir1' ); + + // /themes is necessary as theme.php functions assume /themes is the root if there is only one root. + $GLOBALS['wp_theme_directories'] = array( WP_CONTENT_DIR . '/themes', $this->theme_root ); + + // Set up the new root. + add_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + add_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + + // Clear caches. + wp_clean_themes_cache(); + unset( $GLOBALS['wp_themes'] ); + } + + public function tear_down() { + $GLOBALS['wp_theme_directories'] = $this->orig_theme_dir; + + // Clear up the filters to modify the theme root. + remove_filter( 'theme_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'stylesheet_root', array( $this, 'filter_set_theme_root' ) ); + remove_filter( 'template_root', array( $this, 'filter_set_theme_root' ) ); + + wp_clean_themes_cache(); + unset( $GLOBALS['wp_themes'] ); + + parent::tear_down(); + } + + public function filter_set_theme_root() { + return $this->theme_root; + } + + public function test_block_theme_using_variables() { + switch_theme( 'block-theme' ); + + $styles = wp_get_global_stylesheet( array( 'variables' ) ); + $this->assertStringContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is 13px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is 36px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is 42px' ); + $this->assertStringContainsString( '--wp--preset--font-size--custom: 100px;', $styles, 'custom font size is 100px' ); + + switch_theme( WP_DEFAULT_THEME ); + } + + public function test_block_theme_using_presets() { + switch_theme( 'block-theme' ); + + $styles = wp_get_global_stylesheet( array( 'presets' ) ); + $this->assertStringNotContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--custom: 100px;', $styles, 'custom font size is not present' ); + + switch_theme( WP_DEFAULT_THEME ); + } + + public function test_block_theme_using_defaults() { + switch_theme( 'block-theme' ); + + $styles = wp_get_global_stylesheet(); + $this->assertStringContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is 13px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is 36px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is 42px' ); + $this->assertStringContainsString( '--wp--preset--font-size--custom: 100px;', $styles, 'custom font size is 100px' ); + + switch_theme( WP_DEFAULT_THEME ); + } + + public function test_variables_in_classic_theme_with_no_presets_using_variables() { + $styles = wp_get_global_stylesheet( array( 'variables' ) ); + $this->assertStringContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is 13px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is 36px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is 42px' ); + } + + public function test_variables_in_classic_theme_with_no_presets_using_presets() { + $styles = wp_get_global_stylesheet( array( 'presets' ) ); + $this->assertStringNotContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is not present' ); + } + + public function test_variables_in_classic_theme_with_no_presets_using_defaults() { + $styles = wp_get_global_stylesheet(); + $this->assertStringContainsString( '--wp--preset--font-size--small: 13px', $styles, 'small font size is 13px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 36px', $styles, 'large font size is 36px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is 42px' ); + } + + public function test_variables_in_classic_theme_with_presets_using_variables() { + add_theme_support( + 'editor-font-sizes', + array( + array( + 'name' => 'Small', + 'size' => 18, + 'slug' => 'small', + ), + array( + 'name' => 'Large', + 'size' => 26.25, + 'slug' => 'large', + ), + ) + ); + + $styles = wp_get_global_stylesheet( array( 'variables' ) ); + $this->assertStringContainsString( '--wp--preset--font-size--small: 18px', $styles, 'small font size is 18px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 26.25px', $styles, 'large font size is 26.25px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is 42px' ); + + remove_theme_support( 'editor-font-sizes' ); + } + + public function test_variables_in_classic_theme_with_presets_using_presets() { + add_theme_support( + 'editor-font-sizes', + array( + array( + 'name' => 'Small', + 'size' => 18, + 'slug' => 'small', + ), + array( + 'name' => 'Large', + 'size' => 26.25, + 'slug' => 'large', + ), + ) + ); + + $styles = wp_get_global_stylesheet( array( 'presets' ) ); + $this->assertStringNotContainsString( '--wp--preset--font-size--small: 18px', $styles, 'small font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--large: 26.25px', $styles, 'large font size is not present' ); + $this->assertStringNotContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'x-large font size is not present' ); + + remove_theme_support( 'editor-font-sizes' ); + } + + public function test_variables_in_classic_theme_with_presets_using_defaults() { + add_theme_support( + 'editor-font-sizes', + array( + array( + 'name' => 'Small', + 'size' => 18, + 'slug' => 'small', + ), + array( + 'name' => 'Large', + 'size' => 26.25, + 'slug' => 'large', + ), + ) + ); + + $styles = wp_get_global_stylesheet(); + $this->assertStringContainsString( '--wp--preset--font-size--small: 18px', $styles, 'small font size is 18px' ); + $this->assertStringContainsString( '--wp--preset--font-size--medium: 20px', $styles, 'medium font size is 20px' ); + $this->assertStringContainsString( '--wp--preset--font-size--large: 26.25px', $styles, 'large font size is 26.25px' ); + $this->assertStringContainsString( '--wp--preset--font-size--x-large: 42px', $styles, 'small font size is 42px' ); + + remove_theme_support( 'editor-font-sizes' ); + } + +} diff --git a/tests/qunit/fixtures/wp-api-generated.js b/tests/qunit/fixtures/wp-api-generated.js index 8e3a7fb9911f5..9566fb0dedb60 100644 --- a/tests/qunit/fixtures/wp-api-generated.js +++ b/tests/qunit/fixtures/wp-api-generated.js @@ -3761,7 +3761,7 @@ mockedApiResponse.Schema = { "required": false }, "object": { - "description": "The type of object originally represented, such as \"category,\" \"post\", or \"attachment.\"", + "description": "The type of object originally represented, such as \"category\", \"post\", or \"attachment\".", "type": "string", "required": false }, @@ -3949,7 +3949,7 @@ mockedApiResponse.Schema = { "required": false }, "object": { - "description": "The type of object originally represented, such as \"category,\" \"post\", or \"attachment.\"", + "description": "The type of object originally represented, such as \"category\", \"post\", or \"attachment\".", "type": "string", "required": false }, @@ -4134,7 +4134,7 @@ mockedApiResponse.Schema = { "required": false }, "object": { - "description": "The type of object originally represented, such as \"category,\" \"post\", or \"attachment.\"", + "description": "The type of object originally represented, such as \"category\", \"post\", or \"attachment\".", "type": "string", "required": false }, diff --git a/tools/local-env/scripts/docker.js b/tools/local-env/scripts/docker.js index 60cb305b7f498..e4c382140a498 100644 --- a/tools/local-env/scripts/docker.js +++ b/tools/local-env/scripts/docker.js @@ -4,5 +4,5 @@ const { execSync } = require( 'child_process' ); dotenvExpand( dotenv.config() ); -// Execute any docker-compose command passed to this script. -execSync( 'docker-compose ' + process.argv.slice( 2 ).join( ' ' ), { stdio: 'inherit' } ); +// Execute any docker compose command passed to this script. +execSync( 'docker compose ' + process.argv.slice( 2 ).join( ' ' ), { stdio: 'inherit' } ); diff --git a/tools/local-env/scripts/install.js b/tools/local-env/scripts/install.js index 4a21b99953cb1..ed35a2959c646 100644 --- a/tools/local-env/scripts/install.js +++ b/tools/local-env/scripts/install.js @@ -45,7 +45,7 @@ wait_on( { resources: [ `tcp:localhost:${process.env.LOCAL_PORT}`] } ) * @param {string} cmd The WP-CLI command to run. */ function wp_cli( cmd ) { - execSync( `docker-compose run --rm cli ${cmd}`, { stdio: 'inherit' } ); + execSync( `docker compose run --rm cli ${cmd}`, { stdio: 'inherit' } ); } /** @@ -54,6 +54,11 @@ function wp_cli( cmd ) { function install_wp_importer() { const testPluginDirectory = 'tests/phpunit/data/plugins/wordpress-importer'; - execSync( `docker-compose exec -T php rm -rf ${testPluginDirectory}`, { stdio: 'inherit' } ); - execSync( `docker-compose exec -T php git clone https://github.com/WordPress/wordpress-importer.git ${testPluginDirectory} --depth=1`, { stdio: 'inherit' } ); + + // The final version of the WordPress Importer plugin with support for PHP < 7.2 is 0.9.0. + const phpVersion = parseFloat(process.env.LOCAL_PHP.split('-')[0]); + const branchFlag = phpVersion < 7.2 ? '--branch 0.9.0' : ''; + + execSync( `docker compose exec -T php rm -rf ${testPluginDirectory}`, { stdio: 'inherit' } ); + execSync( `docker compose exec -T php git clone ${branchFlag} https://github.com/WordPress/wordpress-importer.git ${testPluginDirectory} --depth=1`, { stdio: 'inherit' } ); } diff --git a/tools/local-env/scripts/start.js b/tools/local-env/scripts/start.js index cf184354507ef..0882cfefe1b1b 100644 --- a/tools/local-env/scripts/start.js +++ b/tools/local-env/scripts/start.js @@ -5,7 +5,10 @@ const { execSync } = require( 'child_process' ); dotenvExpand( dotenv.config() ); // Start the local-env containers. -execSync( 'docker-compose up -d wordpress-develop', { stdio: 'inherit' } ); +const containers = ( process.env.LOCAL_PHP_MEMCACHED === 'true' ) + ? 'wordpress-develop memcached' + : 'wordpress-develop'; +execSync( `docker compose up -d -- ${containers}`, { stdio: 'inherit' } ); // If Docker Toolbox is being used, we need to manually forward LOCAL_PORT to the Docker VM. if ( process.env.DOCKER_TOOLBOX_INSTALL_PATH ) {