@mastergo/plugin-typings 2.16.1 → 2.18.0-beta.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.
- package/dist/index.d.ts +361 -2
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -1095,6 +1095,231 @@ declare global {
|
|
|
1095
1095
|
|
|
1096
1096
|
type PluginEventType = keyof MGEventCallbackMap
|
|
1097
1097
|
|
|
1098
|
+
interface VariableAPI {
|
|
1099
|
+
// --- Collection ---
|
|
1100
|
+
createCollection(name?: string): Promise<Collection | null>
|
|
1101
|
+
getCollections(includeExternal?: boolean): Collection[]
|
|
1102
|
+
getCollectionById(id?: string): Collection | null
|
|
1103
|
+
deleteCollection(collectionId: string): void
|
|
1104
|
+
renameCollection(collectionId: string, name: string): void
|
|
1105
|
+
moveCollection(
|
|
1106
|
+
collectionId: string,
|
|
1107
|
+
options?: { afterId?: string; index?: number }
|
|
1108
|
+
): void
|
|
1109
|
+
|
|
1110
|
+
// --- Mode ---
|
|
1111
|
+
getModes(collectionId?: string): CollectionMode[]
|
|
1112
|
+
getModeById(
|
|
1113
|
+
collectionId?: string,
|
|
1114
|
+
modeId?: string
|
|
1115
|
+
): CollectionMode | null
|
|
1116
|
+
addMode(
|
|
1117
|
+
collectionId: string,
|
|
1118
|
+
name?: string
|
|
1119
|
+
): Promise<CollectionMode | null>
|
|
1120
|
+
renameMode(collectionId: string, modeId: string, name: string): void
|
|
1121
|
+
deleteMode(collectionId: string, modeId: string): void
|
|
1122
|
+
setVariableMode(collectionId: string, modeId: string): void
|
|
1123
|
+
setPageVariableMode(
|
|
1124
|
+
collectionId: string,
|
|
1125
|
+
modeId: string,
|
|
1126
|
+
pageId?: string
|
|
1127
|
+
): void
|
|
1128
|
+
|
|
1129
|
+
// --- Group ---
|
|
1130
|
+
getGroupList(collectionId?: string): VariableGroupNode[]
|
|
1131
|
+
createGroup(
|
|
1132
|
+
collectionId: string,
|
|
1133
|
+
variableIds: string[],
|
|
1134
|
+
groupName?: string
|
|
1135
|
+
): void
|
|
1136
|
+
addVariablesToGroup(
|
|
1137
|
+
collectionId: string,
|
|
1138
|
+
groupPath: string,
|
|
1139
|
+
variableIds: string[]
|
|
1140
|
+
): void
|
|
1141
|
+
removeVariablesFromGroup(
|
|
1142
|
+
collectionId: string,
|
|
1143
|
+
groupPath: string,
|
|
1144
|
+
variableIds: string[]
|
|
1145
|
+
): void
|
|
1146
|
+
disbandGroup(
|
|
1147
|
+
collectionId: string,
|
|
1148
|
+
groupPath?: string,
|
|
1149
|
+
variableIds?: string[]
|
|
1150
|
+
): void
|
|
1151
|
+
renameGroup(
|
|
1152
|
+
collectionId: string,
|
|
1153
|
+
newName: string,
|
|
1154
|
+
groupPath?: string,
|
|
1155
|
+
variableIds?: string[]
|
|
1156
|
+
): void
|
|
1157
|
+
deleteGroup(
|
|
1158
|
+
collectionId: string,
|
|
1159
|
+
groupPath?: string,
|
|
1160
|
+
variableIds?: string[]
|
|
1161
|
+
): void
|
|
1162
|
+
|
|
1163
|
+
// --- Variable ---
|
|
1164
|
+
createVariable(options: {
|
|
1165
|
+
name: string
|
|
1166
|
+
type: VariableType
|
|
1167
|
+
value?: any
|
|
1168
|
+
description?: string
|
|
1169
|
+
collectionId?: string
|
|
1170
|
+
}): Promise<Variable | null>
|
|
1171
|
+
getVariableById(id: string): Variable | null
|
|
1172
|
+
getVariables(options?: {
|
|
1173
|
+
collectionId?: string
|
|
1174
|
+
groupPath?: string
|
|
1175
|
+
type?: VariableType
|
|
1176
|
+
scopeType?: string
|
|
1177
|
+
}): Variable[]
|
|
1178
|
+
setVariableReference(options: {
|
|
1179
|
+
id: string
|
|
1180
|
+
reference: string | object
|
|
1181
|
+
modeId?: string
|
|
1182
|
+
index?: string
|
|
1183
|
+
textProperty?: string
|
|
1184
|
+
strokeProperty?: string
|
|
1185
|
+
radiusProperty?: string
|
|
1186
|
+
paddingProperty?: string
|
|
1187
|
+
gridProperty?: string
|
|
1188
|
+
effectProperty?: string
|
|
1189
|
+
}): void
|
|
1190
|
+
unlinkVariable(options: {
|
|
1191
|
+
id: string
|
|
1192
|
+
modeId?: string
|
|
1193
|
+
}): Promise<void>
|
|
1194
|
+
renameVariable(variableId: string, name: string): void
|
|
1195
|
+
setVariableValue(options: {
|
|
1196
|
+
id: string
|
|
1197
|
+
value: any
|
|
1198
|
+
modeId: string
|
|
1199
|
+
}): Variable | null
|
|
1200
|
+
addVariableValue(options: {
|
|
1201
|
+
id: string
|
|
1202
|
+
value?: any
|
|
1203
|
+
modeId: string
|
|
1204
|
+
}): Variable | null
|
|
1205
|
+
deleteVariableValue(options: {
|
|
1206
|
+
id: string
|
|
1207
|
+
index: string | string[]
|
|
1208
|
+
modeId: string
|
|
1209
|
+
}): Variable | null
|
|
1210
|
+
deleteVariable(variableId: string): void
|
|
1211
|
+
moveVariable(
|
|
1212
|
+
variableId: string,
|
|
1213
|
+
options?: { afterId?: string; index?: number }
|
|
1214
|
+
): Promise<void>
|
|
1215
|
+
|
|
1216
|
+
// --- Variable Description / Alias ---
|
|
1217
|
+
getVariableDescription(variableId: string): string | null
|
|
1218
|
+
setVariableDescription(
|
|
1219
|
+
variableId: string,
|
|
1220
|
+
value: string
|
|
1221
|
+
): Promise<Variable | null>
|
|
1222
|
+
resetVariableDescription(
|
|
1223
|
+
variableId: string
|
|
1224
|
+
): Promise<Variable | null>
|
|
1225
|
+
getVariableAlias(variableId: string): string | null
|
|
1226
|
+
setVariableAlias(
|
|
1227
|
+
variableId: string,
|
|
1228
|
+
value: string
|
|
1229
|
+
): Promise<Variable | null>
|
|
1230
|
+
resetVariableAlias(variableId: string): Promise<Variable | null>
|
|
1231
|
+
|
|
1232
|
+
// --- Component Property Variable ---
|
|
1233
|
+
setVariableInComponent(options: {
|
|
1234
|
+
id: string
|
|
1235
|
+
propertyId: string
|
|
1236
|
+
type: 'BOOLEAN' | 'CONTENT'
|
|
1237
|
+
}): void
|
|
1238
|
+
unlinkVariableInComponent(options: {
|
|
1239
|
+
propertyId: string
|
|
1240
|
+
type: 'BOOLEAN' | 'CONTENT'
|
|
1241
|
+
}): void
|
|
1242
|
+
createVariableInComponent(options: {
|
|
1243
|
+
name: string
|
|
1244
|
+
description?: string
|
|
1245
|
+
collectionId?: string
|
|
1246
|
+
layerId: string
|
|
1247
|
+
type: 'BOOLEAN' | 'CONTENT'
|
|
1248
|
+
value?: any
|
|
1249
|
+
}): Promise<string | null>
|
|
1250
|
+
|
|
1251
|
+
// --- Layer Property Variable ---
|
|
1252
|
+
createVariableInLayer(options: {
|
|
1253
|
+
name: string
|
|
1254
|
+
description?: string
|
|
1255
|
+
collectionId?: string
|
|
1256
|
+
layerId: string
|
|
1257
|
+
value?: any
|
|
1258
|
+
strokeProperty?: string
|
|
1259
|
+
radiusProperty?: string
|
|
1260
|
+
paddingProperty?: string
|
|
1261
|
+
dimensionProperty?: string
|
|
1262
|
+
baseProperty?: string
|
|
1263
|
+
effectProperty?: string
|
|
1264
|
+
gridProperty?: string
|
|
1265
|
+
textProperty?: string
|
|
1266
|
+
index?: number
|
|
1267
|
+
}): Promise<Variable | null>
|
|
1268
|
+
setVariableReferenceInLayer(options: {
|
|
1269
|
+
id: string
|
|
1270
|
+
layerId: string
|
|
1271
|
+
strokeProperty?: string
|
|
1272
|
+
radiusProperty?: string
|
|
1273
|
+
paddingProperty?: string
|
|
1274
|
+
dimensionProperty?: string
|
|
1275
|
+
baseProperty?: string
|
|
1276
|
+
effectProperty?: string
|
|
1277
|
+
gridProperty?: string
|
|
1278
|
+
textProperty?: string
|
|
1279
|
+
index?: number
|
|
1280
|
+
}): Promise<void>
|
|
1281
|
+
unlinkVariableReferenceInLayer(options: {
|
|
1282
|
+
layerId: string
|
|
1283
|
+
strokeProperty?: string
|
|
1284
|
+
radiusProperty?: string
|
|
1285
|
+
paddingProperty?: string
|
|
1286
|
+
dimensionProperty?: string
|
|
1287
|
+
baseProperty?: string
|
|
1288
|
+
effectProperty?: string
|
|
1289
|
+
gridProperty?: string
|
|
1290
|
+
textProperty?: string
|
|
1291
|
+
index?: number
|
|
1292
|
+
}): Promise<void>
|
|
1293
|
+
|
|
1294
|
+
// --- Variable Code Syntax ---
|
|
1295
|
+
getCodeSyntax(variableId: string): VariableCodeSyntax | null
|
|
1296
|
+
setCodeSyntax(
|
|
1297
|
+
variableId: string,
|
|
1298
|
+
codeSyntax: { web?: string; android?: string; ios?: string }
|
|
1299
|
+
): Promise<Variable | null>
|
|
1300
|
+
resetCodeSyntax(
|
|
1301
|
+
variableId: string,
|
|
1302
|
+
platform?: string
|
|
1303
|
+
): Promise<Variable | null>
|
|
1304
|
+
|
|
1305
|
+
// --- Variable Scopes ---
|
|
1306
|
+
getVariableScopes(variableId: string): ScopeName[]
|
|
1307
|
+
setVariableScopes(
|
|
1308
|
+
variableId: string,
|
|
1309
|
+
scopes: ScopeName[]
|
|
1310
|
+
): Promise<Variable | null>
|
|
1311
|
+
|
|
1312
|
+
// --- Variable Indexes ---
|
|
1313
|
+
getVariableIndexes(
|
|
1314
|
+
variableId: string,
|
|
1315
|
+
modeId?: string
|
|
1316
|
+
): string[]
|
|
1317
|
+
|
|
1318
|
+
// --- Font ---
|
|
1319
|
+
getFontFamilies(): FontFamilyInfo[]
|
|
1320
|
+
getFontWeights(fontFamily: string): FontWeightInfo[]
|
|
1321
|
+
}
|
|
1322
|
+
|
|
1098
1323
|
interface PluginAPI {
|
|
1099
1324
|
readonly document: DocumentNode
|
|
1100
1325
|
|
|
@@ -1162,6 +1387,7 @@ declare global {
|
|
|
1162
1387
|
createPage(): PageNode
|
|
1163
1388
|
createSlice(): SliceNode
|
|
1164
1389
|
createConnector(): ConnectorNode
|
|
1390
|
+
createIntelligentContainer(children?: SceneNode[]): IntelligentContainerNode
|
|
1165
1391
|
createNodeFromSvgAsync(svg: string): Promise<FrameNode>
|
|
1166
1392
|
|
|
1167
1393
|
combineAsVariants(nodes: ComponentNode[]): ComponentSetNode
|
|
@@ -1225,12 +1451,14 @@ declare global {
|
|
|
1225
1451
|
* @param type NodeStyleType
|
|
1226
1452
|
* @param styleName
|
|
1227
1453
|
* @param description optional
|
|
1454
|
+
* @param collectionId optional
|
|
1228
1455
|
*/
|
|
1229
1456
|
createStyleByLayer<T extends NodeStyleType>(
|
|
1230
1457
|
layerId: string,
|
|
1231
1458
|
type: T,
|
|
1232
1459
|
styleName: string,
|
|
1233
|
-
description?: string
|
|
1460
|
+
description?: string,
|
|
1461
|
+
collectionId?: string
|
|
1234
1462
|
): NodeStyleReturnType<T>
|
|
1235
1463
|
|
|
1236
1464
|
/**
|
|
@@ -1239,11 +1467,13 @@ declare global {
|
|
|
1239
1467
|
* @param type styleType
|
|
1240
1468
|
* @param styleName
|
|
1241
1469
|
* @param description optional
|
|
1470
|
+
* @param collectionId optional
|
|
1242
1471
|
*/
|
|
1243
1472
|
createStyle<T extends StyleType>(
|
|
1244
1473
|
type: T,
|
|
1245
1474
|
styleName: string,
|
|
1246
|
-
description?: string
|
|
1475
|
+
description?: string,
|
|
1476
|
+
collectionId?: string
|
|
1247
1477
|
): StyleReturnType<T>
|
|
1248
1478
|
/**
|
|
1249
1479
|
* 创建某一个样式的副本
|
|
@@ -1267,6 +1497,8 @@ declare global {
|
|
|
1267
1497
|
getLocalPaddingStyles(): PaddingStyle[]
|
|
1268
1498
|
getLocalSpacingStyles(): SpacingStyle[]
|
|
1269
1499
|
|
|
1500
|
+
readonly variables: VariableAPI
|
|
1501
|
+
|
|
1270
1502
|
listAvailableFontsAsync(): Promise<Font[]>
|
|
1271
1503
|
loadFontAsync(fontName: FontName): Promise<boolean>
|
|
1272
1504
|
createImage(imageData: Uint8Array, isSync?: boolean): Promise<Image>
|
|
@@ -1508,6 +1740,106 @@ declare global {
|
|
|
1508
1740
|
| 'cornerRadius'
|
|
1509
1741
|
| 'padding'
|
|
1510
1742
|
| 'spacing'
|
|
1743
|
+
| 'effect'
|
|
1744
|
+
| 'text'
|
|
1745
|
+
| 'grid'
|
|
1746
|
+
|
|
1747
|
+
// #region Variable / Collection / Mode / Group types
|
|
1748
|
+
|
|
1749
|
+
type VariableType =
|
|
1750
|
+
| 'STRING'
|
|
1751
|
+
| 'BOOLEAN'
|
|
1752
|
+
| 'COLOR'
|
|
1753
|
+
| 'NUMBER'
|
|
1754
|
+
| 'PAINT'
|
|
1755
|
+
| 'TEXT'
|
|
1756
|
+
| 'EFFECT'
|
|
1757
|
+
| 'GRID'
|
|
1758
|
+
| 'STROKE_WIDTH'
|
|
1759
|
+
| 'CORNER_RADIUS'
|
|
1760
|
+
| 'PADDING'
|
|
1761
|
+
| 'SPACING'
|
|
1762
|
+
|
|
1763
|
+
type ScopeName =
|
|
1764
|
+
| 'all'
|
|
1765
|
+
| 'fill'
|
|
1766
|
+
| 'fillAll'
|
|
1767
|
+
| 'shapeFill'
|
|
1768
|
+
| 'textFill'
|
|
1769
|
+
| 'stroke'
|
|
1770
|
+
| 'effect'
|
|
1771
|
+
| 'grid'
|
|
1772
|
+
| 'widthHeight'
|
|
1773
|
+
| 'cornerRadius'
|
|
1774
|
+
| 'opacity'
|
|
1775
|
+
| 'layoutSpacing'
|
|
1776
|
+
| 'layoutPadding'
|
|
1777
|
+
| 'fontSize'
|
|
1778
|
+
| 'fontWeight'
|
|
1779
|
+
| 'textLineHeight'
|
|
1780
|
+
| 'textLetterSpacing'
|
|
1781
|
+
| 'textParagraphSpacing'
|
|
1782
|
+
| 'fontFamily'
|
|
1783
|
+
| 'textContent'
|
|
1784
|
+
|
|
1785
|
+
interface VariableCodeSyntax {
|
|
1786
|
+
readonly web?: string
|
|
1787
|
+
readonly android?: string
|
|
1788
|
+
readonly ios?: string
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
interface Variable {
|
|
1792
|
+
readonly id: string
|
|
1793
|
+
readonly name: string
|
|
1794
|
+
readonly description: string
|
|
1795
|
+
readonly alias: string
|
|
1796
|
+
readonly type: VariableType
|
|
1797
|
+
readonly collectionId: string
|
|
1798
|
+
readonly isExternal: boolean
|
|
1799
|
+
readonly supportScope: boolean
|
|
1800
|
+
readonly codeSyntax?: VariableCodeSyntax
|
|
1801
|
+
readonly scopes?: ReadonlyArray<ScopeName>
|
|
1802
|
+
readonly modes: Record<string, ReadonlyArray<any>>
|
|
1803
|
+
}
|
|
1804
|
+
|
|
1805
|
+
interface Collection {
|
|
1806
|
+
readonly id: string
|
|
1807
|
+
readonly name: string
|
|
1808
|
+
readonly isExternal: boolean
|
|
1809
|
+
readonly modes: ReadonlyArray<CollectionMode>
|
|
1810
|
+
}
|
|
1811
|
+
|
|
1812
|
+
interface CollectionMode {
|
|
1813
|
+
readonly id: string
|
|
1814
|
+
readonly name: string
|
|
1815
|
+
readonly collectionId: string
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
interface VariableGroupNode {
|
|
1819
|
+
readonly id: string
|
|
1820
|
+
readonly name: string
|
|
1821
|
+
readonly currentPath?: string
|
|
1822
|
+
readonly level: number
|
|
1823
|
+
readonly isLeaf: boolean
|
|
1824
|
+
readonly children?: ReadonlyArray<VariableGroupNode>
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
interface FontFamilyInfo {
|
|
1828
|
+
readonly family: string
|
|
1829
|
+
readonly label: string
|
|
1830
|
+
readonly lang: string
|
|
1831
|
+
readonly isVariable: boolean
|
|
1832
|
+
}
|
|
1833
|
+
|
|
1834
|
+
interface FontWeightInfo {
|
|
1835
|
+
readonly postscriptName: string
|
|
1836
|
+
readonly label: string
|
|
1837
|
+
readonly style: string
|
|
1838
|
+
readonly weight: number
|
|
1839
|
+
readonly slant: number
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
// #endregion
|
|
1511
1843
|
|
|
1512
1844
|
interface BaseStyle extends Omit<PublishableMixin, 'documentationLinks'> {
|
|
1513
1845
|
readonly id: string
|
|
@@ -1608,6 +1940,7 @@ declare global {
|
|
|
1608
1940
|
| CornerRadiusStyle
|
|
1609
1941
|
| PaddingStyle
|
|
1610
1942
|
| SpacingStyle
|
|
1943
|
+
| Variable
|
|
1611
1944
|
|
|
1612
1945
|
/// /////////////////////////////////////////////////////////////////////////////
|
|
1613
1946
|
// Datatypes
|
|
@@ -1692,6 +2025,7 @@ declare global {
|
|
|
1692
2025
|
}
|
|
1693
2026
|
|
|
1694
2027
|
interface MotionBlurEffect {
|
|
2028
|
+
readonly type: 'MOTION_BLUR'
|
|
1695
2029
|
readonly isVisible: boolean
|
|
1696
2030
|
readonly radius: number
|
|
1697
2031
|
readonly angle: number
|
|
@@ -2236,6 +2570,18 @@ declare global {
|
|
|
2236
2570
|
resizeToFit(): void
|
|
2237
2571
|
}
|
|
2238
2572
|
|
|
2573
|
+
interface IntelligentContainerNode
|
|
2574
|
+
extends DefaultContainerMixin,
|
|
2575
|
+
GeometryMixin,
|
|
2576
|
+
FrameContainerMixin,
|
|
2577
|
+
RectangleStrokeWeightMixin {
|
|
2578
|
+
readonly type: 'INTELLIGENT_CONTAINER'
|
|
2579
|
+
clone(): IntelligentContainerNode
|
|
2580
|
+
resizeToFit(): void
|
|
2581
|
+
shaderCode: string
|
|
2582
|
+
isPlaying: boolean
|
|
2583
|
+
}
|
|
2584
|
+
|
|
2239
2585
|
interface RectangleNode
|
|
2240
2586
|
extends DefaultShapeMixin,
|
|
2241
2587
|
ConstraintMixin,
|
|
@@ -2621,6 +2967,7 @@ declare global {
|
|
|
2621
2967
|
*/
|
|
2622
2968
|
id: string
|
|
2623
2969
|
description?: string
|
|
2970
|
+
collectionId?: string
|
|
2624
2971
|
}
|
|
2625
2972
|
|
|
2626
2973
|
interface FlowStartingPoint {
|
|
@@ -2764,6 +3111,10 @@ declare global {
|
|
|
2764
3111
|
cornerRadiuses: ReadonlyArray<TeamLibraryStyle>
|
|
2765
3112
|
paddings: ReadonlyArray<TeamLibraryStyle>
|
|
2766
3113
|
spacings: ReadonlyArray<TeamLibraryStyle>
|
|
3114
|
+
numbers: ReadonlyArray<TeamLibraryStyle>
|
|
3115
|
+
strings: ReadonlyArray<TeamLibraryStyle>
|
|
3116
|
+
bools: ReadonlyArray<TeamLibraryStyle>
|
|
3117
|
+
colors: ReadonlyArray<TeamLibraryStyle>
|
|
2767
3118
|
}
|
|
2768
3119
|
}>
|
|
2769
3120
|
|
|
@@ -2789,6 +3140,7 @@ declare global {
|
|
|
2789
3140
|
| SliceNode
|
|
2790
3141
|
| ConnectorNode
|
|
2791
3142
|
| SectionNode
|
|
3143
|
+
| IntelligentContainerNode
|
|
2792
3144
|
|
|
2793
3145
|
type NodeType =
|
|
2794
3146
|
| 'DOCUMENT'
|
|
@@ -2809,6 +3161,7 @@ declare global {
|
|
|
2809
3161
|
| 'SLICE'
|
|
2810
3162
|
| 'CONNECTOR'
|
|
2811
3163
|
| 'SECTION'
|
|
3164
|
+
| 'INTELLIGENT_CONTAINER'
|
|
2812
3165
|
|
|
2813
3166
|
// d2c
|
|
2814
3167
|
type CodeFile = {
|
|
@@ -2970,5 +3323,11 @@ declare global {
|
|
|
2970
3323
|
? PaddingStyle
|
|
2971
3324
|
: T extends 'spacing'
|
|
2972
3325
|
? SpacingStyle
|
|
3326
|
+
: T extends 'effect'
|
|
3327
|
+
? EffectStyle
|
|
3328
|
+
: T extends 'text'
|
|
3329
|
+
? TextStyle
|
|
3330
|
+
: T extends 'grid'
|
|
3331
|
+
? GridStyle
|
|
2973
3332
|
: never
|
|
2974
3333
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastergo/plugin-typings",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.18.0-beta.0",
|
|
4
4
|
"description": "MasterGo插件API声明文件",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "",
|
|
@@ -68,5 +68,6 @@
|
|
|
68
68
|
"commitizen": {
|
|
69
69
|
"path": "cz-conventional-changelog"
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
},
|
|
72
|
+
"packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
|
|
72
73
|
}
|