Check the chain and the body of the sealed locator, as ParseInfo of Go

The vectors of Go are regenerated on datekeys-go 69dbb0c: only the cases
of those checks change. The writer of the extension refuses a DateKey of a
profile that is not pinned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
v0.13
dev 1 day ago
parent 63ca2ba82e
commit 2cdc1d9d12

@ -4,6 +4,11 @@ Cambios notables de la librería Dart. El proyecto usa versionado semántico; mi
## Especificación 0.13, en la rama `v0.13` — sin versión
### El localizador sellado, comprobado antes de la fecha (06-10-2026)
- `parseCapsuleInfo` comprueba el localizador sellado como `ParseInfo` de Go desde `69dbb0c`, a petición del autor: la cadena del stanza tlock en hexadecimal en minúsculas y, si la DateKey es de Quicknet, la de Quicknet; y que el cuerpo tras la cabecera `age` lleve un texto de 4096 bytes o un múltiplo, así que una cabecera sin cuerpo se rechaza. Cada caso es `ERR_EXTENSION_DATA_INVALID` con el texto de Go. `CapsuleInfo.toExtension` rechaza además una DateKey de un perfil que la librería no fija. El límite de 1 MiB al abrir el localizador se queda, por decisión del autor.
- Los vectores de Go del localizador se regeneran sobre ese commit: cambian solo los casos de esas comprobaciones.
### La especificación 0.13, aprobada (06-10-2026)
- El autor aprobó el 6 de octubre de 2026 el borrador v0.13, tal como estaba: `datekeys-go` lo cierra con el tag `spec-v0.13` (`913dd60`). `specVersion` pasa a `0.13`, `testdata` se sincroniza con ese tag, y los vectores de `test/vectors/` cambian solo su campo `spec`.

@ -128,6 +128,14 @@ final class CapsuleInfo {
if (d == null || d != dateKey) {
throw _fail('Info.DateKey is not a canonical DateKey');
}
// A writer writes the DateKey of a capsule it wrote: of a profile that
// this library pins, whose chain the check of the locator then compares.
if (d.profileId != quicknetId) {
throw _fail(
'Info.DateKey is of the profile ${goQuote(utf8Bytes(d.profileId))}, '
'which this module does not pin',
);
}
final s = sealed;
if (s != null && (s.isEmpty || s.length > _maxSealed)) {
throw _fail(
@ -241,28 +249,65 @@ CapsuleInfo parseCapsuleInfo(Extension x) {
throw _dataInvalid('compact_datekey is not a canonical DateKey');
}
final s = sealed;
if (s != null && !_sealedFor(s, d.round)) {
throw _dataInvalid(
'the locator is not an age file with one tlock stanza for round '
'${d.round}, the one of its DateKey',
);
if (s != null) {
final problem = _sealedProblem(s, d);
if (problem != null) throw _dataInvalid(problem);
}
return CapsuleInfo(note: note, dateKey: d, sealed: s);
}
// Whether sealed is an age file whose header holds one tlock stanza with two
// arguments, the first of them round.
bool _sealedFor(Uint8List sealed, int round) {
final List<AgeStanza> st;
// checkSealed of Go: why the sealed locator does not have the form of spec
// §44.1, as far as it can be checked before the date, or null. An age file
// with one tlock stanza, whose arguments are the round of the DateKey d in
// decimal and a chain hash in lower-case hexadecimal (§28.1), the chain of
// the profile of d when this library pins it, Quicknet; and a body that
// holds a plaintext of 4096 bytes or a multiple, as every locator has.
String? _sealedProblem(Uint8List sealed, DateKey d) {
List<AgeStanza>? st;
try {
st = ageStanzas(sealed);
} on DateKeysException {
return false;
st = null;
}
if (st == null ||
st.length != 1 ||
st[0].type != stanzaTlock ||
st[0].args.length != 2 ||
st[0].args[0] != '${d.round}') {
return 'the locator is not an age file with one tlock stanza for round '
'${d.round}, the one of its DateKey';
}
final chain = st[0].args[1];
if (!RegExp(r'^[0-9a-f]{64}$').hasMatch(chain)) {
return 'the tlock stanza of the locator has no chain hash in lower-case '
'hexadecimal';
}
if (d.profileId == quicknetId && chain != quicknetChainHash) {
return 'the locator is sealed for the chain $chain, not for the one of '
'the profile ${d.profileId} of its DateKey';
}
// ageStanzas read the header up to its MAC line, so it ends.
final end = _headerEnd(sealed);
if (end == sealed.length) {
return 'the locator is an age header without a body';
}
if (!_sealedBodyLength(sealed.length - end)) {
return 'the body of the locator is ${sealed.length - end} bytes, which no '
'plaintext of 4096 bytes or a multiple gives';
}
return st.length == 1 &&
st[0].type == stanzaTlock &&
st[0].args.length == 2 &&
st[0].args[0] == '$round';
return null;
}
// sealedBodyLength of Go: whether n bytes after the age header are the body
// of a plaintext of 4096·k bytes, k from 1: the nonce of 16 bytes and the
// plaintext in chunks of 64 KiB, each with its tag of 16 bytes.
bool _sealedBodyLength(int n) {
for (var p = locatorBlock; p <= _maxSealed; p += locatorBlock) {
if (n == 16 + p + 16 * ((p + 65535) ~/ 65536)) return true;
}
return false;
}
/// The check of the data of datekeys.capsule that a reader that knows the

@ -261,6 +261,7 @@ const locatorVectorsJson = r'''
"a public note of 1025 bytes, not 1 to 1024: ERR_EXTENSION_DATA_INVALID",
"a public note that breaks the rules of text: text: bidirectional control U+202E: ERR_EXTENSION_DATA_INVALID",
"locator: Info.DateKey is not a canonical DateKey",
"locator: Info.DateKey is of the profile \"datekeys:other:v1\", which this module does not pin",
"locator: the extension has no locator",
"locator: the profile of the DateKey is not pinned",
"locator: not datekeys.capsule version 1 with data: ERR_EXTENSION_DATA_INVALID",
@ -274,7 +275,10 @@ const locatorVectorsJson = r'''
"locator: datekeys.capsule: key 9007199254740992 is not defined: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 1: codec: offset 5: a text string of 1025 bytes outside 0..1024: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 1: codec: offset 2: a byte string where a text string was expected: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: the locator is an age header without a body: ERR_EXTENSION_DATA_INVALID",
"locator: the locator is sealed for the chain 0000000000000000000000000000000000000000000000000000000000000000, not for the one of the profile datekeys:quicknet:v1 of its DateKey: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 2: codec: offset 99: truncated input: a byte string of 4451 bytes: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: the tlock stanza of the locator has no chain hash in lower-case hexadecimal: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 1: codec: offset 12: truncated input: a text string of 83 bytes: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 0: codec: offset 2: a negative integer (initial byte 0x26) is outside the CBOR profile: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
"locator: datekeys.capsule: key 2: codec: offset 96: an unsigned integer where a byte string was expected: ERR_NON_CANONICAL_CBOR: ERR_EXTENSION_DATA_INVALID",
@ -699,34 +703,34 @@ const locatorVectorsJson = r'''
["","datekeys:quicknet:v1",9007199254740992,null,253,0,""],
["","datekeys:quicknet:v1",9007199254740991,null,0,103,"a7f179ee5f8f33a791434b38c038f444fc9c0a8a20d1f7e1b7119ef6645d9481"],
["","Datekeys:quicknet:v1",1000,null,253,0,""],
["","datekeys:other:v1",1000,null,0,83,"0eacb050625f98eb18a3525356f61e861698511d41d3647af0ed324eb78f2e4f"],
["","datekeys:other:v1",1000,null,254,0,""],
["","",0,null,253,0,""],
["a\tb","",0,"",253,0,""]
],
"open_info": [
["datekeys:quicknet:v1",1000,0,1000,0,[[["https://ejemplo.org/foto.jpg",3000,"ejemplo.org",true],["ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",0,"bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",true]],"d23d7ba6d0f4956cea30c7ed4437a55c052e3fbe4d7c8fc77290eae4f877eac7","773656573906057e9a0062fe979bdcd837ea58ac565d3e748cc3635ef9765e49","dcc94474a1ac6e0ced926a423d3f091fd4d67b5e5a6125a696edcf17d454a0f8",809,"e1e2351f2b6a92105e27f1c98396daf42a393d618f9daf18d4fdd5ab4a069b74"]],
["datekeys:quicknet:v1",1000,null,1000,254,null],
["datekeys:other:v1",1000,0,1000,255,null],
["datekeys:quicknet:v1",1000,null,1000,255,null],
["datekeys:other:v1",1000,0,1000,256,null],
["datekeys:quicknet:v1",1001,1,1001,0,[[["https://ejemplo.org/foto.jpg",3000,"ejemplo.org",true],["ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",0,"bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi",true]],"d23d7ba6d0f4956cea30c7ed4437a55c052e3fbe4d7c8fc77290eae4f877eac7","773656573906057e9a0062fe979bdcd837ea58ac565d3e748cc3635ef9765e49","dcc94474a1ac6e0ced926a423d3f091fd4d67b5e5a6125a696edcf17d454a0f8",809,"e1e2351f2b6a92105e27f1c98396daf42a393d618f9daf18d4fdd5ab4a069b74"]],
["datekeys:quicknet:v1",1001,1,1000,167,null],
["datekeys:quicknet:v1",1000,1,1000,168,null],
["datekeys:quicknet:v1",2000,2,2000,0,[[["http://ejemplo.org/a",7,"",false],["https://[64:ff9b::7f00:1]/b",0,"",false],["https://ejemplo.org/c",9007199254740991,"ejemplo.org",true],["ipfs://bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdia",1,"",false]],"d23d7ba6d0f4956cea30c7ed4437a55c052e3fbe4d7c8fc77290eae4f877eac7","773656573906057e9a0062fe979bdcd837ea58ac565d3e748cc3635ef9765e49","dcc94474a1ac6e0ced926a423d3f091fd4d67b5e5a6125a696edcf17d454a0f8",809,"e1e2351f2b6a92105e27f1c98396daf42a393d618f9daf18d4fdd5ab4a069b74"]]
],
"parse": [
["datekeys.note",1,1,[],256,"","",0,null],
["datekeys.capsule",0,1,[],256,"","",0,null],
["datekeys.capsulE",1,1,[],256,"","",0,null],
["datekeys.note",1,1,[],257,"","",0,null],
["datekeys.capsule",0,1,[],257,"","",0,null],
["datekeys.capsulE",1,1,[],257,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a1017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],0,"","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,null],
["datekeys.capsule",1,1,[[0,9,"a2"]],0,"","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"9b1872806ff868586a155403560bb4649bee05090c24a735c5b26d9d47d85e6c"],
["datekeys.capsule",1,0,[[0,0,"a100616e"]],3,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a200790400"],[0,0,"6e",1024],[0,0,"017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],0,"nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,null],
["datekeys.capsule",1,0,[[0,0,"a20063610962017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],5,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a20062fffe017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],260,"","",0,null],
["datekeys.capsule",1,2,[[87,4455,"00616e"]],262,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a20062fffe017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],261,"","",0,null],
["datekeys.capsule",1,2,[[87,4455,"00616e"]],263,"","",0,null],
["datekeys.capsule",1,2,[[87,4455,"034100"]],6,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a10160"]],4,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a1017854646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d483041"]],4,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a101790401"],[0,0,"64",1025]],265,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a101790401"],[0,0,"64",1025]],266,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a1017853444b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830"]],4,"","",0,null],
["datekeys.capsule",1,0,[[0,0,"a1017854646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d48303d"]],4,"","",0,null],
["datekeys.capsule",1,2,[[88,4454,"4100"]],1,"","",0,null],
@ -734,59 +738,59 @@ const locatorVectorsJson = r'''
["datekeys.capsule",1,4,[],1,"","",0,null],
["datekeys.capsule",1,2,[[89,4453,"01426167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4f67676e7651537537465679574f5a5337434f646b6d76795245736d7978412b312b77504e2b6c754775412b69566b38413362784f6a467147456d627631330a456f6d5152766f5a714334767263557744626d4d53574e79354d304e476a4b4f53544d366b2f73347071786c384838643830346b334e74386c435259684653480a364532654661736f34504d68534e3631724c6342534a514979566d6335667a54666a6978734f344a3535490a2d2d2d20764a6d45736d4d69377a49334939527a5a49514f416a3153305961737a6e584e4c77624943516844733538"]],1,"","",0,null],
["datekeys.capsule",1,1,[[0,199,"a2017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830025911226167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b2031303030"]],1,"","",0,null],
["datekeys.capsule",1,1,[[0,199,"a2017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830025911636167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020"],[199,0,"30",64]],0,"","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"872ce88bde5be954e9e3a768ee10edf54936f257b5d78f097e23fa809cc625ab"],
["datekeys.capsule",1,1,[[0,199,"a2017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830025911636167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020"],[199,0,"30",64]],269,"","",0,null],
["datekeys.capsule",1,1,[[0,129,"a2017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830025911646167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b20"]],1,"","",0,null],
["datekeys.capsule",1,1,[[0,120,"a2017853646b315f65794a325a584a7a61573975496a6f784c434a755a58523362334a72496a6f695a4746305a57746c65584d3663585670593274755a585136646a45694c434a79623356755a4349364d5441774d4830025912606167652d656e6372797074696f6e2e6f72672f76310a2d3e20746c6f636b203130303020353264623962613730653063633066366561663738303364643037343437613166353437373733356664336636363137393262613934363030633834653937310a6b4f67676e7651537537465679574f5a5337434f646b6d76795245736d7978412b312b77504e2b6c754775412b69566b38413362784f6a467147456d627631330a456f6d5152766f5a714334767263557744626d4d53574e79354d304e476a4b4f53544d366b2f73347071786c384838643830346b334e74386c435259684653480a364532654661736f34504d68534e3631724c6342534a514979566d6335667a54666a6978734f344a353549"]],1,"","",0,null],
["datekeys.capsule",1,1,[[344,4206,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[344,4206,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[338,1,"24"]],1,"","",0,null],
["datekeys.capsule",1,1,[[235,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[553,3997,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[584,3966,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[235,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[553,3997,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[584,3966,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[12,1,"24"]],4,"","",0,null],
["datekeys.capsule",1,1,[[391,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[391,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[425,1,"ec"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"b1c7080496ba18f4707589a3f4a145f27970cb4c1b8fabe4ba0576052c42b94a"],
["datekeys.capsule",1,1,[[413,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[323,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[131,4419,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[96,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[413,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[323,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[131,4419,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[96,1,""]],274,"","",0,null],
["datekeys.capsule",1,1,[[328,1,"68"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"ba4913a2cb35d6aca1979d009d9d35f428c214a7c89c6d689216fa21381282c1"],
["datekeys.capsule",1,1,[[571,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[353,4197,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[571,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[353,4197,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[459,1,"1a"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"c2e247433e36d8c686ef163946b53fa8aa93c8cad85368165cef468a5993bddd"],
["datekeys.capsule",1,1,[[377,4173,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[377,4173,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[438,1,"64"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"7e9debc80af2e9e9a5e3037eba4d5cbac029640a8cfa210b9c6cc466ea9502d1"],
["datekeys.capsule",1,1,[[433,1,"95"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"8c29835772295c6c476ab558bf595cc1c1dfc15fb99974c2fc6f8ac3203e4d3a"],
["datekeys.capsule",1,1,[[21,4529,""]],268,"","",0,null],
["datekeys.capsule",1,1,[[347,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[21,4529,""]],272,"","",0,null],
["datekeys.capsule",1,1,[[347,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[541,1,"38"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"837c504759e590eb96d11eb6b7924f4bcda6bcc77069842d937712e5438d05a0"],
["datekeys.capsule",1,1,[[309,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[309,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[229,1,"7b"]],1,"","",0,null],
["datekeys.capsule",1,1,[[313,1,"30"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"be6a50ae605acf5b3d150ec3886e2c79a77f729bcc08f8a5bc7709d0b53d7114"],
["datekeys.capsule",1,1,[[36,1,"1a"]],4,"","",0,null],
["datekeys.capsule",1,1,[[102,4448,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[102,4448,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[275,1,"24"]],1,"","",0,null],
["datekeys.capsule",1,1,[[431,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[22,1,""]],271,"","",0,null],
["datekeys.capsule",1,1,[[471,4079,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[431,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[22,1,""]],275,"","",0,null],
["datekeys.capsule",1,1,[[471,4079,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[521,1,"ee"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"c369944cca2d97d9f3f03c39d0c295b973cbd761a0f5b38b06c30ad98a96f24e"],
["datekeys.capsule",1,1,[[22,1,"0a"]],4,"","",0,null],
["datekeys.capsule",1,1,[[300,1,"76"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"ec5addd718aac21e927fa4f200f9b991d1691778a425d412799d1fcbee858743"],
["datekeys.capsule",1,1,[[404,1,"69"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"2c579a396edf2ae61ebce991a3f1cb93de5c19ae3e76763faad88cf2fcca1706"],
["datekeys.capsule",1,1,[[217,1,"33"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"38f4f96e3136879691ae22a09cb187868737e6d48679dcac741fd6b95ff2ac34"],
["datekeys.capsule",1,1,[[398,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[94,1,"b0"]],272,"","",0,null],
["datekeys.capsule",1,1,[[340,1,""]],267,"","",0,null],
["datekeys.capsule",1,1,[[398,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[94,1,"b0"]],276,"","",0,null],
["datekeys.capsule",1,1,[[340,1,""]],270,"","",0,null],
["datekeys.capsule",1,1,[[391,1,"79"]],0,"Cartas","dk1_eyJ2ZXJzaW9uIjoxLCJuZXR3b3JrIjoiZGF0ZWtleXM6cXVpY2tuZXQ6djEiLCJyb3VuZCI6MTAwMH0",1000,"db7a6bff12e78067943259000919e1e3b3772fd57d029e66b1c54103e4b30bbf"]
],
"registry": [
["datekeys.capsule",1,0,[],273,0,274,0],
["datekeys.capsule",1,1,[],273,0,274,0],
["datekeys.capsule",1,2,[],273,0,274,0],
["datekeys.capsule",1,3,[],273,0,274,0],
["datekeys.capsule",1,4,[275],273,276,274,0],
["datekeys.capsule",1,5,[277],273,278,274,0],
["datekeys.capsule",1,-1,[279],273,280,274,280],
["datekeys.capsule",2,4,[],281,0,0,0]
["datekeys.capsule",1,0,[],277,0,278,0],
["datekeys.capsule",1,1,[],277,0,278,0],
["datekeys.capsule",1,2,[],277,0,278,0],
["datekeys.capsule",1,3,[],277,0,278,0],
["datekeys.capsule",1,4,[279],277,280,278,0],
["datekeys.capsule",1,5,[281],277,282,278,0],
["datekeys.capsule",1,-1,[283],277,284,278,284],
["datekeys.capsule",2,4,[],285,0,0,0]
]
}
''';

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save

Powered by TurnKey Linux.