Skip to main content

Decision Diagrams

Project description

OxiDD

Matrix

These are the Python bindings for OxiDD, a highly modular decision diagram framework written in Rust. The most prominent instance of decision diagrams is provided by (reduced ordered) binary decision diagrams (BDDs), which are succinct representations of Boolean functions 𝔹n → 𝔹. Such BDD representations are canonical and thus, deciding equality of Boolean functions—in general a co-NP-complete problem—can be done in constant time. Further, many Boolean operations on two BDDs f,g are possible in 𝒪(|f| · |g|) (where |f| denotes the node count in f). There are various other kinds of decision diagrams for which OxiDD aims to be a framework enabling high-performance implementations with low effort.

Features

  • Several kinds of (reduced ordered) decision diagrams are already implemented:
    • Binary decision diagrams (BDDs)
    • BDDs with complement edges (BCDDs)
    • Zero-suppressed BDDs (ZBDDs, aka ZDDs/ZSDDs)
    • Not yet exposed via the Python API: Multi-terminal BDDs (MTBDDs, aka ADDs) and Ternary decision diagrams (TDDs)
  • Extensibility: Due to OxiDD’s modular design, one can implement new kinds of decision diagrams without having to reimplement core data structures.
  • Concurrency: Functions represented by DDs can safely be used in multi-threaded contexts. Furthermore, apply algorithms can be executed on multiple CPU cores in parallel.
  • Performance: Compared to other popular BDD libraries (e.g., BuDDy, CUDD, and Sylvan), OxiDD is already competitive or even outperforms them.
  • Support for Reordering: OxiDD can reorder a decision diagram to a given variable order. Support for dynamic reordering, e.g., via sifting, is about to come.

Licensing

OxiDD is licensed under either MIT or Apache 2.0 at your opinion.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this project by you, as defined in the Apache 2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Publications

The seminal paper presenting OxiDD was published at TACAS'24. If you use OxiDD, please cite us as:

Nils Husung, Clemens Dubslaff, Holger Hermanns, and Maximilian A. Köhl: OxiDD: A safe, concurrent, modular, and performant decision diagram framework in Rust. In: Proceedings of the 30th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’24)

@inproceedings{oxidd24,
  author        = {Husung, Nils and Dubslaff, Clemens and Hermanns, Holger and K{\"o}hl, Maximilian A.},
  booktitle     = {Proceedings of the 30th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS'24)},
  title         = {{OxiDD}: A Safe, Concurrent, Modular, and Performant Decision Diagram Framework in {Rust}},
  year          = {2024},
  doi           = {10.1007/978-3-031-57256-2_13}
}

Acknowledgements

This work is partially supported by the German Research Foundation (DFG) under the projects TRR 248 (see https://perspicuous-computing.science, project ID 389792660) and EXC 2050/1 (CeTI, project ID 390696704, as part of Germany’s Excellence Strategy).

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

oxidd-0.8.1-pp310-pypy310_pp73-win_amd64.whl (260.2 kB view details)

Uploaded PyPy Windows x86-64

oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

oxidd-0.8.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl (798.2 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

oxidd-0.8.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl (812.7 kB view details)

Uploaded PyPy macOS 10.15+ x86-64

oxidd-0.8.1-pp39-pypy39_pp73-win_amd64.whl (260.2 kB view details)

Uploaded PyPy Windows x86-64

oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ i686

oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.7 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

oxidd-0.8.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl (798.2 kB view details)

Uploaded PyPy macOS 11.0+ ARM64

oxidd-0.8.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl (812.7 kB view details)

Uploaded PyPy macOS 10.15+ x86-64

oxidd-0.8.1-cp39-abi3-win_arm64.whl (251.9 kB view details)

Uploaded CPython 3.9+ Windows ARM64

oxidd-0.8.1-cp39-abi3-win_amd64.whl (271.2 kB view details)

Uploaded CPython 3.9+ Windows x86-64

oxidd-0.8.1-cp39-abi3-win32.whl (265.6 kB view details)

Uploaded CPython 3.9+ Windows x86

oxidd-0.8.1-cp39-abi3-musllinux_1_2_x86_64.whl (1.8 MB view details)

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

oxidd-0.8.1-cp39-abi3-musllinux_1_2_i686.whl (1.9 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ i686

oxidd-0.8.1-cp39-abi3-musllinux_1_2_armv7l.whl (1.9 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ ARMv7l

oxidd-0.8.1-cp39-abi3-musllinux_1_2_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9+ musllinux: musl 1.2+ ARM64

oxidd-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ x86-64

oxidd-0.8.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.1 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ s390x

oxidd-0.8.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.8 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ppc64le

oxidd-0.8.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (1.8 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ i686

oxidd-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9+ manylinux: glibc 2.17+ ARM64

oxidd-0.8.1-cp39-abi3-macosx_11_0_arm64.whl (809.1 kB view details)

Uploaded CPython 3.9+ macOS 11.0+ ARM64

oxidd-0.8.1-cp39-abi3-macosx_10_9_x86_64.whl (822.6 kB view details)

Uploaded CPython 3.9+ macOS 10.9+ x86-64

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6f98734c5a1a00b3cc4e7ee408786e0d1a43c175ffb15552704fffb7f00087ec
MD5 b06dc4df050a082f1a82fa2d0aae1ff0
BLAKE2b-256 ef661a40a6b8cb1a116ab98edfdbda89d22468237fd58a8bb6093c92d213cbbd

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5592ddb9e328b0bbc7b97111a157a31ebcde7d8dcb4fbd6a2e3cd096bea4cbc2
MD5 ee5fe3c37b7190c81ea7cb7cfb807cb0
BLAKE2b-256 3ef8bffd355d4b43b15bf998bc7fc124c6c01fd5499b13c43db40f9a3f4abac1

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 400811ad8e2bbca2394549e30181de844c2c4646f2af2ecf850207b80b658686
MD5 6151c3cfe65b5ba8939865e4458fd2ff
BLAKE2b-256 963fefaf586c7f08a0baba0cd645bb5bc173cae477e0c6b4b54889aa9f69b1a7

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 fcad760f25f096a96d47043f0d8bde981665f120851d9ca625177e3104ee55a8
MD5 1518c43af67bcb43d399ee1ee1cddd77
BLAKE2b-256 ed84cb8d5b80299276bcba2ac05d598547e78a8c7d8d12fe91aeccd319efed55

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b47b6882fd872d761f8e6710a659fc8bbca07934fcb32d9733d87a97e982a2d5
MD5 e21b2dd8581e05f3f32aa9fa23350efa
BLAKE2b-256 1b4915889f5e8dd37547a6872ce3b2e1677c95377d20ea4575a68f3642b780e2

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e5de4a8340073e836cfe83821994fbff7913fbcf663869c34943340b84d13cd3
MD5 d74a8024911a5ea3aa00eb044917e9e8
BLAKE2b-256 d4819b9d2ab6161dbd9856a3b46bc20821bac5e5cf20537daf3fb7c816f16be1

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 12c6f45609bf9e547b8476280a0e2f6c4051c0f6526ff1fde8e7e5ba3772c24c
MD5 bda5c11d7e2fcd80c2f90751d5075446
BLAKE2b-256 7448e095c782b49a805a85f3a79c51d6ef016688993b02a13dfcda0ad09d060a

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84f407adda34137228ea6010d4890bb5cb385d8e106fe47da9c6457caf01c59b
MD5 eb0e470f3749e8a277a0a99973541a36
BLAKE2b-256 0faf088dea950fb42d4739da14b198ac77cb0e199499eb792a4aeffbfe3c15f4

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 240c506bbc2ad46637e5cb8cad00668c8ff1a0ab21292c97214489e5a444f041
MD5 bc84866a2d10e4bffe51f6ebe074acf0
BLAKE2b-256 a822fbc3ed7b81f98f9379b05300c8167f39362e63d50c0f005ee8ff76cf6572

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b195f1f6724b3f3c03a0ab6b19c845fbb9ca0c1d2289e1d5723ed122955384ed
MD5 3648b8b9b9af5bc926d1d0b6328de244
BLAKE2b-256 dc07a2fc8e87dd04ea7780213b93b224d0daef8ffd1fcfdca78b86967f226d5a

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2bb464c4fe5127fee235164a4c42549b0787814bc16327806db924401654470c
MD5 42d25701fbd7e69fb40949be8b09bea7
BLAKE2b-256 d8931c81c349df2cf96b21883a651f3bc6222835bdc551d3fc1dce5df097043c

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 17c4de93c3dabd90c2237fbc2c759b3fb1cda86fc5380103808a8b252f9fe7f0
MD5 dfabf9e6d65e78e266f751c8114f7b7d
BLAKE2b-256 33c8be9e5b48734f76cdb19b48df3394e4e948c9cae7c75ca58aa88ca95c5eec

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: oxidd-0.8.1-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 251.9 kB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.6

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 b22dc4145f910a07d13b2c64f40424e3b8e6f01f0f676d57eeaef09b5b2b5cec
MD5 353e3a41474e782fd98e31764bbbec06
BLAKE2b-256 b25962ef18d1678b447be930b3fc17e39457e685b171a73618836bacaec8bb6e

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: oxidd-0.8.1-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 271.2 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.6

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b35c464ff96fb85f57e942d86915708583faaf624ee60d0d397208d47388af2c
MD5 c2d120c4e5d7d0c180b380fc8181a392
BLAKE2b-256 d33a4fb274b899776cedf6a25802605297a2d64f7343e55e421efc9f71767a6e

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-win32.whl.

File metadata

  • Download URL: oxidd-0.8.1-cp39-abi3-win32.whl
  • Upload date:
  • Size: 265.6 kB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.6

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 f9fb4cb66855f52e3b109d6d08a281b66f3bfa28e4be41a2595f9d6264c4b6ce
MD5 54e0f0f1013e0dba79138f9a2eba3f66
BLAKE2b-256 526b416e3f1620c6983a024895c8de6b882634847f31342a28c896c52f875bdb

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 d4399d2e78563f1fe0af6def77601bcba752aa914196a7e392296893e0d2c6a4
MD5 72136c569631cc0c647dfd94caf0fe5a
BLAKE2b-256 39cc412e1cdc2eef4b9f1f39abd38f27193ba10b7096421e799f5a0da38f2e81

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 4115d901f99c95e190c52fecaca24b45e7805a1fb1bb7561c7eeba67b87b08c5
MD5 d7e93989818738efe6bdc2849bcc59df
BLAKE2b-256 ed257dc3e746be9cc7ee073e0337b5050542c4567ef508f94e01636d76a29454

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 a76be1e2bcbc3f5a57212f45b7f64c9261ffa8e297d71f0ced6b0abe4757b37a
MD5 5bebec8b722729d9b25da2bef23fa282
BLAKE2b-256 b397021931dab87f41b9234cbb40180baca5cb91249c9291450bdd336f77a415

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 31a271dc57fc469c22ee5e0aed44b5d9309cee261885159d924f7f396025b8ce
MD5 52924a2137f668d8229c9382d8145bd1
BLAKE2b-256 e76f0b0de13a0cb40f13dfebf33bfd47233842acddc603e32f4358dbaa2bd08f

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d5bd828d3dac74fea7795e3e58550e82a8cd1941d52e69e1f9c278d13a824167
MD5 2126db5d7cd3fa525df994b2e7b28fda
BLAKE2b-256 988be80c1c41fae39177cb9238d6074c4604b5d7e86014ce30b2ebefc4e34bf9

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 81667c9a7cf936e2590b1a2b41cac063ac744c4f930abcaa4fac5becc8f63203
MD5 ff2104377e9fa497dbcd65308eb3603a
BLAKE2b-256 0bbb1192e7d815dc6f9d5576b55f4cdd32d3071c64ba3411e35d40a14a443f79

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6371c37e68df5e3f607714adb0fe684130adf3fc3625689b69c8dd270b3a58be
MD5 02917d5b5642dd4c0df13b8b991646ba
BLAKE2b-256 d6dc2a9b8593c4ecd875c7f9899354d77fd4191170638ab438268beb02c461bd

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4283f89a8603153dd02ee162d61fa5f71742a0cda42fb93de22b1dac4ff3132b
MD5 0788746c4e6e1ca9f80e6e3c28b0942c
BLAKE2b-256 9abdc2e964dffe9d180e7f8acf1b51aad59f2e10b78cdabd843b9a3288131ff9

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0eb662039587247573d518aa3d7a1bece271f2673e3c2278d963c7dc91e87e22
MD5 6135acf4b63526d8e0c674a2cc2cb75d
BLAKE2b-256 758702bec9b4943c0fd65fe32c9dd6668a41871e004073df4d110d496b0c2f26

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 571b4d9c6b3767f661e0495d5b2e1dca08888aa00bbbff7346823f165aa43b14
MD5 ef15774443b9e8ff490d3249cae4c26a
BLAKE2b-256 e3c68836ac851ce0003cc5182f2f328b92baca94f11f3c5ebfd4e95cdf342107

See more details on using hashes here.

File details

Details for the file oxidd-0.8.1-cp39-abi3-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for oxidd-0.8.1-cp39-abi3-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 668f9dab0cf11a1a1ce0222ccb599de0aa6fd693f87da484862b5ed3164a931e
MD5 e30b7f769b0290f6815ae2a69c1c1f1e
BLAKE2b-256 eca890fafb16506014db0c4f5b29e2bbe3f49d4a167f27d5a2e0861450e32c0e

See more details on using hashes here.

Supported by

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