Skip to main content

passagemath: Algorithms for Rubik's cube

Project description

passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.

It is a fork of SageMath, which has been developed 2005-2025 under the motto “Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB”.

The passagemath fork uses the motto “Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities.” It was created in October 2024 with the following goals:

Full documentation is available online.

passagemath attempts to support and provides binary wheels suitable for all major Linux distributions and recent versions of macOS.

Binary wheels for native Windows (x86_64) are are available for a subset of the passagemath distributions. Use of the full functionality of passagemath on Windows currently requires the use of Windows Subsystem for Linux (WSL) or virtualization.

The supported Python versions in the passagemath 10.6.x series are 3.10.x-3.13.x.

About this pip-installable distribution package

This pip-installable distribution passagemath-rubiks provides an interface to several programs for working with Rubik’s cubes.

Michael Reid (GPL) http://www.cflmath.com/~reid/Rubik/optimal_solver.html

  • optimal - uses many pre-computed tables to find an optimal solution to the 3x3x3 Rubik’s cube

Dik T. Winter (MIT License)

  • cube - uses Kociemba’s algorithm to iteratively find a short solution to the 3x3x3 Rubik’s cube

  • size222 - solves a 2x2x2 Rubik’s cube

Eric Dietz (GPL) https://web.archive.org/web/20121212175710/http://www.wrongway.org/?rubiksource

  • cu2 - A fast, non-optimal 2x2x2 solver

  • cubex - A fast, non-optimal 3x3x3 solver

  • mcube - A fast, non-optimal 4x4x4 solver

What is included

  • Interface

  • Features (via passagemath-environment)

  • Binary wheels on PyPI contain prebuilt copies of rubiks executables.

Examples

Using rubiks programs on the command line:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks" sage -sh -c cubex

Finding the installation location of a rubiks program:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.features.rubiks import cubex

In [2]: cubex().absolute_filename()

Using the Python interface:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.interfaces.rubik import *

In [2]: C = RubiksCube("R U F L B D")

In [3]: sol = CubexSolver().solve(C.facets()); sol
Out[3]: "U' L' L' U L U' L U D L L D' L' D L' D' L D L' U' L D' L' U L' B' U' L' U B L D L D' U' L' U L B L B' L' U L U' L' F' L' F L' F L F' L' D' L' D D L D' B L B' L B' L B F' L F F B' L F' B D' D' L D B' B' L' D' B U' U' L' B' D' F' F' L D F'"

Using sage.groups.perm_gps:

$ pipx run --pip-args="--prefer-binary" --spec "passagemath-rubiks[test]" ipython

In [1]: from sage.all__sagemath_rubiks import *

In [2]: rubik = CubeGroup(); state = rubik.faces("R")

In [3]: rubik.solve(state)
Out[3]: 'R'

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

passagemath_rubiks-10.6.33.tar.gz (8.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_x86_64.whl (213.2 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_x86_64.whl (213.3 kB view details)

Uploaded CPython 3.12+macOS 13.0+ x86-64

passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_arm64.whl (204.9 kB view details)

Uploaded CPython 3.12+macOS 13.0+ ARM64

passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_x86_64.whl (212.6 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_arm64.whl (204.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_x86_64.whl (2.1 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_x86_64.whl (212.8 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_arm64.whl (204.6 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file passagemath_rubiks-10.6.33.tar.gz.

File metadata

  • Download URL: passagemath_rubiks-10.6.33.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for passagemath_rubiks-10.6.33.tar.gz
Algorithm Hash digest
SHA256 f43b6314d7b7bd2872ed05d7534f8dfdf27b4e2d12f276611aee5b8914e6747b
MD5 11dcde47e916ac3c4a4c08816d3c7cc5
BLAKE2b-256 60a7bfe3f6cd269aee0d3fa59d3d5f226872b38ec3850e1440126070a0163ae1

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 186e3162c1f38669646583c4412a06f05601c1196045cc5f9e0a8c7de65af80a
MD5 0d794d3923e2db0e40548b60663511c5
BLAKE2b-256 6fe2ecb8eb24ce3a5b4f65ce7ce7472a0a7c7232a8608d090ff023dfa2ef3baf

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 85c4dcbbba793c21ccb1720559446b3f8c4c4ac6818f4cb7edd2e76125cdc3a4
MD5 f6f5cc5cf8dd04bdddca57abdd812407
BLAKE2b-256 c09b3b3ae3b72f9154d792a4ead826d969c236bbb268b4eba56d060b18dfbb3f

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a72af0c1dee18e79356a91df56c102f3c599adf3f85aaff61be76a76d243ecbb
MD5 c042f5046620e3d4f315faa6a883591b
BLAKE2b-256 c49c4c9bcf7e8e316b9be5d87af7715ec47b421b617c80b520f30beab5acebf6

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e57979f7f3cf2d6df9bf5ceb4bcf6fe90dce8fc8447cf731b9295395d1226dc
MD5 f811b7bc7614faee4efdaf9173006bbb
BLAKE2b-256 da6dbeb0f240bece60d24abb77f1d4aaacfebcef7fdcee5eb34e6197e023e32a

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 3dfd3965c52fd290f10aba1a42dea4c700c90f057e1c444eb4eaa5eb10c95174
MD5 2ed9ae31a1dd5ef3170d9a3cebe81c05
BLAKE2b-256 19d1b2d49b63ae2d34076324255f0fd26affe02378c9ba0d71a89b66d2d3f159

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a36dbebba66630c4b3a23161caaa19daa108a94f2fb7eef8e9a7e2e0db457853
MD5 54672eb456d1fb4b481497583bdab5f4
BLAKE2b-256 d65d3bc31561b6fac5588a5a16cda9a5faa32816165d0b29f9fc88c431f7291b

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5f3ca115a24617ea12ccb22027c21a4656e411690080c996cd85f5c596acda4d
MD5 6da230ea75e6aa06bd1e1ce3f61fe786
BLAKE2b-256 9a7cb0b1321283b2b5ba355aa348769c52753c95b92ad6fa1e444fff0c37e48e

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c5f139d8a97693bbb7dbaf719bdc30f41d4a6b8e0b863cd239386573b10d55da
MD5 8004d51bc2fd962108a401e151a76aff
BLAKE2b-256 94a9dd4775ee6896604086f3e90d67f21180a831a4e5d8287a8ebd7c5132a808

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 be825054d39c73f11f9e6d379d770282413afdbca83fbebef5774af2811fe6d5
MD5 3b38f614c64a5a1c10a67f15d1b51dcd
BLAKE2b-256 c9f27ad458519a737a2568580282ca8589c6961c0d18892bc6083f152c35b138

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1e81f030a67333376a00f9a428e1d98f4f318da468a7e1a186fd2649f39457fa
MD5 14adab0ba4330dd52b8de6f57046e8b0
BLAKE2b-256 b9b74b41a2871dc4c3cff50a10c7f397821ac252764b4b618dbd404b9a223508

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 96b53cf5419caa6eaaac880789a9191b6370015384bf2adfb9f39fc869f79f4f
MD5 35aa094e7e45b5ac4e1c442646233268
BLAKE2b-256 35616bfbea2613ecd5b422902622d6bba662598b6da7c71e52c1485b8d0d5d44

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp312-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 6f02e4de65cf7bc4ec6df2219d19a8ab79fb1164308da900be431833127d3704
MD5 531ed427ba1d2dd407c88d25f02d9721
BLAKE2b-256 a0c5c7ea93d9b89468baf1b6404f4830ccd254e5234a2be9f71f7e05c0413166

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57296fce1d2c783bd61c220a36d1c04461bbc13953193212ad30b9504cc79ab3
MD5 a52353519e1dc229c9972f27ed6883c5
BLAKE2b-256 6d87308122c192c2fc06e3655c5119e92f0c7d075fa9aa7cf320c312f7fe5170

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d93afa34ac01697440e06158fb0f3360dc612443ec22e58455db6837bf13a86c
MD5 ff8d920d296e4b1c15a78a83a4e63a4b
BLAKE2b-256 c4785526384da79a32742f82ece5030682c8ab5ea0c99bd6cc51c2445586c727

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c792c16e5b07e92b389e01ffafe343f68b6def9ec85e272aafb6f45c5dd8a70
MD5 90cf60bcc592ee496f8f7153268b5a3b
BLAKE2b-256 4a6686670a486035d56f73be42984ca0dae6910211a29be62ebe1d602f71c804

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1504ddfbee0f2198b11fe0e01c72f3fdb4cad66dfc8be3db061bd5b22a7b1790
MD5 c0a8270580575c1483458e1cd41e9f98
BLAKE2b-256 99b9794975c525dfeeb8ba43bfad0ec26a07146771bd8a5d85a582c0559fcc7c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 2dae0feed3dd82fd44bca4c8e0d012d381f21ef9015308400ff9a43e35595dbe
MD5 77822c05c3693cd0e4d394a4f60b362a
BLAKE2b-256 af8cb03acc659a953d45508c485a8a5aaef00398e103d59c5b0b87631bd97f4c

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 a616868b8e321dec7d11ee7e73b04afc99de2bad8a9d8834aea2571ff5a44088
MD5 cd3642f0abac221eaecd0ea18f5c6a71
BLAKE2b-256 9e7a641e4ea6c313102f1420de89e7dd8294c055d3d4f823c12033acc9629975

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6760aa4e2dc0795786b3b3c72870e4f0b864f8c3a235d8e8e06d3d41fff69801
MD5 08efd25949ffd40c6240149410f17db1
BLAKE2b-256 bd1bfa096cdb6455e4a57ec30eddabd1a2810e3bf91fda18db13e611f34761a7

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 2974d1d4fafcbc56f6e9156510e02ab6da94720bd0b4882f2a81e6c606d27fc4
MD5 7ab42b9ea415686e54565d2fa00bd62e
BLAKE2b-256 70d7cb486ca14298cab28aebc852e10be6d495aa72c3843d915cb429e867c508

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74bd82a1eb260aca227c078ca332fcaf3d9b53e0b49737abd4caa9a938e08e4c
MD5 351dc60285935e4515268ff1d2eb9df9
BLAKE2b-256 e43ecd20e485a8f3519f56474675b1e561699ea666196c6a6bfa4ddc4fd7f0fc

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ab11794ed6c3fed25e0ef7b417fcfd24473f54cb01547cb766909516a4fef5f3
MD5 750a45d6d0ee3fe0dd207828920a1225
BLAKE2b-256 3b8d9a40ae7b89c9c9c1a96ab82afed322aad5882226876ffeaa6ff390ef4d63

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d9fd2bccf5875b77ff1742d1a04c7944faa67dcb3304dc5a90e68ad540f8f108
MD5 9aaaf58be861273164d3af6503a446ca
BLAKE2b-256 d592c6653c942952045047e76a84f59869a48c538b0e30db473df812f6696182

See more details on using hashes here.

File details

Details for the file passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for passagemath_rubiks-10.6.33-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 e1dbb5bae4dc1ee7efc62aab5523fa14006faf09c4426fd5950057f22bd71c7a
MD5 23660298bece6c5f8a187b20cd5d0762
BLAKE2b-256 29e90d62af32e43be84c6a51697d3ee42ff00076bb145b3dd7ef1e7cb39aa9b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page