@atproto/repo 0.10.2 → 0.10.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/package.json +22 -17
- package/jest.config.cjs +0 -24
- package/src/block-map.ts +0 -131
- package/src/car.ts +0 -357
- package/src/cid-set.ts +0 -55
- package/src/data-diff.ts +0 -117
- package/src/error.ts +0 -43
- package/src/index.ts +0 -11
- package/src/logger.ts +0 -7
- package/src/mst/diff.ts +0 -114
- package/src/mst/index.ts +0 -4
- package/src/mst/mst.ts +0 -892
- package/src/mst/util.ts +0 -160
- package/src/mst/walker.ts +0 -118
- package/src/parse.ts +0 -44
- package/src/readable-repo.ts +0 -86
- package/src/repo.ts +0 -236
- package/src/storage/index.ts +0 -4
- package/src/storage/memory-blockstore.ts +0 -76
- package/src/storage/readable-blockstore.ts +0 -55
- package/src/storage/sync-storage.ts +0 -35
- package/src/storage/types.ts +0 -47
- package/src/sync/consumer.ts +0 -207
- package/src/sync/index.ts +0 -2
- package/src/sync/provider.ts +0 -67
- package/src/types.ts +0 -227
- package/src/util.ts +0 -146
- package/tests/_keys.ts +0 -156
- package/tests/_util.ts +0 -265
- package/tests/car-file-fixtures.json +0 -28
- package/tests/car.test.ts +0 -125
- package/tests/commit-data.test.ts +0 -94
- package/tests/commit-proof-fixtures.json +0 -118
- package/tests/commit-proofs.test.ts +0 -63
- package/tests/covering-proofs.test.ts +0 -256
- package/tests/mst.test.ts +0 -450
- package/tests/proofs.test.ts +0 -155
- package/tests/repo.test.ts +0 -106
- package/tests/sync.test.ts +0 -95
- package/tsconfig.build.json +0 -8
- package/tsconfig.build.tsbuildinfo +0 -1
- package/tsconfig.json +0 -7
- package/tsconfig.tests.json +0 -7
package/src/types.ts
DELETED
|
@@ -1,227 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { Cid, LexMap, ifCid } from '@atproto/lex-data'
|
|
3
|
-
import { NsidString, RecordKeyString } from '@atproto/syntax'
|
|
4
|
-
import { BlockMap } from './block-map.js'
|
|
5
|
-
import { CidSet } from './cid-set.js'
|
|
6
|
-
|
|
7
|
-
// Repo nodes
|
|
8
|
-
// ---------------
|
|
9
|
-
|
|
10
|
-
const cidSchema = z.unknown().transform((input, ctx): Cid => {
|
|
11
|
-
const cid = ifCid(input)
|
|
12
|
-
if (cid) return cid
|
|
13
|
-
|
|
14
|
-
ctx.addIssue({
|
|
15
|
-
code: z.ZodIssueCode.custom,
|
|
16
|
-
message: 'Not a valid CID',
|
|
17
|
-
})
|
|
18
|
-
return z.NEVER
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
const _unsignedCommit = z.object({
|
|
22
|
-
did: z.string(),
|
|
23
|
-
version: z.literal(3),
|
|
24
|
-
data: cidSchema,
|
|
25
|
-
rev: z.string(),
|
|
26
|
-
// `prev` added for backwards compatibility with v2, no requirement of keeping around history
|
|
27
|
-
prev: cidSchema.nullable(),
|
|
28
|
-
})
|
|
29
|
-
export type UnsignedCommit = z.infer<typeof _unsignedCommit> & { sig?: never }
|
|
30
|
-
|
|
31
|
-
const commit = z.object({
|
|
32
|
-
did: z.string(),
|
|
33
|
-
version: z.literal(3),
|
|
34
|
-
data: cidSchema,
|
|
35
|
-
rev: z.string(),
|
|
36
|
-
prev: cidSchema.nullable(),
|
|
37
|
-
sig: z.instanceof(Uint8Array<ArrayBufferLike>),
|
|
38
|
-
})
|
|
39
|
-
export type Commit = z.infer<typeof commit>
|
|
40
|
-
|
|
41
|
-
const legacyV2Commit = z.object({
|
|
42
|
-
did: z.string(),
|
|
43
|
-
version: z.literal(2),
|
|
44
|
-
data: cidSchema,
|
|
45
|
-
rev: z.string().optional(),
|
|
46
|
-
prev: cidSchema.nullable(),
|
|
47
|
-
sig: z.instanceof(Uint8Array<ArrayBufferLike>),
|
|
48
|
-
})
|
|
49
|
-
export type LegacyV2Commit = z.infer<typeof legacyV2Commit>
|
|
50
|
-
|
|
51
|
-
const versionedCommit = z.discriminatedUnion('version', [
|
|
52
|
-
commit,
|
|
53
|
-
legacyV2Commit,
|
|
54
|
-
])
|
|
55
|
-
export type VersionedCommit = z.infer<typeof versionedCommit>
|
|
56
|
-
|
|
57
|
-
export const schema = {
|
|
58
|
-
cid: cidSchema,
|
|
59
|
-
carHeader: z.object({
|
|
60
|
-
version: z.literal(1),
|
|
61
|
-
roots: z.array(cidSchema),
|
|
62
|
-
}),
|
|
63
|
-
bytes: z.instanceof(Uint8Array<ArrayBufferLike>),
|
|
64
|
-
string: z.string(),
|
|
65
|
-
array: z.array(z.unknown()),
|
|
66
|
-
map: z.record(z.string(), z.unknown()),
|
|
67
|
-
unknown: z.unknown(),
|
|
68
|
-
commit,
|
|
69
|
-
legacyV2Commit,
|
|
70
|
-
versionedCommit,
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
export const def = {
|
|
74
|
-
cid: {
|
|
75
|
-
name: 'cid',
|
|
76
|
-
schema: schema.cid,
|
|
77
|
-
},
|
|
78
|
-
carHeader: {
|
|
79
|
-
name: 'CAR header',
|
|
80
|
-
schema: schema.carHeader,
|
|
81
|
-
},
|
|
82
|
-
bytes: {
|
|
83
|
-
name: 'bytes',
|
|
84
|
-
schema: schema.bytes,
|
|
85
|
-
},
|
|
86
|
-
string: {
|
|
87
|
-
name: 'string',
|
|
88
|
-
schema: schema.string,
|
|
89
|
-
},
|
|
90
|
-
map: {
|
|
91
|
-
name: 'map',
|
|
92
|
-
schema: schema.map,
|
|
93
|
-
},
|
|
94
|
-
unknown: {
|
|
95
|
-
name: 'unknown',
|
|
96
|
-
schema: schema.unknown,
|
|
97
|
-
},
|
|
98
|
-
commit: {
|
|
99
|
-
name: 'commit',
|
|
100
|
-
schema: schema.commit,
|
|
101
|
-
},
|
|
102
|
-
versionedCommit: {
|
|
103
|
-
name: 'versioned_commit',
|
|
104
|
-
schema: schema.versionedCommit,
|
|
105
|
-
},
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
// Repo Operations
|
|
109
|
-
// ---------------
|
|
110
|
-
|
|
111
|
-
export enum WriteOpAction {
|
|
112
|
-
Create = 'create',
|
|
113
|
-
Update = 'update',
|
|
114
|
-
Delete = 'delete',
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export type RecordCreateOp = {
|
|
118
|
-
action: WriteOpAction.Create
|
|
119
|
-
collection: NsidString
|
|
120
|
-
rkey: RecordKeyString
|
|
121
|
-
record: LexMap
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
export type RecordUpdateOp = {
|
|
125
|
-
action: WriteOpAction.Update
|
|
126
|
-
collection: NsidString
|
|
127
|
-
rkey: RecordKeyString
|
|
128
|
-
record: LexMap
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
export type RecordDeleteOp = {
|
|
132
|
-
action: WriteOpAction.Delete
|
|
133
|
-
collection: NsidString
|
|
134
|
-
rkey: RecordKeyString
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export type RecordWriteOp = RecordCreateOp | RecordUpdateOp | RecordDeleteOp
|
|
138
|
-
|
|
139
|
-
export type RecordCreateDescript = {
|
|
140
|
-
action: WriteOpAction.Create
|
|
141
|
-
collection: NsidString
|
|
142
|
-
rkey: RecordKeyString
|
|
143
|
-
cid: Cid
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export type RecordUpdateDescript = {
|
|
147
|
-
action: WriteOpAction.Update
|
|
148
|
-
collection: NsidString
|
|
149
|
-
rkey: RecordKeyString
|
|
150
|
-
prev: Cid
|
|
151
|
-
cid: Cid
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
export type RecordDeleteDescript = {
|
|
155
|
-
action: WriteOpAction.Delete
|
|
156
|
-
collection: NsidString
|
|
157
|
-
rkey: RecordKeyString
|
|
158
|
-
cid: Cid
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
export type RecordWriteDescript =
|
|
162
|
-
| RecordCreateDescript
|
|
163
|
-
| RecordUpdateDescript
|
|
164
|
-
| RecordDeleteDescript
|
|
165
|
-
|
|
166
|
-
export type WriteLog = RecordWriteDescript[][]
|
|
167
|
-
|
|
168
|
-
// Updates/Commits
|
|
169
|
-
// ---------------
|
|
170
|
-
|
|
171
|
-
export type CommitData = {
|
|
172
|
-
cid: Cid
|
|
173
|
-
rev: string
|
|
174
|
-
since: string | null
|
|
175
|
-
prev: Cid | null
|
|
176
|
-
newBlocks: BlockMap
|
|
177
|
-
relevantBlocks: BlockMap
|
|
178
|
-
removedCids: CidSet
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
export type RepoUpdate = CommitData & {
|
|
182
|
-
ops: RecordWriteOp[]
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
export type CollectionContents = Record<string, LexMap>
|
|
186
|
-
export type RepoContents = Record<NsidString, CollectionContents>
|
|
187
|
-
|
|
188
|
-
export type RepoRecordWithCid = { cid: Cid; value: LexMap }
|
|
189
|
-
export type CollectionContentsWithCids = Record<string, RepoRecordWithCid>
|
|
190
|
-
export type RepoContentsWithCids = Record<string, CollectionContentsWithCids>
|
|
191
|
-
|
|
192
|
-
export type DatastoreContents = Record<string, Cid>
|
|
193
|
-
|
|
194
|
-
export type RecordPath = {
|
|
195
|
-
collection: string
|
|
196
|
-
rkey: string
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
export type RecordCidClaim = {
|
|
200
|
-
collection: string
|
|
201
|
-
rkey: string
|
|
202
|
-
cid: Cid | null
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
export type RecordClaim = {
|
|
206
|
-
collection: string
|
|
207
|
-
rkey: string
|
|
208
|
-
record: LexMap | null
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// Sync
|
|
212
|
-
// ---------------
|
|
213
|
-
|
|
214
|
-
export type VerifiedDiff = {
|
|
215
|
-
writes: RecordWriteDescript[]
|
|
216
|
-
commit: CommitData
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
export type VerifiedRepo = {
|
|
220
|
-
creates: RecordCreateDescript[]
|
|
221
|
-
commit: CommitData
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
export type CarBlock = {
|
|
225
|
-
cid: Cid
|
|
226
|
-
bytes: Uint8Array
|
|
227
|
-
}
|
package/src/util.ts
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { TID } from '@atproto/common-web'
|
|
2
|
-
import * as crypto from '@atproto/crypto'
|
|
3
|
-
import { Keypair } from '@atproto/crypto'
|
|
4
|
-
import * as cbor from '@atproto/lex-cbor'
|
|
5
|
-
import { Cid, LexMap, LexValue, isPlainObject } from '@atproto/lex-data'
|
|
6
|
-
import { DataDiff } from './data-diff.js'
|
|
7
|
-
import {
|
|
8
|
-
Commit,
|
|
9
|
-
LegacyV2Commit,
|
|
10
|
-
RecordCreateDescript,
|
|
11
|
-
RecordDeleteDescript,
|
|
12
|
-
RecordPath,
|
|
13
|
-
RecordUpdateDescript,
|
|
14
|
-
RecordWriteDescript,
|
|
15
|
-
UnsignedCommit,
|
|
16
|
-
WriteOpAction,
|
|
17
|
-
} from './types.js'
|
|
18
|
-
|
|
19
|
-
export const diffToWriteDescripts = (
|
|
20
|
-
diff: DataDiff,
|
|
21
|
-
): Promise<RecordWriteDescript[]> => {
|
|
22
|
-
return Promise.all([
|
|
23
|
-
...diff.addList().map(async (add) => {
|
|
24
|
-
const { collection, rkey } = parseDataKey(add.key)
|
|
25
|
-
return {
|
|
26
|
-
action: WriteOpAction.Create,
|
|
27
|
-
collection,
|
|
28
|
-
rkey,
|
|
29
|
-
cid: add.cid,
|
|
30
|
-
} as RecordCreateDescript
|
|
31
|
-
}),
|
|
32
|
-
...diff.updateList().map(async (upd) => {
|
|
33
|
-
const { collection, rkey } = parseDataKey(upd.key)
|
|
34
|
-
return {
|
|
35
|
-
action: WriteOpAction.Update,
|
|
36
|
-
collection,
|
|
37
|
-
rkey,
|
|
38
|
-
cid: upd.cid,
|
|
39
|
-
prev: upd.prev,
|
|
40
|
-
} as RecordUpdateDescript
|
|
41
|
-
}),
|
|
42
|
-
...diff.deleteList().map((del) => {
|
|
43
|
-
const { collection, rkey } = parseDataKey(del.key)
|
|
44
|
-
return {
|
|
45
|
-
action: WriteOpAction.Delete,
|
|
46
|
-
collection,
|
|
47
|
-
rkey,
|
|
48
|
-
cid: del.cid,
|
|
49
|
-
} as RecordDeleteDescript
|
|
50
|
-
}),
|
|
51
|
-
])
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const ensureCreates = (
|
|
55
|
-
descripts: RecordWriteDescript[],
|
|
56
|
-
): RecordCreateDescript[] => {
|
|
57
|
-
const creates: RecordCreateDescript[] = []
|
|
58
|
-
for (const descript of descripts) {
|
|
59
|
-
if (descript.action !== WriteOpAction.Create) {
|
|
60
|
-
throw new Error(`Unexpected action: ${descript.action}`)
|
|
61
|
-
} else {
|
|
62
|
-
creates.push(descript)
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
return creates
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export const parseDataKey = (key: string): RecordPath => {
|
|
69
|
-
const { length, 0: collection, 1: rkey } = key.split('/')
|
|
70
|
-
if (length !== 2) throw new Error(`Invalid record key: ${key}`)
|
|
71
|
-
return { collection, rkey }
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
export const formatDataKey = (collection: string, rkey: string): string => {
|
|
75
|
-
return collection + '/' + rkey
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
export const metaEqual = (a: Commit, b: Commit): boolean => {
|
|
79
|
-
return a.did === b.did && a.version === b.version
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
export const signCommit = async (
|
|
83
|
-
unsigned: UnsignedCommit,
|
|
84
|
-
keypair: Keypair,
|
|
85
|
-
): Promise<Commit> => {
|
|
86
|
-
const encoded = cbor.encode(unsigned)
|
|
87
|
-
const sig = await keypair.sign(encoded)
|
|
88
|
-
return {
|
|
89
|
-
...unsigned,
|
|
90
|
-
sig,
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
export const verifyCommitSig = async (
|
|
95
|
-
commit: Commit,
|
|
96
|
-
didKey: string,
|
|
97
|
-
): Promise<boolean> => {
|
|
98
|
-
const { sig, ...rest } = commit
|
|
99
|
-
const encoded = cbor.encode(rest)
|
|
100
|
-
return crypto.verifySignature(didKey, encoded, sig)
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export const cborToLex: (val: Uint8Array) => LexValue = cbor.decode
|
|
104
|
-
|
|
105
|
-
export const cborToLexRecord = (val: Uint8Array): LexMap => {
|
|
106
|
-
const parsed = cborToLex(val)
|
|
107
|
-
if (!isPlainObject(parsed)) {
|
|
108
|
-
throw new Error('lexicon records be a json object')
|
|
109
|
-
}
|
|
110
|
-
return parsed
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
export const cidForRecord: (val: LexValue) => Promise<Cid> = cbor.cidForLex
|
|
114
|
-
|
|
115
|
-
export const ensureV3Commit = (commit: LegacyV2Commit | Commit): Commit => {
|
|
116
|
-
if (commit.version === 3) {
|
|
117
|
-
return commit
|
|
118
|
-
} else {
|
|
119
|
-
return {
|
|
120
|
-
...commit,
|
|
121
|
-
version: 3,
|
|
122
|
-
rev: commit.rev ?? TID.nextStr(),
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export async function concatBytesAsync(iterable: AsyncIterable<Uint8Array>) {
|
|
128
|
-
const chunks: Uint8Array[] = []
|
|
129
|
-
for await (const chunk of iterable) chunks.push(chunk)
|
|
130
|
-
return concatBytes(chunks)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* This is the same as {@link Buffer.concat}, without the `totalLength` argument.
|
|
135
|
-
*/
|
|
136
|
-
export function concatBytes(chunks: readonly Uint8Array[]): Uint8Array {
|
|
137
|
-
let totalLength = 0
|
|
138
|
-
for (const chunk of chunks) totalLength += chunk.byteLength
|
|
139
|
-
const result = new Uint8Array(totalLength)
|
|
140
|
-
let offset = 0
|
|
141
|
-
for (const chunk of chunks) {
|
|
142
|
-
result.set(chunk, offset)
|
|
143
|
-
offset += chunk.byteLength
|
|
144
|
-
}
|
|
145
|
-
return result
|
|
146
|
-
}
|
package/tests/_keys.ts
DELETED
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
export const A0 = 'A0/374913'
|
|
2
|
-
export const A1 = 'A1/076595'
|
|
3
|
-
export const A2 = 'A2/827942'
|
|
4
|
-
export const A3 = 'A3/578971'
|
|
5
|
-
export const A4 = 'A4/055903'
|
|
6
|
-
export const A5 = 'A5/518415'
|
|
7
|
-
export const B0 = 'B0/601692'
|
|
8
|
-
export const B1 = 'B1/986427'
|
|
9
|
-
export const B2 = 'B2/827649'
|
|
10
|
-
export const B3 = 'B3/095483'
|
|
11
|
-
export const B4 = 'B4/774183'
|
|
12
|
-
export const B5 = 'B5/116729'
|
|
13
|
-
export const C0 = 'C0/451630'
|
|
14
|
-
export const C1 = 'C1/438573'
|
|
15
|
-
export const C2 = 'C2/014073'
|
|
16
|
-
export const C3 = 'C3/564755'
|
|
17
|
-
export const C4 = 'C4/134079'
|
|
18
|
-
export const C5 = 'C5/141153'
|
|
19
|
-
export const D0 = 'D0/952776'
|
|
20
|
-
export const D1 = 'D1/834852'
|
|
21
|
-
export const D2 = 'D2/269196'
|
|
22
|
-
export const D3 = 'D3/038750'
|
|
23
|
-
export const D4 = 'D4/052059'
|
|
24
|
-
export const D5 = 'D5/563177'
|
|
25
|
-
export const E0 = 'E0/670489'
|
|
26
|
-
export const E1 = 'E1/091396'
|
|
27
|
-
export const E2 = 'E2/819540'
|
|
28
|
-
export const E3 = 'E3/391311'
|
|
29
|
-
export const E4 = 'E4/820614'
|
|
30
|
-
export const E5 = 'E5/512478'
|
|
31
|
-
export const F0 = 'F0/697858'
|
|
32
|
-
export const F1 = 'F1/085263'
|
|
33
|
-
export const F2 = 'F2/483591'
|
|
34
|
-
export const F3 = 'F3/409933'
|
|
35
|
-
export const F4 = 'F4/789697'
|
|
36
|
-
export const F5 = 'F5/271416'
|
|
37
|
-
export const G0 = 'G0/765327'
|
|
38
|
-
export const G1 = 'G1/209912'
|
|
39
|
-
export const G2 = 'G2/611528'
|
|
40
|
-
export const G3 = 'G3/649394'
|
|
41
|
-
export const G4 = 'G4/585887'
|
|
42
|
-
export const G5 = 'G5/298495'
|
|
43
|
-
export const H0 = 'H0/131238'
|
|
44
|
-
export const H1 = 'H1/566929'
|
|
45
|
-
export const H2 = 'H2/618272'
|
|
46
|
-
export const H3 = 'H3/500151'
|
|
47
|
-
export const H4 = 'H4/841548'
|
|
48
|
-
export const H5 = 'H5/642354'
|
|
49
|
-
export const I0 = 'I0/536928'
|
|
50
|
-
export const I1 = 'I1/525517'
|
|
51
|
-
export const I2 = 'I2/800680'
|
|
52
|
-
export const I3 = 'I3/818503'
|
|
53
|
-
export const I4 = 'I4/561177'
|
|
54
|
-
export const I5 = 'I5/010047'
|
|
55
|
-
export const J0 = 'J0/453243'
|
|
56
|
-
export const J1 = 'J1/217783'
|
|
57
|
-
export const J2 = 'J2/960389'
|
|
58
|
-
export const J3 = 'J3/501274'
|
|
59
|
-
export const J4 = 'J4/042054'
|
|
60
|
-
export const J5 = 'J5/743154'
|
|
61
|
-
export const K0 = 'K0/125271'
|
|
62
|
-
export const K1 = 'K1/317361'
|
|
63
|
-
export const K2 = 'K2/453868'
|
|
64
|
-
export const K3 = 'K3/214010'
|
|
65
|
-
export const K4 = 'K4/164720'
|
|
66
|
-
export const K5 = 'K5/177856'
|
|
67
|
-
export const L0 = 'L0/502889'
|
|
68
|
-
export const L1 = 'L1/574576'
|
|
69
|
-
export const L2 = 'L2/596333'
|
|
70
|
-
export const L3 = 'L3/683657'
|
|
71
|
-
export const L4 = 'L4/724989'
|
|
72
|
-
export const L5 = 'L5/093883'
|
|
73
|
-
export const M0 = 'M0/141744'
|
|
74
|
-
export const M1 = 'M1/643368'
|
|
75
|
-
export const M2 = 'M2/919782'
|
|
76
|
-
export const M3 = 'M3/836327'
|
|
77
|
-
export const M4 = 'M4/177463'
|
|
78
|
-
export const M5 = 'M5/563354'
|
|
79
|
-
export const N0 = 'N0/370604'
|
|
80
|
-
export const N1 = 'N1/563732'
|
|
81
|
-
export const N2 = 'N2/177587'
|
|
82
|
-
export const N3 = 'N3/678428'
|
|
83
|
-
export const N4 = 'N4/599183'
|
|
84
|
-
export const N5 = 'N5/567564'
|
|
85
|
-
export const O0 = 'O0/523870'
|
|
86
|
-
export const O1 = 'O1/052141'
|
|
87
|
-
export const O2 = 'O2/037651'
|
|
88
|
-
export const O3 = 'O3/773808'
|
|
89
|
-
export const O4 = 'O4/140952'
|
|
90
|
-
export const O5 = 'O5/318605'
|
|
91
|
-
export const P0 = 'P0/133157'
|
|
92
|
-
export const P1 = 'P1/394633'
|
|
93
|
-
export const P2 = 'P2/521462'
|
|
94
|
-
export const P3 = 'P3/493488'
|
|
95
|
-
export const P4 = 'P4/908754'
|
|
96
|
-
export const P5 = 'P5/109455'
|
|
97
|
-
export const Q0 = 'Q0/835234'
|
|
98
|
-
export const Q1 = 'Q1/131542'
|
|
99
|
-
export const Q2 = 'Q2/680035'
|
|
100
|
-
export const Q3 = 'Q3/253381'
|
|
101
|
-
export const Q4 = 'Q4/019053'
|
|
102
|
-
export const Q5 = 'Q5/658167'
|
|
103
|
-
export const R0 = 'R0/129386'
|
|
104
|
-
export const R1 = 'R1/363149'
|
|
105
|
-
export const R2 = 'R2/742766'
|
|
106
|
-
export const R3 = 'R3/039235'
|
|
107
|
-
export const R4 = 'R4/482275'
|
|
108
|
-
export const R5 = 'R5/817312'
|
|
109
|
-
export const S0 = 'S0/340283'
|
|
110
|
-
export const S1 = 'S1/561525'
|
|
111
|
-
export const S2 = 'S2/914574'
|
|
112
|
-
export const S3 = 'S3/909434'
|
|
113
|
-
export const S4 = 'S4/789708'
|
|
114
|
-
export const S5 = 'S5/803866'
|
|
115
|
-
export const T0 = 'T0/255204'
|
|
116
|
-
export const T1 = 'T1/716687'
|
|
117
|
-
export const T2 = 'T2/256231'
|
|
118
|
-
export const T3 = 'T3/054247'
|
|
119
|
-
export const T4 = 'T4/419247'
|
|
120
|
-
export const T5 = 'T5/509584'
|
|
121
|
-
export const U0 = 'U0/298296'
|
|
122
|
-
export const U1 = 'U1/851680'
|
|
123
|
-
export const U2 = 'U2/342856'
|
|
124
|
-
export const U3 = 'U3/597327'
|
|
125
|
-
export const U4 = 'U4/311686'
|
|
126
|
-
export const U5 = 'U5/030156'
|
|
127
|
-
export const V0 = 'V0/221100'
|
|
128
|
-
export const V1 = 'V1/741554'
|
|
129
|
-
export const V2 = 'V2/267990'
|
|
130
|
-
export const V3 = 'V3/674163'
|
|
131
|
-
export const V4 = 'V4/739931'
|
|
132
|
-
export const V5 = 'V5/573718'
|
|
133
|
-
export const W0 = 'W0/034202'
|
|
134
|
-
export const W1 = 'W1/697411'
|
|
135
|
-
export const W2 = 'W2/460313'
|
|
136
|
-
export const W3 = 'W3/189647'
|
|
137
|
-
export const W4 = 'W4/847299'
|
|
138
|
-
export const W5 = 'W5/648086'
|
|
139
|
-
export const X0 = 'X0/287498'
|
|
140
|
-
export const X1 = 'X1/044093'
|
|
141
|
-
export const X2 = 'X2/613770'
|
|
142
|
-
export const X3 = 'X3/577587'
|
|
143
|
-
export const X4 = 'X4/779391'
|
|
144
|
-
export const X5 = 'X5/339246'
|
|
145
|
-
export const Y0 = 'Y0/986350'
|
|
146
|
-
export const Y1 = 'Y1/044567'
|
|
147
|
-
export const Y2 = 'Y2/478044'
|
|
148
|
-
export const Y3 = 'Y3/757097'
|
|
149
|
-
export const Y4 = 'Y4/396913'
|
|
150
|
-
export const Y5 = 'Y5/802264'
|
|
151
|
-
export const Z0 = 'Z0/425878'
|
|
152
|
-
export const Z1 = 'Z1/127557'
|
|
153
|
-
export const Z2 = 'Z2/441927'
|
|
154
|
-
export const Z3 = 'Z3/064474'
|
|
155
|
-
export const Z4 = 'Z4/888344'
|
|
156
|
-
export const Z5 = 'Z5/977983'
|