Skip to content

Commit

Permalink
CIP-0105 | Add test vectors (#952)
Browse files Browse the repository at this point in the history
* test-vector 1 additions

* polishing

* test-vector 2 additions

* test-vector 3 additions

* test-vector 4 additions

* polishing
  • Loading branch information
paweljakubas authored Dec 24, 2024
1 parent d08e267 commit 6424b4f
Show file tree
Hide file tree
Showing 6 changed files with 292 additions and 33 deletions.
4 changes: 2 additions & 2 deletions CIP-0105/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Implementors:
- Mesh <https://meshjs.dev/>
- NuFi <https://nu.fi/>
- Ryan Williams <[email protected]>
- Pawel Jackobs <[email protected]>
- Pawel Jakubas <[email protected]>
- Typhon <https://typhonwallet.io/>
- Vespr <https://vespr.xyz/>
- Yoroi <https://yoroi-wallet.com/>
Expand Down Expand Up @@ -302,4 +302,4 @@ See [Test Vectors File](./test-vectors.md).
This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).

[CIP-0129]: (https://github.com/cardano-foundation/CIPs/blob/master/CIP-0129/README.md)
[DEPRECATED]: #deprecated-governance-id-definition
[DEPRECATED]: #deprecated-governance-id-definition
4 changes: 2 additions & 2 deletions CIP-0105/test-vectors.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Test Vector for CIP-0105
# Test Vector for CIP-0105 compliant with CIP-0129

Here we provide a set of test vectors.

Expand All @@ -10,7 +10,7 @@ Scripts were constructed according to the following native script templates:

**Script 2:** `any [$vKeyhash, all [active_from 5001, active_until 6001]]`

Where `$vKeyhash` is the Verification key hash aka `{drep1... | cc_cold1... | cc_hot1...}`.
Where `$vKeyhash` is the Verification key hash aka `{drep_vkh1... | cc_cold_vkh1... | cc_hot_vkh1...}`.

## Test vector 1

Expand Down
77 changes: 71 additions & 6 deletions CIP-0105/test-vectors/test-vector-1.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Scripts were constructed according to the following native script templates:

**Script 2:** `any [$vKeyhash, all [active_from 5001, active_until 6001]]`

Where `$vKeyhash` is the Verification key hash aka `{drep | cc_cold | cc_hot}`.
Where `$vKeyhash` is the Verification key hash aka `{drep_vkh1... | cc_cold_vkh1... | cc_hot_vkh1...}`.

### DRep Keys

Expand Down Expand Up @@ -42,32 +42,49 @@ Hex: `f74d7ac30513ac1825715fd0196769761fca6e7f69de33d04ef09a0c417a752b1d84110299

Bech32: `drep_xvk17axh4sc9zwkpsft3tlgpjemfwc0u5mnld80r85zw7zdqcst6w543mpq3q2vkjy3nw8x7n8asw4es78dyl4q7u7kwlwn7yy0sugxfrjs6z25qe`


#### [DEPRECATED] Verification key hash (DRep ID)

Hex: `a5b45515a3ff8cb7c02ce351834da324eb6dfc41b5779cb5e6b832aa`

Bech32: `drep15k6929drl7xt0spvudgcxndryn4kmlzpk4meed0xhqe25nle07s`


#### Verification key hash (DRep VKH)

Hex: `a5b45515a3ff8cb7c02ce351834da324eb6dfc41b5779cb5e6b832aa`

Bech32: `drep_vkh15k6929drl7xt0spvudgcxndryn4kmlzpk4meed0xhqe254czjh2`

#### [CIP-0129 compliant] Verification key hash appended with '22' hex-encoded byte (DRep key hash credential)

Hex: `22a5b45515a3ff8cb7c02ce351834da324eb6dfc41b5779cb5e6b832aa`

Bech32: `drep1y2jmg4g450lced7q9n34rq6d5vjwkm0ugx6h0894u6ur92s9txn3a`

#### Script 1 hash (DRep Script Hash)

Hex: `d0657126dbf0c135a7224d91ca068f5bf769af6d1f1df0bce5170ec5`

Bech32: `drep_script16pjhzfkm7rqntfezfkgu5p50t0mkntmdruwlp089zu8v29l95rg`

#### [CIP-0129] Script 1 hash appended with '23' hex-encoded byte (DRep script hash credential)

Hex: `23d0657126dbf0c135a7224d91ca068f5bf769af6d1f1df0bce5170ec5`

Bech32: `drep1y0gx2ufxm0cvzdd8yfxerjsx3adlw6d0d503mu9uu5tsa3gtkvwpe`

#### Script 2 hash (DRep Script Hash)

Hex: `ae5acf0511255d647c84b3184a2d522bf5f6c5b76b989f49bd383bdd`

Bech32: `drep_script14edv7pg3y4wkglyykvvy5t2j906ld3dhdwvf7jda8qaa63d5kf4`

#### [CIP-0129] Script 2 hash appended with '23' hex-encoded byte (DRep script hash credential)

Hex: `23ae5acf0511255d647c84b3184a2d522bf5f6c5b76b989f49bd383bdd`

Bech32: `drep1ywh94nc9zyj46erusje3sj3d2g4ltak9ka4e386fh5urhhga37qxs`


### Constitutional Committee Cold

#### Constitutional Committee Signing Key
Expand All @@ -82,7 +99,6 @@ Hex: `a9781abfc1604a18ebff6fc35062c000a7a66fdca1323710ed38c1dfc3315bea`

Bech32: `cc_cold_vk149up407pvp9p36lldlp4qckqqzn6vm7u5yerwy8d8rqalse3t04q7qsvwl`


#### Constitutional Committee Extended Cold Signing Key

Hex: `684f5b480507755f387e7e544cb44b3e55eb3b88b9f6976bd41e5f746ce1a45e28b4aa8bf129088417c0fade65a98a056cbcda96c0a8874cfcbef0bf53932a12c601968e75ff3052ffa675aedaaea49ff36cb23036df105e28e1d32b4527e6cf`
Expand All @@ -95,24 +111,49 @@ Hex: `a9781abfc1604a18ebff6fc35062c000a7a66fdca1323710ed38c1dfc3315beac601968e75

Bech32: `cc_cold_xvk149up407pvp9p36lldlp4qckqqzn6vm7u5yerwy8d8rqalse3t04vvqvk3e6l7vzjl7n8ttk646jflumvkgcrdhcstc5wr5etg5n7dnc8nqv5d`

#### Constitutional Committee Cold Verification Key Hash
#### [DEPRECATED] Constitutional Committee Cold Verification Key Hash

Hex: `fefb9596ed670ad2c9978d78fe4eb36ba24cbba0a62fa4cdd0c2dcf5`

Bech32: `cc_cold1lmaet9hdvu9d9jvh34u0un4ndw3yewaq5ch6fnwsctw02xxwylj`

#### Constitutional Committee Cold Verification key hash (Constitutional Committee Cold VKH)

Hex: `fefb9596ed670ad2c9978d78fe4eb36ba24cbba0a62fa4cdd0c2dcf5`

Bech32: `cc_cold_vkh1lmaet9hdvu9d9jvh34u0un4ndw3yewaq5ch6fnwsctw0243cw47`

#### [CIP-0129 compliant] Constitutional Committee Cold Verification key hash appended with '12' hex-encoded byte (Constitutional Committee Cold key hash credential)

Hex: `12fefb9596ed670ad2c9978d78fe4eb36ba24cbba0a62fa4cdd0c2dcf5`

Bech32: `cc_cold1ztl0h9vka4ns45kfj7xh3ljwkd46yn9m5znzlfxd6rpdeagw6p59q`

#### Constitutional Committee Cold Script 1 Hash

Hex: `ae6f2a27554d5e6971ef3e933e4f0be7ed7aeb60f6f93dfb81cd6e1c`

Bech32: `cc_cold_script14ehj5f64f40xju0086fnunctulkh46mq7munm7upe4hpcwpcatv`

#### [CIP-0129] Constitutional Committee Cold Script 1 hash appended with '13' hex-encoded byte (Constitutional Committee Cold script hash credential)

Hex: `13ae6f2a27554d5e6971ef3e933e4f0be7ed7aeb60f6f93dfb81cd6e1c`

Bech32: `cc_cold1zwhx723824x4u6t3aulfx0j0p0n767htvrm0j00ms8xku8q30p2xd`

#### Constitutional Committee Cold Script 2 Hash

Hex: `119c20cecfedfdba057292f76bb110afa3ab472f9c35a85daf492316`

Bech32: `cc_cold_script1zxwzpnk0ah7m5ptjjtmkhvgs4736k3e0ns66shd0fy33vdauq3j`

#### [CIP-0129] Constitutional Committee Cold Script 2 hash appended with '13' hex-encoded byte (Constitutional Committee Cold script hash credential)

Hex: `13119c20cecfedfdba057292f76bb110afa3ab472f9c35a85daf492316`

Bech32: `cc_cold1zvgecgxwelklmws9w2f0w6a3zzh6826897wrt2za4ayjx9swtgkr6`


### Constitutional Committee Hot

#### Constitutional Committee Hot Signing Key
Expand All @@ -139,20 +180,44 @@ Hex: `792a7f83cab90261f72ef57ee94a65ca9b0c71c1be2c8fdd5318c3643b20b52f5487e846e9

Bech32: `cc_hot_xvk10y48lq72hypxraew74lwjjn9e2dscuwphckglh2nrrpkgweqk5h4fplggm56wz9jw6qadq6l5tdvj6qs3v7ggh3hjkt5j8ntga42pvs5rvh0a`

#### Constitutional Committee Hot Verification Key Hash
#### [DEPRECATED] Constitutional Committee Hot Verification Key Hash

Hex: `f6d29c0f7164d37610cbf67b126a993beb24a076d0653f1fa069588f`

Bech32: `cc_hot17mffcrm3vnfhvyxt7ea3y65e804jfgrk6pjn78aqd9vg7xpq8dv`

#### Constitutional Committee Hot Verification key hash (Constitutional Committee Hot VKH)

Hex: `f6d29c0f7164d37610cbf67b126a993beb24a076d0653f1fa069588f`

Bech32: `cc_hot_vkh17mffcrm3vnfhvyxt7ea3y65e804jfgrk6pjn78aqd9vg7vk5akz`

#### [CIP-0129 compliant] Constitutional Committee Hot Verification key hash appended with '02' hex-encoded byte (Constitutional Committee Hot key hash credential)

Hex: `02f6d29c0f7164d37610cbf67b126a993beb24a076d0653f1fa069588f`

Bech32: `cc_hot1qtmd98q0w9jdxasse0m8kyn2nya7kf9qwmgx20cl5p543rcdtr4dz`

#### Constitutional Committee Hot Script 1 Hash

Hex: `d27a4229c92ec8961b6bfd32a87380dcee4a08c77b0d6c8b33f180e8`

Bech32: `cc_hot_script16fayy2wf9myfvxmtl5e2suuqmnhy5zx80vxkezen7xqwskncf40`

#### [CIP-0129] Constitutional Committee Hot Script 1 hash appended with '03' hex-encoded byte (Constitutional Committee Hot script hash credential)

Hex: `03d27a4229c92ec8961b6bfd32a87380dcee4a08c77b0d6c8b33f180e8`

Bech32: `cc_hot1q0f85s3feyhv39smd07n92rnsrwwujsgcaas6mytx0ccp6q7ak53g`

#### Constitutional Committee Hot Script 2 Hash

Hex: `62e0798c7036ff35862cf42f4e7ada06f7fb5b6465390082a691be14`

Bech32: `cc_hot_script1vts8nrrsxmlntp3v7sh5u7k6qmmlkkmyv5uspq4xjxlpg6u229p`

#### [CIP-0129] Constitutional Committee Hot Script 2 hash appended with '03' hex-encoded byte (Constitutional Committee Hot script hash credential)

Hex: `0362e0798c7036ff35862cf42f4e7ada06f7fb5b6465390082a691be14`

Bech32: `cc_hot1qd3wq7vvwqm07dvx9n6z7nn6mgr0076mv3jnjqyz56gmu9qaj7nrc`
87 changes: 74 additions & 13 deletions CIP-0105/test-vectors/test-vector-2.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Scripts were constructed according to the following native script templates:

**Script 2:** `any [$vKeyhash, all [active_from 5001, active_until 6001]]`

Where `$vKeyhash` is the Verification key hash aka `{drep1... | cc_cold1... | cc_hot1...}`.
Where `$vKeyhash` is the Verification key hash aka `{drep_vkh1... | cc_cold_vkh1... | cc_hot_vkh1...}`.

### DRep Keys

Expand All @@ -23,13 +23,11 @@ Hex: `10fb8436bb02e2a4d3127860f771a9f1f9aff362f202346e3238b38a76e1a45eec82a22f49

Bech32: `drep_sk1zracgd4mqt32f5cj0ps0wudf78u6lumz7gprgm3j8zec5ahp530weq4z9ayj6jzj33lpj86jkk2gnt0ns0d5sywteexxehvva7gugzqjur0zk`


#### DRep verification key

Hex: `70344fe0329bbacbb33921e945daed181bd66889333eb73f3bb10ad8e4669976`

Bech32:
`drep_vk1wq6ylcpjnwavhveey855tkhdrqdav6yfxvltw0emky9d3erxn9mqdrlerg`
Bech32: `drep_vk1wq6ylcpjnwavhveey855tkhdrqdav6yfxvltw0emky9d3erxn9mqdrlerg`

#### DRep extended signing key

Expand All @@ -43,32 +41,49 @@ Hex: `70344fe0329bbacbb33921e945daed181bd66889333eb73f3bb10ad8e4669976a523761cec

Bech32: `drep_xvk1wq6ylcpjnwavhveey855tkhdrqdav6yfxvltw0emky9d3erxn9m22gmkrnkyrqn8922eycuwwqt64q4wds2ssdmlgp5dqq9gem6k5vq23ph3c`


#### [DEPRECATED] Verification key hash (DRep ID)

Hex: `1ed314af7d3ff8fcd320c73eb58524d774ca38733ee00ebca81bd63a`

Bech32: `drep1rmf3ftma8lu0e5eqculttpfy6a6v5wrn8msqa09gr0tr5rgcuy9`


#### Verification key hash (DRep VKH)

Hex: `1ed314af7d3ff8fcd320c73eb58524d774ca38733ee00ebca81bd63a`

Bech32: `drep_vkh1rmf3ftma8lu0e5eqculttpfy6a6v5wrn8msqa09gr0tr590rpdl`

#### [CIP-0129 compliant] Verification key hash appended with '22' hex-encoded byte (DRep key hash credential)

Hex: `221ed314af7d3ff8fcd320c73eb58524d774ca38733ee00ebca81bd63a`

Bech32: `drep1yg0dx99005ll3lxnyrrnadv9ynthfj3cwvlwqr4u4qdavwshx0yl0`

#### Script 1 hash (DRep Script Hash)

Hex: `3e11f3d9b39639fbb9d59c6efec7b7c1e9dbcb104523c7a4b194c45c`

Bech32: `drep_script18cgl8kdnjculhww4n3h0a3ahc85ahjcsg53u0f93jnz9c0339av`

#### [CIP-0129] Script 1 hash appended with '23' hex-encoded byte (DRep script hash credential)

Hex: `233e11f3d9b39639fbb9d59c6efec7b7c1e9dbcb104523c7a4b194c45c`

Bech32: `drep1yvlpru7ekwtrn7ae6kwxalk8klq7nk7tzpzj83aykx2vghq0nyenc`

#### Script 2 hash (DRep Script Hash)

Hex: `bba45271823634a8ba9fdb981ad76df02cd2384a4e1b43c41b2734a9`

Bech32: `drep_script1hwj9yuvzxc623w5lmwvp44md7qkdywz2fcd583qmyu62jvjnz69`

#### [CIP-0129] Script 2 hash appended with '23' hex-encoded byte (DRep script hash credential)

Hex: `23bba45271823634a8ba9fdb981ad76df02cd2384a4e1b43c41b2734a9`

Bech32: `drep1ywa6g5n3sgmrf296nldesxkhdhcze53cff8pks7yrvnnf2g5w625r`


### Constitutional Committee Cold

#### Constitutional Committee Cold Signing Key
Expand All @@ -77,7 +92,6 @@ Hex: `684261ca0130e52a66861eefa275da745fd1c3f4f83100bca49904e773e1a45e0aafece23c

Bech32: `cc_cold_sk1dppxrjspxrjj5e5xrmh6yaw6w30arsl5lqcsp09ynyzwwulp530q4tlvug79xx6ja3u32fu9jyy84p6erjmza6twrackm9kfsdpc3aqr79jja`


#### Constitutional Committee Cold Verification Key

Hex: `cab60e3b880ba64b252b942bb645d5e58ef4d6f243542fc28ce4051170171f91`
Expand All @@ -88,33 +102,57 @@ Bech32: `cc_cold_vk1e2mquwugpwnykfftjs4mv3w4uk80f4hjgd2zls5vusz3zuqhr7gs3qg4hr`

Hex: `684261ca0130e52a66861eefa275da745fd1c3f4f83100bca49904e773e1a45e0aafece23c531b52ec7915278591087a87591cb62ee96e1f716d96c9834388f43ee1839d84124acdea81c69ee7e6e828387e51067878f30cab414ec5f2e36b42`

Bech32:
`cc_cold_xsk1dppxrjspxrjj5e5xrmh6yaw6w30arsl5lqcsp09ynyzwwulp530q4tlvug79xx6ja3u32fu9jyy84p6erjmza6twrackm9kfsdpc3ap7uxpempqjftx74qwxnmn7d6pg8pl9zpnc0rese26pfmzl9cmtgg8xsxvu`
Bech32: `cc_cold_xsk1dppxrjspxrjj5e5xrmh6yaw6w30arsl5lqcsp09ynyzwwulp530q4tlvug79xx6ja3u32fu9jyy84p6erjmza6twrackm9kfsdpc3ap7uxpempqjftx74qwxnmn7d6pg8pl9zpnc0rese26pfmzl9cmtgg8xsxvu`

#### Constitutional Committee Cold Extended Verification Key

Hex: `cab60e3b880ba64b252b942bb645d5e58ef4d6f243542fc28ce4051170171f913ee1839d84124acdea81c69ee7e6e828387e51067878f30cab414ec5f2e36b42`

Bech32: `cc_cold_xvk1e2mquwugpwnykfftjs4mv3w4uk80f4hjgd2zls5vusz3zuqhr7gnacvrnkzpyjkda2qud8h8um5zswr72yr8s78npj45znk97t3kkssryhkyv`

#### Constitutional Committee Cold Verification Key Hash
#### [DEPRECATED] Constitutional Committee Cold Verification Key Hash

Hex: `e93734fae718e91bbf45c86f8cd81e7f9687e6cffe4c910dd1a4c360`

Bech32: `cc_cold1aymnf7h8rr53h069ephcekq707tg0ek0lexfzrw35npkq02wke0`

#### Constitutional Committee Cold Verification key hash (Constitutional Committee Cold VKH)

Hex: `e93734fae718e91bbf45c86f8cd81e7f9687e6cffe4c910dd1a4c360`

Bech32: `cc_cold_vkh1aymnf7h8rr53h069ephcekq707tg0ek0lexfzrw35npkquacunr`

#### [CIP-0129 compliant] Constitutional Committee Cold Verification key hash appended with '12' hex-encoded byte (Constitutional Committee Cold key hash credential)

Hex: `12e93734fae718e91bbf45c86f8cd81e7f9687e6cffe4c910dd1a4c360`

Bech32: `cc_cold1zt5nwd86uuvwjxalghyxlrxcreledplxellyeygd6xjvxcqy66a7t`

#### Constitutional Committee Cold Script 1 Hash

Hex: `08d78337fcf51a2a9fe93dee7d21679a3c28948cd90184155040b3e4`

Bech32: `cc_cold_script1prtcxdlu75dz48lf8hh86gt8ng7z39yvmyqcg92sgze7g6m8dtq`

#### [CIP-0129] Constitutional Committee Cold Script 1 hash appended with '13' hex-encoded byte (Constitutional Committee Cold script hash credential)

Hex: `1308d78337fcf51a2a9fe93dee7d21679a3c28948cd90184155040b3e4`

Bech32: `cc_cold1zvyd0qehln63525lay77ulfpv7drc2y53nvsrpq42pqt8eq6u9w33`

#### Constitutional Committee Cold Script 2 Hash

Hex: `2e8b77ecaa9f003978dea86515cee6b97df4dff52298e60198d5b387`

Bech32: `cc_cold_script1969h0m92nuqrj7x74pj3tnhxh97lfhl4y2vwvqvc6kecwdshr6f`

#### [CIP-0129] Constitutional Committee Cold Script 2 hash appended with '13' hex-encoded byte (Constitutional Committee Cold script hash credential)

Hex: `132e8b77ecaa9f003978dea86515cee6b97df4dff52298e60198d5b387`

Bech32: `cc_cold1zvhgkalv420sqwtcm65x29wwu6uhmaxl753f3espnr2m8pcul7pjs`


### Constitutional Committee Hot

#### Constitutional Committee Hot Signing Key
Expand All @@ -139,23 +177,46 @@ Bech32: `cc_hot_xsk15pt89wppyhr9eqgm5nnu7tna3dfmqxa2u45e4g7krzp9u78p530pez36k8k9

Hex: `783ae09be2f648b59483a9bee5cace8d68c7e6e2819bfb5a1a00fbf204bea06e31609b9d64a7103fa9ab1bcdadfdea2d2366b3be0268df7f68edc9b36f8d300e`

Bech32:
`cc_hot_xvk10qawpxlz7eytt9yr4xlwtjkw345v0ehzsxdlkks6qralyp975phrzcymn4j2wypl4x43hnddlh4z6gmxkwlqy6xl0a5wmjdnd7xnqrsvak8ry`
Bech32: `cc_hot_xvk10qawpxlz7eytt9yr4xlwtjkw345v0ehzsxdlkks6qralyp975phrzcymn4j2wypl4x43hnddlh4z6gmxkwlqy6xl0a5wmjdnd7xnqrsvak8ry`

#### Constitutional Committee Hot Verification Key Hash
#### [DEPRECATED] Constitutional Committee Hot Verification Key Hash

Hex: `d1d4ebdb19689e95e097919bd8712441e89b41ec36de47bf40344f85`

Bech32: `cc_hot1682whkcedz0ftcyhjxdasufyg85fks0vxm0y006qx38c2jz0ae0`

#### Constitutional Committee Hot Verification key hash (Constitutional Committee Hot VKH)

Hex: `d1d4ebdb19689e95e097919bd8712441e89b41ec36de47bf40344f85`

Bech32: `cc_hot_vkh1682whkcedz0ftcyhjxdasufyg85fks0vxm0y006qx38c2c4m8zp`

#### [CIP-0129 compliant] Constitutional Committee Hot Verification key hash appended with '02' hex-encoded byte (Constitutional Committee Hot key hash credential)

Hex: `02d1d4ebdb19689e95e097919bd8712441e89b41ec36de47bf40344f85`

Bech32: `cc_hot1qtgaf67mr95fa90qj7gehkr3y3q73x6pasmdu3algq6ylpgfamj02`

#### Constitutional Committee Hot Script 1 Hash

Hex: `bdf295c04cac9c78a69bca06cb8f2cffbee76d739759e80ec09a0655`

Bech32: `cc_hot_script1hheftszv4jw83f5megrvhrevl7lwwmtnjav7srkqngr92gna52t`

#### [CIP-0129] Constitutional Committee Hot Script 1 hash appended with '03' hex-encoded byte (Constitutional Committee Hot script hash credential)

Hex: `03bdf295c04cac9c78a69bca06cb8f2cffbee76d739759e80ec09a0655`

Bech32: `cc_hot1qw7l99wqfjkfc79xn09qdju09nlmaemdwwt4n6qwczdqv4gs6fm6e`

#### Constitutional Committee Hot Script 2 Hash

Hex: `6a0b26bbf030bb6c2c8e62b0ef77c84494d771e81517ccf1434d5e26`

Bech32: `cc_hot_script1dg9jdwlsxzakctywv2cw7a7ggj2dwu0gz5tueu2rf40zvkj8dwc`

#### [CIP-0129] Constitutional Committee Hot Script 2 hash appended with '03' hex-encoded byte (Constitutional Committee Hot script hash credential)

Hex: `036a0b26bbf030bb6c2c8e62b0ef77c84494d771e81517ccf1434d5e26`

Bech32: `cc_hot1qd4qkf4m7qctkmpv3e3tpmmhepzff4m3aq230n83gdx4ufsalrf9f`
Loading

0 comments on commit 6424b4f

Please sign in to comment.