@brass-build/client 0.4.1 → 0.5.0

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.
Files changed (323) hide show
  1. package/AGENTS.md +124 -45
  2. package/CHANGELOG.md +80 -4
  3. package/README.md +666 -179
  4. package/dist/api-fetch.d.ts +8 -0
  5. package/dist/api-fetch.d.ts.map +1 -1
  6. package/dist/api-fetch.js +35 -8
  7. package/dist/api-fetch.js.map +1 -1
  8. package/dist/batched-get.d.ts +11 -0
  9. package/dist/batched-get.d.ts.map +1 -0
  10. package/dist/batched-get.js +92 -0
  11. package/dist/batched-get.js.map +1 -0
  12. package/dist/call-service.d.ts +4 -0
  13. package/dist/call-service.d.ts.map +1 -1
  14. package/dist/call-service.js +66 -3
  15. package/dist/call-service.js.map +1 -1
  16. package/dist/client.d.ts +48 -2
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +918 -115
  19. package/dist/client.js.map +1 -1
  20. package/dist/document-checkpoints.d.ts +25 -2
  21. package/dist/document-checkpoints.d.ts.map +1 -1
  22. package/dist/document-checkpoints.js +258 -61
  23. package/dist/document-checkpoints.js.map +1 -1
  24. package/dist/document-commands.d.ts.map +1 -1
  25. package/dist/document-commands.js +5 -3
  26. package/dist/document-commands.js.map +1 -1
  27. package/dist/document-contents.d.ts +10 -0
  28. package/dist/document-contents.d.ts.map +1 -1
  29. package/dist/document-contents.js +23 -1
  30. package/dist/document-contents.js.map +1 -1
  31. package/dist/document-set-subscription.d.ts +56 -0
  32. package/dist/document-set-subscription.d.ts.map +1 -0
  33. package/dist/document-set-subscription.js +240 -0
  34. package/dist/document-set-subscription.js.map +1 -0
  35. package/dist/document-signals.d.ts +6 -0
  36. package/dist/document-signals.d.ts.map +1 -1
  37. package/dist/document-signals.js +31 -1
  38. package/dist/document-signals.js.map +1 -1
  39. package/dist/document-streams.d.ts +36 -2
  40. package/dist/document-streams.d.ts.map +1 -1
  41. package/dist/document-streams.js +69 -18
  42. package/dist/document-streams.js.map +1 -1
  43. package/dist/document-thumbnail-capture.d.ts +12 -2
  44. package/dist/document-thumbnail-capture.d.ts.map +1 -1
  45. package/dist/document-thumbnail-capture.js +103 -27
  46. package/dist/document-thumbnail-capture.js.map +1 -1
  47. package/dist/documents-namespace.d.ts +92 -10
  48. package/dist/documents-namespace.d.ts.map +1 -1
  49. package/dist/documents-namespace.js +285 -39
  50. package/dist/documents-namespace.js.map +1 -1
  51. package/dist/documents.d.ts +173 -8
  52. package/dist/documents.d.ts.map +1 -1
  53. package/dist/documents.js +1778 -310
  54. package/dist/documents.js.map +1 -1
  55. package/dist/errors.d.ts +3 -3
  56. package/dist/errors.d.ts.map +1 -1
  57. package/dist/errors.js.map +1 -1
  58. package/dist/fetch-retry.d.ts +1 -0
  59. package/dist/fetch-retry.d.ts.map +1 -1
  60. package/dist/fetch-retry.js +2 -0
  61. package/dist/fetch-retry.js.map +1 -1
  62. package/dist/file-choice.d.ts +2 -0
  63. package/dist/file-choice.d.ts.map +1 -0
  64. package/dist/file-choice.js +27 -0
  65. package/dist/file-choice.js.map +1 -0
  66. package/dist/guest-link.d.ts +18 -1
  67. package/dist/guest-link.d.ts.map +1 -1
  68. package/dist/guest-link.js +329 -1
  69. package/dist/guest-link.js.map +1 -1
  70. package/dist/handle-types.d.ts +67 -5
  71. package/dist/handle-types.d.ts.map +1 -1
  72. package/dist/handles.d.ts +15 -19
  73. package/dist/handles.d.ts.map +1 -1
  74. package/dist/handles.js +231 -76
  75. package/dist/handles.js.map +1 -1
  76. package/dist/hosted-ui.d.ts +61 -0
  77. package/dist/hosted-ui.d.ts.map +1 -1
  78. package/dist/hosted-ui.js +94 -42
  79. package/dist/hosted-ui.js.map +1 -1
  80. package/dist/import-contract.d.ts +74 -0
  81. package/dist/import-contract.d.ts.map +1 -0
  82. package/dist/import-contract.js +163 -0
  83. package/dist/import-contract.js.map +1 -0
  84. package/dist/import-guest.d.ts +9 -0
  85. package/dist/import-guest.d.ts.map +1 -0
  86. package/dist/import-guest.js +155 -0
  87. package/dist/import-guest.js.map +1 -0
  88. package/dist/import-report.d.ts +17 -0
  89. package/dist/import-report.d.ts.map +1 -0
  90. package/dist/import-report.js +7 -0
  91. package/dist/import-report.js.map +1 -0
  92. package/dist/importer-wait.d.ts +2 -0
  93. package/dist/importer-wait.d.ts.map +1 -0
  94. package/dist/importer-wait.js +5 -0
  95. package/dist/importer-wait.js.map +1 -0
  96. package/dist/importer.d.ts +18 -4
  97. package/dist/importer.d.ts.map +1 -1
  98. package/dist/importer.js +322 -105
  99. package/dist/importer.js.map +1 -1
  100. package/dist/in-development.d.ts +2 -0
  101. package/dist/in-development.d.ts.map +1 -0
  102. package/dist/in-development.js +10 -0
  103. package/dist/in-development.js.map +1 -0
  104. package/dist/index.d.ts +16 -8
  105. package/dist/index.d.ts.map +1 -1
  106. package/dist/index.js +24 -8
  107. package/dist/index.js.map +1 -1
  108. package/dist/init-keys.d.ts +1 -1
  109. package/dist/init-keys.d.ts.map +1 -1
  110. package/dist/init-keys.js +6 -1
  111. package/dist/init-keys.js.map +1 -1
  112. package/dist/input-documents.d.ts +67 -0
  113. package/dist/input-documents.d.ts.map +1 -0
  114. package/dist/input-documents.js +693 -0
  115. package/dist/input-documents.js.map +1 -0
  116. package/dist/inputs-status.d.ts +80 -0
  117. package/dist/inputs-status.d.ts.map +1 -0
  118. package/dist/inputs-status.js +460 -0
  119. package/dist/inputs-status.js.map +1 -0
  120. package/dist/inputs.d.ts +2 -0
  121. package/dist/inputs.d.ts.map +1 -0
  122. package/dist/inputs.js +793 -0
  123. package/dist/inputs.js.map +1 -0
  124. package/dist/internal.d.ts +6 -1
  125. package/dist/internal.d.ts.map +1 -1
  126. package/dist/internal.js +4 -1
  127. package/dist/internal.js.map +1 -1
  128. package/dist/join-content.d.ts +33 -0
  129. package/dist/join-content.d.ts.map +1 -0
  130. package/dist/join-content.js +114 -0
  131. package/dist/join-content.js.map +1 -0
  132. package/dist/join-stamp.d.ts +3 -0
  133. package/dist/join-stamp.d.ts.map +1 -0
  134. package/dist/join-stamp.js +12 -0
  135. package/dist/join-stamp.js.map +1 -0
  136. package/dist/manifest-drift.d.ts +9 -0
  137. package/dist/manifest-drift.d.ts.map +1 -0
  138. package/dist/manifest-drift.js +46 -0
  139. package/dist/manifest-drift.js.map +1 -0
  140. package/dist/open-document.d.ts +109 -2
  141. package/dist/open-document.d.ts.map +1 -1
  142. package/dist/open-document.js +1822 -811
  143. package/dist/open-document.js.map +1 -1
  144. package/dist/page-restore.d.ts +12 -0
  145. package/dist/page-restore.d.ts.map +1 -0
  146. package/dist/page-restore.js +23 -0
  147. package/dist/page-restore.js.map +1 -0
  148. package/dist/placement.d.ts +13 -0
  149. package/dist/placement.d.ts.map +1 -0
  150. package/dist/placement.js +34 -0
  151. package/dist/placement.js.map +1 -0
  152. package/dist/presence.d.ts +1 -0
  153. package/dist/presence.d.ts.map +1 -1
  154. package/dist/presence.js +16 -4
  155. package/dist/presence.js.map +1 -1
  156. package/dist/read-only-document.d.ts +87 -0
  157. package/dist/read-only-document.d.ts.map +1 -0
  158. package/dist/read-only-document.js +4 -0
  159. package/dist/read-only-document.js.map +1 -0
  160. package/dist/record-paging.d.ts +63 -6
  161. package/dist/record-paging.d.ts.map +1 -1
  162. package/dist/record-paging.js +122 -29
  163. package/dist/record-paging.js.map +1 -1
  164. package/dist/references.d.ts +40 -0
  165. package/dist/references.d.ts.map +1 -0
  166. package/dist/references.js +135 -0
  167. package/dist/references.js.map +1 -0
  168. package/dist/request-lane.d.ts +5 -0
  169. package/dist/request-lane.d.ts.map +1 -0
  170. package/dist/request-lane.js +48 -0
  171. package/dist/request-lane.js.map +1 -0
  172. package/dist/sealed-arrow.d.ts +170 -0
  173. package/dist/sealed-arrow.d.ts.map +1 -0
  174. package/dist/sealed-arrow.js +769 -0
  175. package/dist/sealed-arrow.js.map +1 -0
  176. package/dist/sealed-cache.d.ts +21 -0
  177. package/dist/sealed-cache.d.ts.map +1 -0
  178. package/dist/sealed-cache.js +247 -0
  179. package/dist/sealed-cache.js.map +1 -0
  180. package/dist/sealed-encode.d.ts +87 -0
  181. package/dist/sealed-encode.d.ts.map +1 -0
  182. package/dist/sealed-encode.js +876 -0
  183. package/dist/sealed-encode.js.map +1 -0
  184. package/dist/sealed-handles.d.ts +45 -0
  185. package/dist/sealed-handles.d.ts.map +1 -0
  186. package/dist/sealed-handles.js +408 -0
  187. package/dist/sealed-handles.js.map +1 -0
  188. package/dist/sealed-store.d.ts +242 -0
  189. package/dist/sealed-store.d.ts.map +1 -0
  190. package/dist/sealed-store.js +1155 -0
  191. package/dist/sealed-store.js.map +1 -0
  192. package/dist/serializer.d.ts +6 -15
  193. package/dist/serializer.d.ts.map +1 -1
  194. package/dist/session-toolbar.d.ts +20 -5
  195. package/dist/session-toolbar.d.ts.map +1 -1
  196. package/dist/session-toolbar.js +419 -67
  197. package/dist/session-toolbar.js.map +1 -1
  198. package/dist/session.d.ts +38 -1
  199. package/dist/session.d.ts.map +1 -1
  200. package/dist/session.js +562 -79
  201. package/dist/session.js.map +1 -1
  202. package/dist/sha256.d.ts +3 -0
  203. package/dist/sha256.d.ts.map +1 -0
  204. package/dist/sha256.js +74 -0
  205. package/dist/sha256.js.map +1 -0
  206. package/dist/stable-handles.d.ts +19 -0
  207. package/dist/stable-handles.d.ts.map +1 -0
  208. package/dist/stable-handles.js +193 -0
  209. package/dist/stable-handles.js.map +1 -0
  210. package/dist/staged-seal.d.ts +2 -0
  211. package/dist/staged-seal.d.ts.map +1 -0
  212. package/dist/staged-seal.js +76 -0
  213. package/dist/staged-seal.js.map +1 -0
  214. package/dist/subscriber-delivery.d.ts +8 -0
  215. package/dist/subscriber-delivery.d.ts.map +1 -0
  216. package/dist/subscriber-delivery.js +31 -0
  217. package/dist/subscriber-delivery.js.map +1 -0
  218. package/dist/tail-op-import.d.ts +10 -0
  219. package/dist/tail-op-import.d.ts.map +1 -0
  220. package/dist/tail-op-import.js +33 -0
  221. package/dist/tail-op-import.js.map +1 -0
  222. package/dist/topic-lifecycle.d.ts +6 -0
  223. package/dist/topic-lifecycle.d.ts.map +1 -1
  224. package/dist/topic-lifecycle.js +32 -2
  225. package/dist/topic-lifecycle.js.map +1 -1
  226. package/dist/trial-replace-dialog.d.ts +10 -0
  227. package/dist/trial-replace-dialog.d.ts.map +1 -0
  228. package/dist/trial-replace-dialog.js +153 -0
  229. package/dist/trial-replace-dialog.js.map +1 -0
  230. package/dist/types.d.ts +8 -1
  231. package/dist/types.d.ts.map +1 -1
  232. package/dist/undo.d.ts +60 -5
  233. package/dist/undo.d.ts.map +1 -1
  234. package/dist/undo.js +344 -75
  235. package/dist/undo.js.map +1 -1
  236. package/dist/version-bar.d.ts +1 -0
  237. package/dist/version-bar.d.ts.map +1 -1
  238. package/dist/version-bar.js +2 -1
  239. package/dist/version-bar.js.map +1 -1
  240. package/dist/version.d.ts +2 -2
  241. package/dist/version.js +1 -1
  242. package/dist/ws-client.d.ts +21 -0
  243. package/dist/ws-client.d.ts.map +1 -1
  244. package/dist/ws-client.js +192 -8
  245. package/dist/ws-client.js.map +1 -1
  246. package/dist/ws-frame-limit.d.ts +1 -0
  247. package/dist/ws-frame-limit.d.ts.map +1 -1
  248. package/dist/ws-frame-limit.js.map +1 -1
  249. package/docs/app-manifest.md +121 -17
  250. package/docs/custom-chrome.md +24 -16
  251. package/docs/hosted-ui-advanced.md +38 -6
  252. package/docs/imported-documents.md +104 -51
  253. package/docs/presence.md +16 -4
  254. package/docs/schemas.md +8 -5
  255. package/docs/services.md +6 -6
  256. package/docs/streams.md +139 -150
  257. package/docs/text-fields.md +26 -19
  258. package/package.json +5 -2
  259. package/src/api-fetch.ts +53 -3
  260. package/src/auth-flow.ts +1 -1
  261. package/src/batched-get.ts +117 -0
  262. package/src/call-service.ts +78 -3
  263. package/src/client.ts +1022 -112
  264. package/src/document-checkpoints.ts +307 -65
  265. package/src/document-commands.ts +5 -5
  266. package/src/document-contents.ts +27 -1
  267. package/src/document-set-subscription.ts +274 -0
  268. package/src/document-signals.ts +47 -5
  269. package/src/document-streams.ts +85 -16
  270. package/src/document-thumbnail-capture.ts +118 -32
  271. package/src/documents-namespace.ts +539 -84
  272. package/src/documents.ts +2017 -348
  273. package/src/errors.ts +17 -6
  274. package/src/fetch-retry.ts +5 -0
  275. package/src/file-choice.ts +26 -0
  276. package/src/guest-link.ts +362 -1
  277. package/src/handle-types.ts +73 -47
  278. package/src/handles.ts +253 -83
  279. package/src/hosted-ui.ts +211 -50
  280. package/src/import-contract.ts +227 -0
  281. package/src/import-guest.ts +193 -0
  282. package/src/import-report.ts +24 -0
  283. package/src/importer-wait.ts +4 -0
  284. package/src/importer.ts +386 -131
  285. package/src/in-development.ts +10 -0
  286. package/src/index.ts +76 -16
  287. package/src/init-keys.ts +6 -1
  288. package/src/input-documents.ts +819 -0
  289. package/src/inputs-status.ts +598 -0
  290. package/src/inputs.ts +1090 -0
  291. package/src/internal.ts +7 -0
  292. package/src/join-content.ts +135 -0
  293. package/src/join-stamp.ts +12 -0
  294. package/src/manifest-drift.ts +54 -0
  295. package/src/open-document.ts +2346 -930
  296. package/src/page-restore.ts +38 -0
  297. package/src/placement.ts +54 -0
  298. package/src/presence.ts +21 -5
  299. package/src/read-only-document.ts +133 -0
  300. package/src/record-paging.ts +147 -25
  301. package/src/references.ts +207 -0
  302. package/src/request-lane.ts +59 -0
  303. package/src/sealed-arrow.ts +843 -0
  304. package/src/sealed-cache.ts +267 -0
  305. package/src/sealed-encode.ts +1015 -0
  306. package/src/sealed-handles.ts +486 -0
  307. package/src/sealed-store.ts +1330 -0
  308. package/src/serializer.ts +8 -20
  309. package/src/session-toolbar.ts +463 -72
  310. package/src/session.ts +740 -99
  311. package/src/sha256.ts +65 -0
  312. package/src/stable-handles.ts +235 -0
  313. package/src/staged-seal.ts +90 -0
  314. package/src/subscriber-delivery.ts +37 -0
  315. package/src/tail-op-import.ts +30 -0
  316. package/src/topic-lifecycle.ts +38 -2
  317. package/src/trial-replace-dialog.ts +163 -0
  318. package/src/types.ts +6 -6
  319. package/src/undo.ts +386 -73
  320. package/src/version-bar.ts +5 -1
  321. package/src/version.ts +1 -1
  322. package/src/ws-client.ts +208 -16
  323. package/src/ws-frame-limit.ts +1 -0
@@ -0,0 +1,170 @@
1
+ /** The slice of Arrow JS this reader uses. */
2
+ export interface ArrowData {
3
+ type: {
4
+ typeId: number;
5
+ };
6
+ length: number;
7
+ offset: number;
8
+ values: ArrayLike<number> & {
9
+ subarray?: (a: number, b: number) => Uint8Array;
10
+ };
11
+ valueOffsets: Int32Array;
12
+ children: ArrowData[];
13
+ dictionary?: {
14
+ length: number;
15
+ data: ArrowData[];
16
+ };
17
+ }
18
+ export interface ArrowReader {
19
+ tableFromIPC(bytes: Uint8Array): {
20
+ schema: {
21
+ metadata: Map<string, string>;
22
+ };
23
+ batches: {
24
+ data: ArrowData;
25
+ }[];
26
+ };
27
+ }
28
+ /** The variants a slot's values take, in the order the `t` column numbers
29
+ * them. */
30
+ export interface Slot {
31
+ v: Variant[];
32
+ }
33
+ /** A string derived from a sibling number field: field index `from`, and per
34
+ * code an upper-case flag and a suffix. */
35
+ export interface Derivation {
36
+ from: number;
37
+ rules: [0 | 1, string][];
38
+ }
39
+ export type Variant = {
40
+ k: 'null';
41
+ } | {
42
+ k: 'bool';
43
+ c?: boolean;
44
+ } | {
45
+ k: 'num';
46
+ int: boolean;
47
+ c?: number;
48
+ } | {
49
+ k: 'str';
50
+ c?: string;
51
+ derive?: Derivation;
52
+ } | {
53
+ k: 'tuple';
54
+ items: Slot[];
55
+ } | {
56
+ k: 'list';
57
+ item: Slot;
58
+ } | {
59
+ k: 'obj';
60
+ keys: string[];
61
+ fields: Slot[];
62
+ } | {
63
+ k: 'json';
64
+ };
65
+ /** How a table stores its keys: a shared prefix before an int32, two
66
+ * dictionary halves around a separator, utf8 text, or JSON text for a key
67
+ * UTF-8 cannot carry. */
68
+ export type KeyMeta = {
69
+ prefix: string;
70
+ } | {
71
+ split: string;
72
+ } | {
73
+ text: true;
74
+ } | {
75
+ json: true;
76
+ };
77
+ export interface TableMeta {
78
+ root: string;
79
+ key: KeyMeta;
80
+ slot: Slot;
81
+ }
82
+ /** The derived-string code for a row whose text no rule rebuilds. */
83
+ export declare const HELD = 255;
84
+ /** The table metadata's key in an IPC file's schema metadata. */
85
+ export declare const TABLE_META_KEY = "brass:table";
86
+ /** Whether a variant stores a column. */
87
+ export declare function variantStored(v: Variant): boolean;
88
+ /** Named parts behind a JSON table of names and lengths. */
89
+ export declare function unpackParts(bytes: Uint8Array): [string, Uint8Array][];
90
+ /**
91
+ * Throws unless an Arrow IPC file's footer and every message it points at
92
+ * stay inside the file. Arrow reads a file by its own offsets and vector
93
+ * lengths, so a footer block naming a message of the wrong kind makes its
94
+ * reader loop, and a declared length makes it allocate that much; both are
95
+ * held to the bytes here before Arrow reads anything.
96
+ */
97
+ export declare function checkIpcFile(bytes: Uint8Array): void;
98
+ /**
99
+ * Throws unless a stored table's buffers carry every row it declares. A
100
+ * column's length is the uploader's claim, and the reader allocates and loops
101
+ * on it, so each claim is held to the bytes behind it: a fixed-width column
102
+ * has a value per row, offsets rise and stay inside the bytes or child they
103
+ * index (so no two rows share a range, and decoding every row reads each
104
+ * byte once), a struct's fields are each as long as it, and a dictionary is
105
+ * no longer than the column that indexes it. A table's own struct carries
106
+ * the key, gap and value columns.
107
+ */
108
+ export declare function checkTableData(data: ArrowData): void;
109
+ export type Reader = (row: number) => unknown;
110
+ /** What one decode shares across its tables: each object key list's
111
+ * construction site, and each dictionary decoded once. A `lazy` context
112
+ * decodes a dictionary's entries as reads reach them, which suits a keyed
113
+ * read; a walk reads every entry, and decoding them up front is faster. */
114
+ export declare class ReadContext {
115
+ readonly lazy: boolean;
116
+ private readonly shapes;
117
+ private readonly dictionaries;
118
+ private readonly lazyDictionaries;
119
+ constructor(lazy?: boolean);
120
+ strings(dictionary: {
121
+ data: ArrowData[];
122
+ }): string[];
123
+ lazyStrings(dictionary: {
124
+ data: ArrowData[];
125
+ }): LazyDictionary;
126
+ /** A flag per dictionary entry equal to `s`, or null where none is. */
127
+ matches(dictionary: {
128
+ data: ArrowData[];
129
+ }, s: string): Uint8Array | null;
130
+ shapeId(keys: readonly string[]): number;
131
+ }
132
+ /** A dictionary whose entries are decoded on first read and kept. */
133
+ export declare class LazyDictionary {
134
+ private readonly chunks;
135
+ readonly length: number;
136
+ private readonly decoded;
137
+ /** Each chunk's first entry. */
138
+ private readonly starts;
139
+ constructor(chunks: readonly ArrowData[]);
140
+ at(i: number): string;
141
+ /** A flag per entry equal to `s`, found by comparing bytes, or null where
142
+ * none is. */
143
+ matches(s: string): Uint8Array | null;
144
+ }
145
+ /**
146
+ * A table's keys as text, row by row. Each key reads only in the form the
147
+ * encoder writes it (a non-negative integer id, a separator that falls after
148
+ * the first half, UTF-8 text, JSON text as `JSON.stringify` writes it), so a
149
+ * walk and a keyed read (`rowsWithKey`) agree on every key; any other form
150
+ * throws.
151
+ */
152
+ export declare function keyReader(meta: TableMeta, d: ArrowData, cx: ReadContext): (row: number) => string;
153
+ /**
154
+ * The rows of a table whose key reads as `key`, found from the key column
155
+ * alone: an id compared as a number, a dictionary half by its index, text by
156
+ * its bytes. Nothing is decoded for a row that does not match.
157
+ */
158
+ export declare function rowsWithKey(meta: TableMeta, d: ArrowData, key: string, cx: ReadContext): number[];
159
+ export declare function readSlot(slot: Slot, d: ArrowData, cx: ReadContext): Reader;
160
+ /** One table of a map, ready to read: each row's position in the map, its
161
+ * key, and its value. */
162
+ export interface ReadyTable {
163
+ positions: Int32Array;
164
+ key: (row: number) => string;
165
+ value: Reader;
166
+ }
167
+ /** A stored table's rows prepared for reading. Positions are absolute, and a
168
+ * table's gap column runs from zero. */
169
+ export declare function readyTable(meta: TableMeta, data: ArrowData, cx: ReadContext): ReadyTable;
170
+ //# sourceMappingURL=sealed-arrow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sealed-arrow.d.ts","sourceRoot":"","sources":["../src/sealed-arrow.ts"],"names":[],"mappings":"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"}