Skip to main content

No project description provided

Project description

qarray-rust-core

GitHub Workflow Status PyPI

Rust logo Python logo

Quantum Dot Constant Capacitance Simulator is a high-performance Python package that leverages the power of Rust and Rayon to provide a fully parallelised and optimised simulation environment for quantum dots with constant capacitance.

This package provides core functionality; it is not intended that the user will interact with it directly.

Features

  • Ultra-fast Simulation: Harnesses the speed of Rust and the parallelism of Rayon to deliver lightning-fast simulations.
  • Constant Capacitance: Specialized for simulating quantum dots with constant capacitance, allowing precise modelling of charge dynamics.
  • User-Friendly: Designed with ease of use in mind, making it accessible to both experts and newcomers in quantum dot simulations.
  • Extensive Documentation: Comprehensive documentation and examples to help you get started quickly.

Installation

Install Quantum Dot Constant Capacitance Simulator using pip:

pip install qarray-rust-core

Usage

This package exposes two functions to be called from python:

  • ground_state_open - computes the lowest energy state of a quantum dot array with constant capacitance and which is open, such that the total number of changes is not fixed.
  • ground_state_closed - computes the lowest energy state of a quantum dot array with constant capacitance and which is closed, such that the total number of changes is fixed.

The python code to call these functions is as follows:

from qarray-rust-core import (ground_state_open, ground_state_closed)
import numpy as np 

# the dot-dot capacitance matrix
cdd = np.array([
     [1, -0.1],
     [-0.1, 1]
])
cdd_inv = np.linalg.inv(cdd)

# the dot-gate capacitance matrix
cgd = np.array([
       [1, 0.3],
       [0.3, 1]
 ])

# define a matrix of gate voltages to sweep over the first gate
vg = np.stack([np.linspace(-1, 1, 100), np.zeros(100)], axis = -1)

n_charge = 3 # the number of changes to confine in the quantum dot array for the closed case 
threshold = 1 # threshold to avoid having to consider all possible charge states, setting it 1 is always correct, however has a computatinal cost. 

n_open = ground_state_open(vg, cgd, cdd_inv, threshold)
n_closed = ground_state_closed(vg, n_charge, cgd, cdd, cdd_inv, threshold)

It is not intended the user ever call these functions directly.

There is a pure Python wrapper that provides a more user-friendly interface to this core functionality. See Quantum Dot Constant Capacitance Simulator. This package provides:

  • A user-friendly interface to the core functionality.
  • Plotting, charge sensing, virtual gate and gate voltage sweeping (1d and 2d) functionality.
  • Advanced type checking using pydantic.
  • Automated testing including for the functionality in this package.
  • More examples.

Project details


Download files

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

Source Distribution

qarray_rust_core-1.0.2.tar.gz (13.4 kB view details)

Uploaded Source

Built Distributions

qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (829.5 kB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (841.6 kB view details)

Uploaded PyPy manylinux: glibc 2.12+ i686

qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (828.7 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.0 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (859.8 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (810.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (840.4 kB view details)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

qarray_rust_core-1.0.2-cp311-none-win_amd64.whl (264.6 kB view details)

Uploaded CPython 3.11 Windows x86-64

qarray_rust_core-1.0.2-cp311-none-win32.whl (242.7 kB view details)

Uploaded CPython 3.11 Windows x86

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (829.5 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (861.0 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (828.9 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (811.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (841.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

qarray_rust_core-1.0.2-cp311-cp311-macosx_11_0_arm64.whl (375.7 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

qarray_rust_core-1.0.2-cp310-none-win_amd64.whl (264.6 kB view details)

Uploaded CPython 3.10 Windows x86-64

qarray_rust_core-1.0.2-cp310-none-win32.whl (242.7 kB view details)

Uploaded CPython 3.10 Windows x86

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (829.5 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (861.0 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (828.9 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (811.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (841.7 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

qarray_rust_core-1.0.2-cp310-cp310-macosx_11_0_arm64.whl (375.7 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

File details

Details for the file qarray_rust_core-1.0.2.tar.gz.

File metadata

  • Download URL: qarray_rust_core-1.0.2.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.3.0

File hashes

Hashes for qarray_rust_core-1.0.2.tar.gz
Algorithm Hash digest
SHA256 9b173094c8e1d5944c71cdc7e118d7cb64a50a10c4d6bc7c2fd22756288ec06d
MD5 139028bc974a3d4a867d8d7879e0b1f2
BLAKE2b-256 71855a76c8b0a751e28c004c5802ab338d2058171e1e12525666cc5cfa8d12d6

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f4c48b547c36291d2be62786978936cc8b251326f3a1febb05ed78639ed125a
MD5 c0d692ca78fc363c1f24438bbe93af50
BLAKE2b-256 3de41157261ecf408842d1be0d94509df6c92f2edc8e285d055620a23d91b777

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 48e1113d9c7a1e076c6dc07b117f18879e6a8bc0a48e24deb7a1b97953c21db4
MD5 15df53abd8edc118f70c5e0a472dfdee
BLAKE2b-256 3c9f797a903bf2ffb4779adb15693bdbf40e8b4c030eb7abf46f3fe65eaca091

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8fa7a96064e70219ab343d0509d19b786a933e3f616da6868281587195f3e420
MD5 f0a5fed4df438580fe60eacf953d1e85
BLAKE2b-256 803b660e0233f203aedbbc9d1485b6be1ebdfba7286d5961cc76bae4c49dd188

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1d0ce8ba5214937d9b57a8a422684dc000080b3775f930ed07704ea28f4f2b4d
MD5 113530e2ae6a37f718cbe71d3cc89e52
BLAKE2b-256 407c9f1cafd77782787dfa8e95d3ab7a62ca8e4f5a77f1784a9faea966e7eb8e

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 eaa5fcd14d93601eb6ea12cee5b751824d84692e59519ccc781f962055f5899a
MD5 10f7c1e1d79292ae5b983246543a6bab
BLAKE2b-256 4334f97fa03912200c02a59c8ba0d9c745510c1d586be9afb4a1bdfc1295c702

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1f56af7d90feb5869ff084801774e61472f8a114eed4fb3da0d63e0a885e81f3
MD5 83c11cddc02c87f4d2954b171d66e89f
BLAKE2b-256 5258c8aa929660b1db277b3b746c6e78dcd6ae58e50a50a5bf3b6a7b57a3bc5b

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 476695654d7e165032c06b42fd5fa9146f195742c4b380540bd862e860b3bba6
MD5 2edaa7a0178b8bec99c00dbc6d0c5ba8
BLAKE2b-256 6a2677f020c9443ae3faaee40d54070db5235b4375f59d17b0326835dcc72f3f

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 75f697038d0013ee8551f14be59bd08d8aefa318610c3238fc81095de4a49ed8
MD5 802222de3ccc7270946db1db02c0d004
BLAKE2b-256 1e887def4664649233441da3a647a43ee78e66e4c8754d68bedd44f35a62cbd1

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-none-win32.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-none-win32.whl
Algorithm Hash digest
SHA256 67f9b0af82edf2fd6f7009c55ccc457408fbd9dcfbd3da2a80025899162f1c03
MD5 6fca964c740ba2ca0f63ad2d45ec44ea
BLAKE2b-256 1ce5bbbc6a69fa81dd63e98840828ed204d2da51b970035efc66b0d90a8e986f

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7113869cad081794fa3c2dd201361cabe5f36f95c82c046b72259741f966f3d8
MD5 f3586a805cbec4f4709dd73d4c758b71
BLAKE2b-256 73a1f897d976fccefa2051121d658210e0426b97b95c3ae17379ac49b18f0c44

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 38900b5a437aa24824ae7cd6ea0c86c37e771199f23380e7a1ddeb0f36145ce8
MD5 fb96ac39dc9fb968eff0347e061f7d76
BLAKE2b-256 fbc9f671a80bf3b1a75fa010c431bcb205670e4167e34927a07882096ec70f12

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 7c33d7c2df11a238446a28a1de65bae90eb02ce87199215069235b00aaa63856
MD5 59583b5d63d7a958d37851d84cbe45d2
BLAKE2b-256 2e9b9d5b020f0bcdb58d956dbd36f5813cba7785331a4b94d65635e20a52cee5

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6add6afcc9de05948fff3d8436f36c53e4d2c02baad161078bf08c59bddd7697
MD5 9e7fdb19f4448ce70e6fbda599635692
BLAKE2b-256 8f70f75d615858b657eb1a5b05a8e17522f8cd48169809e1e7da7f660b7b8941

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 81edd310c4a90feeb9bc609d0b95048dd943b5befcaafa4bc67a14e84f0c891e
MD5 87b373230e23c03e5c01de2dc42bbfae
BLAKE2b-256 5e3494caf4588bedfc8783f6984121e8e0b5849b3d664b7a3d0fb26dca1e1f54

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 c474a7efb288edb3a7b24785898c8f1e0522d6a8fa779b6f4df7b05f8cb0b469
MD5 a79397e7383dfbe0f04ba45033471a85
BLAKE2b-256 37cdfb6bce4064b9edf6fdf31857cca7b7fd63c9ef6ad7af30c82e006cb0ac84

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fbd4b18e1a36487ad52de63206071a7ee05a621301f078792ef9cb7384d86ad5
MD5 aea92d8ea964372b4a1421bc8f9ba26a
BLAKE2b-256 d086cf15a07ec4ff94298d7177fe1ecd4357b9f3b49bdf646ff04d473799a051

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 1b5f65c80fbd2b6f16c395514b1df675504040da791185b045580931468289e8
MD5 3774edb53033130b8f65adb92cf64341
BLAKE2b-256 b95bb397fbe1b1f1c34f954f8311617d474858ca9ef232216d056939da754739

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-none-win32.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-none-win32.whl
Algorithm Hash digest
SHA256 890fd23c3ecca0ea057214831cc59b79b773fbe3a3c6bf291b806ffbd1eb3c7a
MD5 7f64634a51464f5d0cd71f70c6598dad
BLAKE2b-256 7582ab0397d6b6901b98375622c3f1a4abd6a968d0eaa5c8011e7563ef422956

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79122b898d29370145207d60fe99c15e0b6c00af00e717c6f9a447f45e0dcbc6
MD5 0c3f71bb348a63a191784ec8ec8a7132
BLAKE2b-256 3123de3c88ad5acda1acff7b06f638d7b2f1ad324cd9b320dc38111275a9d655

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d1815f3d2d00f8b673573ca816373b5b74b9f1830be1706d90f633ec7f99421c
MD5 0c09ec7ef311cfed8086b057369e3360
BLAKE2b-256 35e644a382748eee484d29578fe0cf85f382ae0f221ba4bce4bfb484f37a4918

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 735231b78797082e928967de4ee24a5496d744b446cb83b2c2d54380edaea9f2
MD5 cc49c97277a224893c99ab63a9526438
BLAKE2b-256 aac33d6e0241b4ec30d515e8d765563251dca4e28f235480d8ce993968d70355

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6a34e5a77ade16b7b521c5956b54e9a7b72047c0456bb936d34b3e315b162d04
MD5 5826091991c7f6585429c9e7edb49789
BLAKE2b-256 6ae74c2946cbc038f4576c4d12f8508d30d80ba047ff2e9ec1bf6edbb13559a1

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 93c17e228ae341d0a59a99f294ea226316f1fdd90ef05b70da89c0b56e9e249c
MD5 94c3d35c44f516939b39c112fca62d93
BLAKE2b-256 0100d7af0f00ad9587a5fd60609e9fef32d626119e5c9cc2507c838b96e324df

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4c1d4c4926b848d7453820ee12796ba41bc63875c9e33d160c11935de6d5b18e
MD5 a16bae6d1bab1fdfb81960b056c29cbb
BLAKE2b-256 4ff9f3edfb27e00852e8a111dae403cd199acee1fa0e3bceda6e113721919674

See more details on using hashes here.

File details

Details for the file qarray_rust_core-1.0.2-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for qarray_rust_core-1.0.2-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b79cd3b0423c0f8f585fdf4dc7f8386c74ceea5d56be6d905e1ab89ccbf892e6
MD5 dc7f1a2f3d0cb476b6c8b450a8764ac8
BLAKE2b-256 7d398ef0cf2718a9d78644791993c3958a212b996bac2a16954d376a39cb49ff

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