@opentrons/shared-data 0.1.7-alpha.1 → 0.2.0-alpha.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 (258) hide show
  1. package/.coveragerc +4 -0
  2. package/.flake8 +31 -0
  3. package/Config.in +11 -0
  4. package/LICENSE +202 -0
  5. package/Makefile +13 -14
  6. package/Makefile-python.mk +134 -0
  7. package/buildroot.mk +35 -0
  8. package/command/index.ts +3 -1
  9. package/command/schemas/13.json +147 -315
  10. package/command/schemas/14.json +7254 -0
  11. package/command/types/index.ts +15 -4
  12. package/command/types/module.ts +24 -4
  13. package/command/types/setup.ts +5 -5
  14. package/command/types/support.ts +1 -0
  15. package/deck/definitions/5/ot2_short_trash.json +37 -0
  16. package/deck/definitions/5/ot2_standard.json +37 -0
  17. package/deck/definitions/5/ot3_standard.json +152 -51
  18. package/deck/schemas/5.json +46 -1
  19. package/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  20. package/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  21. package/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  22. package/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  23. package/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  24. package/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  25. package/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  26. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  27. package/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  28. package/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  29. package/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  30. package/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  31. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  32. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  33. package/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  34. package/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  35. package/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  36. package/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  37. package/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  38. package/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  39. package/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  40. package/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  41. package/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  42. package/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  43. package/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  44. package/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  45. package/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  46. package/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  47. package/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  48. package/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  49. package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
  50. package/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  51. package/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  52. package/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  53. package/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  54. package/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  55. package/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  56. package/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  57. package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
  58. package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
  59. package/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  60. package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
  61. package/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  62. package/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  63. package/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  64. package/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  65. package/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  66. package/labware/fixtures/3/fixture_2_plate.json +5 -2
  67. package/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
  68. package/labware/fixtures/3/index.ts +4 -0
  69. package/labware/schemas/2.json +36 -1
  70. package/labware/schemas/3.json +57 -5
  71. package/lib/command/index.d.ts +39 -1
  72. package/lib/command/schemas/13.json +147 -315
  73. package/lib/command/schemas/14.json +7254 -0
  74. package/lib/command/types/index.d.ts +11 -3
  75. package/lib/command/types/module.d.ts +19 -6
  76. package/lib/command/types/setup.d.ts +5 -5
  77. package/lib/deck/definitions/5/ot2_short_trash.json +37 -0
  78. package/lib/deck/definitions/5/ot2_standard.json +37 -0
  79. package/lib/deck/definitions/5/ot3_standard.json +152 -51
  80. package/lib/deck/schemas/5.json +46 -1
  81. package/lib/index.mjs +240842 -193770
  82. package/lib/js/constants.d.ts +30 -9
  83. package/lib/js/fixtures.d.ts +77 -2
  84. package/lib/js/getLabware.d.ts +3 -3
  85. package/lib/js/helpers/__tests__/getMaxPushOutVolume.test.d.ts +1 -0
  86. package/lib/js/helpers/__tests__/getStackedItemsOnStartingDeck.test.d.ts +1 -0
  87. package/lib/js/helpers/__tests__/labwareSchemaShims.test.d.ts +1 -0
  88. package/lib/js/helpers/__tests__/pairsFromArray.test.d.ts +1 -0
  89. package/lib/js/helpers/__tests__/vectorMath.test.d.ts +1 -0
  90. package/lib/js/helpers/getFixedTrashLabwareDefinition.d.ts +2 -2
  91. package/lib/js/helpers/getLabwareDefURI.d.ts +3 -0
  92. package/lib/js/helpers/getLabwareDefinitionsByURIForProtocol.d.ts +6 -0
  93. package/lib/js/helpers/getLabwareInfoByLiquidId.d.ts +10 -0
  94. package/lib/js/helpers/getLiquidsByIdForLabware.d.ts +2 -0
  95. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +2 -2
  96. package/lib/js/helpers/getMaxPushOutVolume.d.ts +2 -0
  97. package/lib/js/helpers/getStackedItemsOnStartingDeck.d.ts +50 -0
  98. package/lib/js/helpers/getStandardDeckViewLayerBlockList.d.ts +2 -0
  99. package/lib/js/helpers/getTipTypeFromTipRackDefinition.d.ts +2 -2
  100. package/lib/js/helpers/getWellFillFromLabwareId.d.ts +4 -0
  101. package/lib/js/helpers/getWellNamePerMultiTip.d.ts +3 -3
  102. package/lib/js/helpers/getWellTotalVolume.d.ts +2 -2
  103. package/lib/js/helpers/index.d.ts +22 -14
  104. package/lib/js/helpers/labwareInference.d.ts +3 -3
  105. package/lib/js/helpers/liquidClasses.d.ts +4 -2
  106. package/lib/js/helpers/matrixMath.d.ts +3 -0
  107. package/lib/js/helpers/pairsFromArray.d.ts +8 -0
  108. package/lib/js/helpers/parseProtocolCommands.d.ts +4 -4
  109. package/lib/js/helpers/positionMath.d.ts +127 -0
  110. package/lib/js/helpers/validateCustomLabwareHelper.d.ts +2 -2
  111. package/lib/js/helpers/vectorMath.d.ts +14 -0
  112. package/lib/js/helpers/wellSets.d.ts +4 -4
  113. package/lib/js/labware.d.ts +4 -3
  114. package/lib/js/liquidClasses.d.ts +4 -0
  115. package/lib/js/modules.d.ts +1 -1
  116. package/lib/js/types.d.ts +62 -13
  117. package/lib/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  118. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  119. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  120. package/lib/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  121. package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  122. package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  123. package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  124. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  125. package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  126. package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  127. package/lib/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  128. package/lib/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  129. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  130. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  131. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  132. package/lib/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  133. package/lib/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  134. package/lib/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  135. package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  136. package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  137. package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  138. package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  139. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  140. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  141. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  142. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  143. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  144. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  145. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  146. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  147. package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
  148. package/lib/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  149. package/lib/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  150. package/lib/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  151. package/lib/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  152. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  153. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  154. package/lib/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  155. package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
  156. package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
  157. package/lib/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  158. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
  159. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  160. package/lib/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  161. package/lib/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  162. package/lib/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  163. package/lib/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  164. package/lib/labware/fixtures/3/fixture_2_plate.json +5 -2
  165. package/lib/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
  166. package/lib/labware/fixtures/3/index.d.ts +3 -0
  167. package/lib/labware/schemas/2.json +36 -1
  168. package/lib/labware/schemas/3.json +57 -5
  169. package/lib/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
  170. package/lib/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
  171. package/lib/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
  172. package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
  173. package/lib/liquid-class/schemas/1.json +6 -0
  174. package/lib/module/definitions/3/absorbanceReaderV1.json +20 -151
  175. package/lib/module/definitions/3/flexStackerModuleV1.json +29 -389
  176. package/lib/module/definitions/3/heaterShakerModuleV1.json +16 -357
  177. package/lib/module/definitions/3/magneticBlockV1.json +18 -149
  178. package/lib/module/definitions/3/magneticModuleV1.json +16 -399
  179. package/lib/module/definitions/3/magneticModuleV2.json +16 -399
  180. package/lib/module/definitions/3/temperatureModuleV1.json +16 -153
  181. package/lib/module/definitions/3/temperatureModuleV2.json +16 -153
  182. package/lib/module/definitions/3/thermocyclerModuleV1.json +16 -1340
  183. package/lib/module/definitions/3/thermocyclerModuleV2.json +18 -3617
  184. package/lib/module/schemas/3.json +109 -12
  185. package/lib/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  186. package/lib/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  187. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  188. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  189. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  190. package/lib/protocol/types/schemaV8/index.d.ts +17 -1
  191. package/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
  192. package/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
  193. package/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
  194. package/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
  195. package/liquid-class/schemas/1.json +6 -0
  196. package/module/definitions/3/absorbanceReaderV1.json +20 -151
  197. package/module/definitions/3/flexStackerModuleV1.json +29 -389
  198. package/module/definitions/3/heaterShakerModuleV1.json +16 -357
  199. package/module/definitions/3/magneticBlockV1.json +18 -149
  200. package/module/definitions/3/magneticModuleV1.json +16 -399
  201. package/module/definitions/3/magneticModuleV2.json +16 -399
  202. package/module/definitions/3/temperatureModuleV1.json +16 -153
  203. package/module/definitions/3/temperatureModuleV2.json +16 -153
  204. package/module/definitions/3/thermocyclerModuleV1.json +16 -1340
  205. package/module/definitions/3/thermocyclerModuleV2.json +18 -3617
  206. package/module/schemas/3.json +109 -12
  207. package/mypy.ini +22 -0
  208. package/package.json +1 -1
  209. package/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  210. package/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  211. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  212. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  213. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  214. package/protocol/types/schemaV8/index.ts +29 -1
  215. package/pyproject.toml +119 -0
  216. package/pytest.ini +8 -0
  217. package/python_tests/__init__.py +1 -0
  218. package/python_tests/command/test_known_schema_ids.py +9 -0
  219. package/python_tests/conftest.py +108 -0
  220. package/python_tests/deck/__init__.py +0 -0
  221. package/python_tests/deck/test_list_names.py +12 -0
  222. package/python_tests/deck/test_position.py +101 -0
  223. package/python_tests/deck/test_typechecks.py +23 -0
  224. package/python_tests/errors/__init__.py +1 -0
  225. package/python_tests/errors/test_error_completeness.py +19 -0
  226. package/python_tests/errors/test_exceptions.py +74 -0
  227. package/python_tests/gripper/__init__.py +0 -0
  228. package/python_tests/gripper/test_definition.py +30 -0
  229. package/python_tests/gripper/test_load.py +19 -0
  230. package/python_tests/labware/__init__.py +13 -0
  231. package/python_tests/labware/test_typechecks.py +80 -0
  232. package/python_tests/liquid_classes/__init__.py +0 -0
  233. package/python_tests/liquid_classes/test_liquid_class_values.py +59 -0
  234. package/python_tests/liquid_classes/test_load.py +45 -0
  235. package/python_tests/liquid_classes/test_validations.py +192 -0
  236. package/python_tests/module/__init__.py +20 -0
  237. package/python_tests/module/test_load.py +49 -0
  238. package/python_tests/module/test_typechecks.py +26 -0
  239. package/python_tests/pipette/__init__.py +0 -0
  240. package/python_tests/pipette/test_load_data.py +109 -0
  241. package/python_tests/pipette/test_max_flow_rates_per_volume.py +112 -0
  242. package/python_tests/pipette/test_mutable_configurations.py +467 -0
  243. package/python_tests/pipette/test_pipette_definition.py +183 -0
  244. package/python_tests/pipette/test_pipette_load_name_conversions.py +244 -0
  245. package/python_tests/pipette/test_typechecks.py +47 -0
  246. package/python_tests/pipette/test_validate_schema.py +198 -0
  247. package/python_tests/protocol/__init__.py +7 -0
  248. package/python_tests/protocol/test_protocol_schema_v6.py +108 -0
  249. package/python_tests/protocol/test_protocol_schema_v7.py +35 -0
  250. package/python_tests/protocol/test_protocol_schema_v8.py +17 -0
  251. package/python_tests/protocol/test_typechecks.py +30 -0
  252. package/python_tests/robot/__init__.py +0 -0
  253. package/python_tests/robot/test_typechecks.py +13 -0
  254. package/lib/js/cypressUtils.d.ts +0 -1
  255. package/lib/js/helpers/getVectorDifference.d.ts +0 -2
  256. package/lib/js/helpers/getVectorSum.d.ts +0 -2
  257. /package/lib/js/{helpers/__tests__/getVectorDifference.test.d.ts → __tests__/fixtures.test.d.ts} +0 -0
  258. /package/lib/js/helpers/__tests__/{getVectorSum.test.d.ts → getLabwareInfoByLiquidId.test.d.ts} +0 -0
@@ -7,6 +7,7 @@
7
7
  "y": -0.125,
8
8
  "z": 82.25
9
9
  },
10
+ "features": {},
10
11
  "dimensions": {
11
12
  "bareOverallHeight": 110.152,
12
13
  "overLabwareHeight": 4.052,
@@ -17,6 +18,20 @@
17
18
  "labwareInterfaceXDimension": 128,
18
19
  "labwareInterfaceYDimension": 86
19
20
  },
21
+ "extents": {
22
+ "total": {
23
+ "backLeftBottom": {
24
+ "x": -7,
25
+ "y": 1.8,
26
+ "z": 0
27
+ },
28
+ "frontRightTop": {
29
+ "x": 130,
30
+ "y": -89.2,
31
+ "z": 110.152
32
+ }
33
+ }
34
+ },
20
35
  "cornerOffsetFromSlot": {
21
36
  "x": -7,
22
37
  "y": -1.8,
@@ -35,403 +50,5 @@
35
50
  "slotTransforms": {},
36
51
  "compatibleWith": [],
37
52
  "incompatibleWithDecks": ["ot3_standard"],
38
- "uniqueModuleData": {},
39
- "twoDimensionalRendering": {
40
- "name": "svg",
41
- "type": "element",
42
- "value": "",
43
- "attributes": {
44
- "version": "1.1",
45
- "id": "magneticModule",
46
- "xmlns": "http://www.w3.org/2000/svg",
47
- "xmlns:xlink": "http://www.w3.org/1999/xlink",
48
- "x": "0px",
49
- "y": "0px",
50
- "viewBox": "0 0 135.9 90",
51
- "style": "enable-background:new 0 0 135.9 90;",
52
- "xml:space": "preserve"
53
- },
54
- "children": [
55
- {
56
- "name": "g",
57
- "type": "element",
58
- "value": "",
59
- "attributes": {
60
- "id": "darkFill"
61
- },
62
- "children": [
63
- {
64
- "name": "path",
65
- "type": "element",
66
- "value": "",
67
- "attributes": {
68
- "style": "fill: #E6E6E6;",
69
- "d": "M126.4,74.2c-0.8,0-1.4,0.6-1.4,1.4v6.2c0,1.4-1.2,2.6-2.6,2.6H83.6v4.9H0.7V0.7h82.9v4.4h38.8\n\t\tc1.4,0,2.6,1.2,2.6,2.6v6.2c0,0.8,0.6,1.4,1.4,1.4h8.8v58.9H126.4z M24.4,13.5h-1.9v9.8h1.9V13.5z M24.4,31.1h-1.9V41h1.9V31.1z\n\t\t\tM24.4,49h-1.9v9.8h1.9V49z M24.4,66.8h-1.9v9.8h1.9V66.8z M42.2,13.5h-1.9v9.8h1.9V13.5z M42.2,31.1h-1.9V41h1.9V31.1z M42.2,49\n\t\th-1.9v9.8h1.9V49z M42.2,66.8h-1.9v9.8h1.9V66.8z M59.9,13.5h-1.9v9.8h1.9V13.5z M59.9,31.1h-1.9V41h1.9V31.1z M59.9,49h-1.9v9.8\n\t\th1.9V49z M59.9,66.8h-1.9v9.8h1.9V66.8z M77.7,13.5h-1.9v9.8h1.9V13.5z M77.7,31.1h-1.9V41h1.9V31.1z M77.7,49h-1.9v9.8h1.9V49z\n\t\t\tM77.7,66.8h-1.9v9.8h1.9V66.8z M95.5,13.5h-1.9v9.8h1.9V13.5z M95.5,31.1h-1.9V41h1.9V31.1z M95.5,49h-1.9v9.8h1.9V49z\n\t\t\tM95.5,66.8h-1.9v9.8h1.9V66.8z M113.3,13.5h-1.9v9.8h1.9V13.5z M113.3,31.1h-1.9V41h1.9V31.1z M113.3,49h-1.9v9.8h1.9V49z\n\t\t\tM113.3,66.8h-1.9v9.8h1.9V66.8z"
70
- },
71
- "children": []
72
- }
73
- ]
74
- },
75
- {
76
- "name": "g",
77
- "type": "element",
78
- "value": "",
79
- "attributes": {
80
- "id": "magnetPlate"
81
- },
82
- "children": [
83
- {
84
- "name": "path",
85
- "type": "element",
86
- "value": "",
87
- "attributes": {
88
- "d": "M118,81.7c2.2,0,4-1.8,4-4V11.9c0-2.2-1.8-4-4-4H18.1c-2.2,0-4,1.8-4,4v65.8c0,2.2,1.8,4,4,4L118,81.7 M118,82.4H18.1\n\t\tc-2.6,0-4.7-2.1-4.7-4.7V11.9c0-2.6,2.1-4.7,4.7-4.7H118c2.6,0,4.7,2.1,4.7,4.7v65.8C122.7,80.3,120.6,82.4,118,82.4L118,82.4z"
89
- },
90
- "children": []
91
- }
92
- ]
93
- },
94
- {
95
- "name": "g",
96
- "type": "element",
97
- "value": "",
98
- "attributes": {
99
- "id": "bracketThumbScrew"
100
- },
101
- "children": [
102
- {
103
- "name": "path",
104
- "type": "element",
105
- "value": "",
106
- "attributes": {
107
- "d": "M1.1,41.1h-5.8v7.8h5.8V41.1z M-4,41.8h4.4v6.3H-4V41.8z M-4,36.7h-4.1v16.6H-4V36.7z M-7.4,37.4h2.6v15.2h-2.6V37.4z"
108
- },
109
- "children": []
110
- }
111
- ]
112
- },
113
- {
114
- "name": "g",
115
- "type": "element",
116
- "value": "",
117
- "attributes": {
118
- "id": "powerButton"
119
- },
120
- "children": [
121
- {
122
- "name": "path",
123
- "type": "element",
124
- "value": "",
125
- "attributes": {
126
- "d": "M0,18.6v-8.1h-3.6v8.1H0 M0.7,19.3h-5V9.8h5V19.3L0.7,19.3z"
127
- },
128
- "children": []
129
- }
130
- ]
131
- },
132
- {
133
- "name": "g",
134
- "type": "element",
135
- "value": "",
136
- "attributes": {
137
- "id": "magnets"
138
- },
139
- "children": [
140
- {
141
- "name": "path",
142
- "type": "element",
143
- "value": "",
144
- "attributes": {
145
- "d": "M24.4,76.6v-9.8h-1.9v9.8H24.4 M25.1,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L25.1,77.4z"
146
- },
147
- "children": []
148
- },
149
- {
150
- "name": "path",
151
- "type": "element",
152
- "value": "",
153
- "attributes": {
154
- "d": "M24.4,23.3v-9.8h-1.9v9.8H24.4 M25.1,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L25.1,24z"
155
- },
156
- "children": []
157
- },
158
- {
159
- "name": "path",
160
- "type": "element",
161
- "value": "",
162
- "attributes": {
163
- "d": "M24.4,41v-9.8h-1.9V41H24.4 M25.1,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L25.1,41.7z"
164
- },
165
- "children": []
166
- },
167
- {
168
- "name": "path",
169
- "type": "element",
170
- "value": "",
171
- "attributes": {
172
- "d": "M24.4,58.8V49h-1.9v9.8H24.4 M25.1,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L25.1,59.5z"
173
- },
174
- "children": []
175
- },
176
- {
177
- "name": "path",
178
- "type": "element",
179
- "value": "",
180
- "attributes": {
181
- "d": "M42.2,76.6v-9.8h-1.9v9.8H42.2 M42.9,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L42.9,77.4z"
182
- },
183
- "children": []
184
- },
185
- {
186
- "name": "path",
187
- "type": "element",
188
- "value": "",
189
- "attributes": {
190
- "d": "M42.2,23.3v-9.8h-1.9v9.8H42.2 M42.9,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L42.9,24z"
191
- },
192
- "children": []
193
- },
194
- {
195
- "name": "path",
196
- "type": "element",
197
- "value": "",
198
- "attributes": {
199
- "d": "M42.2,41v-9.8h-1.9V41H42.2 M42.9,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L42.9,41.7z"
200
- },
201
- "children": []
202
- },
203
- {
204
- "name": "path",
205
- "type": "element",
206
- "value": "",
207
- "attributes": {
208
- "d": "M42.2,58.8V49h-1.9v9.8H42.2 M42.9,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L42.9,59.5z"
209
- },
210
- "children": []
211
- },
212
- {
213
- "name": "path",
214
- "type": "element",
215
- "value": "",
216
- "attributes": {
217
- "d": "M59.9,76.6v-9.8h-1.9v9.8H59.9 M60.7,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L60.7,77.4z"
218
- },
219
- "children": []
220
- },
221
- {
222
- "name": "path",
223
- "type": "element",
224
- "value": "",
225
- "attributes": {
226
- "d": "M59.9,23.3v-9.8h-1.9v9.8H59.9 M60.7,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L60.7,24z"
227
- },
228
- "children": []
229
- },
230
- {
231
- "name": "path",
232
- "type": "element",
233
- "value": "",
234
- "attributes": {
235
- "d": "M59.9,41v-9.8h-1.9V41H59.9 M60.7,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L60.7,41.7z"
236
- },
237
- "children": []
238
- },
239
- {
240
- "name": "path",
241
- "type": "element",
242
- "value": "",
243
- "attributes": {
244
- "d": "M59.9,58.8V49h-1.9v9.8H59.9 M60.7,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L60.7,59.5z"
245
- },
246
- "children": []
247
- },
248
- {
249
- "name": "path",
250
- "type": "element",
251
- "value": "",
252
- "attributes": {
253
- "d": "M77.7,76.6v-9.8h-1.9v9.8H77.7 M78.4,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L78.4,77.4z"
254
- },
255
- "children": []
256
- },
257
- {
258
- "name": "path",
259
- "type": "element",
260
- "value": "",
261
- "attributes": {
262
- "d": "M77.7,23.3v-9.8h-1.9v9.8H77.7 M78.4,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L78.4,24z"
263
- },
264
- "children": []
265
- },
266
- {
267
- "name": "path",
268
- "type": "element",
269
- "value": "",
270
- "attributes": {
271
- "d": "M77.7,41v-9.8h-1.9V41H77.7 M78.4,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L78.4,41.7z"
272
- },
273
- "children": []
274
- },
275
- {
276
- "name": "path",
277
- "type": "element",
278
- "value": "",
279
- "attributes": {
280
- "d": "M77.7,58.8V49h-1.9v9.8H77.7 M78.4,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L78.4,59.5z"
281
- },
282
- "children": []
283
- },
284
- {
285
- "name": "path",
286
- "type": "element",
287
- "value": "",
288
- "attributes": {
289
- "d": "M95.5,76.6v-9.8h-1.9v9.8H95.5 M96.2,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L96.2,77.4z"
290
- },
291
- "children": []
292
- },
293
- {
294
- "name": "path",
295
- "type": "element",
296
- "value": "",
297
- "attributes": {
298
- "d": "M95.5,23.3v-9.8h-1.9v9.8H95.5 M96.2,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L96.2,24z"
299
- },
300
- "children": []
301
- },
302
- {
303
- "name": "path",
304
- "type": "element",
305
- "value": "",
306
- "attributes": {
307
- "d": "M95.5,41v-9.8h-1.9V41H95.5 M96.2,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L96.2,41.7z"
308
- },
309
- "children": []
310
- },
311
- {
312
- "name": "path",
313
- "type": "element",
314
- "value": "",
315
- "attributes": {
316
- "d": "M95.5,58.8V49h-1.9v9.8H95.5 M96.2,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L96.2,59.5z"
317
- },
318
- "children": []
319
- },
320
- {
321
- "name": "path",
322
- "type": "element",
323
- "value": "",
324
- "attributes": {
325
- "d": "M113.3,76.6v-9.8h-1.9v9.8H113.3 M114,77.4h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V77.4L114,77.4z"
326
- },
327
- "children": []
328
- },
329
- {
330
- "name": "path",
331
- "type": "element",
332
- "value": "",
333
- "attributes": {
334
- "d": "M113.3,23.3v-9.8h-1.9v9.8H113.3 M114,24h-0.7h-1.9h-0.7v-0.7v-9.8v-0.7h0.7h1.9h0.7v0.7v9.8V24L114,24z"
335
- },
336
- "children": []
337
- },
338
- {
339
- "name": "path",
340
- "type": "element",
341
- "value": "",
342
- "attributes": {
343
- "d": "M113.3,41v-9.8h-1.9V41H113.3 M114,41.7h-0.7h-1.9h-0.7V41v-9.8v-0.7h0.7h1.9h0.7v0.7V41V41.7L114,41.7z"
344
- },
345
- "children": []
346
- },
347
- {
348
- "name": "path",
349
- "type": "element",
350
- "value": "",
351
- "attributes": {
352
- "d": "M113.3,58.8V49h-1.9v9.8H113.3 M114,59.5h-0.7h-1.9h-0.7v-0.7V49v-0.7h0.7h1.9h0.7V49v9.8V59.5L114,59.5z"
353
- },
354
- "children": []
355
- }
356
- ]
357
- },
358
- {
359
- "name": "g",
360
- "type": "element",
361
- "value": "",
362
- "attributes": {
363
- "id": "innerWall"
364
- },
365
- "children": [
366
- {
367
- "name": "path",
368
- "type": "element",
369
- "value": "",
370
- "attributes": {
371
- "d": "M135.2,73.8h-8.8c-1,0-1.7,0.8-1.7,1.7v6.2c0,1.2-1,2.2-2.2,2.2H83.6v0.7h38.8c1.6,0,3-1.3,3-3v-6.2c0-0.6,0.5-1,1-1h8.8\n\t\tV73.8z M122.4,4.7H83.6v0.7h38.8c1.2,0,2.2,1,2.2,2.2v6.2c0,1,0.8,1.7,1.7,1.7h8.8v-0.7h-8.8c-0.6,0-1-0.5-1-1V7.7\n\t\tC125.4,6.1,124.1,4.7,122.4,4.7z"
372
- },
373
- "children": []
374
- }
375
- ]
376
- },
377
- {
378
- "name": "g",
379
- "type": "element",
380
- "value": "",
381
- "attributes": {
382
- "id": "labwareBracket"
383
- },
384
- "children": [
385
- {
386
- "name": "path",
387
- "type": "element",
388
- "value": "",
389
- "attributes": {
390
- "d": "M84.3,0H0v90h84.4v-9H17.4c-3.4,0-6.1-2.7-6.1-6.1V14.7c0-3.4,2.7-6.1,6.1-6.1h66.9L84.3,0L84.3,0z M1.4,1.4h81.5v5.7\n\t\tH17.4c-4.1,0-7.5,3.4-7.5,7.5v60.2c0,4.1,3.4,7.5,7.5,7.5h65.5v6.1H1.4V1.4z"
391
- },
392
- "children": []
393
- }
394
- ]
395
- },
396
- {
397
- "name": "g",
398
- "type": "element",
399
- "value": "",
400
- "attributes": {
401
- "id": "magnetPlateOverlayFill"
402
- },
403
- "children": [
404
- {
405
- "name": "path",
406
- "type": "element",
407
- "value": "",
408
- "attributes": {
409
- "style": "fill: #FAFAFAF4;",
410
- "d": "M118,81.7c2.2,0,4-1.8,4-4V11.9c0-2.2-1.8-4-4-4H18.1c-2.2,0-4,1.8-4,4v65.8c0,2.2,1.8,4,4,4L118,81.7z"
411
- },
412
- "children": []
413
- }
414
- ]
415
- },
416
- {
417
- "name": "g",
418
- "type": "element",
419
- "value": "",
420
- "attributes": {
421
- "id": "outline"
422
- },
423
- "children": [
424
- {
425
- "name": "path",
426
- "type": "element",
427
- "value": "",
428
- "attributes": {
429
- "d": "M135.9,0H0l0,90h135.9V0z M1.4,1.4h133.1v87.1H1.4V1.4z"
430
- },
431
- "children": []
432
- }
433
- ]
434
- }
435
- ]
436
- }
53
+ "uniqueModuleData": {}
437
54
  }