diff --git a/docs/assets/niz-exploded.png b/docs/assets/niz-exploded.png
new file mode 100644
index 0000000..de107c5
Binary files /dev/null and b/docs/assets/niz-exploded.png differ
diff --git a/docs/docs/niz-switches.md b/docs/docs/niz-switches.md
new file mode 100644
index 0000000..c1a5d94
--- /dev/null
+++ b/docs/docs/niz-switches.md
@@ -0,0 +1,49 @@
+# NIZ Switches
+
+Warning: These are not traditional 2 leg switches.
+
+
+
+These switches use a halleffect sensor attached to the socket and a magnet attached to the rubber dome to detect key presses. They are along the lines of [Topre switches](https://deskthority.net/wiki/Topre_switch). These do not have a physical switch. These switches are classified as tactile (depending on the rubber dome used) and are pretty quiet. The rubber dome helps dampen the bottoming out of the keypress as well.
+
+Traditionally, thses switches have been used with capacitive switches, but this article does not cover using capacitive sensors.
+
+## Wiring Warning
+
+Only been able to get direct pin wiring to work. It did not work for me in a traditional matrix (columns and rows) setup. You will have to make sure you have enough GPIOs for direct wiring.
+
+QMK: You can't [mix and match direct pin and matrix wiring](https://docs.qmk.fm/porting_your_keyboard_to_qmk#direct-pin-matrix). Not sure about other firmware.
+
+If you find a way to get matrix wiring to work, please share how you did it on the Cosmos Discord.
+
+## Tested Combinations
+
+- [Beekeeb NIZ Switch](https://shop.beekeeb.com/product/niz-ec-switch/) is where the items were purchased for modeling these switches. You may or may not have luck with components from elsewhere.
+- [AH3572 Halleffect Switch](https://www.mouser.com/ProductDetail/Diodes-Incorporated/AH3572-P-B?qs=qSfuJ%252Bfl/d5Je7Vb/Cw%252B6g%3D%3D)
+- [2mm x 1mm Disc Magnets](https://www.amazon.com/JUNAN-Neodymium-Magnet-Earth-Magnets/dp/B09V14FGQF)
+
+## Halleffect Sensors
+
+Halleffect sensors detect magnetic fields. So to detect keypresses, we pair a small magnet with a halleffect sensor.
+
+There are many varieties of halleffect sensors, but they fall into two main categories: binary/switch/ output (on/off) and analog (integer value).
+
+The sensors have 3 legs: Vcc (power), Gnd (ground), and output (high/low or analog)
+
+### Switch Style Sensors
+
+Switch style sensors are going to be easier to implement with keyboard software since the output is just like any other switch, high or low. You may try other switches if you want a different travel before activation to suit your preferences.
+
+### Analog Style Sensors
+
+Analog style sensors are a bit more complicated since you need to use an ADC (Analog to Digital Converter) to read the sensor value. Then you will have to interpret key activations and releases based on the readings. This does allow you to potentially tune the switches to your liking, but make sure you know how to accomplish this with your keyboard firmware (e.g. QMK) and that you have enough ADC inputs to support your needs.
+
+## Assembly
+
+1. Wire the halleffect sensors ([AH3572 Datasheet](https://www.mouser.com/datasheet/2/115/DIOD_S_A0006646941_1-2542859.pdf)).
+1. Attach the halleffect sensor to the case. Hotglue works well.
+1. (Optional) If you have a spring, put the spring into the socket.
+1. Attach the magnet to the rubber dome.
+1. Put the rubber dome with magnet into the socket.
+1. Put the stem on the rubber dome.
+1. Press the housing into the socket. It may be a tight fit.
diff --git a/src/assets/key-niz.step b/src/assets/key-niz.step
new file mode 100644
index 0000000..2e7a800
--- /dev/null
+++ b/src/assets/key-niz.step
@@ -0,0 +1,1703 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
+FILE_NAME('Open CASCADE Shape Model','2025-01-16T20:27:59',('Author'),(
+ ''),'Open CASCADE STEP processor 7.8','FreeCAD','Unknown');
+FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
+ENDSEC;
+DATA;
+#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
+ 'automotive_design',2000,#2);
+#2 = APPLICATION_CONTEXT(
+ 'core data for automotive mechanical design processes');
+#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
+#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
+#5 = PRODUCT_DEFINITION('design','',#6,#9);
+#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
+#7 = PRODUCT('niz_switch','niz_switch','',(#8));
+#8 = PRODUCT_CONTEXT('',#2,'mechanical');
+#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#10 = SHAPE_REPRESENTATION('',(#11,#15,#19),#23);
+#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
+#12 = CARTESIAN_POINT('',(0.,0.,0.));
+#13 = DIRECTION('',(0.,0.,1.));
+#14 = DIRECTION('',(1.,0.,-0.));
+#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
+#16 = CARTESIAN_POINT('',(0.,0.,0.));
+#17 = DIRECTION('',(0.,0.,1.));
+#18 = DIRECTION('',(1.,0.,0.));
+#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22);
+#20 = CARTESIAN_POINT('',(0.,0.,0.));
+#21 = DIRECTION('',(0.,0.,1.));
+#22 = DIRECTION('',(1.,0.,0.));
+#23 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#27)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
+(#24,#25,#26)) REPRESENTATION_CONTEXT('Context #1',
+ '3D Context with UNIT and UNCERTAINTY') );
+#24 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#25 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#26 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#27 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(5.E-06),#24,
+ 'distance_accuracy_value','confusion accuracy');
+#28 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
+#29 = SHAPE_DEFINITION_REPRESENTATION(#30,#36);
+#30 = PRODUCT_DEFINITION_SHAPE('','',#31);
+#31 = PRODUCT_DEFINITION('design','',#32,#35);
+#32 = PRODUCT_DEFINITION_FORMATION('','',#33);
+#33 = PRODUCT('Socket','Socket','',(#34));
+#34 = PRODUCT_CONTEXT('',#2,'mechanical');
+#35 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#36 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#37),#1005);
+#37 = MANIFOLD_SOLID_BREP('',#38);
+#38 = CLOSED_SHELL('',(#39,#79,#110,#141,#210,#327,#339,#370,#402,#426,
+ #451,#482,#506,#530,#554,#578,#603,#627,#651,#675,#699,#723,#741,
+ #772,#823,#895,#917,#939,#956,#973,#989));
+#39 = ADVANCED_FACE('',(#40),#74,.F.);
+#40 = FACE_BOUND('',#41,.F.);
+#41 = EDGE_LOOP('',(#42,#52,#60,#68));
+#42 = ORIENTED_EDGE('',*,*,#43,.T.);
+#43 = EDGE_CURVE('',#44,#46,#48,.T.);
+#44 = VERTEX_POINT('',#45);
+#45 = CARTESIAN_POINT('',(-9.,-9.,-6.5));
+#46 = VERTEX_POINT('',#47);
+#47 = CARTESIAN_POINT('',(-9.,-9.,0.));
+#48 = LINE('',#49,#50);
+#49 = CARTESIAN_POINT('',(-9.,-9.,-6.5));
+#50 = VECTOR('',#51,1.);
+#51 = DIRECTION('',(0.,0.,1.));
+#52 = ORIENTED_EDGE('',*,*,#53,.T.);
+#53 = EDGE_CURVE('',#46,#54,#56,.T.);
+#54 = VERTEX_POINT('',#55);
+#55 = CARTESIAN_POINT('',(9.,-9.,0.));
+#56 = LINE('',#57,#58);
+#57 = CARTESIAN_POINT('',(-9.,-9.,0.));
+#58 = VECTOR('',#59,1.);
+#59 = DIRECTION('',(1.,0.,0.));
+#60 = ORIENTED_EDGE('',*,*,#61,.F.);
+#61 = EDGE_CURVE('',#62,#54,#64,.T.);
+#62 = VERTEX_POINT('',#63);
+#63 = CARTESIAN_POINT('',(9.,-9.,-6.5));
+#64 = LINE('',#65,#66);
+#65 = CARTESIAN_POINT('',(9.,-9.,-6.5));
+#66 = VECTOR('',#67,1.);
+#67 = DIRECTION('',(0.,0.,1.));
+#68 = ORIENTED_EDGE('',*,*,#69,.F.);
+#69 = EDGE_CURVE('',#44,#62,#70,.T.);
+#70 = LINE('',#71,#72);
+#71 = CARTESIAN_POINT('',(-9.,-9.,-6.5));
+#72 = VECTOR('',#73,1.);
+#73 = DIRECTION('',(1.,0.,0.));
+#74 = PLANE('',#75);
+#75 = AXIS2_PLACEMENT_3D('',#76,#77,#78);
+#76 = CARTESIAN_POINT('',(-9.,-9.,-6.5));
+#77 = DIRECTION('',(0.,1.,0.));
+#78 = DIRECTION('',(1.,0.,0.));
+#79 = ADVANCED_FACE('',(#80),#105,.F.);
+#80 = FACE_BOUND('',#81,.F.);
+#81 = EDGE_LOOP('',(#82,#92,#98,#99));
+#82 = ORIENTED_EDGE('',*,*,#83,.T.);
+#83 = EDGE_CURVE('',#84,#86,#88,.T.);
+#84 = VERTEX_POINT('',#85);
+#85 = CARTESIAN_POINT('',(-9.,9.,-6.5));
+#86 = VERTEX_POINT('',#87);
+#87 = CARTESIAN_POINT('',(-9.,9.,0.));
+#88 = LINE('',#89,#90);
+#89 = CARTESIAN_POINT('',(-9.,9.,-6.5));
+#90 = VECTOR('',#91,1.);
+#91 = DIRECTION('',(0.,0.,1.));
+#92 = ORIENTED_EDGE('',*,*,#93,.T.);
+#93 = EDGE_CURVE('',#86,#46,#94,.T.);
+#94 = LINE('',#95,#96);
+#95 = CARTESIAN_POINT('',(-9.,9.,0.));
+#96 = VECTOR('',#97,1.);
+#97 = DIRECTION('',(0.,-1.,0.));
+#98 = ORIENTED_EDGE('',*,*,#43,.F.);
+#99 = ORIENTED_EDGE('',*,*,#100,.F.);
+#100 = EDGE_CURVE('',#84,#44,#101,.T.);
+#101 = LINE('',#102,#103);
+#102 = CARTESIAN_POINT('',(-9.,9.,-6.5));
+#103 = VECTOR('',#104,1.);
+#104 = DIRECTION('',(0.,-1.,0.));
+#105 = PLANE('',#106);
+#106 = AXIS2_PLACEMENT_3D('',#107,#108,#109);
+#107 = CARTESIAN_POINT('',(-9.,9.,-6.5));
+#108 = DIRECTION('',(1.,0.,0.));
+#109 = DIRECTION('',(0.,-1.,0.));
+#110 = ADVANCED_FACE('',(#111),#136,.F.);
+#111 = FACE_BOUND('',#112,.F.);
+#112 = EDGE_LOOP('',(#113,#114,#122,#130));
+#113 = ORIENTED_EDGE('',*,*,#61,.T.);
+#114 = ORIENTED_EDGE('',*,*,#115,.T.);
+#115 = EDGE_CURVE('',#54,#116,#118,.T.);
+#116 = VERTEX_POINT('',#117);
+#117 = CARTESIAN_POINT('',(9.,9.,0.));
+#118 = LINE('',#119,#120);
+#119 = CARTESIAN_POINT('',(9.,-9.,0.));
+#120 = VECTOR('',#121,1.);
+#121 = DIRECTION('',(0.,1.,0.));
+#122 = ORIENTED_EDGE('',*,*,#123,.F.);
+#123 = EDGE_CURVE('',#124,#116,#126,.T.);
+#124 = VERTEX_POINT('',#125);
+#125 = CARTESIAN_POINT('',(9.,9.,-6.5));
+#126 = LINE('',#127,#128);
+#127 = CARTESIAN_POINT('',(9.,9.,-6.5));
+#128 = VECTOR('',#129,1.);
+#129 = DIRECTION('',(0.,0.,1.));
+#130 = ORIENTED_EDGE('',*,*,#131,.F.);
+#131 = EDGE_CURVE('',#62,#124,#132,.T.);
+#132 = LINE('',#133,#134);
+#133 = CARTESIAN_POINT('',(9.,-9.,-6.5));
+#134 = VECTOR('',#135,1.);
+#135 = DIRECTION('',(0.,1.,0.));
+#136 = PLANE('',#137);
+#137 = AXIS2_PLACEMENT_3D('',#138,#139,#140);
+#138 = CARTESIAN_POINT('',(9.,-9.,-6.5));
+#139 = DIRECTION('',(-1.,0.,0.));
+#140 = DIRECTION('',(0.,1.,0.));
+#141 = ADVANCED_FACE('',(#142,#153),#205,.F.);
+#142 = FACE_BOUND('',#143,.F.);
+#143 = EDGE_LOOP('',(#144,#145,#146,#152));
+#144 = ORIENTED_EDGE('',*,*,#69,.T.);
+#145 = ORIENTED_EDGE('',*,*,#131,.T.);
+#146 = ORIENTED_EDGE('',*,*,#147,.T.);
+#147 = EDGE_CURVE('',#124,#84,#148,.T.);
+#148 = LINE('',#149,#150);
+#149 = CARTESIAN_POINT('',(9.,9.,-6.5));
+#150 = VECTOR('',#151,1.);
+#151 = DIRECTION('',(-1.,0.,0.));
+#152 = ORIENTED_EDGE('',*,*,#100,.T.);
+#153 = FACE_BOUND('',#154,.F.);
+#154 = EDGE_LOOP('',(#155,#165,#173,#182,#190,#199));
+#155 = ORIENTED_EDGE('',*,*,#156,.F.);
+#156 = EDGE_CURVE('',#157,#159,#161,.T.);
+#157 = VERTEX_POINT('',#158);
+#158 = CARTESIAN_POINT('',(-2.15,-2.5,-6.5));
+#159 = VERTEX_POINT('',#160);
+#160 = CARTESIAN_POINT('',(-2.15,2.5,-6.5));
+#161 = LINE('',#162,#163);
+#162 = CARTESIAN_POINT('',(-2.15,-1.25,-6.5));
+#163 = VECTOR('',#164,1.);
+#164 = DIRECTION('',(0.,1.,0.));
+#165 = ORIENTED_EDGE('',*,*,#166,.F.);
+#166 = EDGE_CURVE('',#167,#157,#169,.T.);
+#167 = VERTEX_POINT('',#168);
+#168 = CARTESIAN_POINT('',(-5.125,-2.5,-6.5));
+#169 = LINE('',#170,#171);
+#170 = CARTESIAN_POINT('',(-2.5625,-2.5,-6.5));
+#171 = VECTOR('',#172,1.);
+#172 = DIRECTION('',(1.,0.,0.));
+#173 = ORIENTED_EDGE('',*,*,#174,.F.);
+#174 = EDGE_CURVE('',#175,#167,#177,.T.);
+#175 = VERTEX_POINT('',#176);
+#176 = CARTESIAN_POINT('',(-5.875,-1.75,-6.5));
+#177 = CIRCLE('',#178,0.75);
+#178 = AXIS2_PLACEMENT_3D('',#179,#180,#181);
+#179 = CARTESIAN_POINT('',(-5.125,-1.75,-6.5));
+#180 = DIRECTION('',(0.,0.,1.));
+#181 = DIRECTION('',(1.,0.,0.));
+#182 = ORIENTED_EDGE('',*,*,#183,.F.);
+#183 = EDGE_CURVE('',#184,#175,#186,.T.);
+#184 = VERTEX_POINT('',#185);
+#185 = CARTESIAN_POINT('',(-5.875,1.75,-6.5));
+#186 = LINE('',#187,#188);
+#187 = CARTESIAN_POINT('',(-5.875,0.875,-6.5));
+#188 = VECTOR('',#189,1.);
+#189 = DIRECTION('',(0.,-1.,0.));
+#190 = ORIENTED_EDGE('',*,*,#191,.F.);
+#191 = EDGE_CURVE('',#192,#184,#194,.T.);
+#192 = VERTEX_POINT('',#193);
+#193 = CARTESIAN_POINT('',(-5.125,2.5,-6.5));
+#194 = CIRCLE('',#195,0.75);
+#195 = AXIS2_PLACEMENT_3D('',#196,#197,#198);
+#196 = CARTESIAN_POINT('',(-5.125,1.75,-6.5));
+#197 = DIRECTION('',(0.,0.,1.));
+#198 = DIRECTION('',(1.,0.,0.));
+#199 = ORIENTED_EDGE('',*,*,#200,.F.);
+#200 = EDGE_CURVE('',#159,#192,#201,.T.);
+#201 = LINE('',#202,#203);
+#202 = CARTESIAN_POINT('',(-1.075,2.5,-6.5));
+#203 = VECTOR('',#204,1.);
+#204 = DIRECTION('',(-1.,0.,0.));
+#205 = PLANE('',#206);
+#206 = AXIS2_PLACEMENT_3D('',#207,#208,#209);
+#207 = CARTESIAN_POINT('',(0.,0.,-6.5));
+#208 = DIRECTION('',(0.,0.,1.));
+#209 = DIRECTION('',(1.,0.,0.));
+#210 = ADVANCED_FACE('',(#211,#222),#322,.T.);
+#211 = FACE_BOUND('',#212,.T.);
+#212 = EDGE_LOOP('',(#213,#214,#215,#221));
+#213 = ORIENTED_EDGE('',*,*,#53,.T.);
+#214 = ORIENTED_EDGE('',*,*,#115,.T.);
+#215 = ORIENTED_EDGE('',*,*,#216,.T.);
+#216 = EDGE_CURVE('',#116,#86,#217,.T.);
+#217 = LINE('',#218,#219);
+#218 = CARTESIAN_POINT('',(9.,9.,0.));
+#219 = VECTOR('',#220,1.);
+#220 = DIRECTION('',(-1.,0.,0.));
+#221 = ORIENTED_EDGE('',*,*,#93,.T.);
+#222 = FACE_BOUND('',#223,.T.);
+#223 = EDGE_LOOP('',(#224,#234,#243,#251,#259,#267,#275,#283,#292,#300,
+ #308,#316));
+#224 = ORIENTED_EDGE('',*,*,#225,.F.);
+#225 = EDGE_CURVE('',#226,#228,#230,.T.);
+#226 = VERTEX_POINT('',#227);
+#227 = CARTESIAN_POINT('',(-2.25,8.577343666396,0.));
+#228 = VERTEX_POINT('',#229);
+#229 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,0.));
+#230 = LINE('',#231,#232);
+#231 = CARTESIAN_POINT('',(-2.25,8.577343666396,0.));
+#232 = VECTOR('',#233,1.);
+#233 = DIRECTION('',(-0.999999937896,-3.524310151185E-04,0.));
+#234 = ORIENTED_EDGE('',*,*,#235,.T.);
+#235 = EDGE_CURVE('',#226,#236,#238,.T.);
+#236 = VERTEX_POINT('',#237);
+#237 = CARTESIAN_POINT('',(2.24999999999,8.57734366637,0.));
+#238 = CIRCLE('',#239,2.436038906304);
+#239 = AXIS2_PLACEMENT_3D('',#240,#241,#242);
+#240 = CARTESIAN_POINT('',(0.,9.511038237992,0.));
+#241 = DIRECTION('',(0.,0.,1.));
+#242 = DIRECTION('',(1.,0.,0.));
+#243 = ORIENTED_EDGE('',*,*,#244,.F.);
+#244 = EDGE_CURVE('',#245,#236,#247,.T.);
+#245 = VERTEX_POINT('',#246);
+#246 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,0.));
+#247 = LINE('',#248,#249);
+#248 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,0.));
+#249 = VECTOR('',#250,1.);
+#250 = DIRECTION('',(-1.,0.,0.));
+#251 = ORIENTED_EDGE('',*,*,#252,.F.);
+#252 = EDGE_CURVE('',#253,#245,#255,.T.);
+#253 = VERTEX_POINT('',#254);
+#254 = CARTESIAN_POINT('',(8.9,6.456023322808,0.));
+#255 = LINE('',#256,#257);
+#256 = CARTESIAN_POINT('',(8.9,6.456023322808,0.));
+#257 = VECTOR('',#258,1.);
+#258 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#259 = ORIENTED_EDGE('',*,*,#260,.F.);
+#260 = EDGE_CURVE('',#261,#253,#263,.T.);
+#261 = VERTEX_POINT('',#262);
+#262 = CARTESIAN_POINT('',(8.9,-6.451148691889,0.));
+#263 = LINE('',#264,#265);
+#264 = CARTESIAN_POINT('',(8.9,-6.451148691889,0.));
+#265 = VECTOR('',#266,1.);
+#266 = DIRECTION('',(0.,1.,0.));
+#267 = ORIENTED_EDGE('',*,*,#268,.F.);
+#268 = EDGE_CURVE('',#269,#261,#271,.T.);
+#269 = VERTEX_POINT('',#270);
+#270 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,0.));
+#271 = LINE('',#272,#273);
+#272 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,0.));
+#273 = VECTOR('',#274,1.);
+#274 = DIRECTION('',(0.697179264999,0.716896835294,0.));
+#275 = ORIENTED_EDGE('',*,*,#276,.F.);
+#276 = EDGE_CURVE('',#277,#269,#279,.T.);
+#277 = VERTEX_POINT('',#278);
+#278 = CARTESIAN_POINT('',(2.249999999986,-8.601839197765,0.));
+#279 = LINE('',#280,#281);
+#280 = CARTESIAN_POINT('',(2.250000000011,-8.601839197772,0.));
+#281 = VECTOR('',#282,1.);
+#282 = DIRECTION('',(1.,0.,0.));
+#283 = ORIENTED_EDGE('',*,*,#284,.T.);
+#284 = EDGE_CURVE('',#277,#285,#287,.T.);
+#285 = VERTEX_POINT('',#286);
+#286 = CARTESIAN_POINT('',(-2.249999999994,-8.574999999997,0.));
+#287 = CIRCLE('',#288,2.42927960595);
+#288 = AXIS2_PLACEMENT_3D('',#289,#290,#291);
+#289 = CARTESIAN_POINT('',(-5.462074466997E-03,-9.504219513754,0.));
+#290 = DIRECTION('',(0.,0.,1.));
+#291 = DIRECTION('',(1.,0.,0.));
+#292 = ORIENTED_EDGE('',*,*,#293,.F.);
+#293 = EDGE_CURVE('',#294,#285,#296,.T.);
+#294 = VERTEX_POINT('',#295);
+#295 = CARTESIAN_POINT('',(-6.77867965644,-8.575,0.));
+#296 = LINE('',#297,#298);
+#297 = CARTESIAN_POINT('',(-6.77867965644,-8.575,0.));
+#298 = VECTOR('',#299,1.);
+#299 = DIRECTION('',(1.,0.,0.));
+#300 = ORIENTED_EDGE('',*,*,#301,.F.);
+#301 = EDGE_CURVE('',#302,#294,#304,.T.);
+#302 = VERTEX_POINT('',#303);
+#303 = CARTESIAN_POINT('',(-8.9,-6.45367965644,0.));
+#304 = LINE('',#305,#306);
+#305 = CARTESIAN_POINT('',(-8.9,-6.45367965644,0.));
+#306 = VECTOR('',#307,1.);
+#307 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#308 = ORIENTED_EDGE('',*,*,#309,.F.);
+#309 = EDGE_CURVE('',#310,#302,#312,.T.);
+#310 = VERTEX_POINT('',#311);
+#311 = CARTESIAN_POINT('',(-8.9,6.453492358257,0.));
+#312 = LINE('',#313,#314);
+#313 = CARTESIAN_POINT('',(-8.9,6.453492358257,0.));
+#314 = VECTOR('',#315,1.);
+#315 = DIRECTION('',(0.,-1.,0.));
+#316 = ORIENTED_EDGE('',*,*,#317,.F.);
+#317 = EDGE_CURVE('',#228,#310,#318,.T.);
+#318 = LINE('',#319,#320);
+#319 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,0.));
+#320 = VECTOR('',#321,1.);
+#321 = DIRECTION('',(-0.706795114613,-0.707418310449,0.));
+#322 = PLANE('',#323);
+#323 = AXIS2_PLACEMENT_3D('',#324,#325,#326);
+#324 = CARTESIAN_POINT('',(0.,0.,0.));
+#325 = DIRECTION('',(0.,0.,1.));
+#326 = DIRECTION('',(1.,0.,0.));
+#327 = ADVANCED_FACE('',(#328),#334,.F.);
+#328 = FACE_BOUND('',#329,.F.);
+#329 = EDGE_LOOP('',(#330,#331,#332,#333));
+#330 = ORIENTED_EDGE('',*,*,#123,.T.);
+#331 = ORIENTED_EDGE('',*,*,#216,.T.);
+#332 = ORIENTED_EDGE('',*,*,#83,.F.);
+#333 = ORIENTED_EDGE('',*,*,#147,.F.);
+#334 = PLANE('',#335);
+#335 = AXIS2_PLACEMENT_3D('',#336,#337,#338);
+#336 = CARTESIAN_POINT('',(9.,9.,-6.5));
+#337 = DIRECTION('',(0.,-1.,0.));
+#338 = DIRECTION('',(-1.,0.,0.));
+#339 = ADVANCED_FACE('',(#340),#365,.F.);
+#340 = FACE_BOUND('',#341,.F.);
+#341 = EDGE_LOOP('',(#342,#352,#358,#359));
+#342 = ORIENTED_EDGE('',*,*,#343,.F.);
+#343 = EDGE_CURVE('',#344,#346,#348,.T.);
+#344 = VERTEX_POINT('',#345);
+#345 = CARTESIAN_POINT('',(-2.15,-2.5,-5.5));
+#346 = VERTEX_POINT('',#347);
+#347 = CARTESIAN_POINT('',(-2.15,2.5,-5.5));
+#348 = LINE('',#349,#350);
+#349 = CARTESIAN_POINT('',(-2.15,-2.5,-5.5));
+#350 = VECTOR('',#351,1.);
+#351 = DIRECTION('',(0.,1.,0.));
+#352 = ORIENTED_EDGE('',*,*,#353,.T.);
+#353 = EDGE_CURVE('',#344,#157,#354,.T.);
+#354 = LINE('',#355,#356);
+#355 = CARTESIAN_POINT('',(-2.15,-2.5,-5.5));
+#356 = VECTOR('',#357,1.);
+#357 = DIRECTION('',(-0.,-0.,-1.));
+#358 = ORIENTED_EDGE('',*,*,#156,.T.);
+#359 = ORIENTED_EDGE('',*,*,#360,.F.);
+#360 = EDGE_CURVE('',#346,#159,#361,.T.);
+#361 = LINE('',#362,#363);
+#362 = CARTESIAN_POINT('',(-2.15,2.5,-5.5));
+#363 = VECTOR('',#364,1.);
+#364 = DIRECTION('',(-0.,-0.,-1.));
+#365 = PLANE('',#366);
+#366 = AXIS2_PLACEMENT_3D('',#367,#368,#369);
+#367 = CARTESIAN_POINT('',(-2.15,-2.5,-5.5));
+#368 = DIRECTION('',(1.,0.,0.));
+#369 = DIRECTION('',(0.,1.,0.));
+#370 = ADVANCED_FACE('',(#371),#397,.F.);
+#371 = FACE_BOUND('',#372,.F.);
+#372 = EDGE_LOOP('',(#373,#384,#390,#391));
+#373 = ORIENTED_EDGE('',*,*,#374,.F.);
+#374 = EDGE_CURVE('',#375,#377,#379,.T.);
+#375 = VERTEX_POINT('',#376);
+#376 = CARTESIAN_POINT('',(-5.125,2.5,-5.5));
+#377 = VERTEX_POINT('',#378);
+#378 = CARTESIAN_POINT('',(-5.875,1.75,-5.5));
+#379 = CIRCLE('',#380,0.75);
+#380 = AXIS2_PLACEMENT_3D('',#381,#382,#383);
+#381 = CARTESIAN_POINT('',(-5.125,1.75,-5.5));
+#382 = DIRECTION('',(0.,0.,1.));
+#383 = DIRECTION('',(1.,0.,0.));
+#384 = ORIENTED_EDGE('',*,*,#385,.T.);
+#385 = EDGE_CURVE('',#375,#192,#386,.T.);
+#386 = LINE('',#387,#388);
+#387 = CARTESIAN_POINT('',(-5.125,2.5,-5.5));
+#388 = VECTOR('',#389,1.);
+#389 = DIRECTION('',(-0.,-0.,-1.));
+#390 = ORIENTED_EDGE('',*,*,#191,.T.);
+#391 = ORIENTED_EDGE('',*,*,#392,.F.);
+#392 = EDGE_CURVE('',#377,#184,#393,.T.);
+#393 = LINE('',#394,#395);
+#394 = CARTESIAN_POINT('',(-5.875,1.75,-5.5));
+#395 = VECTOR('',#396,1.);
+#396 = DIRECTION('',(-0.,-0.,-1.));
+#397 = CYLINDRICAL_SURFACE('',#398,0.75);
+#398 = AXIS2_PLACEMENT_3D('',#399,#400,#401);
+#399 = CARTESIAN_POINT('',(-5.125,1.75,-5.5));
+#400 = DIRECTION('',(0.,0.,1.));
+#401 = DIRECTION('',(1.,0.,0.));
+#402 = ADVANCED_FACE('',(#403),#421,.F.);
+#403 = FACE_BOUND('',#404,.F.);
+#404 = EDGE_LOOP('',(#405,#413,#414,#415));
+#405 = ORIENTED_EDGE('',*,*,#406,.F.);
+#406 = EDGE_CURVE('',#377,#407,#409,.T.);
+#407 = VERTEX_POINT('',#408);
+#408 = CARTESIAN_POINT('',(-5.875,-1.75,-5.5));
+#409 = LINE('',#410,#411);
+#410 = CARTESIAN_POINT('',(-5.875,1.75,-5.5));
+#411 = VECTOR('',#412,1.);
+#412 = DIRECTION('',(0.,-1.,0.));
+#413 = ORIENTED_EDGE('',*,*,#392,.T.);
+#414 = ORIENTED_EDGE('',*,*,#183,.T.);
+#415 = ORIENTED_EDGE('',*,*,#416,.F.);
+#416 = EDGE_CURVE('',#407,#175,#417,.T.);
+#417 = LINE('',#418,#419);
+#418 = CARTESIAN_POINT('',(-5.875,-1.75,-5.5));
+#419 = VECTOR('',#420,1.);
+#420 = DIRECTION('',(-0.,-0.,-1.));
+#421 = PLANE('',#422);
+#422 = AXIS2_PLACEMENT_3D('',#423,#424,#425);
+#423 = CARTESIAN_POINT('',(-5.875,1.75,-5.5));
+#424 = DIRECTION('',(-1.,0.,0.));
+#425 = DIRECTION('',(0.,-1.,0.));
+#426 = ADVANCED_FACE('',(#427),#446,.F.);
+#427 = FACE_BOUND('',#428,.F.);
+#428 = EDGE_LOOP('',(#429,#438,#439,#440));
+#429 = ORIENTED_EDGE('',*,*,#430,.F.);
+#430 = EDGE_CURVE('',#407,#431,#433,.T.);
+#431 = VERTEX_POINT('',#432);
+#432 = CARTESIAN_POINT('',(-5.125,-2.5,-5.5));
+#433 = CIRCLE('',#434,0.75);
+#434 = AXIS2_PLACEMENT_3D('',#435,#436,#437);
+#435 = CARTESIAN_POINT('',(-5.125,-1.75,-5.5));
+#436 = DIRECTION('',(0.,0.,1.));
+#437 = DIRECTION('',(1.,0.,0.));
+#438 = ORIENTED_EDGE('',*,*,#416,.T.);
+#439 = ORIENTED_EDGE('',*,*,#174,.T.);
+#440 = ORIENTED_EDGE('',*,*,#441,.F.);
+#441 = EDGE_CURVE('',#431,#167,#442,.T.);
+#442 = LINE('',#443,#444);
+#443 = CARTESIAN_POINT('',(-5.125,-2.5,-5.5));
+#444 = VECTOR('',#445,1.);
+#445 = DIRECTION('',(-0.,-0.,-1.));
+#446 = CYLINDRICAL_SURFACE('',#447,0.75);
+#447 = AXIS2_PLACEMENT_3D('',#448,#449,#450);
+#448 = CARTESIAN_POINT('',(-5.125,-1.75,-5.5));
+#449 = DIRECTION('',(0.,0.,1.));
+#450 = DIRECTION('',(1.,0.,0.));
+#451 = ADVANCED_FACE('',(#452),#477,.F.);
+#452 = FACE_BOUND('',#453,.F.);
+#453 = EDGE_LOOP('',(#454,#462,#470,#476));
+#454 = ORIENTED_EDGE('',*,*,#455,.T.);
+#455 = EDGE_CURVE('',#226,#456,#458,.T.);
+#456 = VERTEX_POINT('',#457);
+#457 = CARTESIAN_POINT('',(-2.25,8.577343666396,-4.));
+#458 = LINE('',#459,#460);
+#459 = CARTESIAN_POINT('',(-2.25,8.577343666396,0.));
+#460 = VECTOR('',#461,1.);
+#461 = DIRECTION('',(-0.,-0.,-1.));
+#462 = ORIENTED_EDGE('',*,*,#463,.T.);
+#463 = EDGE_CURVE('',#456,#464,#466,.T.);
+#464 = VERTEX_POINT('',#465);
+#465 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,-4.));
+#466 = LINE('',#467,#468);
+#467 = CARTESIAN_POINT('',(-2.25,8.577343666396,-4.));
+#468 = VECTOR('',#469,1.);
+#469 = DIRECTION('',(-0.999999937896,-3.524310151185E-04,0.));
+#470 = ORIENTED_EDGE('',*,*,#471,.F.);
+#471 = EDGE_CURVE('',#228,#464,#472,.T.);
+#472 = LINE('',#473,#474);
+#473 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,0.));
+#474 = VECTOR('',#475,1.);
+#475 = DIRECTION('',(-0.,-0.,-1.));
+#476 = ORIENTED_EDGE('',*,*,#225,.F.);
+#477 = PLANE('',#478);
+#478 = AXIS2_PLACEMENT_3D('',#479,#480,#481);
+#479 = CARTESIAN_POINT('',(-2.25,8.577343666396,0.));
+#480 = DIRECTION('',(-3.524310151185E-04,0.999999937896,0.));
+#481 = DIRECTION('',(-0.999999937896,-3.524310151185E-04,0.));
+#482 = ADVANCED_FACE('',(#483),#501,.F.);
+#483 = FACE_BOUND('',#484,.F.);
+#484 = EDGE_LOOP('',(#485,#486,#494,#500));
+#485 = ORIENTED_EDGE('',*,*,#471,.T.);
+#486 = ORIENTED_EDGE('',*,*,#487,.T.);
+#487 = EDGE_CURVE('',#464,#488,#490,.T.);
+#488 = VERTEX_POINT('',#489);
+#489 = CARTESIAN_POINT('',(-8.9,6.453492358257,-4.));
+#490 = LINE('',#491,#492);
+#491 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,-4.));
+#492 = VECTOR('',#493,1.);
+#493 = DIRECTION('',(-0.706795114613,-0.707418310449,0.));
+#494 = ORIENTED_EDGE('',*,*,#495,.F.);
+#495 = EDGE_CURVE('',#310,#488,#496,.T.);
+#496 = LINE('',#497,#498);
+#497 = CARTESIAN_POINT('',(-8.9,6.453492358257,0.));
+#498 = VECTOR('',#499,1.);
+#499 = DIRECTION('',(-0.,-0.,-1.));
+#500 = ORIENTED_EDGE('',*,*,#317,.F.);
+#501 = PLANE('',#502);
+#502 = AXIS2_PLACEMENT_3D('',#503,#504,#505);
+#503 = CARTESIAN_POINT('',(-6.779614656161,8.575747289606,0.));
+#504 = DIRECTION('',(-0.707418310449,0.706795114613,0.));
+#505 = DIRECTION('',(-0.706795114613,-0.707418310449,0.));
+#506 = ADVANCED_FACE('',(#507),#525,.F.);
+#507 = FACE_BOUND('',#508,.F.);
+#508 = EDGE_LOOP('',(#509,#510,#518,#524));
+#509 = ORIENTED_EDGE('',*,*,#495,.T.);
+#510 = ORIENTED_EDGE('',*,*,#511,.T.);
+#511 = EDGE_CURVE('',#488,#512,#514,.T.);
+#512 = VERTEX_POINT('',#513);
+#513 = CARTESIAN_POINT('',(-8.9,-6.45367965644,-4.));
+#514 = LINE('',#515,#516);
+#515 = CARTESIAN_POINT('',(-8.9,6.453492358257,-4.));
+#516 = VECTOR('',#517,1.);
+#517 = DIRECTION('',(0.,-1.,0.));
+#518 = ORIENTED_EDGE('',*,*,#519,.F.);
+#519 = EDGE_CURVE('',#302,#512,#520,.T.);
+#520 = LINE('',#521,#522);
+#521 = CARTESIAN_POINT('',(-8.9,-6.45367965644,0.));
+#522 = VECTOR('',#523,1.);
+#523 = DIRECTION('',(-0.,-0.,-1.));
+#524 = ORIENTED_EDGE('',*,*,#309,.F.);
+#525 = PLANE('',#526);
+#526 = AXIS2_PLACEMENT_3D('',#527,#528,#529);
+#527 = CARTESIAN_POINT('',(-8.9,6.453492358257,0.));
+#528 = DIRECTION('',(-1.,0.,0.));
+#529 = DIRECTION('',(0.,-1.,0.));
+#530 = ADVANCED_FACE('',(#531),#549,.F.);
+#531 = FACE_BOUND('',#532,.F.);
+#532 = EDGE_LOOP('',(#533,#534,#542,#548));
+#533 = ORIENTED_EDGE('',*,*,#519,.T.);
+#534 = ORIENTED_EDGE('',*,*,#535,.T.);
+#535 = EDGE_CURVE('',#512,#536,#538,.T.);
+#536 = VERTEX_POINT('',#537);
+#537 = CARTESIAN_POINT('',(-6.77867965644,-8.575,-4.));
+#538 = LINE('',#539,#540);
+#539 = CARTESIAN_POINT('',(-8.9,-6.45367965644,-4.));
+#540 = VECTOR('',#541,1.);
+#541 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#542 = ORIENTED_EDGE('',*,*,#543,.F.);
+#543 = EDGE_CURVE('',#294,#536,#544,.T.);
+#544 = LINE('',#545,#546);
+#545 = CARTESIAN_POINT('',(-6.77867965644,-8.575,0.));
+#546 = VECTOR('',#547,1.);
+#547 = DIRECTION('',(-0.,-0.,-1.));
+#548 = ORIENTED_EDGE('',*,*,#301,.F.);
+#549 = PLANE('',#550);
+#550 = AXIS2_PLACEMENT_3D('',#551,#552,#553);
+#551 = CARTESIAN_POINT('',(-8.9,-6.45367965644,0.));
+#552 = DIRECTION('',(-0.707106781187,-0.707106781187,0.));
+#553 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#554 = ADVANCED_FACE('',(#555),#573,.F.);
+#555 = FACE_BOUND('',#556,.F.);
+#556 = EDGE_LOOP('',(#557,#558,#566,#572));
+#557 = ORIENTED_EDGE('',*,*,#543,.T.);
+#558 = ORIENTED_EDGE('',*,*,#559,.T.);
+#559 = EDGE_CURVE('',#536,#560,#562,.T.);
+#560 = VERTEX_POINT('',#561);
+#561 = CARTESIAN_POINT('',(-2.249999999994,-8.574999999997,-4.));
+#562 = LINE('',#563,#564);
+#563 = CARTESIAN_POINT('',(-6.77867965644,-8.575,-4.));
+#564 = VECTOR('',#565,1.);
+#565 = DIRECTION('',(1.,0.,0.));
+#566 = ORIENTED_EDGE('',*,*,#567,.F.);
+#567 = EDGE_CURVE('',#285,#560,#568,.T.);
+#568 = LINE('',#569,#570);
+#569 = CARTESIAN_POINT('',(-2.249999999994,-8.574999999997,0.));
+#570 = VECTOR('',#571,1.);
+#571 = DIRECTION('',(-0.,-0.,-1.));
+#572 = ORIENTED_EDGE('',*,*,#293,.F.);
+#573 = PLANE('',#574);
+#574 = AXIS2_PLACEMENT_3D('',#575,#576,#577);
+#575 = CARTESIAN_POINT('',(-6.77867965644,-8.575,0.));
+#576 = DIRECTION('',(0.,-1.,0.));
+#577 = DIRECTION('',(1.,0.,0.));
+#578 = ADVANCED_FACE('',(#579),#598,.T.);
+#579 = FACE_BOUND('',#580,.T.);
+#580 = EDGE_LOOP('',(#581,#589,#596,#597));
+#581 = ORIENTED_EDGE('',*,*,#582,.T.);
+#582 = EDGE_CURVE('',#277,#583,#585,.T.);
+#583 = VERTEX_POINT('',#584);
+#584 = CARTESIAN_POINT('',(2.249999999986,-8.601839197765,-4.));
+#585 = LINE('',#586,#587);
+#586 = CARTESIAN_POINT('',(2.249999999986,-8.601839197765,0.));
+#587 = VECTOR('',#588,1.);
+#588 = DIRECTION('',(-0.,-0.,-1.));
+#589 = ORIENTED_EDGE('',*,*,#590,.T.);
+#590 = EDGE_CURVE('',#583,#560,#591,.T.);
+#591 = CIRCLE('',#592,2.42927960595);
+#592 = AXIS2_PLACEMENT_3D('',#593,#594,#595);
+#593 = CARTESIAN_POINT('',(-5.462074466997E-03,-9.504219513754,-4.));
+#594 = DIRECTION('',(0.,0.,1.));
+#595 = DIRECTION('',(1.,0.,0.));
+#596 = ORIENTED_EDGE('',*,*,#567,.F.);
+#597 = ORIENTED_EDGE('',*,*,#284,.F.);
+#598 = CYLINDRICAL_SURFACE('',#599,2.42927960595);
+#599 = AXIS2_PLACEMENT_3D('',#600,#601,#602);
+#600 = CARTESIAN_POINT('',(-5.462074466997E-03,-9.504219513754,0.));
+#601 = DIRECTION('',(0.,0.,1.));
+#602 = DIRECTION('',(1.,0.,0.));
+#603 = ADVANCED_FACE('',(#604),#622,.F.);
+#604 = FACE_BOUND('',#605,.F.);
+#605 = EDGE_LOOP('',(#606,#607,#615,#621));
+#606 = ORIENTED_EDGE('',*,*,#582,.T.);
+#607 = ORIENTED_EDGE('',*,*,#608,.T.);
+#608 = EDGE_CURVE('',#583,#609,#611,.T.);
+#609 = VERTEX_POINT('',#610);
+#610 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,-4.));
+#611 = LINE('',#612,#613);
+#612 = CARTESIAN_POINT('',(2.250000000011,-8.601839197772,-4.));
+#613 = VECTOR('',#614,1.);
+#614 = DIRECTION('',(1.,0.,0.));
+#615 = ORIENTED_EDGE('',*,*,#616,.F.);
+#616 = EDGE_CURVE('',#269,#609,#617,.T.);
+#617 = LINE('',#618,#619);
+#618 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,0.));
+#619 = VECTOR('',#620,1.);
+#620 = DIRECTION('',(-0.,-0.,-1.));
+#621 = ORIENTED_EDGE('',*,*,#276,.F.);
+#622 = PLANE('',#623);
+#623 = AXIS2_PLACEMENT_3D('',#624,#625,#626);
+#624 = CARTESIAN_POINT('',(2.250000000011,-8.601839197772,0.));
+#625 = DIRECTION('',(0.,-1.,0.));
+#626 = DIRECTION('',(1.,0.,0.));
+#627 = ADVANCED_FACE('',(#628),#646,.F.);
+#628 = FACE_BOUND('',#629,.F.);
+#629 = EDGE_LOOP('',(#630,#631,#639,#645));
+#630 = ORIENTED_EDGE('',*,*,#616,.T.);
+#631 = ORIENTED_EDGE('',*,*,#632,.T.);
+#632 = EDGE_CURVE('',#609,#633,#635,.T.);
+#633 = VERTEX_POINT('',#634);
+#634 = CARTESIAN_POINT('',(8.9,-6.451148691889,-4.));
+#635 = LINE('',#636,#637);
+#636 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,-4.));
+#637 = VECTOR('',#638,1.);
+#638 = DIRECTION('',(0.697179264999,0.716896835294,0.));
+#639 = ORIENTED_EDGE('',*,*,#640,.F.);
+#640 = EDGE_CURVE('',#261,#633,#641,.T.);
+#641 = LINE('',#642,#643);
+#642 = CARTESIAN_POINT('',(8.9,-6.451148691889,0.));
+#643 = VECTOR('',#644,1.);
+#644 = DIRECTION('',(-0.,-0.,-1.));
+#645 = ORIENTED_EDGE('',*,*,#268,.F.);
+#646 = PLANE('',#647);
+#647 = AXIS2_PLACEMENT_3D('',#648,#649,#650);
+#648 = CARTESIAN_POINT('',(6.808462205002,-8.601839197772,0.));
+#649 = DIRECTION('',(0.716896835294,-0.697179264999,0.));
+#650 = DIRECTION('',(0.697179264999,0.716896835294,0.));
+#651 = ADVANCED_FACE('',(#652),#670,.F.);
+#652 = FACE_BOUND('',#653,.F.);
+#653 = EDGE_LOOP('',(#654,#655,#663,#669));
+#654 = ORIENTED_EDGE('',*,*,#640,.T.);
+#655 = ORIENTED_EDGE('',*,*,#656,.T.);
+#656 = EDGE_CURVE('',#633,#657,#659,.T.);
+#657 = VERTEX_POINT('',#658);
+#658 = CARTESIAN_POINT('',(8.9,6.456023322808,-4.));
+#659 = LINE('',#660,#661);
+#660 = CARTESIAN_POINT('',(8.9,-6.451148691889,-4.));
+#661 = VECTOR('',#662,1.);
+#662 = DIRECTION('',(0.,1.,0.));
+#663 = ORIENTED_EDGE('',*,*,#664,.F.);
+#664 = EDGE_CURVE('',#253,#657,#665,.T.);
+#665 = LINE('',#666,#667);
+#666 = CARTESIAN_POINT('',(8.9,6.456023322808,0.));
+#667 = VECTOR('',#668,1.);
+#668 = DIRECTION('',(-0.,-0.,-1.));
+#669 = ORIENTED_EDGE('',*,*,#260,.F.);
+#670 = PLANE('',#671);
+#671 = AXIS2_PLACEMENT_3D('',#672,#673,#674);
+#672 = CARTESIAN_POINT('',(8.9,-6.451148691889,0.));
+#673 = DIRECTION('',(1.,0.,0.));
+#674 = DIRECTION('',(0.,1.,0.));
+#675 = ADVANCED_FACE('',(#676),#694,.F.);
+#676 = FACE_BOUND('',#677,.F.);
+#677 = EDGE_LOOP('',(#678,#679,#687,#693));
+#678 = ORIENTED_EDGE('',*,*,#664,.T.);
+#679 = ORIENTED_EDGE('',*,*,#680,.T.);
+#680 = EDGE_CURVE('',#657,#681,#683,.T.);
+#681 = VERTEX_POINT('',#682);
+#682 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,-4.));
+#683 = LINE('',#684,#685);
+#684 = CARTESIAN_POINT('',(8.9,6.456023322808,-4.));
+#685 = VECTOR('',#686,1.);
+#686 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#687 = ORIENTED_EDGE('',*,*,#688,.F.);
+#688 = EDGE_CURVE('',#245,#681,#689,.T.);
+#689 = LINE('',#690,#691);
+#690 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,0.));
+#691 = VECTOR('',#692,1.);
+#692 = DIRECTION('',(-0.,-0.,-1.));
+#693 = ORIENTED_EDGE('',*,*,#252,.F.);
+#694 = PLANE('',#695);
+#695 = AXIS2_PLACEMENT_3D('',#696,#697,#698);
+#696 = CARTESIAN_POINT('',(8.9,6.456023322808,0.));
+#697 = DIRECTION('',(0.707106781187,0.707106781187,0.));
+#698 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#699 = ADVANCED_FACE('',(#700),#718,.F.);
+#700 = FACE_BOUND('',#701,.F.);
+#701 = EDGE_LOOP('',(#702,#703,#711,#717));
+#702 = ORIENTED_EDGE('',*,*,#688,.T.);
+#703 = ORIENTED_EDGE('',*,*,#704,.T.);
+#704 = EDGE_CURVE('',#681,#705,#707,.T.);
+#705 = VERTEX_POINT('',#706);
+#706 = CARTESIAN_POINT('',(2.24999999999,8.57734366637,-4.));
+#707 = LINE('',#708,#709);
+#708 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,-4.));
+#709 = VECTOR('',#710,1.);
+#710 = DIRECTION('',(-1.,0.,0.));
+#711 = ORIENTED_EDGE('',*,*,#712,.F.);
+#712 = EDGE_CURVE('',#236,#705,#713,.T.);
+#713 = LINE('',#714,#715);
+#714 = CARTESIAN_POINT('',(2.24999999999,8.57734366637,0.));
+#715 = VECTOR('',#716,1.);
+#716 = DIRECTION('',(-0.,-0.,-1.));
+#717 = ORIENTED_EDGE('',*,*,#244,.F.);
+#718 = PLANE('',#719);
+#719 = AXIS2_PLACEMENT_3D('',#720,#721,#722);
+#720 = CARTESIAN_POINT('',(6.77867965644,8.577343666368,0.));
+#721 = DIRECTION('',(0.,1.,0.));
+#722 = DIRECTION('',(-1.,0.,0.));
+#723 = ADVANCED_FACE('',(#724),#736,.T.);
+#724 = FACE_BOUND('',#725,.T.);
+#725 = EDGE_LOOP('',(#726,#727,#734,#735));
+#726 = ORIENTED_EDGE('',*,*,#455,.T.);
+#727 = ORIENTED_EDGE('',*,*,#728,.T.);
+#728 = EDGE_CURVE('',#456,#705,#729,.T.);
+#729 = CIRCLE('',#730,2.436038906304);
+#730 = AXIS2_PLACEMENT_3D('',#731,#732,#733);
+#731 = CARTESIAN_POINT('',(0.,9.511038237992,-4.));
+#732 = DIRECTION('',(0.,0.,1.));
+#733 = DIRECTION('',(1.,0.,0.));
+#734 = ORIENTED_EDGE('',*,*,#712,.F.);
+#735 = ORIENTED_EDGE('',*,*,#235,.F.);
+#736 = CYLINDRICAL_SURFACE('',#737,2.436038906304);
+#737 = AXIS2_PLACEMENT_3D('',#738,#739,#740);
+#738 = CARTESIAN_POINT('',(0.,9.511038237992,0.));
+#739 = DIRECTION('',(0.,0.,1.));
+#740 = DIRECTION('',(1.,0.,0.));
+#741 = ADVANCED_FACE('',(#742),#767,.T.);
+#742 = FACE_BOUND('',#743,.T.);
+#743 = EDGE_LOOP('',(#744,#745,#753,#761));
+#744 = ORIENTED_EDGE('',*,*,#343,.F.);
+#745 = ORIENTED_EDGE('',*,*,#746,.T.);
+#746 = EDGE_CURVE('',#344,#747,#749,.T.);
+#747 = VERTEX_POINT('',#748);
+#748 = CARTESIAN_POINT('',(1.65,-2.5,-5.5));
+#749 = LINE('',#750,#751);
+#750 = CARTESIAN_POINT('',(-5.037892469291,-2.5,-5.5));
+#751 = VECTOR('',#752,1.);
+#752 = DIRECTION('',(1.,0.,0.));
+#753 = ORIENTED_EDGE('',*,*,#754,.T.);
+#754 = EDGE_CURVE('',#747,#755,#757,.T.);
+#755 = VERTEX_POINT('',#756);
+#756 = CARTESIAN_POINT('',(1.65,2.5,-5.5));
+#757 = LINE('',#758,#759);
+#758 = CARTESIAN_POINT('',(1.65,-2.5,-5.5));
+#759 = VECTOR('',#760,1.);
+#760 = DIRECTION('',(0.,1.,0.));
+#761 = ORIENTED_EDGE('',*,*,#762,.T.);
+#762 = EDGE_CURVE('',#755,#346,#763,.T.);
+#763 = LINE('',#764,#765);
+#764 = CARTESIAN_POINT('',(1.65,2.5,-5.5));
+#765 = VECTOR('',#766,1.);
+#766 = DIRECTION('',(-1.,0.,0.));
+#767 = PLANE('',#768);
+#768 = AXIS2_PLACEMENT_3D('',#769,#770,#771);
+#769 = CARTESIAN_POINT('',(-1.98785569703,3.203820509501E-03,-5.5));
+#770 = DIRECTION('',(0.,0.,1.));
+#771 = DIRECTION('',(1.,0.,0.));
+#772 = ADVANCED_FACE('',(#773),#818,.F.);
+#773 = FACE_BOUND('',#774,.F.);
+#774 = EDGE_LOOP('',(#775,#783,#792,#800,#809,#815,#816,#817));
+#775 = ORIENTED_EDGE('',*,*,#776,.T.);
+#776 = EDGE_CURVE('',#431,#777,#779,.T.);
+#777 = VERTEX_POINT('',#778);
+#778 = CARTESIAN_POINT('',(-5.037892469291,-2.5,-5.5));
+#779 = LINE('',#780,#781);
+#780 = CARTESIAN_POINT('',(-5.125,-2.5,-5.5));
+#781 = VECTOR('',#782,1.);
+#782 = DIRECTION('',(1.,0.,0.));
+#783 = ORIENTED_EDGE('',*,*,#784,.F.);
+#784 = EDGE_CURVE('',#785,#777,#787,.T.);
+#785 = VERTEX_POINT('',#786);
+#786 = CARTESIAN_POINT('',(-5.85,-1.687892469291,-5.5));
+#787 = CIRCLE('',#788,0.812107530709);
+#788 = AXIS2_PLACEMENT_3D('',#789,#790,#791);
+#789 = CARTESIAN_POINT('',(-5.037892469291,-1.687892469291,-5.5));
+#790 = DIRECTION('',(0.,0.,1.));
+#791 = DIRECTION('',(1.,0.,0.));
+#792 = ORIENTED_EDGE('',*,*,#793,.F.);
+#793 = EDGE_CURVE('',#794,#785,#796,.T.);
+#794 = VERTEX_POINT('',#795);
+#795 = CARTESIAN_POINT('',(-5.85,1.75,-5.5));
+#796 = LINE('',#797,#798);
+#797 = CARTESIAN_POINT('',(-5.85,1.75,-5.5));
+#798 = VECTOR('',#799,1.);
+#799 = DIRECTION('',(0.,-1.,0.));
+#800 = ORIENTED_EDGE('',*,*,#801,.F.);
+#801 = EDGE_CURVE('',#802,#794,#804,.T.);
+#802 = VERTEX_POINT('',#803);
+#803 = CARTESIAN_POINT('',(-5.1,2.5,-5.5));
+#804 = CIRCLE('',#805,0.75);
+#805 = AXIS2_PLACEMENT_3D('',#806,#807,#808);
+#806 = CARTESIAN_POINT('',(-5.1,1.75,-5.5));
+#807 = DIRECTION('',(0.,0.,1.));
+#808 = DIRECTION('',(1.,0.,0.));
+#809 = ORIENTED_EDGE('',*,*,#810,.T.);
+#810 = EDGE_CURVE('',#802,#375,#811,.T.);
+#811 = LINE('',#812,#813);
+#812 = CARTESIAN_POINT('',(-2.15,2.5,-5.5));
+#813 = VECTOR('',#814,1.);
+#814 = DIRECTION('',(-1.,0.,0.));
+#815 = ORIENTED_EDGE('',*,*,#374,.T.);
+#816 = ORIENTED_EDGE('',*,*,#406,.T.);
+#817 = ORIENTED_EDGE('',*,*,#430,.T.);
+#818 = PLANE('',#819);
+#819 = AXIS2_PLACEMENT_3D('',#820,#821,#822);
+#820 = CARTESIAN_POINT('',(-3.932228354314,5.293275881519E-17,-5.5));
+#821 = DIRECTION('',(0.,0.,1.));
+#822 = DIRECTION('',(1.,0.,0.));
+#823 = ADVANCED_FACE('',(#824,#838),#890,.T.);
+#824 = FACE_BOUND('',#825,.T.);
+#825 = EDGE_LOOP('',(#826,#827,#828,#829,#830,#831,#832,#833,#834,#835,
+ #836,#837));
+#826 = ORIENTED_EDGE('',*,*,#463,.T.);
+#827 = ORIENTED_EDGE('',*,*,#487,.T.);
+#828 = ORIENTED_EDGE('',*,*,#511,.T.);
+#829 = ORIENTED_EDGE('',*,*,#535,.T.);
+#830 = ORIENTED_EDGE('',*,*,#559,.T.);
+#831 = ORIENTED_EDGE('',*,*,#590,.F.);
+#832 = ORIENTED_EDGE('',*,*,#608,.T.);
+#833 = ORIENTED_EDGE('',*,*,#632,.T.);
+#834 = ORIENTED_EDGE('',*,*,#656,.T.);
+#835 = ORIENTED_EDGE('',*,*,#680,.T.);
+#836 = ORIENTED_EDGE('',*,*,#704,.T.);
+#837 = ORIENTED_EDGE('',*,*,#728,.F.);
+#838 = FACE_BOUND('',#839,.T.);
+#839 = EDGE_LOOP('',(#840,#850,#859,#867,#876,#884));
+#840 = ORIENTED_EDGE('',*,*,#841,.F.);
+#841 = EDGE_CURVE('',#842,#844,#846,.T.);
+#842 = VERTEX_POINT('',#843);
+#843 = CARTESIAN_POINT('',(-5.037892469291,-2.5,-4.));
+#844 = VERTEX_POINT('',#845);
+#845 = CARTESIAN_POINT('',(1.65,-2.5,-4.));
+#846 = LINE('',#847,#848);
+#847 = CARTESIAN_POINT('',(-5.037892469291,-2.5,-4.));
+#848 = VECTOR('',#849,1.);
+#849 = DIRECTION('',(1.,0.,0.));
+#850 = ORIENTED_EDGE('',*,*,#851,.F.);
+#851 = EDGE_CURVE('',#852,#842,#854,.T.);
+#852 = VERTEX_POINT('',#853);
+#853 = CARTESIAN_POINT('',(-5.85,-1.687892469291,-4.));
+#854 = CIRCLE('',#855,0.812107530709);
+#855 = AXIS2_PLACEMENT_3D('',#856,#857,#858);
+#856 = CARTESIAN_POINT('',(-5.037892469291,-1.687892469291,-4.));
+#857 = DIRECTION('',(0.,0.,1.));
+#858 = DIRECTION('',(1.,0.,0.));
+#859 = ORIENTED_EDGE('',*,*,#860,.F.);
+#860 = EDGE_CURVE('',#861,#852,#863,.T.);
+#861 = VERTEX_POINT('',#862);
+#862 = CARTESIAN_POINT('',(-5.85,1.75,-4.));
+#863 = LINE('',#864,#865);
+#864 = CARTESIAN_POINT('',(-5.85,1.75,-4.));
+#865 = VECTOR('',#866,1.);
+#866 = DIRECTION('',(0.,-1.,0.));
+#867 = ORIENTED_EDGE('',*,*,#868,.F.);
+#868 = EDGE_CURVE('',#869,#861,#871,.T.);
+#869 = VERTEX_POINT('',#870);
+#870 = CARTESIAN_POINT('',(-5.1,2.5,-4.));
+#871 = CIRCLE('',#872,0.75);
+#872 = AXIS2_PLACEMENT_3D('',#873,#874,#875);
+#873 = CARTESIAN_POINT('',(-5.1,1.75,-4.));
+#874 = DIRECTION('',(0.,0.,1.));
+#875 = DIRECTION('',(1.,0.,0.));
+#876 = ORIENTED_EDGE('',*,*,#877,.F.);
+#877 = EDGE_CURVE('',#878,#869,#880,.T.);
+#878 = VERTEX_POINT('',#879);
+#879 = CARTESIAN_POINT('',(1.65,2.5,-4.));
+#880 = LINE('',#881,#882);
+#881 = CARTESIAN_POINT('',(1.65,2.5,-4.));
+#882 = VECTOR('',#883,1.);
+#883 = DIRECTION('',(-1.,0.,0.));
+#884 = ORIENTED_EDGE('',*,*,#885,.F.);
+#885 = EDGE_CURVE('',#844,#878,#886,.T.);
+#886 = LINE('',#887,#888);
+#887 = CARTESIAN_POINT('',(1.65,-2.5,-4.));
+#888 = VECTOR('',#889,1.);
+#889 = DIRECTION('',(0.,1.,0.));
+#890 = PLANE('',#891);
+#891 = AXIS2_PLACEMENT_3D('',#892,#893,#894);
+#892 = CARTESIAN_POINT('',(4.003075073899E-03,-7.336033825241E-03,-4.));
+#893 = DIRECTION('',(0.,0.,1.));
+#894 = DIRECTION('',(1.,0.,0.));
+#895 = ADVANCED_FACE('',(#896),#912,.F.);
+#896 = FACE_BOUND('',#897,.F.);
+#897 = EDGE_LOOP('',(#898,#904,#905,#911));
+#898 = ORIENTED_EDGE('',*,*,#899,.T.);
+#899 = EDGE_CURVE('',#844,#747,#900,.T.);
+#900 = LINE('',#901,#902);
+#901 = CARTESIAN_POINT('',(1.65,-2.5,-4.));
+#902 = VECTOR('',#903,1.);
+#903 = DIRECTION('',(-0.,-0.,-1.));
+#904 = ORIENTED_EDGE('',*,*,#754,.T.);
+#905 = ORIENTED_EDGE('',*,*,#906,.F.);
+#906 = EDGE_CURVE('',#878,#755,#907,.T.);
+#907 = LINE('',#908,#909);
+#908 = CARTESIAN_POINT('',(1.65,2.5,-4.));
+#909 = VECTOR('',#910,1.);
+#910 = DIRECTION('',(-0.,-0.,-1.));
+#911 = ORIENTED_EDGE('',*,*,#885,.F.);
+#912 = PLANE('',#913);
+#913 = AXIS2_PLACEMENT_3D('',#914,#915,#916);
+#914 = CARTESIAN_POINT('',(1.65,-2.5,-4.));
+#915 = DIRECTION('',(1.,0.,0.));
+#916 = DIRECTION('',(0.,1.,0.));
+#917 = ADVANCED_FACE('',(#918),#934,.F.);
+#918 = FACE_BOUND('',#919,.F.);
+#919 = EDGE_LOOP('',(#920,#926,#927,#933));
+#920 = ORIENTED_EDGE('',*,*,#921,.T.);
+#921 = EDGE_CURVE('',#869,#802,#922,.T.);
+#922 = LINE('',#923,#924);
+#923 = CARTESIAN_POINT('',(-5.1,2.5,-4.));
+#924 = VECTOR('',#925,1.);
+#925 = DIRECTION('',(-0.,-0.,-1.));
+#926 = ORIENTED_EDGE('',*,*,#801,.T.);
+#927 = ORIENTED_EDGE('',*,*,#928,.F.);
+#928 = EDGE_CURVE('',#861,#794,#929,.T.);
+#929 = LINE('',#930,#931);
+#930 = CARTESIAN_POINT('',(-5.85,1.75,-4.));
+#931 = VECTOR('',#932,1.);
+#932 = DIRECTION('',(-0.,-0.,-1.));
+#933 = ORIENTED_EDGE('',*,*,#868,.F.);
+#934 = CYLINDRICAL_SURFACE('',#935,0.75);
+#935 = AXIS2_PLACEMENT_3D('',#936,#937,#938);
+#936 = CARTESIAN_POINT('',(-5.1,1.75,-4.));
+#937 = DIRECTION('',(0.,0.,1.));
+#938 = DIRECTION('',(1.,0.,0.));
+#939 = ADVANCED_FACE('',(#940),#951,.F.);
+#940 = FACE_BOUND('',#941,.F.);
+#941 = EDGE_LOOP('',(#942,#943,#944,#950));
+#942 = ORIENTED_EDGE('',*,*,#928,.T.);
+#943 = ORIENTED_EDGE('',*,*,#793,.T.);
+#944 = ORIENTED_EDGE('',*,*,#945,.F.);
+#945 = EDGE_CURVE('',#852,#785,#946,.T.);
+#946 = LINE('',#947,#948);
+#947 = CARTESIAN_POINT('',(-5.85,-1.687892469291,-4.));
+#948 = VECTOR('',#949,1.);
+#949 = DIRECTION('',(-0.,-0.,-1.));
+#950 = ORIENTED_EDGE('',*,*,#860,.F.);
+#951 = PLANE('',#952);
+#952 = AXIS2_PLACEMENT_3D('',#953,#954,#955);
+#953 = CARTESIAN_POINT('',(-5.85,1.75,-4.));
+#954 = DIRECTION('',(-1.,0.,0.));
+#955 = DIRECTION('',(0.,-1.,0.));
+#956 = ADVANCED_FACE('',(#957),#968,.F.);
+#957 = FACE_BOUND('',#958,.F.);
+#958 = EDGE_LOOP('',(#959,#960,#961,#967));
+#959 = ORIENTED_EDGE('',*,*,#945,.T.);
+#960 = ORIENTED_EDGE('',*,*,#784,.T.);
+#961 = ORIENTED_EDGE('',*,*,#962,.F.);
+#962 = EDGE_CURVE('',#842,#777,#963,.T.);
+#963 = LINE('',#964,#965);
+#964 = CARTESIAN_POINT('',(-5.037892469291,-2.5,-4.));
+#965 = VECTOR('',#966,1.);
+#966 = DIRECTION('',(-0.,-0.,-1.));
+#967 = ORIENTED_EDGE('',*,*,#851,.F.);
+#968 = CYLINDRICAL_SURFACE('',#969,0.812107530709);
+#969 = AXIS2_PLACEMENT_3D('',#970,#971,#972);
+#970 = CARTESIAN_POINT('',(-5.037892469291,-1.687892469291,-4.));
+#971 = DIRECTION('',(0.,0.,1.));
+#972 = DIRECTION('',(1.,0.,0.));
+#973 = ADVANCED_FACE('',(#974),#984,.T.);
+#974 = FACE_BOUND('',#975,.T.);
+#975 = EDGE_LOOP('',(#976,#977,#978,#979,#980,#981,#982,#983));
+#976 = ORIENTED_EDGE('',*,*,#810,.T.);
+#977 = ORIENTED_EDGE('',*,*,#385,.T.);
+#978 = ORIENTED_EDGE('',*,*,#200,.F.);
+#979 = ORIENTED_EDGE('',*,*,#360,.F.);
+#980 = ORIENTED_EDGE('',*,*,#762,.F.);
+#981 = ORIENTED_EDGE('',*,*,#906,.F.);
+#982 = ORIENTED_EDGE('',*,*,#877,.T.);
+#983 = ORIENTED_EDGE('',*,*,#921,.T.);
+#984 = PLANE('',#985);
+#985 = AXIS2_PLACEMENT_3D('',#986,#987,#988);
+#986 = CARTESIAN_POINT('',(-1.940330188679,2.5,-5.047169811321));
+#987 = DIRECTION('',(-0.,-1.,-0.));
+#988 = DIRECTION('',(0.,0.,-1.));
+#989 = ADVANCED_FACE('',(#990),#1000,.T.);
+#990 = FACE_BOUND('',#991,.T.);
+#991 = EDGE_LOOP('',(#992,#993,#994,#995,#996,#997,#998,#999));
+#992 = ORIENTED_EDGE('',*,*,#776,.T.);
+#993 = ORIENTED_EDGE('',*,*,#962,.F.);
+#994 = ORIENTED_EDGE('',*,*,#841,.T.);
+#995 = ORIENTED_EDGE('',*,*,#899,.T.);
+#996 = ORIENTED_EDGE('',*,*,#746,.F.);
+#997 = ORIENTED_EDGE('',*,*,#353,.T.);
+#998 = ORIENTED_EDGE('',*,*,#166,.F.);
+#999 = ORIENTED_EDGE('',*,*,#441,.F.);
+#1000 = PLANE('',#1001);
+#1001 = AXIS2_PLACEMENT_3D('',#1002,#1003,#1004);
+#1002 = CARTESIAN_POINT('',(-1.935308016385,-2.5,-5.052191983615));
+#1003 = DIRECTION('',(0.,1.,0.));
+#1004 = DIRECTION('',(0.,0.,1.));
+#1005 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1009))
+GLOBAL_UNIT_ASSIGNED_CONTEXT((#1006,#1007,#1008)) REPRESENTATION_CONTEXT
+('Context #1','3D Context with UNIT and UNCERTAINTY') );
+#1006 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#1007 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#1008 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#1009 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-05),#1006,
+ 'distance_accuracy_value','confusion accuracy');
+#1010 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1011,#1013);
+#1011 = ( REPRESENTATION_RELATIONSHIP('','',#36,#10)
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1012)
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#1012 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
+#1013 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
+ #1014);
+#1014 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('9','Socket','',#5,#31,$);
+#1015 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#33));
+#1016 = SHAPE_DEFINITION_REPRESENTATION(#1017,#1023);
+#1017 = PRODUCT_DEFINITION_SHAPE('','',#1018);
+#1018 = PRODUCT_DEFINITION('design','',#1019,#1022);
+#1019 = PRODUCT_DEFINITION_FORMATION('','',#1020);
+#1020 = PRODUCT('Part','Part','',(#1021));
+#1021 = PRODUCT_CONTEXT('',#2,'mechanical');
+#1022 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#1023 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#1024),#1629);
+#1024 = MANIFOLD_SOLID_BREP('',#1025);
+#1025 = CLOSED_SHELL('',(#1026,#1066,#1099,#1130,#1212,#1328,#1345,#1362
+ ,#1379,#1396,#1413,#1430,#1447,#1464,#1476,#1507,#1531,#1555,#1572,
+ #1595,#1620));
+#1026 = ADVANCED_FACE('',(#1027),#1061,.F.);
+#1027 = FACE_BOUND('',#1028,.F.);
+#1028 = EDGE_LOOP('',(#1029,#1039,#1047,#1055));
+#1029 = ORIENTED_EDGE('',*,*,#1030,.T.);
+#1030 = EDGE_CURVE('',#1031,#1033,#1035,.T.);
+#1031 = VERTEX_POINT('',#1032);
+#1032 = CARTESIAN_POINT('',(-2.25,8.575,-4.));
+#1033 = VERTEX_POINT('',#1034);
+#1034 = CARTESIAN_POINT('',(-2.25,8.575,0.));
+#1035 = LINE('',#1036,#1037);
+#1036 = CARTESIAN_POINT('',(-2.25,8.575,-4.));
+#1037 = VECTOR('',#1038,1.);
+#1038 = DIRECTION('',(0.,0.,1.));
+#1039 = ORIENTED_EDGE('',*,*,#1040,.T.);
+#1040 = EDGE_CURVE('',#1033,#1041,#1043,.T.);
+#1041 = VERTEX_POINT('',#1042);
+#1042 = CARTESIAN_POINT('',(-6.70367965644,8.575,0.));
+#1043 = LINE('',#1044,#1045);
+#1044 = CARTESIAN_POINT('',(-2.25,8.575,0.));
+#1045 = VECTOR('',#1046,1.);
+#1046 = DIRECTION('',(-1.,-6.9E-14,0.));
+#1047 = ORIENTED_EDGE('',*,*,#1048,.F.);
+#1048 = EDGE_CURVE('',#1049,#1041,#1051,.T.);
+#1049 = VERTEX_POINT('',#1050);
+#1050 = CARTESIAN_POINT('',(-6.70367965644,8.575,-4.));
+#1051 = LINE('',#1052,#1053);
+#1052 = CARTESIAN_POINT('',(-6.70367965644,8.575,-4.));
+#1053 = VECTOR('',#1054,1.);
+#1054 = DIRECTION('',(0.,0.,1.));
+#1055 = ORIENTED_EDGE('',*,*,#1056,.F.);
+#1056 = EDGE_CURVE('',#1031,#1049,#1057,.T.);
+#1057 = LINE('',#1058,#1059);
+#1058 = CARTESIAN_POINT('',(-2.25,8.575,-4.));
+#1059 = VECTOR('',#1060,1.);
+#1060 = DIRECTION('',(-1.,-6.9E-14,0.));
+#1061 = PLANE('',#1062);
+#1062 = AXIS2_PLACEMENT_3D('',#1063,#1064,#1065);
+#1063 = CARTESIAN_POINT('',(-2.25,8.575,-4.));
+#1064 = DIRECTION('',(6.9E-14,-1.,0.));
+#1065 = DIRECTION('',(-1.,-6.9E-14,0.));
+#1066 = ADVANCED_FACE('',(#1067),#1094,.F.);
+#1067 = FACE_BOUND('',#1068,.T.);
+#1068 = EDGE_LOOP('',(#1069,#1070,#1079,#1087));
+#1069 = ORIENTED_EDGE('',*,*,#1030,.T.);
+#1070 = ORIENTED_EDGE('',*,*,#1071,.T.);
+#1071 = EDGE_CURVE('',#1033,#1072,#1074,.T.);
+#1072 = VERTEX_POINT('',#1073);
+#1073 = CARTESIAN_POINT('',(2.25,8.575,0.));
+#1074 = CIRCLE('',#1075,2.4375);
+#1075 = AXIS2_PLACEMENT_3D('',#1076,#1077,#1078);
+#1076 = CARTESIAN_POINT('',(0.,9.5125,0.));
+#1077 = DIRECTION('',(0.,0.,1.));
+#1078 = DIRECTION('',(1.,0.,0.));
+#1079 = ORIENTED_EDGE('',*,*,#1080,.F.);
+#1080 = EDGE_CURVE('',#1081,#1072,#1083,.T.);
+#1081 = VERTEX_POINT('',#1082);
+#1082 = CARTESIAN_POINT('',(2.25,8.575,-4.));
+#1083 = LINE('',#1084,#1085);
+#1084 = CARTESIAN_POINT('',(2.25,8.575,-4.));
+#1085 = VECTOR('',#1086,1.);
+#1086 = DIRECTION('',(0.,0.,1.));
+#1087 = ORIENTED_EDGE('',*,*,#1088,.F.);
+#1088 = EDGE_CURVE('',#1031,#1081,#1089,.T.);
+#1089 = CIRCLE('',#1090,2.4375);
+#1090 = AXIS2_PLACEMENT_3D('',#1091,#1092,#1093);
+#1091 = CARTESIAN_POINT('',(0.,9.5125,-4.));
+#1092 = DIRECTION('',(0.,0.,1.));
+#1093 = DIRECTION('',(1.,0.,0.));
+#1094 = CYLINDRICAL_SURFACE('',#1095,2.4375);
+#1095 = AXIS2_PLACEMENT_3D('',#1096,#1097,#1098);
+#1096 = CARTESIAN_POINT('',(0.,9.5125,-4.));
+#1097 = DIRECTION('',(-0.,-0.,-1.));
+#1098 = DIRECTION('',(1.,0.,0.));
+#1099 = ADVANCED_FACE('',(#1100),#1125,.F.);
+#1100 = FACE_BOUND('',#1101,.F.);
+#1101 = EDGE_LOOP('',(#1102,#1103,#1111,#1119));
+#1102 = ORIENTED_EDGE('',*,*,#1048,.T.);
+#1103 = ORIENTED_EDGE('',*,*,#1104,.T.);
+#1104 = EDGE_CURVE('',#1041,#1105,#1107,.T.);
+#1105 = VERTEX_POINT('',#1106);
+#1106 = CARTESIAN_POINT('',(-8.825,6.45367965644,0.));
+#1107 = LINE('',#1108,#1109);
+#1108 = CARTESIAN_POINT('',(-6.70367965644,8.575,0.));
+#1109 = VECTOR('',#1110,1.);
+#1110 = DIRECTION('',(-0.707106781187,-0.707106781187,0.));
+#1111 = ORIENTED_EDGE('',*,*,#1112,.F.);
+#1112 = EDGE_CURVE('',#1113,#1105,#1115,.T.);
+#1113 = VERTEX_POINT('',#1114);
+#1114 = CARTESIAN_POINT('',(-8.825,6.45367965644,-4.));
+#1115 = LINE('',#1116,#1117);
+#1116 = CARTESIAN_POINT('',(-8.825,6.45367965644,-4.));
+#1117 = VECTOR('',#1118,1.);
+#1118 = DIRECTION('',(0.,0.,1.));
+#1119 = ORIENTED_EDGE('',*,*,#1120,.F.);
+#1120 = EDGE_CURVE('',#1049,#1113,#1121,.T.);
+#1121 = LINE('',#1122,#1123);
+#1122 = CARTESIAN_POINT('',(-6.70367965644,8.575,-4.));
+#1123 = VECTOR('',#1124,1.);
+#1124 = DIRECTION('',(-0.707106781187,-0.707106781187,0.));
+#1125 = PLANE('',#1126);
+#1126 = AXIS2_PLACEMENT_3D('',#1127,#1128,#1129);
+#1127 = CARTESIAN_POINT('',(-6.70367965644,8.575,-4.));
+#1128 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#1129 = DIRECTION('',(-0.707106781187,-0.707106781187,0.));
+#1130 = ADVANCED_FACE('',(#1131),#1207,.F.);
+#1131 = FACE_BOUND('',#1132,.F.);
+#1132 = EDGE_LOOP('',(#1133,#1134,#1135,#1143,#1151,#1159,#1168,#1176,
+ #1184,#1192,#1200,#1206));
+#1133 = ORIENTED_EDGE('',*,*,#1056,.T.);
+#1134 = ORIENTED_EDGE('',*,*,#1120,.T.);
+#1135 = ORIENTED_EDGE('',*,*,#1136,.T.);
+#1136 = EDGE_CURVE('',#1113,#1137,#1139,.T.);
+#1137 = VERTEX_POINT('',#1138);
+#1138 = CARTESIAN_POINT('',(-8.825,-6.45367965644,-4.));
+#1139 = LINE('',#1140,#1141);
+#1140 = CARTESIAN_POINT('',(-8.825,6.45367965644,-4.));
+#1141 = VECTOR('',#1142,1.);
+#1142 = DIRECTION('',(0.,-1.,0.));
+#1143 = ORIENTED_EDGE('',*,*,#1144,.T.);
+#1144 = EDGE_CURVE('',#1137,#1145,#1147,.T.);
+#1145 = VERTEX_POINT('',#1146);
+#1146 = CARTESIAN_POINT('',(-6.70367965644,-8.575,-4.));
+#1147 = LINE('',#1148,#1149);
+#1148 = CARTESIAN_POINT('',(-8.825,-6.45367965644,-4.));
+#1149 = VECTOR('',#1150,1.);
+#1150 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#1151 = ORIENTED_EDGE('',*,*,#1152,.T.);
+#1152 = EDGE_CURVE('',#1145,#1153,#1155,.T.);
+#1153 = VERTEX_POINT('',#1154);
+#1154 = CARTESIAN_POINT('',(-2.25,-8.575,-4.));
+#1155 = LINE('',#1156,#1157);
+#1156 = CARTESIAN_POINT('',(-6.70367965644,-8.575,-4.));
+#1157 = VECTOR('',#1158,1.);
+#1158 = DIRECTION('',(1.,0.,0.));
+#1159 = ORIENTED_EDGE('',*,*,#1160,.F.);
+#1160 = EDGE_CURVE('',#1161,#1153,#1163,.T.);
+#1161 = VERTEX_POINT('',#1162);
+#1162 = CARTESIAN_POINT('',(2.25,-8.575,-4.));
+#1163 = CIRCLE('',#1164,2.4375);
+#1164 = AXIS2_PLACEMENT_3D('',#1165,#1166,#1167);
+#1165 = CARTESIAN_POINT('',(0.,-9.5125,-4.));
+#1166 = DIRECTION('',(0.,0.,1.));
+#1167 = DIRECTION('',(1.,0.,0.));
+#1168 = ORIENTED_EDGE('',*,*,#1169,.T.);
+#1169 = EDGE_CURVE('',#1161,#1170,#1172,.T.);
+#1170 = VERTEX_POINT('',#1171);
+#1171 = CARTESIAN_POINT('',(6.70367965644,-8.575,-4.));
+#1172 = LINE('',#1173,#1174);
+#1173 = CARTESIAN_POINT('',(2.25,-8.575,-4.));
+#1174 = VECTOR('',#1175,1.);
+#1175 = DIRECTION('',(1.,-6.86E-14,0.));
+#1176 = ORIENTED_EDGE('',*,*,#1177,.T.);
+#1177 = EDGE_CURVE('',#1170,#1178,#1180,.T.);
+#1178 = VERTEX_POINT('',#1179);
+#1179 = CARTESIAN_POINT('',(8.825,-6.45367965644,-4.));
+#1180 = LINE('',#1181,#1182);
+#1181 = CARTESIAN_POINT('',(6.70367965644,-8.575,-4.));
+#1182 = VECTOR('',#1183,1.);
+#1183 = DIRECTION('',(0.707106781187,0.707106781187,0.));
+#1184 = ORIENTED_EDGE('',*,*,#1185,.T.);
+#1185 = EDGE_CURVE('',#1178,#1186,#1188,.T.);
+#1186 = VERTEX_POINT('',#1187);
+#1187 = CARTESIAN_POINT('',(8.825,6.45367965644,-4.));
+#1188 = LINE('',#1189,#1190);
+#1189 = CARTESIAN_POINT('',(8.825,-6.45367965644,-4.));
+#1190 = VECTOR('',#1191,1.);
+#1191 = DIRECTION('',(0.,1.,0.));
+#1192 = ORIENTED_EDGE('',*,*,#1193,.T.);
+#1193 = EDGE_CURVE('',#1186,#1194,#1196,.T.);
+#1194 = VERTEX_POINT('',#1195);
+#1195 = CARTESIAN_POINT('',(6.70367965644,8.575,-4.));
+#1196 = LINE('',#1197,#1198);
+#1197 = CARTESIAN_POINT('',(8.825,6.45367965644,-4.));
+#1198 = VECTOR('',#1199,1.);
+#1199 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#1200 = ORIENTED_EDGE('',*,*,#1201,.T.);
+#1201 = EDGE_CURVE('',#1194,#1081,#1202,.T.);
+#1202 = LINE('',#1203,#1204);
+#1203 = CARTESIAN_POINT('',(6.70367965644,8.575,-4.));
+#1204 = VECTOR('',#1205,1.);
+#1205 = DIRECTION('',(-1.,0.,0.));
+#1206 = ORIENTED_EDGE('',*,*,#1088,.F.);
+#1207 = PLANE('',#1208);
+#1208 = AXIS2_PLACEMENT_3D('',#1209,#1210,#1211);
+#1209 = CARTESIAN_POINT('',(-5.556E-14,1.6845E-13,-4.));
+#1210 = DIRECTION('',(0.,0.,1.));
+#1211 = DIRECTION('',(1.,0.,0.));
+#1212 = ADVANCED_FACE('',(#1213,#1289),#1323,.T.);
+#1213 = FACE_BOUND('',#1214,.T.);
+#1214 = EDGE_LOOP('',(#1215,#1216,#1217,#1225,#1233,#1241,#1250,#1258,
+ #1266,#1274,#1282,#1288));
+#1215 = ORIENTED_EDGE('',*,*,#1040,.T.);
+#1216 = ORIENTED_EDGE('',*,*,#1104,.T.);
+#1217 = ORIENTED_EDGE('',*,*,#1218,.T.);
+#1218 = EDGE_CURVE('',#1105,#1219,#1221,.T.);
+#1219 = VERTEX_POINT('',#1220);
+#1220 = CARTESIAN_POINT('',(-8.825,-6.45367965644,0.));
+#1221 = LINE('',#1222,#1223);
+#1222 = CARTESIAN_POINT('',(-8.825,6.45367965644,0.));
+#1223 = VECTOR('',#1224,1.);
+#1224 = DIRECTION('',(0.,-1.,0.));
+#1225 = ORIENTED_EDGE('',*,*,#1226,.T.);
+#1226 = EDGE_CURVE('',#1219,#1227,#1229,.T.);
+#1227 = VERTEX_POINT('',#1228);
+#1228 = CARTESIAN_POINT('',(-6.70367965644,-8.575,0.));
+#1229 = LINE('',#1230,#1231);
+#1230 = CARTESIAN_POINT('',(-8.825,-6.45367965644,0.));
+#1231 = VECTOR('',#1232,1.);
+#1232 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#1233 = ORIENTED_EDGE('',*,*,#1234,.T.);
+#1234 = EDGE_CURVE('',#1227,#1235,#1237,.T.);
+#1235 = VERTEX_POINT('',#1236);
+#1236 = CARTESIAN_POINT('',(-2.25,-8.575,0.));
+#1237 = LINE('',#1238,#1239);
+#1238 = CARTESIAN_POINT('',(-6.70367965644,-8.575,0.));
+#1239 = VECTOR('',#1240,1.);
+#1240 = DIRECTION('',(1.,0.,0.));
+#1241 = ORIENTED_EDGE('',*,*,#1242,.F.);
+#1242 = EDGE_CURVE('',#1243,#1235,#1245,.T.);
+#1243 = VERTEX_POINT('',#1244);
+#1244 = CARTESIAN_POINT('',(2.25,-8.575,0.));
+#1245 = CIRCLE('',#1246,2.4375);
+#1246 = AXIS2_PLACEMENT_3D('',#1247,#1248,#1249);
+#1247 = CARTESIAN_POINT('',(0.,-9.5125,0.));
+#1248 = DIRECTION('',(0.,0.,1.));
+#1249 = DIRECTION('',(1.,0.,0.));
+#1250 = ORIENTED_EDGE('',*,*,#1251,.T.);
+#1251 = EDGE_CURVE('',#1243,#1252,#1254,.T.);
+#1252 = VERTEX_POINT('',#1253);
+#1253 = CARTESIAN_POINT('',(6.70367965644,-8.575,0.));
+#1254 = LINE('',#1255,#1256);
+#1255 = CARTESIAN_POINT('',(2.25,-8.575,0.));
+#1256 = VECTOR('',#1257,1.);
+#1257 = DIRECTION('',(1.,-6.86E-14,0.));
+#1258 = ORIENTED_EDGE('',*,*,#1259,.T.);
+#1259 = EDGE_CURVE('',#1252,#1260,#1262,.T.);
+#1260 = VERTEX_POINT('',#1261);
+#1261 = CARTESIAN_POINT('',(8.825,-6.45367965644,0.));
+#1262 = LINE('',#1263,#1264);
+#1263 = CARTESIAN_POINT('',(6.70367965644,-8.575,0.));
+#1264 = VECTOR('',#1265,1.);
+#1265 = DIRECTION('',(0.707106781187,0.707106781187,0.));
+#1266 = ORIENTED_EDGE('',*,*,#1267,.T.);
+#1267 = EDGE_CURVE('',#1260,#1268,#1270,.T.);
+#1268 = VERTEX_POINT('',#1269);
+#1269 = CARTESIAN_POINT('',(8.825,6.45367965644,0.));
+#1270 = LINE('',#1271,#1272);
+#1271 = CARTESIAN_POINT('',(8.825,-6.45367965644,0.));
+#1272 = VECTOR('',#1273,1.);
+#1273 = DIRECTION('',(0.,1.,0.));
+#1274 = ORIENTED_EDGE('',*,*,#1275,.T.);
+#1275 = EDGE_CURVE('',#1268,#1276,#1278,.T.);
+#1276 = VERTEX_POINT('',#1277);
+#1277 = CARTESIAN_POINT('',(6.70367965644,8.575,0.));
+#1278 = LINE('',#1279,#1280);
+#1279 = CARTESIAN_POINT('',(8.825,6.45367965644,0.));
+#1280 = VECTOR('',#1281,1.);
+#1281 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#1282 = ORIENTED_EDGE('',*,*,#1283,.T.);
+#1283 = EDGE_CURVE('',#1276,#1072,#1284,.T.);
+#1284 = LINE('',#1285,#1286);
+#1285 = CARTESIAN_POINT('',(6.70367965644,8.575,0.));
+#1286 = VECTOR('',#1287,1.);
+#1287 = DIRECTION('',(-1.,0.,0.));
+#1288 = ORIENTED_EDGE('',*,*,#1071,.F.);
+#1289 = FACE_BOUND('',#1290,.T.);
+#1290 = EDGE_LOOP('',(#1291,#1301,#1309,#1317));
+#1291 = ORIENTED_EDGE('',*,*,#1292,.F.);
+#1292 = EDGE_CURVE('',#1293,#1295,#1297,.T.);
+#1293 = VERTEX_POINT('',#1294);
+#1294 = CARTESIAN_POINT('',(-7.5,-7.05,0.));
+#1295 = VERTEX_POINT('',#1296);
+#1296 = CARTESIAN_POINT('',(7.5,-7.05,0.));
+#1297 = LINE('',#1298,#1299);
+#1298 = CARTESIAN_POINT('',(-7.5,-7.05,0.));
+#1299 = VECTOR('',#1300,1.);
+#1300 = DIRECTION('',(1.,0.,0.));
+#1301 = ORIENTED_EDGE('',*,*,#1302,.F.);
+#1302 = EDGE_CURVE('',#1303,#1293,#1305,.T.);
+#1303 = VERTEX_POINT('',#1304);
+#1304 = CARTESIAN_POINT('',(-7.5,7.05,0.));
+#1305 = LINE('',#1306,#1307);
+#1306 = CARTESIAN_POINT('',(-7.5,7.05,0.));
+#1307 = VECTOR('',#1308,1.);
+#1308 = DIRECTION('',(0.,-1.,0.));
+#1309 = ORIENTED_EDGE('',*,*,#1310,.F.);
+#1310 = EDGE_CURVE('',#1311,#1303,#1313,.T.);
+#1311 = VERTEX_POINT('',#1312);
+#1312 = CARTESIAN_POINT('',(7.5,7.05,0.));
+#1313 = LINE('',#1314,#1315);
+#1314 = CARTESIAN_POINT('',(7.5,7.05,0.));
+#1315 = VECTOR('',#1316,1.);
+#1316 = DIRECTION('',(-1.,0.,0.));
+#1317 = ORIENTED_EDGE('',*,*,#1318,.F.);
+#1318 = EDGE_CURVE('',#1295,#1311,#1319,.T.);
+#1319 = LINE('',#1320,#1321);
+#1320 = CARTESIAN_POINT('',(7.5,-7.05,0.));
+#1321 = VECTOR('',#1322,1.);
+#1322 = DIRECTION('',(0.,1.,0.));
+#1323 = PLANE('',#1324);
+#1324 = AXIS2_PLACEMENT_3D('',#1325,#1326,#1327);
+#1325 = CARTESIAN_POINT('',(-5.556E-14,1.6845E-13,0.));
+#1326 = DIRECTION('',(0.,0.,1.));
+#1327 = DIRECTION('',(1.,0.,0.));
+#1328 = ADVANCED_FACE('',(#1329),#1340,.F.);
+#1329 = FACE_BOUND('',#1330,.F.);
+#1330 = EDGE_LOOP('',(#1331,#1337,#1338,#1339));
+#1331 = ORIENTED_EDGE('',*,*,#1332,.T.);
+#1332 = EDGE_CURVE('',#1194,#1276,#1333,.T.);
+#1333 = LINE('',#1334,#1335);
+#1334 = CARTESIAN_POINT('',(6.70367965644,8.575,-4.));
+#1335 = VECTOR('',#1336,1.);
+#1336 = DIRECTION('',(0.,0.,1.));
+#1337 = ORIENTED_EDGE('',*,*,#1283,.T.);
+#1338 = ORIENTED_EDGE('',*,*,#1080,.F.);
+#1339 = ORIENTED_EDGE('',*,*,#1201,.F.);
+#1340 = PLANE('',#1341);
+#1341 = AXIS2_PLACEMENT_3D('',#1342,#1343,#1344);
+#1342 = CARTESIAN_POINT('',(6.70367965644,8.575,-4.));
+#1343 = DIRECTION('',(0.,-1.,0.));
+#1344 = DIRECTION('',(-1.,0.,0.));
+#1345 = ADVANCED_FACE('',(#1346),#1357,.F.);
+#1346 = FACE_BOUND('',#1347,.F.);
+#1347 = EDGE_LOOP('',(#1348,#1349,#1350,#1356));
+#1348 = ORIENTED_EDGE('',*,*,#1112,.T.);
+#1349 = ORIENTED_EDGE('',*,*,#1218,.T.);
+#1350 = ORIENTED_EDGE('',*,*,#1351,.F.);
+#1351 = EDGE_CURVE('',#1137,#1219,#1352,.T.);
+#1352 = LINE('',#1353,#1354);
+#1353 = CARTESIAN_POINT('',(-8.825,-6.45367965644,-4.));
+#1354 = VECTOR('',#1355,1.);
+#1355 = DIRECTION('',(0.,0.,1.));
+#1356 = ORIENTED_EDGE('',*,*,#1136,.F.);
+#1357 = PLANE('',#1358);
+#1358 = AXIS2_PLACEMENT_3D('',#1359,#1360,#1361);
+#1359 = CARTESIAN_POINT('',(-8.825,6.45367965644,-4.));
+#1360 = DIRECTION('',(1.,0.,0.));
+#1361 = DIRECTION('',(0.,-1.,0.));
+#1362 = ADVANCED_FACE('',(#1363),#1374,.F.);
+#1363 = FACE_BOUND('',#1364,.F.);
+#1364 = EDGE_LOOP('',(#1365,#1366,#1367,#1373));
+#1365 = ORIENTED_EDGE('',*,*,#1351,.T.);
+#1366 = ORIENTED_EDGE('',*,*,#1226,.T.);
+#1367 = ORIENTED_EDGE('',*,*,#1368,.F.);
+#1368 = EDGE_CURVE('',#1145,#1227,#1369,.T.);
+#1369 = LINE('',#1370,#1371);
+#1370 = CARTESIAN_POINT('',(-6.70367965644,-8.575,-4.));
+#1371 = VECTOR('',#1372,1.);
+#1372 = DIRECTION('',(0.,0.,1.));
+#1373 = ORIENTED_EDGE('',*,*,#1144,.F.);
+#1374 = PLANE('',#1375);
+#1375 = AXIS2_PLACEMENT_3D('',#1376,#1377,#1378);
+#1376 = CARTESIAN_POINT('',(-8.825,-6.45367965644,-4.));
+#1377 = DIRECTION('',(0.707106781187,0.707106781187,0.));
+#1378 = DIRECTION('',(0.707106781187,-0.707106781187,0.));
+#1379 = ADVANCED_FACE('',(#1380),#1391,.F.);
+#1380 = FACE_BOUND('',#1381,.F.);
+#1381 = EDGE_LOOP('',(#1382,#1383,#1384,#1390));
+#1382 = ORIENTED_EDGE('',*,*,#1368,.T.);
+#1383 = ORIENTED_EDGE('',*,*,#1234,.T.);
+#1384 = ORIENTED_EDGE('',*,*,#1385,.F.);
+#1385 = EDGE_CURVE('',#1153,#1235,#1386,.T.);
+#1386 = LINE('',#1387,#1388);
+#1387 = CARTESIAN_POINT('',(-2.25,-8.575,-4.));
+#1388 = VECTOR('',#1389,1.);
+#1389 = DIRECTION('',(0.,0.,1.));
+#1390 = ORIENTED_EDGE('',*,*,#1152,.F.);
+#1391 = PLANE('',#1392);
+#1392 = AXIS2_PLACEMENT_3D('',#1393,#1394,#1395);
+#1393 = CARTESIAN_POINT('',(-6.70367965644,-8.575,-4.));
+#1394 = DIRECTION('',(0.,1.,0.));
+#1395 = DIRECTION('',(1.,0.,0.));
+#1396 = ADVANCED_FACE('',(#1397),#1408,.F.);
+#1397 = FACE_BOUND('',#1398,.T.);
+#1398 = EDGE_LOOP('',(#1399,#1405,#1406,#1407));
+#1399 = ORIENTED_EDGE('',*,*,#1400,.T.);
+#1400 = EDGE_CURVE('',#1161,#1243,#1401,.T.);
+#1401 = LINE('',#1402,#1403);
+#1402 = CARTESIAN_POINT('',(2.25,-8.575,-4.));
+#1403 = VECTOR('',#1404,1.);
+#1404 = DIRECTION('',(0.,0.,1.));
+#1405 = ORIENTED_EDGE('',*,*,#1242,.T.);
+#1406 = ORIENTED_EDGE('',*,*,#1385,.F.);
+#1407 = ORIENTED_EDGE('',*,*,#1160,.F.);
+#1408 = CYLINDRICAL_SURFACE('',#1409,2.4375);
+#1409 = AXIS2_PLACEMENT_3D('',#1410,#1411,#1412);
+#1410 = CARTESIAN_POINT('',(0.,-9.5125,-4.));
+#1411 = DIRECTION('',(-0.,-0.,-1.));
+#1412 = DIRECTION('',(1.,0.,0.));
+#1413 = ADVANCED_FACE('',(#1414),#1425,.F.);
+#1414 = FACE_BOUND('',#1415,.F.);
+#1415 = EDGE_LOOP('',(#1416,#1417,#1418,#1424));
+#1416 = ORIENTED_EDGE('',*,*,#1400,.T.);
+#1417 = ORIENTED_EDGE('',*,*,#1251,.T.);
+#1418 = ORIENTED_EDGE('',*,*,#1419,.F.);
+#1419 = EDGE_CURVE('',#1170,#1252,#1420,.T.);
+#1420 = LINE('',#1421,#1422);
+#1421 = CARTESIAN_POINT('',(6.70367965644,-8.575,-4.));
+#1422 = VECTOR('',#1423,1.);
+#1423 = DIRECTION('',(0.,0.,1.));
+#1424 = ORIENTED_EDGE('',*,*,#1169,.F.);
+#1425 = PLANE('',#1426);
+#1426 = AXIS2_PLACEMENT_3D('',#1427,#1428,#1429);
+#1427 = CARTESIAN_POINT('',(2.25,-8.575,-4.));
+#1428 = DIRECTION('',(6.86E-14,1.,0.));
+#1429 = DIRECTION('',(1.,-6.86E-14,0.));
+#1430 = ADVANCED_FACE('',(#1431),#1442,.F.);
+#1431 = FACE_BOUND('',#1432,.F.);
+#1432 = EDGE_LOOP('',(#1433,#1434,#1435,#1441));
+#1433 = ORIENTED_EDGE('',*,*,#1419,.T.);
+#1434 = ORIENTED_EDGE('',*,*,#1259,.T.);
+#1435 = ORIENTED_EDGE('',*,*,#1436,.F.);
+#1436 = EDGE_CURVE('',#1178,#1260,#1437,.T.);
+#1437 = LINE('',#1438,#1439);
+#1438 = CARTESIAN_POINT('',(8.825,-6.45367965644,-4.));
+#1439 = VECTOR('',#1440,1.);
+#1440 = DIRECTION('',(0.,0.,1.));
+#1441 = ORIENTED_EDGE('',*,*,#1177,.F.);
+#1442 = PLANE('',#1443);
+#1443 = AXIS2_PLACEMENT_3D('',#1444,#1445,#1446);
+#1444 = CARTESIAN_POINT('',(6.70367965644,-8.575,-4.));
+#1445 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#1446 = DIRECTION('',(0.707106781187,0.707106781187,0.));
+#1447 = ADVANCED_FACE('',(#1448),#1459,.F.);
+#1448 = FACE_BOUND('',#1449,.F.);
+#1449 = EDGE_LOOP('',(#1450,#1451,#1452,#1458));
+#1450 = ORIENTED_EDGE('',*,*,#1436,.T.);
+#1451 = ORIENTED_EDGE('',*,*,#1267,.T.);
+#1452 = ORIENTED_EDGE('',*,*,#1453,.F.);
+#1453 = EDGE_CURVE('',#1186,#1268,#1454,.T.);
+#1454 = LINE('',#1455,#1456);
+#1455 = CARTESIAN_POINT('',(8.825,6.45367965644,-4.));
+#1456 = VECTOR('',#1457,1.);
+#1457 = DIRECTION('',(0.,0.,1.));
+#1458 = ORIENTED_EDGE('',*,*,#1185,.F.);
+#1459 = PLANE('',#1460);
+#1460 = AXIS2_PLACEMENT_3D('',#1461,#1462,#1463);
+#1461 = CARTESIAN_POINT('',(8.825,-6.45367965644,-4.));
+#1462 = DIRECTION('',(-1.,0.,0.));
+#1463 = DIRECTION('',(0.,1.,0.));
+#1464 = ADVANCED_FACE('',(#1465),#1471,.F.);
+#1465 = FACE_BOUND('',#1466,.F.);
+#1466 = EDGE_LOOP('',(#1467,#1468,#1469,#1470));
+#1467 = ORIENTED_EDGE('',*,*,#1453,.T.);
+#1468 = ORIENTED_EDGE('',*,*,#1275,.T.);
+#1469 = ORIENTED_EDGE('',*,*,#1332,.F.);
+#1470 = ORIENTED_EDGE('',*,*,#1193,.F.);
+#1471 = PLANE('',#1472);
+#1472 = AXIS2_PLACEMENT_3D('',#1473,#1474,#1475);
+#1473 = CARTESIAN_POINT('',(8.825,6.45367965644,-4.));
+#1474 = DIRECTION('',(-0.707106781187,-0.707106781187,0.));
+#1475 = DIRECTION('',(-0.707106781187,0.707106781187,0.));
+#1476 = ADVANCED_FACE('',(#1477),#1502,.F.);
+#1477 = FACE_BOUND('',#1478,.F.);
+#1478 = EDGE_LOOP('',(#1479,#1487,#1495,#1501));
+#1479 = ORIENTED_EDGE('',*,*,#1480,.T.);
+#1480 = EDGE_CURVE('',#1293,#1481,#1483,.T.);
+#1481 = VERTEX_POINT('',#1482);
+#1482 = CARTESIAN_POINT('',(-7.5,-7.05,5.));
+#1483 = LINE('',#1484,#1485);
+#1484 = CARTESIAN_POINT('',(-7.5,-7.05,0.));
+#1485 = VECTOR('',#1486,1.);
+#1486 = DIRECTION('',(0.,0.,1.));
+#1487 = ORIENTED_EDGE('',*,*,#1488,.T.);
+#1488 = EDGE_CURVE('',#1481,#1489,#1491,.T.);
+#1489 = VERTEX_POINT('',#1490);
+#1490 = CARTESIAN_POINT('',(7.5,-7.05,5.));
+#1491 = LINE('',#1492,#1493);
+#1492 = CARTESIAN_POINT('',(-7.5,-7.05,5.));
+#1493 = VECTOR('',#1494,1.);
+#1494 = DIRECTION('',(1.,0.,0.));
+#1495 = ORIENTED_EDGE('',*,*,#1496,.F.);
+#1496 = EDGE_CURVE('',#1295,#1489,#1497,.T.);
+#1497 = LINE('',#1498,#1499);
+#1498 = CARTESIAN_POINT('',(7.5,-7.05,0.));
+#1499 = VECTOR('',#1500,1.);
+#1500 = DIRECTION('',(0.,0.,1.));
+#1501 = ORIENTED_EDGE('',*,*,#1292,.F.);
+#1502 = PLANE('',#1503);
+#1503 = AXIS2_PLACEMENT_3D('',#1504,#1505,#1506);
+#1504 = CARTESIAN_POINT('',(-7.5,-7.05,0.));
+#1505 = DIRECTION('',(0.,1.,0.));
+#1506 = DIRECTION('',(1.,0.,0.));
+#1507 = ADVANCED_FACE('',(#1508),#1526,.F.);
+#1508 = FACE_BOUND('',#1509,.F.);
+#1509 = EDGE_LOOP('',(#1510,#1511,#1519,#1525));
+#1510 = ORIENTED_EDGE('',*,*,#1496,.T.);
+#1511 = ORIENTED_EDGE('',*,*,#1512,.T.);
+#1512 = EDGE_CURVE('',#1489,#1513,#1515,.T.);
+#1513 = VERTEX_POINT('',#1514);
+#1514 = CARTESIAN_POINT('',(7.5,7.05,5.));
+#1515 = LINE('',#1516,#1517);
+#1516 = CARTESIAN_POINT('',(7.5,-7.05,5.));
+#1517 = VECTOR('',#1518,1.);
+#1518 = DIRECTION('',(0.,1.,0.));
+#1519 = ORIENTED_EDGE('',*,*,#1520,.F.);
+#1520 = EDGE_CURVE('',#1311,#1513,#1521,.T.);
+#1521 = LINE('',#1522,#1523);
+#1522 = CARTESIAN_POINT('',(7.5,7.05,0.));
+#1523 = VECTOR('',#1524,1.);
+#1524 = DIRECTION('',(0.,0.,1.));
+#1525 = ORIENTED_EDGE('',*,*,#1318,.F.);
+#1526 = PLANE('',#1527);
+#1527 = AXIS2_PLACEMENT_3D('',#1528,#1529,#1530);
+#1528 = CARTESIAN_POINT('',(7.5,-7.05,0.));
+#1529 = DIRECTION('',(-1.,0.,0.));
+#1530 = DIRECTION('',(0.,1.,0.));
+#1531 = ADVANCED_FACE('',(#1532),#1550,.F.);
+#1532 = FACE_BOUND('',#1533,.F.);
+#1533 = EDGE_LOOP('',(#1534,#1535,#1543,#1549));
+#1534 = ORIENTED_EDGE('',*,*,#1520,.T.);
+#1535 = ORIENTED_EDGE('',*,*,#1536,.T.);
+#1536 = EDGE_CURVE('',#1513,#1537,#1539,.T.);
+#1537 = VERTEX_POINT('',#1538);
+#1538 = CARTESIAN_POINT('',(-7.5,7.05,5.));
+#1539 = LINE('',#1540,#1541);
+#1540 = CARTESIAN_POINT('',(7.5,7.05,5.));
+#1541 = VECTOR('',#1542,1.);
+#1542 = DIRECTION('',(-1.,0.,0.));
+#1543 = ORIENTED_EDGE('',*,*,#1544,.F.);
+#1544 = EDGE_CURVE('',#1303,#1537,#1545,.T.);
+#1545 = LINE('',#1546,#1547);
+#1546 = CARTESIAN_POINT('',(-7.5,7.05,0.));
+#1547 = VECTOR('',#1548,1.);
+#1548 = DIRECTION('',(0.,0.,1.));
+#1549 = ORIENTED_EDGE('',*,*,#1310,.F.);
+#1550 = PLANE('',#1551);
+#1551 = AXIS2_PLACEMENT_3D('',#1552,#1553,#1554);
+#1552 = CARTESIAN_POINT('',(7.5,7.05,0.));
+#1553 = DIRECTION('',(0.,-1.,0.));
+#1554 = DIRECTION('',(-1.,0.,0.));
+#1555 = ADVANCED_FACE('',(#1556),#1567,.F.);
+#1556 = FACE_BOUND('',#1557,.F.);
+#1557 = EDGE_LOOP('',(#1558,#1559,#1565,#1566));
+#1558 = ORIENTED_EDGE('',*,*,#1544,.T.);
+#1559 = ORIENTED_EDGE('',*,*,#1560,.T.);
+#1560 = EDGE_CURVE('',#1537,#1481,#1561,.T.);
+#1561 = LINE('',#1562,#1563);
+#1562 = CARTESIAN_POINT('',(-7.5,7.05,5.));
+#1563 = VECTOR('',#1564,1.);
+#1564 = DIRECTION('',(0.,-1.,0.));
+#1565 = ORIENTED_EDGE('',*,*,#1480,.F.);
+#1566 = ORIENTED_EDGE('',*,*,#1302,.F.);
+#1567 = PLANE('',#1568);
+#1568 = AXIS2_PLACEMENT_3D('',#1569,#1570,#1571);
+#1569 = CARTESIAN_POINT('',(-7.5,7.05,0.));
+#1570 = DIRECTION('',(1.,0.,0.));
+#1571 = DIRECTION('',(0.,-1.,0.));
+#1572 = ADVANCED_FACE('',(#1573,#1579),#1590,.T.);
+#1573 = FACE_BOUND('',#1574,.T.);
+#1574 = EDGE_LOOP('',(#1575,#1576,#1577,#1578));
+#1575 = ORIENTED_EDGE('',*,*,#1488,.T.);
+#1576 = ORIENTED_EDGE('',*,*,#1512,.T.);
+#1577 = ORIENTED_EDGE('',*,*,#1536,.T.);
+#1578 = ORIENTED_EDGE('',*,*,#1560,.T.);
+#1579 = FACE_BOUND('',#1580,.T.);
+#1580 = EDGE_LOOP('',(#1581));
+#1581 = ORIENTED_EDGE('',*,*,#1582,.F.);
+#1582 = EDGE_CURVE('',#1583,#1583,#1585,.T.);
+#1583 = VERTEX_POINT('',#1584);
+#1584 = CARTESIAN_POINT('',(4.15,0.,5.));
+#1585 = CIRCLE('',#1586,4.15);
+#1586 = AXIS2_PLACEMENT_3D('',#1587,#1588,#1589);
+#1587 = CARTESIAN_POINT('',(0.,0.,5.));
+#1588 = DIRECTION('',(0.,0.,1.));
+#1589 = DIRECTION('',(1.,0.,0.));
+#1590 = PLANE('',#1591);
+#1591 = AXIS2_PLACEMENT_3D('',#1592,#1593,#1594);
+#1592 = CARTESIAN_POINT('',(2.441727614296E-16,2.441727614296E-16,5.));
+#1593 = DIRECTION('',(0.,0.,1.));
+#1594 = DIRECTION('',(1.,0.,0.));
+#1595 = ADVANCED_FACE('',(#1596),#1615,.T.);
+#1596 = FACE_BOUND('',#1597,.F.);
+#1597 = EDGE_LOOP('',(#1598,#1606,#1613,#1614));
+#1598 = ORIENTED_EDGE('',*,*,#1599,.T.);
+#1599 = EDGE_CURVE('',#1583,#1600,#1602,.T.);
+#1600 = VERTEX_POINT('',#1601);
+#1601 = CARTESIAN_POINT('',(4.15,0.,11.5));
+#1602 = LINE('',#1603,#1604);
+#1603 = CARTESIAN_POINT('',(4.15,0.,5.));
+#1604 = VECTOR('',#1605,1.);
+#1605 = DIRECTION('',(0.,0.,1.));
+#1606 = ORIENTED_EDGE('',*,*,#1607,.T.);
+#1607 = EDGE_CURVE('',#1600,#1600,#1608,.T.);
+#1608 = CIRCLE('',#1609,4.15);
+#1609 = AXIS2_PLACEMENT_3D('',#1610,#1611,#1612);
+#1610 = CARTESIAN_POINT('',(0.,0.,11.5));
+#1611 = DIRECTION('',(0.,0.,1.));
+#1612 = DIRECTION('',(1.,0.,0.));
+#1613 = ORIENTED_EDGE('',*,*,#1599,.F.);
+#1614 = ORIENTED_EDGE('',*,*,#1582,.F.);
+#1615 = CYLINDRICAL_SURFACE('',#1616,4.15);
+#1616 = AXIS2_PLACEMENT_3D('',#1617,#1618,#1619);
+#1617 = CARTESIAN_POINT('',(0.,0.,5.));
+#1618 = DIRECTION('',(-0.,-0.,-1.));
+#1619 = DIRECTION('',(1.,0.,0.));
+#1620 = ADVANCED_FACE('',(#1621),#1624,.T.);
+#1621 = FACE_BOUND('',#1622,.T.);
+#1622 = EDGE_LOOP('',(#1623));
+#1623 = ORIENTED_EDGE('',*,*,#1607,.T.);
+#1624 = PLANE('',#1625);
+#1625 = AXIS2_PLACEMENT_3D('',#1626,#1627,#1628);
+#1626 = CARTESIAN_POINT('',(-1.647518231975E-16,1.60094172513E-16,11.5)
+ );
+#1627 = DIRECTION('',(0.,0.,1.));
+#1628 = DIRECTION('',(1.,0.,0.));
+#1629 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1633))
+GLOBAL_UNIT_ASSIGNED_CONTEXT((#1630,#1631,#1632)) REPRESENTATION_CONTEXT
+('Context #1','3D Context with UNIT and UNCERTAINTY') );
+#1630 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#1631 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#1632 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#1633 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#1630,
+ 'distance_accuracy_value','confusion accuracy');
+#1634 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1635,#1637);
+#1635 = ( REPRESENTATION_RELATIONSHIP('','',#1023,#10)
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1636)
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#1636 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19);
+#1637 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
+ #1638);
+#1638 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('10','Part','',#5,#1018,$);
+#1639 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#1020));
+#1640 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(
+ #1641),#1005);
+#1641 = STYLED_ITEM('color',(#1642),#37);
+#1642 = PRESENTATION_STYLE_ASSIGNMENT((#1643,#1649));
+#1643 = SURFACE_STYLE_USAGE(.BOTH.,#1644);
+#1644 = SURFACE_SIDE_STYLE('',(#1645));
+#1645 = SURFACE_STYLE_FILL_AREA(#1646);
+#1646 = FILL_AREA_STYLE('',(#1647));
+#1647 = FILL_AREA_STYLE_COLOUR('',#1648);
+#1648 = COLOUR_RGB('',0.678431390124,0.709803936702,0.741176476869);
+#1649 = CURVE_STYLE('',#1650,POSITIVE_LENGTH_MEASURE(0.1),#1651);
+#1650 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#1651 = COLOUR_RGB('',9.803921802644E-02,9.803921802644E-02,
+ 9.803921802644E-02);
+#1652 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(
+ #1653),#1629);
+#1653 = STYLED_ITEM('color',(#1654),#1024);
+#1654 = PRESENTATION_STYLE_ASSIGNMENT((#1655,#1660));
+#1655 = SURFACE_STYLE_USAGE(.BOTH.,#1656);
+#1656 = SURFACE_SIDE_STYLE('',(#1657));
+#1657 = SURFACE_STYLE_FILL_AREA(#1658);
+#1658 = FILL_AREA_STYLE('',(#1659));
+#1659 = FILL_AREA_STYLE_COLOUR('',#1648);
+#1660 = CURVE_STYLE('',#1661,POSITIVE_LENGTH_MEASURE(0.1),#1651);
+#1661 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/assets/trackpad-azoteq-tps65.step b/src/assets/trackpad-azoteq-tps65.step
new file mode 100644
index 0000000..ca7abaa
--- /dev/null
+++ b/src/assets/trackpad-azoteq-tps65.step
@@ -0,0 +1,1387 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
+FILE_NAME('Open CASCADE Shape Model','2025-01-16T00:39:15',('Author'),(
+ ''),'Open CASCADE STEP processor 7.8','FreeCAD','Unknown');
+FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
+ENDSEC;
+DATA;
+#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
+ 'automotive_design',2000,#2);
+#2 = APPLICATION_CONTEXT(
+ 'core data for automotive mechanical design processes');
+#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
+#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
+#5 = PRODUCT_DEFINITION('design','',#6,#9);
+#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
+#7 = PRODUCT('azoteq_tps65','azoteq_tps65','',(#8));
+#8 = PRODUCT_CONTEXT('',#2,'mechanical');
+#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#10 = SHAPE_REPRESENTATION('',(#11,#15,#19),#23);
+#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
+#12 = CARTESIAN_POINT('',(0.,0.,0.));
+#13 = DIRECTION('',(0.,0.,1.));
+#14 = DIRECTION('',(1.,0.,-0.));
+#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
+#16 = CARTESIAN_POINT('',(0.,0.,0.));
+#17 = DIRECTION('',(0.,0.,1.));
+#18 = DIRECTION('',(1.,0.,0.));
+#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22);
+#20 = CARTESIAN_POINT('',(0.,0.,-1.5));
+#21 = DIRECTION('',(0.,0.,1.));
+#22 = DIRECTION('',(1.,0.,0.));
+#23 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#27)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
+(#24,#25,#26)) REPRESENTATION_CONTEXT('Context #1',
+ '3D Context with UNIT and UNCERTAINTY') );
+#24 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#25 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#26 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#27 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.E-05),#24,
+ 'distance_accuracy_value','confusion accuracy');
+#28 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
+#29 = SHAPE_DEFINITION_REPRESENTATION(#30,#36);
+#30 = PRODUCT_DEFINITION_SHAPE('','',#31);
+#31 = PRODUCT_DEFINITION('design','',#32,#35);
+#32 = PRODUCT_DEFINITION_FORMATION('','',#33);
+#33 = PRODUCT('Socket','Socket','',(#34));
+#34 = PRODUCT_CONTEXT('',#2,'mechanical');
+#35 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#36 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#37),#1007);
+#37 = MANIFOLD_SOLID_BREP('',#38);
+#38 = CLOSED_SHELL('',(#39,#111,#280,#336,#353,#371,#561,#586,#602,#637,
+ #677,#699,#716,#733,#750,#767,#784,#801,#818,#835,#852,#869,#886,
+ #903,#920,#937,#949,#966,#978,#996));
+#39 = ADVANCED_FACE('',(#40),#106,.F.);
+#40 = FACE_BOUND('',#41,.F.);
+#41 = EDGE_LOOP('',(#42,#52,#60,#68,#76,#84,#92,#100));
+#42 = ORIENTED_EDGE('',*,*,#43,.F.);
+#43 = EDGE_CURVE('',#44,#46,#48,.T.);
+#44 = VERTEX_POINT('',#45);
+#45 = CARTESIAN_POINT('',(-32.6,-24.5,-4.));
+#46 = VERTEX_POINT('',#47);
+#47 = CARTESIAN_POINT('',(32.6,-24.5,-4.));
+#48 = LINE('',#49,#50);
+#49 = CARTESIAN_POINT('',(-32.6,-24.5,-4.));
+#50 = VECTOR('',#51,1.);
+#51 = DIRECTION('',(1.,0.,0.));
+#52 = ORIENTED_EDGE('',*,*,#53,.T.);
+#53 = EDGE_CURVE('',#44,#54,#56,.T.);
+#54 = VERTEX_POINT('',#55);
+#55 = CARTESIAN_POINT('',(-32.6,-24.5,0.));
+#56 = LINE('',#57,#58);
+#57 = CARTESIAN_POINT('',(-32.6,-24.5,-4.));
+#58 = VECTOR('',#59,1.);
+#59 = DIRECTION('',(0.,0.,1.));
+#60 = ORIENTED_EDGE('',*,*,#61,.T.);
+#61 = EDGE_CURVE('',#54,#62,#64,.T.);
+#62 = VERTEX_POINT('',#63);
+#63 = CARTESIAN_POINT('',(-30.1,-24.5,0.));
+#64 = LINE('',#65,#66);
+#65 = CARTESIAN_POINT('',(-32.6,-24.5,0.));
+#66 = VECTOR('',#67,1.);
+#67 = DIRECTION('',(1.,0.,0.));
+#68 = ORIENTED_EDGE('',*,*,#69,.T.);
+#69 = EDGE_CURVE('',#62,#70,#72,.T.);
+#70 = VERTEX_POINT('',#71);
+#71 = CARTESIAN_POINT('',(-30.1,-24.5,-1.5));
+#72 = LINE('',#73,#74);
+#73 = CARTESIAN_POINT('',(-30.1,-24.5,0.));
+#74 = VECTOR('',#75,1.);
+#75 = DIRECTION('',(-0.,-0.,-1.));
+#76 = ORIENTED_EDGE('',*,*,#77,.T.);
+#77 = EDGE_CURVE('',#70,#78,#80,.T.);
+#78 = VERTEX_POINT('',#79);
+#79 = CARTESIAN_POINT('',(30.1,-24.5,-1.5));
+#80 = LINE('',#81,#82);
+#81 = CARTESIAN_POINT('',(-30.1,-24.5,-1.5));
+#82 = VECTOR('',#83,1.);
+#83 = DIRECTION('',(1.,0.,0.));
+#84 = ORIENTED_EDGE('',*,*,#85,.F.);
+#85 = EDGE_CURVE('',#86,#78,#88,.T.);
+#86 = VERTEX_POINT('',#87);
+#87 = CARTESIAN_POINT('',(30.1,-24.5,0.));
+#88 = LINE('',#89,#90);
+#89 = CARTESIAN_POINT('',(30.1,-24.5,0.));
+#90 = VECTOR('',#91,1.);
+#91 = DIRECTION('',(-0.,-0.,-1.));
+#92 = ORIENTED_EDGE('',*,*,#93,.T.);
+#93 = EDGE_CURVE('',#86,#94,#96,.T.);
+#94 = VERTEX_POINT('',#95);
+#95 = CARTESIAN_POINT('',(32.6,-24.5,0.));
+#96 = LINE('',#97,#98);
+#97 = CARTESIAN_POINT('',(-32.6,-24.5,0.));
+#98 = VECTOR('',#99,1.);
+#99 = DIRECTION('',(1.,0.,0.));
+#100 = ORIENTED_EDGE('',*,*,#101,.F.);
+#101 = EDGE_CURVE('',#46,#94,#102,.T.);
+#102 = LINE('',#103,#104);
+#103 = CARTESIAN_POINT('',(32.6,-24.5,-4.));
+#104 = VECTOR('',#105,1.);
+#105 = DIRECTION('',(0.,0.,1.));
+#106 = PLANE('',#107);
+#107 = AXIS2_PLACEMENT_3D('',#108,#109,#110);
+#108 = CARTESIAN_POINT('',(-32.6,-24.5,-4.));
+#109 = DIRECTION('',(0.,1.,0.));
+#110 = DIRECTION('',(1.,0.,0.));
+#111 = ADVANCED_FACE('',(#112,#137),#275,.F.);
+#112 = FACE_BOUND('',#113,.F.);
+#113 = EDGE_LOOP('',(#114,#115,#123,#131));
+#114 = ORIENTED_EDGE('',*,*,#43,.T.);
+#115 = ORIENTED_EDGE('',*,*,#116,.T.);
+#116 = EDGE_CURVE('',#46,#117,#119,.T.);
+#117 = VERTEX_POINT('',#118);
+#118 = CARTESIAN_POINT('',(32.6,24.5,-4.));
+#119 = LINE('',#120,#121);
+#120 = CARTESIAN_POINT('',(32.6,-24.5,-4.));
+#121 = VECTOR('',#122,1.);
+#122 = DIRECTION('',(0.,1.,0.));
+#123 = ORIENTED_EDGE('',*,*,#124,.T.);
+#124 = EDGE_CURVE('',#117,#125,#127,.T.);
+#125 = VERTEX_POINT('',#126);
+#126 = CARTESIAN_POINT('',(-32.6,24.5,-4.));
+#127 = LINE('',#128,#129);
+#128 = CARTESIAN_POINT('',(32.6,24.5,-4.));
+#129 = VECTOR('',#130,1.);
+#130 = DIRECTION('',(-1.,0.,0.));
+#131 = ORIENTED_EDGE('',*,*,#132,.T.);
+#132 = EDGE_CURVE('',#125,#44,#133,.T.);
+#133 = LINE('',#134,#135);
+#134 = CARTESIAN_POINT('',(-32.6,24.5,-4.));
+#135 = VECTOR('',#136,1.);
+#136 = DIRECTION('',(0.,-1.,0.));
+#137 = FACE_BOUND('',#138,.F.);
+#138 = EDGE_LOOP('',(#139,#149,#158,#166,#175,#183,#192,#200,#209,#217,
+ #226,#234,#243,#251,#260,#268));
+#139 = ORIENTED_EDGE('',*,*,#140,.F.);
+#140 = EDGE_CURVE('',#141,#143,#145,.T.);
+#141 = VERTEX_POINT('',#142);
+#142 = CARTESIAN_POINT('',(-16.25,18.,-4.));
+#143 = VERTEX_POINT('',#144);
+#144 = CARTESIAN_POINT('',(-16.75,18.,-4.));
+#145 = LINE('',#146,#147);
+#146 = CARTESIAN_POINT('',(-8.125,18.,-4.));
+#147 = VECTOR('',#148,1.);
+#148 = DIRECTION('',(-1.,0.,0.));
+#149 = ORIENTED_EDGE('',*,*,#150,.T.);
+#150 = EDGE_CURVE('',#141,#151,#153,.T.);
+#151 = VERTEX_POINT('',#152);
+#152 = CARTESIAN_POINT('',(-15.,19.25,-4.));
+#153 = CIRCLE('',#154,1.25);
+#154 = AXIS2_PLACEMENT_3D('',#155,#156,#157);
+#155 = CARTESIAN_POINT('',(-16.25,19.25,-4.));
+#156 = DIRECTION('',(0.,0.,1.));
+#157 = DIRECTION('',(1.,0.,0.));
+#158 = ORIENTED_EDGE('',*,*,#159,.F.);
+#159 = EDGE_CURVE('',#160,#151,#162,.T.);
+#160 = VERTEX_POINT('',#161);
+#161 = CARTESIAN_POINT('',(-15.,20.75,-4.));
+#162 = LINE('',#163,#164);
+#163 = CARTESIAN_POINT('',(-15.,10.375,-4.));
+#164 = VECTOR('',#165,1.);
+#165 = DIRECTION('',(0.,-1.,0.));
+#166 = ORIENTED_EDGE('',*,*,#167,.F.);
+#167 = EDGE_CURVE('',#168,#160,#170,.T.);
+#168 = VERTEX_POINT('',#169);
+#169 = CARTESIAN_POINT('',(-13.75,22.,-4.));
+#170 = CIRCLE('',#171,1.25);
+#171 = AXIS2_PLACEMENT_3D('',#172,#173,#174);
+#172 = CARTESIAN_POINT('',(-13.75,20.75,-4.));
+#173 = DIRECTION('',(0.,0.,1.));
+#174 = DIRECTION('',(1.,0.,0.));
+#175 = ORIENTED_EDGE('',*,*,#176,.F.);
+#176 = EDGE_CURVE('',#177,#168,#179,.T.);
+#177 = VERTEX_POINT('',#178);
+#178 = CARTESIAN_POINT('',(1.75,22.,-4.));
+#179 = LINE('',#180,#181);
+#180 = CARTESIAN_POINT('',(0.875,22.,-4.));
+#181 = VECTOR('',#182,1.);
+#182 = DIRECTION('',(-1.,0.,0.));
+#183 = ORIENTED_EDGE('',*,*,#184,.F.);
+#184 = EDGE_CURVE('',#185,#177,#187,.T.);
+#185 = VERTEX_POINT('',#186);
+#186 = CARTESIAN_POINT('',(3.,20.75,-4.));
+#187 = CIRCLE('',#188,1.25);
+#188 = AXIS2_PLACEMENT_3D('',#189,#190,#191);
+#189 = CARTESIAN_POINT('',(1.75,20.75,-4.));
+#190 = DIRECTION('',(0.,0.,1.));
+#191 = DIRECTION('',(1.,0.,0.));
+#192 = ORIENTED_EDGE('',*,*,#193,.F.);
+#193 = EDGE_CURVE('',#194,#185,#196,.T.);
+#194 = VERTEX_POINT('',#195);
+#195 = CARTESIAN_POINT('',(3.,20.301797255863,-4.));
+#196 = LINE('',#197,#198);
+#197 = CARTESIAN_POINT('',(3.,10.150898627932,-4.));
+#198 = VECTOR('',#199,1.);
+#199 = DIRECTION('',(0.,1.,0.));
+#200 = ORIENTED_EDGE('',*,*,#201,.T.);
+#201 = EDGE_CURVE('',#194,#202,#204,.T.);
+#202 = VERTEX_POINT('',#203);
+#203 = CARTESIAN_POINT('',(4.25,19.051797255863,-4.));
+#204 = CIRCLE('',#205,1.25);
+#205 = AXIS2_PLACEMENT_3D('',#206,#207,#208);
+#206 = CARTESIAN_POINT('',(4.25,20.301797255863,-4.));
+#207 = DIRECTION('',(0.,0.,1.));
+#208 = DIRECTION('',(1.,0.,0.));
+#209 = ORIENTED_EDGE('',*,*,#210,.F.);
+#210 = EDGE_CURVE('',#211,#202,#213,.T.);
+#211 = VERTEX_POINT('',#212);
+#212 = CARTESIAN_POINT('',(22.75,19.051797255863,-4.));
+#213 = LINE('',#214,#215);
+#214 = CARTESIAN_POINT('',(11.375,19.051797255863,-4.));
+#215 = VECTOR('',#216,1.);
+#216 = DIRECTION('',(-1.,0.,0.));
+#217 = ORIENTED_EDGE('',*,*,#218,.F.);
+#218 = EDGE_CURVE('',#219,#211,#221,.T.);
+#219 = VERTEX_POINT('',#220);
+#220 = CARTESIAN_POINT('',(24.,17.801797255863,-4.));
+#221 = CIRCLE('',#222,1.25);
+#222 = AXIS2_PLACEMENT_3D('',#223,#224,#225);
+#223 = CARTESIAN_POINT('',(22.75,17.801797255863,-4.));
+#224 = DIRECTION('',(0.,0.,1.));
+#225 = DIRECTION('',(1.,0.,0.));
+#226 = ORIENTED_EDGE('',*,*,#227,.F.);
+#227 = EDGE_CURVE('',#228,#219,#230,.T.);
+#228 = VERTEX_POINT('',#229);
+#229 = CARTESIAN_POINT('',(24.,-14.75,-4.));
+#230 = LINE('',#231,#232);
+#231 = CARTESIAN_POINT('',(24.,-7.375,-4.));
+#232 = VECTOR('',#233,1.);
+#233 = DIRECTION('',(0.,1.,0.));
+#234 = ORIENTED_EDGE('',*,*,#235,.F.);
+#235 = EDGE_CURVE('',#236,#228,#238,.T.);
+#236 = VERTEX_POINT('',#237);
+#237 = CARTESIAN_POINT('',(22.75,-16.,-4.));
+#238 = CIRCLE('',#239,1.25);
+#239 = AXIS2_PLACEMENT_3D('',#240,#241,#242);
+#240 = CARTESIAN_POINT('',(22.75,-14.75,-4.));
+#241 = DIRECTION('',(0.,0.,1.));
+#242 = DIRECTION('',(1.,0.,0.));
+#243 = ORIENTED_EDGE('',*,*,#244,.F.);
+#244 = EDGE_CURVE('',#245,#236,#247,.T.);
+#245 = VERTEX_POINT('',#246);
+#246 = CARTESIAN_POINT('',(-16.75,-16.,-4.));
+#247 = LINE('',#248,#249);
+#248 = CARTESIAN_POINT('',(-8.375,-16.,-4.));
+#249 = VECTOR('',#250,1.);
+#250 = DIRECTION('',(1.,0.,0.));
+#251 = ORIENTED_EDGE('',*,*,#252,.F.);
+#252 = EDGE_CURVE('',#253,#245,#255,.T.);
+#253 = VERTEX_POINT('',#254);
+#254 = CARTESIAN_POINT('',(-18.,-14.75,-4.));
+#255 = CIRCLE('',#256,1.25);
+#256 = AXIS2_PLACEMENT_3D('',#257,#258,#259);
+#257 = CARTESIAN_POINT('',(-16.75,-14.75,-4.));
+#258 = DIRECTION('',(0.,0.,1.));
+#259 = DIRECTION('',(1.,0.,0.));
+#260 = ORIENTED_EDGE('',*,*,#261,.F.);
+#261 = EDGE_CURVE('',#262,#253,#264,.T.);
+#262 = VERTEX_POINT('',#263);
+#263 = CARTESIAN_POINT('',(-18.,16.75,-4.));
+#264 = LINE('',#265,#266);
+#265 = CARTESIAN_POINT('',(-18.,8.375,-4.));
+#266 = VECTOR('',#267,1.);
+#267 = DIRECTION('',(0.,-1.,0.));
+#268 = ORIENTED_EDGE('',*,*,#269,.F.);
+#269 = EDGE_CURVE('',#143,#262,#270,.T.);
+#270 = CIRCLE('',#271,1.25);
+#271 = AXIS2_PLACEMENT_3D('',#272,#273,#274);
+#272 = CARTESIAN_POINT('',(-16.75,16.75,-4.));
+#273 = DIRECTION('',(0.,0.,1.));
+#274 = DIRECTION('',(1.,0.,0.));
+#275 = PLANE('',#276);
+#276 = AXIS2_PLACEMENT_3D('',#277,#278,#279);
+#277 = CARTESIAN_POINT('',(-9.955064599091E-16,0.,-4.));
+#278 = DIRECTION('',(0.,0.,1.));
+#279 = DIRECTION('',(1.,0.,0.));
+#280 = ADVANCED_FACE('',(#281),#331,.F.);
+#281 = FACE_BOUND('',#282,.F.);
+#282 = EDGE_LOOP('',(#283,#284,#285,#293,#301,#309,#317,#325));
+#283 = ORIENTED_EDGE('',*,*,#116,.F.);
+#284 = ORIENTED_EDGE('',*,*,#101,.T.);
+#285 = ORIENTED_EDGE('',*,*,#286,.T.);
+#286 = EDGE_CURVE('',#94,#287,#289,.T.);
+#287 = VERTEX_POINT('',#288);
+#288 = CARTESIAN_POINT('',(32.6,-22.,0.));
+#289 = LINE('',#290,#291);
+#290 = CARTESIAN_POINT('',(32.6,-24.5,0.));
+#291 = VECTOR('',#292,1.);
+#292 = DIRECTION('',(0.,1.,0.));
+#293 = ORIENTED_EDGE('',*,*,#294,.T.);
+#294 = EDGE_CURVE('',#287,#295,#297,.T.);
+#295 = VERTEX_POINT('',#296);
+#296 = CARTESIAN_POINT('',(32.6,-22.,-1.5));
+#297 = LINE('',#298,#299);
+#298 = CARTESIAN_POINT('',(32.6,-22.,0.));
+#299 = VECTOR('',#300,1.);
+#300 = DIRECTION('',(-0.,-0.,-1.));
+#301 = ORIENTED_EDGE('',*,*,#302,.T.);
+#302 = EDGE_CURVE('',#295,#303,#305,.T.);
+#303 = VERTEX_POINT('',#304);
+#304 = CARTESIAN_POINT('',(32.6,22.,-1.5));
+#305 = LINE('',#306,#307);
+#306 = CARTESIAN_POINT('',(32.6,-22.,-1.5));
+#307 = VECTOR('',#308,1.);
+#308 = DIRECTION('',(0.,1.,0.));
+#309 = ORIENTED_EDGE('',*,*,#310,.F.);
+#310 = EDGE_CURVE('',#311,#303,#313,.T.);
+#311 = VERTEX_POINT('',#312);
+#312 = CARTESIAN_POINT('',(32.6,22.,0.));
+#313 = LINE('',#314,#315);
+#314 = CARTESIAN_POINT('',(32.6,22.,0.));
+#315 = VECTOR('',#316,1.);
+#316 = DIRECTION('',(-0.,-0.,-1.));
+#317 = ORIENTED_EDGE('',*,*,#318,.T.);
+#318 = EDGE_CURVE('',#311,#319,#321,.T.);
+#319 = VERTEX_POINT('',#320);
+#320 = CARTESIAN_POINT('',(32.6,24.5,0.));
+#321 = LINE('',#322,#323);
+#322 = CARTESIAN_POINT('',(32.6,-24.5,0.));
+#323 = VECTOR('',#324,1.);
+#324 = DIRECTION('',(0.,1.,0.));
+#325 = ORIENTED_EDGE('',*,*,#326,.F.);
+#326 = EDGE_CURVE('',#117,#319,#327,.T.);
+#327 = LINE('',#328,#329);
+#328 = CARTESIAN_POINT('',(32.6,24.5,-4.));
+#329 = VECTOR('',#330,1.);
+#330 = DIRECTION('',(0.,0.,1.));
+#331 = PLANE('',#332);
+#332 = AXIS2_PLACEMENT_3D('',#333,#334,#335);
+#333 = CARTESIAN_POINT('',(32.6,-24.5,-4.));
+#334 = DIRECTION('',(-1.,0.,0.));
+#335 = DIRECTION('',(0.,1.,0.));
+#336 = ADVANCED_FACE('',(#337),#348,.T.);
+#337 = FACE_BOUND('',#338,.T.);
+#338 = EDGE_LOOP('',(#339,#346,#347));
+#339 = ORIENTED_EDGE('',*,*,#340,.F.);
+#340 = EDGE_CURVE('',#86,#287,#341,.T.);
+#341 = CIRCLE('',#342,2.5);
+#342 = AXIS2_PLACEMENT_3D('',#343,#344,#345);
+#343 = CARTESIAN_POINT('',(30.1,-22.,0.));
+#344 = DIRECTION('',(0.,0.,1.));
+#345 = DIRECTION('',(1.,0.,0.));
+#346 = ORIENTED_EDGE('',*,*,#93,.T.);
+#347 = ORIENTED_EDGE('',*,*,#286,.T.);
+#348 = PLANE('',#349);
+#349 = AXIS2_PLACEMENT_3D('',#350,#351,#352);
+#350 = CARTESIAN_POINT('',(-9.955064599091E-16,0.,0.));
+#351 = DIRECTION('',(0.,0.,1.));
+#352 = DIRECTION('',(1.,0.,0.));
+#353 = ADVANCED_FACE('',(#354),#366,.F.);
+#354 = FACE_BOUND('',#355,.F.);
+#355 = EDGE_LOOP('',(#356,#357,#364,#365));
+#356 = ORIENTED_EDGE('',*,*,#85,.T.);
+#357 = ORIENTED_EDGE('',*,*,#358,.T.);
+#358 = EDGE_CURVE('',#78,#295,#359,.T.);
+#359 = CIRCLE('',#360,2.5);
+#360 = AXIS2_PLACEMENT_3D('',#361,#362,#363);
+#361 = CARTESIAN_POINT('',(30.1,-22.,-1.5));
+#362 = DIRECTION('',(0.,0.,1.));
+#363 = DIRECTION('',(1.,0.,0.));
+#364 = ORIENTED_EDGE('',*,*,#294,.F.);
+#365 = ORIENTED_EDGE('',*,*,#340,.F.);
+#366 = CYLINDRICAL_SURFACE('',#367,2.5);
+#367 = AXIS2_PLACEMENT_3D('',#368,#369,#370);
+#368 = CARTESIAN_POINT('',(30.1,-22.,0.));
+#369 = DIRECTION('',(0.,0.,1.));
+#370 = DIRECTION('',(1.,0.,0.));
+#371 = ADVANCED_FACE('',(#372,#418),#556,.T.);
+#372 = FACE_BOUND('',#373,.T.);
+#373 = EDGE_LOOP('',(#374,#375,#376,#377,#386,#394,#403,#411));
+#374 = ORIENTED_EDGE('',*,*,#77,.T.);
+#375 = ORIENTED_EDGE('',*,*,#358,.T.);
+#376 = ORIENTED_EDGE('',*,*,#302,.T.);
+#377 = ORIENTED_EDGE('',*,*,#378,.T.);
+#378 = EDGE_CURVE('',#303,#379,#381,.T.);
+#379 = VERTEX_POINT('',#380);
+#380 = CARTESIAN_POINT('',(30.1,24.5,-1.5));
+#381 = CIRCLE('',#382,2.5);
+#382 = AXIS2_PLACEMENT_3D('',#383,#384,#385);
+#383 = CARTESIAN_POINT('',(30.1,22.,-1.5));
+#384 = DIRECTION('',(0.,0.,1.));
+#385 = DIRECTION('',(1.,0.,0.));
+#386 = ORIENTED_EDGE('',*,*,#387,.T.);
+#387 = EDGE_CURVE('',#379,#388,#390,.T.);
+#388 = VERTEX_POINT('',#389);
+#389 = CARTESIAN_POINT('',(-30.1,24.5,-1.5));
+#390 = LINE('',#391,#392);
+#391 = CARTESIAN_POINT('',(30.1,24.5,-1.5));
+#392 = VECTOR('',#393,1.);
+#393 = DIRECTION('',(-1.,0.,0.));
+#394 = ORIENTED_EDGE('',*,*,#395,.T.);
+#395 = EDGE_CURVE('',#388,#396,#398,.T.);
+#396 = VERTEX_POINT('',#397);
+#397 = CARTESIAN_POINT('',(-32.6,22.,-1.5));
+#398 = CIRCLE('',#399,2.5);
+#399 = AXIS2_PLACEMENT_3D('',#400,#401,#402);
+#400 = CARTESIAN_POINT('',(-30.1,22.,-1.5));
+#401 = DIRECTION('',(0.,0.,1.));
+#402 = DIRECTION('',(1.,0.,0.));
+#403 = ORIENTED_EDGE('',*,*,#404,.T.);
+#404 = EDGE_CURVE('',#396,#405,#407,.T.);
+#405 = VERTEX_POINT('',#406);
+#406 = CARTESIAN_POINT('',(-32.6,-22.,-1.5));
+#407 = LINE('',#408,#409);
+#408 = CARTESIAN_POINT('',(-32.6,22.,-1.5));
+#409 = VECTOR('',#410,1.);
+#410 = DIRECTION('',(0.,-1.,0.));
+#411 = ORIENTED_EDGE('',*,*,#412,.T.);
+#412 = EDGE_CURVE('',#405,#70,#413,.T.);
+#413 = CIRCLE('',#414,2.5);
+#414 = AXIS2_PLACEMENT_3D('',#415,#416,#417);
+#415 = CARTESIAN_POINT('',(-30.1,-22.,-1.5));
+#416 = DIRECTION('',(0.,0.,1.));
+#417 = DIRECTION('',(1.,0.,0.));
+#418 = FACE_BOUND('',#419,.T.);
+#419 = EDGE_LOOP('',(#420,#430,#439,#447,#456,#464,#473,#481,#490,#498,
+ #507,#515,#524,#532,#541,#549));
+#420 = ORIENTED_EDGE('',*,*,#421,.F.);
+#421 = EDGE_CURVE('',#422,#424,#426,.T.);
+#422 = VERTEX_POINT('',#423);
+#423 = CARTESIAN_POINT('',(-16.25,18.,-1.5));
+#424 = VERTEX_POINT('',#425);
+#425 = CARTESIAN_POINT('',(-16.75,18.,-1.5));
+#426 = LINE('',#427,#428);
+#427 = CARTESIAN_POINT('',(-8.125,18.,-1.5));
+#428 = VECTOR('',#429,1.);
+#429 = DIRECTION('',(-1.,0.,0.));
+#430 = ORIENTED_EDGE('',*,*,#431,.T.);
+#431 = EDGE_CURVE('',#422,#432,#434,.T.);
+#432 = VERTEX_POINT('',#433);
+#433 = CARTESIAN_POINT('',(-15.,19.25,-1.5));
+#434 = CIRCLE('',#435,1.25);
+#435 = AXIS2_PLACEMENT_3D('',#436,#437,#438);
+#436 = CARTESIAN_POINT('',(-16.25,19.25,-1.5));
+#437 = DIRECTION('',(0.,0.,1.));
+#438 = DIRECTION('',(1.,0.,0.));
+#439 = ORIENTED_EDGE('',*,*,#440,.F.);
+#440 = EDGE_CURVE('',#441,#432,#443,.T.);
+#441 = VERTEX_POINT('',#442);
+#442 = CARTESIAN_POINT('',(-15.,20.75,-1.5));
+#443 = LINE('',#444,#445);
+#444 = CARTESIAN_POINT('',(-15.,10.375,-1.5));
+#445 = VECTOR('',#446,1.);
+#446 = DIRECTION('',(0.,-1.,0.));
+#447 = ORIENTED_EDGE('',*,*,#448,.F.);
+#448 = EDGE_CURVE('',#449,#441,#451,.T.);
+#449 = VERTEX_POINT('',#450);
+#450 = CARTESIAN_POINT('',(-13.75,22.,-1.5));
+#451 = CIRCLE('',#452,1.25);
+#452 = AXIS2_PLACEMENT_3D('',#453,#454,#455);
+#453 = CARTESIAN_POINT('',(-13.75,20.75,-1.5));
+#454 = DIRECTION('',(0.,0.,1.));
+#455 = DIRECTION('',(1.,0.,0.));
+#456 = ORIENTED_EDGE('',*,*,#457,.F.);
+#457 = EDGE_CURVE('',#458,#449,#460,.T.);
+#458 = VERTEX_POINT('',#459);
+#459 = CARTESIAN_POINT('',(1.75,22.,-1.5));
+#460 = LINE('',#461,#462);
+#461 = CARTESIAN_POINT('',(0.875,22.,-1.5));
+#462 = VECTOR('',#463,1.);
+#463 = DIRECTION('',(-1.,0.,0.));
+#464 = ORIENTED_EDGE('',*,*,#465,.F.);
+#465 = EDGE_CURVE('',#466,#458,#468,.T.);
+#466 = VERTEX_POINT('',#467);
+#467 = CARTESIAN_POINT('',(3.,20.75,-1.5));
+#468 = CIRCLE('',#469,1.25);
+#469 = AXIS2_PLACEMENT_3D('',#470,#471,#472);
+#470 = CARTESIAN_POINT('',(1.75,20.75,-1.5));
+#471 = DIRECTION('',(0.,0.,1.));
+#472 = DIRECTION('',(1.,0.,0.));
+#473 = ORIENTED_EDGE('',*,*,#474,.F.);
+#474 = EDGE_CURVE('',#475,#466,#477,.T.);
+#475 = VERTEX_POINT('',#476);
+#476 = CARTESIAN_POINT('',(3.,20.301797255863,-1.5));
+#477 = LINE('',#478,#479);
+#478 = CARTESIAN_POINT('',(3.,10.150898627932,-1.5));
+#479 = VECTOR('',#480,1.);
+#480 = DIRECTION('',(0.,1.,0.));
+#481 = ORIENTED_EDGE('',*,*,#482,.T.);
+#482 = EDGE_CURVE('',#475,#483,#485,.T.);
+#483 = VERTEX_POINT('',#484);
+#484 = CARTESIAN_POINT('',(4.25,19.051797255863,-1.5));
+#485 = CIRCLE('',#486,1.25);
+#486 = AXIS2_PLACEMENT_3D('',#487,#488,#489);
+#487 = CARTESIAN_POINT('',(4.25,20.301797255863,-1.5));
+#488 = DIRECTION('',(0.,0.,1.));
+#489 = DIRECTION('',(1.,0.,0.));
+#490 = ORIENTED_EDGE('',*,*,#491,.F.);
+#491 = EDGE_CURVE('',#492,#483,#494,.T.);
+#492 = VERTEX_POINT('',#493);
+#493 = CARTESIAN_POINT('',(22.75,19.051797255863,-1.5));
+#494 = LINE('',#495,#496);
+#495 = CARTESIAN_POINT('',(11.375,19.051797255863,-1.5));
+#496 = VECTOR('',#497,1.);
+#497 = DIRECTION('',(-1.,0.,0.));
+#498 = ORIENTED_EDGE('',*,*,#499,.F.);
+#499 = EDGE_CURVE('',#500,#492,#502,.T.);
+#500 = VERTEX_POINT('',#501);
+#501 = CARTESIAN_POINT('',(24.,17.801797255863,-1.5));
+#502 = CIRCLE('',#503,1.25);
+#503 = AXIS2_PLACEMENT_3D('',#504,#505,#506);
+#504 = CARTESIAN_POINT('',(22.75,17.801797255863,-1.5));
+#505 = DIRECTION('',(0.,0.,1.));
+#506 = DIRECTION('',(1.,0.,0.));
+#507 = ORIENTED_EDGE('',*,*,#508,.F.);
+#508 = EDGE_CURVE('',#509,#500,#511,.T.);
+#509 = VERTEX_POINT('',#510);
+#510 = CARTESIAN_POINT('',(24.,-14.75,-1.5));
+#511 = LINE('',#512,#513);
+#512 = CARTESIAN_POINT('',(24.,-7.375,-1.5));
+#513 = VECTOR('',#514,1.);
+#514 = DIRECTION('',(0.,1.,0.));
+#515 = ORIENTED_EDGE('',*,*,#516,.F.);
+#516 = EDGE_CURVE('',#517,#509,#519,.T.);
+#517 = VERTEX_POINT('',#518);
+#518 = CARTESIAN_POINT('',(22.75,-16.,-1.5));
+#519 = CIRCLE('',#520,1.25);
+#520 = AXIS2_PLACEMENT_3D('',#521,#522,#523);
+#521 = CARTESIAN_POINT('',(22.75,-14.75,-1.5));
+#522 = DIRECTION('',(0.,0.,1.));
+#523 = DIRECTION('',(1.,0.,0.));
+#524 = ORIENTED_EDGE('',*,*,#525,.F.);
+#525 = EDGE_CURVE('',#526,#517,#528,.T.);
+#526 = VERTEX_POINT('',#527);
+#527 = CARTESIAN_POINT('',(-16.75,-16.,-1.5));
+#528 = LINE('',#529,#530);
+#529 = CARTESIAN_POINT('',(-8.375,-16.,-1.5));
+#530 = VECTOR('',#531,1.);
+#531 = DIRECTION('',(1.,0.,0.));
+#532 = ORIENTED_EDGE('',*,*,#533,.F.);
+#533 = EDGE_CURVE('',#534,#526,#536,.T.);
+#534 = VERTEX_POINT('',#535);
+#535 = CARTESIAN_POINT('',(-18.,-14.75,-1.5));
+#536 = CIRCLE('',#537,1.25);
+#537 = AXIS2_PLACEMENT_3D('',#538,#539,#540);
+#538 = CARTESIAN_POINT('',(-16.75,-14.75,-1.5));
+#539 = DIRECTION('',(0.,0.,1.));
+#540 = DIRECTION('',(1.,0.,0.));
+#541 = ORIENTED_EDGE('',*,*,#542,.F.);
+#542 = EDGE_CURVE('',#543,#534,#545,.T.);
+#543 = VERTEX_POINT('',#544);
+#544 = CARTESIAN_POINT('',(-18.,16.75,-1.5));
+#545 = LINE('',#546,#547);
+#546 = CARTESIAN_POINT('',(-18.,8.375,-1.5));
+#547 = VECTOR('',#548,1.);
+#548 = DIRECTION('',(0.,-1.,0.));
+#549 = ORIENTED_EDGE('',*,*,#550,.F.);
+#550 = EDGE_CURVE('',#424,#543,#551,.T.);
+#551 = CIRCLE('',#552,1.25);
+#552 = AXIS2_PLACEMENT_3D('',#553,#554,#555);
+#553 = CARTESIAN_POINT('',(-16.75,16.75,-1.5));
+#554 = DIRECTION('',(0.,0.,1.));
+#555 = DIRECTION('',(1.,0.,0.));
+#556 = PLANE('',#557);
+#557 = AXIS2_PLACEMENT_3D('',#558,#559,#560);
+#558 = CARTESIAN_POINT('',(-2.919223951824E-15,-1.388217911873E-15,-1.5)
+ );
+#559 = DIRECTION('',(0.,0.,1.));
+#560 = DIRECTION('',(1.,0.,0.));
+#561 = ADVANCED_FACE('',(#562),#581,.F.);
+#562 = FACE_BOUND('',#563,.F.);
+#563 = EDGE_LOOP('',(#564,#572,#573,#574));
+#564 = ORIENTED_EDGE('',*,*,#565,.T.);
+#565 = EDGE_CURVE('',#566,#405,#568,.T.);
+#566 = VERTEX_POINT('',#567);
+#567 = CARTESIAN_POINT('',(-32.6,-22.,0.));
+#568 = LINE('',#569,#570);
+#569 = CARTESIAN_POINT('',(-32.6,-22.,0.));
+#570 = VECTOR('',#571,1.);
+#571 = DIRECTION('',(-0.,-0.,-1.));
+#572 = ORIENTED_EDGE('',*,*,#412,.T.);
+#573 = ORIENTED_EDGE('',*,*,#69,.F.);
+#574 = ORIENTED_EDGE('',*,*,#575,.F.);
+#575 = EDGE_CURVE('',#566,#62,#576,.T.);
+#576 = CIRCLE('',#577,2.5);
+#577 = AXIS2_PLACEMENT_3D('',#578,#579,#580);
+#578 = CARTESIAN_POINT('',(-30.1,-22.,0.));
+#579 = DIRECTION('',(0.,0.,1.));
+#580 = DIRECTION('',(1.,0.,0.));
+#581 = CYLINDRICAL_SURFACE('',#582,2.5);
+#582 = AXIS2_PLACEMENT_3D('',#583,#584,#585);
+#583 = CARTESIAN_POINT('',(-30.1,-22.,0.));
+#584 = DIRECTION('',(0.,0.,1.));
+#585 = DIRECTION('',(1.,0.,0.));
+#586 = ADVANCED_FACE('',(#587),#597,.T.);
+#587 = FACE_BOUND('',#588,.T.);
+#588 = EDGE_LOOP('',(#589,#595,#596));
+#589 = ORIENTED_EDGE('',*,*,#590,.T.);
+#590 = EDGE_CURVE('',#566,#54,#591,.T.);
+#591 = LINE('',#592,#593);
+#592 = CARTESIAN_POINT('',(-32.6,24.5,0.));
+#593 = VECTOR('',#594,1.);
+#594 = DIRECTION('',(0.,-1.,0.));
+#595 = ORIENTED_EDGE('',*,*,#61,.T.);
+#596 = ORIENTED_EDGE('',*,*,#575,.F.);
+#597 = PLANE('',#598);
+#598 = AXIS2_PLACEMENT_3D('',#599,#600,#601);
+#599 = CARTESIAN_POINT('',(-9.955064599091E-16,0.,0.));
+#600 = DIRECTION('',(0.,0.,1.));
+#601 = DIRECTION('',(1.,0.,0.));
+#602 = ADVANCED_FACE('',(#603),#632,.F.);
+#603 = FACE_BOUND('',#604,.F.);
+#604 = EDGE_LOOP('',(#605,#606,#614,#622,#628,#629,#630,#631));
+#605 = ORIENTED_EDGE('',*,*,#132,.F.);
+#606 = ORIENTED_EDGE('',*,*,#607,.T.);
+#607 = EDGE_CURVE('',#125,#608,#610,.T.);
+#608 = VERTEX_POINT('',#609);
+#609 = CARTESIAN_POINT('',(-32.6,24.5,0.));
+#610 = LINE('',#611,#612);
+#611 = CARTESIAN_POINT('',(-32.6,24.5,-4.));
+#612 = VECTOR('',#613,1.);
+#613 = DIRECTION('',(0.,0.,1.));
+#614 = ORIENTED_EDGE('',*,*,#615,.T.);
+#615 = EDGE_CURVE('',#608,#616,#618,.T.);
+#616 = VERTEX_POINT('',#617);
+#617 = CARTESIAN_POINT('',(-32.6,22.,0.));
+#618 = LINE('',#619,#620);
+#619 = CARTESIAN_POINT('',(-32.6,24.5,0.));
+#620 = VECTOR('',#621,1.);
+#621 = DIRECTION('',(0.,-1.,0.));
+#622 = ORIENTED_EDGE('',*,*,#623,.T.);
+#623 = EDGE_CURVE('',#616,#396,#624,.T.);
+#624 = LINE('',#625,#626);
+#625 = CARTESIAN_POINT('',(-32.6,22.,0.));
+#626 = VECTOR('',#627,1.);
+#627 = DIRECTION('',(-0.,-0.,-1.));
+#628 = ORIENTED_EDGE('',*,*,#404,.T.);
+#629 = ORIENTED_EDGE('',*,*,#565,.F.);
+#630 = ORIENTED_EDGE('',*,*,#590,.T.);
+#631 = ORIENTED_EDGE('',*,*,#53,.F.);
+#632 = PLANE('',#633);
+#633 = AXIS2_PLACEMENT_3D('',#634,#635,#636);
+#634 = CARTESIAN_POINT('',(-32.6,24.5,-4.));
+#635 = DIRECTION('',(1.,0.,0.));
+#636 = DIRECTION('',(0.,-1.,0.));
+#637 = ADVANCED_FACE('',(#638),#672,.F.);
+#638 = FACE_BOUND('',#639,.F.);
+#639 = EDGE_LOOP('',(#640,#641,#642,#650,#656,#657,#665,#671));
+#640 = ORIENTED_EDGE('',*,*,#124,.F.);
+#641 = ORIENTED_EDGE('',*,*,#326,.T.);
+#642 = ORIENTED_EDGE('',*,*,#643,.T.);
+#643 = EDGE_CURVE('',#319,#644,#646,.T.);
+#644 = VERTEX_POINT('',#645);
+#645 = CARTESIAN_POINT('',(30.1,24.5,0.));
+#646 = LINE('',#647,#648);
+#647 = CARTESIAN_POINT('',(32.6,24.5,0.));
+#648 = VECTOR('',#649,1.);
+#649 = DIRECTION('',(-1.,0.,0.));
+#650 = ORIENTED_EDGE('',*,*,#651,.T.);
+#651 = EDGE_CURVE('',#644,#379,#652,.T.);
+#652 = LINE('',#653,#654);
+#653 = CARTESIAN_POINT('',(30.1,24.5,0.));
+#654 = VECTOR('',#655,1.);
+#655 = DIRECTION('',(-0.,-0.,-1.));
+#656 = ORIENTED_EDGE('',*,*,#387,.T.);
+#657 = ORIENTED_EDGE('',*,*,#658,.F.);
+#658 = EDGE_CURVE('',#659,#388,#661,.T.);
+#659 = VERTEX_POINT('',#660);
+#660 = CARTESIAN_POINT('',(-30.1,24.5,0.));
+#661 = LINE('',#662,#663);
+#662 = CARTESIAN_POINT('',(-30.1,24.5,0.));
+#663 = VECTOR('',#664,1.);
+#664 = DIRECTION('',(-0.,-0.,-1.));
+#665 = ORIENTED_EDGE('',*,*,#666,.T.);
+#666 = EDGE_CURVE('',#659,#608,#667,.T.);
+#667 = LINE('',#668,#669);
+#668 = CARTESIAN_POINT('',(32.6,24.5,0.));
+#669 = VECTOR('',#670,1.);
+#670 = DIRECTION('',(-1.,0.,0.));
+#671 = ORIENTED_EDGE('',*,*,#607,.F.);
+#672 = PLANE('',#673);
+#673 = AXIS2_PLACEMENT_3D('',#674,#675,#676);
+#674 = CARTESIAN_POINT('',(32.6,24.5,-4.));
+#675 = DIRECTION('',(0.,-1.,0.));
+#676 = DIRECTION('',(-1.,0.,0.));
+#677 = ADVANCED_FACE('',(#678),#694,.F.);
+#678 = FACE_BOUND('',#679,.F.);
+#679 = EDGE_LOOP('',(#680,#681,#687,#688));
+#680 = ORIENTED_EDGE('',*,*,#421,.F.);
+#681 = ORIENTED_EDGE('',*,*,#682,.T.);
+#682 = EDGE_CURVE('',#422,#141,#683,.T.);
+#683 = LINE('',#684,#685);
+#684 = CARTESIAN_POINT('',(-16.25,18.,0.));
+#685 = VECTOR('',#686,1.);
+#686 = DIRECTION('',(-0.,-0.,-1.));
+#687 = ORIENTED_EDGE('',*,*,#140,.T.);
+#688 = ORIENTED_EDGE('',*,*,#689,.F.);
+#689 = EDGE_CURVE('',#424,#143,#690,.T.);
+#690 = LINE('',#691,#692);
+#691 = CARTESIAN_POINT('',(-16.75,18.,0.));
+#692 = VECTOR('',#693,1.);
+#693 = DIRECTION('',(-0.,-0.,-1.));
+#694 = PLANE('',#695);
+#695 = AXIS2_PLACEMENT_3D('',#696,#697,#698);
+#696 = CARTESIAN_POINT('',(-16.25,18.,0.));
+#697 = DIRECTION('',(0.,1.,0.));
+#698 = DIRECTION('',(-1.,0.,0.));
+#699 = ADVANCED_FACE('',(#700),#711,.F.);
+#700 = FACE_BOUND('',#701,.F.);
+#701 = EDGE_LOOP('',(#702,#703,#704,#705));
+#702 = ORIENTED_EDGE('',*,*,#550,.F.);
+#703 = ORIENTED_EDGE('',*,*,#689,.T.);
+#704 = ORIENTED_EDGE('',*,*,#269,.T.);
+#705 = ORIENTED_EDGE('',*,*,#706,.F.);
+#706 = EDGE_CURVE('',#543,#262,#707,.T.);
+#707 = LINE('',#708,#709);
+#708 = CARTESIAN_POINT('',(-18.,16.75,0.));
+#709 = VECTOR('',#710,1.);
+#710 = DIRECTION('',(-0.,-0.,-1.));
+#711 = CYLINDRICAL_SURFACE('',#712,1.25);
+#712 = AXIS2_PLACEMENT_3D('',#713,#714,#715);
+#713 = CARTESIAN_POINT('',(-16.75,16.75,0.));
+#714 = DIRECTION('',(0.,0.,1.));
+#715 = DIRECTION('',(1.,0.,0.));
+#716 = ADVANCED_FACE('',(#717),#728,.F.);
+#717 = FACE_BOUND('',#718,.F.);
+#718 = EDGE_LOOP('',(#719,#720,#721,#722));
+#719 = ORIENTED_EDGE('',*,*,#542,.F.);
+#720 = ORIENTED_EDGE('',*,*,#706,.T.);
+#721 = ORIENTED_EDGE('',*,*,#261,.T.);
+#722 = ORIENTED_EDGE('',*,*,#723,.F.);
+#723 = EDGE_CURVE('',#534,#253,#724,.T.);
+#724 = LINE('',#725,#726);
+#725 = CARTESIAN_POINT('',(-18.,-14.75,0.));
+#726 = VECTOR('',#727,1.);
+#727 = DIRECTION('',(-0.,-0.,-1.));
+#728 = PLANE('',#729);
+#729 = AXIS2_PLACEMENT_3D('',#730,#731,#732);
+#730 = CARTESIAN_POINT('',(-18.,16.75,0.));
+#731 = DIRECTION('',(-1.,0.,0.));
+#732 = DIRECTION('',(0.,-1.,0.));
+#733 = ADVANCED_FACE('',(#734),#745,.F.);
+#734 = FACE_BOUND('',#735,.F.);
+#735 = EDGE_LOOP('',(#736,#737,#738,#739));
+#736 = ORIENTED_EDGE('',*,*,#533,.F.);
+#737 = ORIENTED_EDGE('',*,*,#723,.T.);
+#738 = ORIENTED_EDGE('',*,*,#252,.T.);
+#739 = ORIENTED_EDGE('',*,*,#740,.F.);
+#740 = EDGE_CURVE('',#526,#245,#741,.T.);
+#741 = LINE('',#742,#743);
+#742 = CARTESIAN_POINT('',(-16.75,-16.,0.));
+#743 = VECTOR('',#744,1.);
+#744 = DIRECTION('',(-0.,-0.,-1.));
+#745 = CYLINDRICAL_SURFACE('',#746,1.25);
+#746 = AXIS2_PLACEMENT_3D('',#747,#748,#749);
+#747 = CARTESIAN_POINT('',(-16.75,-14.75,0.));
+#748 = DIRECTION('',(0.,0.,1.));
+#749 = DIRECTION('',(1.,0.,0.));
+#750 = ADVANCED_FACE('',(#751),#762,.F.);
+#751 = FACE_BOUND('',#752,.F.);
+#752 = EDGE_LOOP('',(#753,#754,#755,#756));
+#753 = ORIENTED_EDGE('',*,*,#525,.F.);
+#754 = ORIENTED_EDGE('',*,*,#740,.T.);
+#755 = ORIENTED_EDGE('',*,*,#244,.T.);
+#756 = ORIENTED_EDGE('',*,*,#757,.F.);
+#757 = EDGE_CURVE('',#517,#236,#758,.T.);
+#758 = LINE('',#759,#760);
+#759 = CARTESIAN_POINT('',(22.75,-16.,0.));
+#760 = VECTOR('',#761,1.);
+#761 = DIRECTION('',(-0.,-0.,-1.));
+#762 = PLANE('',#763);
+#763 = AXIS2_PLACEMENT_3D('',#764,#765,#766);
+#764 = CARTESIAN_POINT('',(-16.75,-16.,0.));
+#765 = DIRECTION('',(0.,-1.,0.));
+#766 = DIRECTION('',(1.,0.,0.));
+#767 = ADVANCED_FACE('',(#768),#779,.F.);
+#768 = FACE_BOUND('',#769,.F.);
+#769 = EDGE_LOOP('',(#770,#771,#772,#773));
+#770 = ORIENTED_EDGE('',*,*,#516,.F.);
+#771 = ORIENTED_EDGE('',*,*,#757,.T.);
+#772 = ORIENTED_EDGE('',*,*,#235,.T.);
+#773 = ORIENTED_EDGE('',*,*,#774,.F.);
+#774 = EDGE_CURVE('',#509,#228,#775,.T.);
+#775 = LINE('',#776,#777);
+#776 = CARTESIAN_POINT('',(24.,-14.75,0.));
+#777 = VECTOR('',#778,1.);
+#778 = DIRECTION('',(-0.,-0.,-1.));
+#779 = CYLINDRICAL_SURFACE('',#780,1.25);
+#780 = AXIS2_PLACEMENT_3D('',#781,#782,#783);
+#781 = CARTESIAN_POINT('',(22.75,-14.75,0.));
+#782 = DIRECTION('',(0.,0.,1.));
+#783 = DIRECTION('',(1.,0.,0.));
+#784 = ADVANCED_FACE('',(#785),#796,.F.);
+#785 = FACE_BOUND('',#786,.F.);
+#786 = EDGE_LOOP('',(#787,#788,#789,#790));
+#787 = ORIENTED_EDGE('',*,*,#508,.F.);
+#788 = ORIENTED_EDGE('',*,*,#774,.T.);
+#789 = ORIENTED_EDGE('',*,*,#227,.T.);
+#790 = ORIENTED_EDGE('',*,*,#791,.F.);
+#791 = EDGE_CURVE('',#500,#219,#792,.T.);
+#792 = LINE('',#793,#794);
+#793 = CARTESIAN_POINT('',(24.,17.801797255863,0.));
+#794 = VECTOR('',#795,1.);
+#795 = DIRECTION('',(-0.,-0.,-1.));
+#796 = PLANE('',#797);
+#797 = AXIS2_PLACEMENT_3D('',#798,#799,#800);
+#798 = CARTESIAN_POINT('',(24.,-14.75,0.));
+#799 = DIRECTION('',(1.,0.,0.));
+#800 = DIRECTION('',(0.,1.,0.));
+#801 = ADVANCED_FACE('',(#802),#813,.F.);
+#802 = FACE_BOUND('',#803,.F.);
+#803 = EDGE_LOOP('',(#804,#805,#806,#807));
+#804 = ORIENTED_EDGE('',*,*,#499,.F.);
+#805 = ORIENTED_EDGE('',*,*,#791,.T.);
+#806 = ORIENTED_EDGE('',*,*,#218,.T.);
+#807 = ORIENTED_EDGE('',*,*,#808,.F.);
+#808 = EDGE_CURVE('',#492,#211,#809,.T.);
+#809 = LINE('',#810,#811);
+#810 = CARTESIAN_POINT('',(22.75,19.051797255863,0.));
+#811 = VECTOR('',#812,1.);
+#812 = DIRECTION('',(-0.,-0.,-1.));
+#813 = CYLINDRICAL_SURFACE('',#814,1.25);
+#814 = AXIS2_PLACEMENT_3D('',#815,#816,#817);
+#815 = CARTESIAN_POINT('',(22.75,17.801797255863,0.));
+#816 = DIRECTION('',(0.,0.,1.));
+#817 = DIRECTION('',(1.,0.,0.));
+#818 = ADVANCED_FACE('',(#819),#830,.F.);
+#819 = FACE_BOUND('',#820,.F.);
+#820 = EDGE_LOOP('',(#821,#822,#823,#824));
+#821 = ORIENTED_EDGE('',*,*,#491,.F.);
+#822 = ORIENTED_EDGE('',*,*,#808,.T.);
+#823 = ORIENTED_EDGE('',*,*,#210,.T.);
+#824 = ORIENTED_EDGE('',*,*,#825,.F.);
+#825 = EDGE_CURVE('',#483,#202,#826,.T.);
+#826 = LINE('',#827,#828);
+#827 = CARTESIAN_POINT('',(4.25,19.051797255863,0.));
+#828 = VECTOR('',#829,1.);
+#829 = DIRECTION('',(-0.,-0.,-1.));
+#830 = PLANE('',#831);
+#831 = AXIS2_PLACEMENT_3D('',#832,#833,#834);
+#832 = CARTESIAN_POINT('',(22.75,19.051797255863,0.));
+#833 = DIRECTION('',(0.,1.,0.));
+#834 = DIRECTION('',(-1.,0.,0.));
+#835 = ADVANCED_FACE('',(#836),#847,.T.);
+#836 = FACE_BOUND('',#837,.T.);
+#837 = EDGE_LOOP('',(#838,#839,#845,#846));
+#838 = ORIENTED_EDGE('',*,*,#482,.F.);
+#839 = ORIENTED_EDGE('',*,*,#840,.T.);
+#840 = EDGE_CURVE('',#475,#194,#841,.T.);
+#841 = LINE('',#842,#843);
+#842 = CARTESIAN_POINT('',(3.,20.301797255863,0.));
+#843 = VECTOR('',#844,1.);
+#844 = DIRECTION('',(-0.,-0.,-1.));
+#845 = ORIENTED_EDGE('',*,*,#201,.T.);
+#846 = ORIENTED_EDGE('',*,*,#825,.F.);
+#847 = CYLINDRICAL_SURFACE('',#848,1.25);
+#848 = AXIS2_PLACEMENT_3D('',#849,#850,#851);
+#849 = CARTESIAN_POINT('',(4.25,20.301797255863,0.));
+#850 = DIRECTION('',(0.,0.,1.));
+#851 = DIRECTION('',(1.,0.,0.));
+#852 = ADVANCED_FACE('',(#853),#864,.F.);
+#853 = FACE_BOUND('',#854,.F.);
+#854 = EDGE_LOOP('',(#855,#856,#857,#858));
+#855 = ORIENTED_EDGE('',*,*,#474,.F.);
+#856 = ORIENTED_EDGE('',*,*,#840,.T.);
+#857 = ORIENTED_EDGE('',*,*,#193,.T.);
+#858 = ORIENTED_EDGE('',*,*,#859,.F.);
+#859 = EDGE_CURVE('',#466,#185,#860,.T.);
+#860 = LINE('',#861,#862);
+#861 = CARTESIAN_POINT('',(3.,20.75,0.));
+#862 = VECTOR('',#863,1.);
+#863 = DIRECTION('',(-0.,-0.,-1.));
+#864 = PLANE('',#865);
+#865 = AXIS2_PLACEMENT_3D('',#866,#867,#868);
+#866 = CARTESIAN_POINT('',(3.,20.301797255863,0.));
+#867 = DIRECTION('',(1.,0.,0.));
+#868 = DIRECTION('',(0.,1.,0.));
+#869 = ADVANCED_FACE('',(#870),#881,.F.);
+#870 = FACE_BOUND('',#871,.F.);
+#871 = EDGE_LOOP('',(#872,#873,#874,#875));
+#872 = ORIENTED_EDGE('',*,*,#465,.F.);
+#873 = ORIENTED_EDGE('',*,*,#859,.T.);
+#874 = ORIENTED_EDGE('',*,*,#184,.T.);
+#875 = ORIENTED_EDGE('',*,*,#876,.F.);
+#876 = EDGE_CURVE('',#458,#177,#877,.T.);
+#877 = LINE('',#878,#879);
+#878 = CARTESIAN_POINT('',(1.75,22.,0.));
+#879 = VECTOR('',#880,1.);
+#880 = DIRECTION('',(-0.,-0.,-1.));
+#881 = CYLINDRICAL_SURFACE('',#882,1.25);
+#882 = AXIS2_PLACEMENT_3D('',#883,#884,#885);
+#883 = CARTESIAN_POINT('',(1.75,20.75,0.));
+#884 = DIRECTION('',(0.,0.,1.));
+#885 = DIRECTION('',(1.,0.,0.));
+#886 = ADVANCED_FACE('',(#887),#898,.F.);
+#887 = FACE_BOUND('',#888,.F.);
+#888 = EDGE_LOOP('',(#889,#890,#891,#892));
+#889 = ORIENTED_EDGE('',*,*,#457,.F.);
+#890 = ORIENTED_EDGE('',*,*,#876,.T.);
+#891 = ORIENTED_EDGE('',*,*,#176,.T.);
+#892 = ORIENTED_EDGE('',*,*,#893,.F.);
+#893 = EDGE_CURVE('',#449,#168,#894,.T.);
+#894 = LINE('',#895,#896);
+#895 = CARTESIAN_POINT('',(-13.75,22.,0.));
+#896 = VECTOR('',#897,1.);
+#897 = DIRECTION('',(-0.,-0.,-1.));
+#898 = PLANE('',#899);
+#899 = AXIS2_PLACEMENT_3D('',#900,#901,#902);
+#900 = CARTESIAN_POINT('',(1.75,22.,0.));
+#901 = DIRECTION('',(0.,1.,0.));
+#902 = DIRECTION('',(-1.,0.,0.));
+#903 = ADVANCED_FACE('',(#904),#915,.F.);
+#904 = FACE_BOUND('',#905,.F.);
+#905 = EDGE_LOOP('',(#906,#907,#908,#909));
+#906 = ORIENTED_EDGE('',*,*,#448,.F.);
+#907 = ORIENTED_EDGE('',*,*,#893,.T.);
+#908 = ORIENTED_EDGE('',*,*,#167,.T.);
+#909 = ORIENTED_EDGE('',*,*,#910,.F.);
+#910 = EDGE_CURVE('',#441,#160,#911,.T.);
+#911 = LINE('',#912,#913);
+#912 = CARTESIAN_POINT('',(-15.,20.75,0.));
+#913 = VECTOR('',#914,1.);
+#914 = DIRECTION('',(-0.,-0.,-1.));
+#915 = CYLINDRICAL_SURFACE('',#916,1.25);
+#916 = AXIS2_PLACEMENT_3D('',#917,#918,#919);
+#917 = CARTESIAN_POINT('',(-13.75,20.75,0.));
+#918 = DIRECTION('',(0.,0.,1.));
+#919 = DIRECTION('',(1.,0.,0.));
+#920 = ADVANCED_FACE('',(#921),#932,.F.);
+#921 = FACE_BOUND('',#922,.F.);
+#922 = EDGE_LOOP('',(#923,#924,#925,#926));
+#923 = ORIENTED_EDGE('',*,*,#440,.F.);
+#924 = ORIENTED_EDGE('',*,*,#910,.T.);
+#925 = ORIENTED_EDGE('',*,*,#159,.T.);
+#926 = ORIENTED_EDGE('',*,*,#927,.F.);
+#927 = EDGE_CURVE('',#432,#151,#928,.T.);
+#928 = LINE('',#929,#930);
+#929 = CARTESIAN_POINT('',(-15.,19.25,0.));
+#930 = VECTOR('',#931,1.);
+#931 = DIRECTION('',(-0.,-0.,-1.));
+#932 = PLANE('',#933);
+#933 = AXIS2_PLACEMENT_3D('',#934,#935,#936);
+#934 = CARTESIAN_POINT('',(-15.,20.75,0.));
+#935 = DIRECTION('',(-1.,0.,0.));
+#936 = DIRECTION('',(0.,-1.,0.));
+#937 = ADVANCED_FACE('',(#938),#944,.T.);
+#938 = FACE_BOUND('',#939,.T.);
+#939 = EDGE_LOOP('',(#940,#941,#942,#943));
+#940 = ORIENTED_EDGE('',*,*,#431,.F.);
+#941 = ORIENTED_EDGE('',*,*,#682,.T.);
+#942 = ORIENTED_EDGE('',*,*,#150,.T.);
+#943 = ORIENTED_EDGE('',*,*,#927,.F.);
+#944 = CYLINDRICAL_SURFACE('',#945,1.25);
+#945 = AXIS2_PLACEMENT_3D('',#946,#947,#948);
+#946 = CARTESIAN_POINT('',(-16.25,19.25,0.));
+#947 = DIRECTION('',(0.,0.,1.));
+#948 = DIRECTION('',(1.,0.,0.));
+#949 = ADVANCED_FACE('',(#950),#961,.T.);
+#950 = FACE_BOUND('',#951,.T.);
+#951 = EDGE_LOOP('',(#952,#959,#960));
+#952 = ORIENTED_EDGE('',*,*,#953,.F.);
+#953 = EDGE_CURVE('',#311,#644,#954,.T.);
+#954 = CIRCLE('',#955,2.5);
+#955 = AXIS2_PLACEMENT_3D('',#956,#957,#958);
+#956 = CARTESIAN_POINT('',(30.1,22.,0.));
+#957 = DIRECTION('',(0.,0.,1.));
+#958 = DIRECTION('',(1.,0.,0.));
+#959 = ORIENTED_EDGE('',*,*,#318,.T.);
+#960 = ORIENTED_EDGE('',*,*,#643,.T.);
+#961 = PLANE('',#962);
+#962 = AXIS2_PLACEMENT_3D('',#963,#964,#965);
+#963 = CARTESIAN_POINT('',(-9.955064599091E-16,0.,0.));
+#964 = DIRECTION('',(0.,0.,1.));
+#965 = DIRECTION('',(1.,0.,0.));
+#966 = ADVANCED_FACE('',(#967),#973,.F.);
+#967 = FACE_BOUND('',#968,.F.);
+#968 = EDGE_LOOP('',(#969,#970,#971,#972));
+#969 = ORIENTED_EDGE('',*,*,#310,.T.);
+#970 = ORIENTED_EDGE('',*,*,#378,.T.);
+#971 = ORIENTED_EDGE('',*,*,#651,.F.);
+#972 = ORIENTED_EDGE('',*,*,#953,.F.);
+#973 = CYLINDRICAL_SURFACE('',#974,2.5);
+#974 = AXIS2_PLACEMENT_3D('',#975,#976,#977);
+#975 = CARTESIAN_POINT('',(30.1,22.,0.));
+#976 = DIRECTION('',(0.,0.,1.));
+#977 = DIRECTION('',(1.,0.,0.));
+#978 = ADVANCED_FACE('',(#979),#991,.F.);
+#979 = FACE_BOUND('',#980,.F.);
+#980 = EDGE_LOOP('',(#981,#982,#983,#984));
+#981 = ORIENTED_EDGE('',*,*,#658,.T.);
+#982 = ORIENTED_EDGE('',*,*,#395,.T.);
+#983 = ORIENTED_EDGE('',*,*,#623,.F.);
+#984 = ORIENTED_EDGE('',*,*,#985,.F.);
+#985 = EDGE_CURVE('',#659,#616,#986,.T.);
+#986 = CIRCLE('',#987,2.5);
+#987 = AXIS2_PLACEMENT_3D('',#988,#989,#990);
+#988 = CARTESIAN_POINT('',(-30.1,22.,0.));
+#989 = DIRECTION('',(0.,0.,1.));
+#990 = DIRECTION('',(1.,0.,0.));
+#991 = CYLINDRICAL_SURFACE('',#992,2.5);
+#992 = AXIS2_PLACEMENT_3D('',#993,#994,#995);
+#993 = CARTESIAN_POINT('',(-30.1,22.,0.));
+#994 = DIRECTION('',(0.,0.,1.));
+#995 = DIRECTION('',(1.,0.,0.));
+#996 = ADVANCED_FACE('',(#997),#1002,.T.);
+#997 = FACE_BOUND('',#998,.T.);
+#998 = EDGE_LOOP('',(#999,#1000,#1001));
+#999 = ORIENTED_EDGE('',*,*,#615,.T.);
+#1000 = ORIENTED_EDGE('',*,*,#985,.F.);
+#1001 = ORIENTED_EDGE('',*,*,#666,.T.);
+#1002 = PLANE('',#1003);
+#1003 = AXIS2_PLACEMENT_3D('',#1004,#1005,#1006);
+#1004 = CARTESIAN_POINT('',(-9.955064599091E-16,0.,0.));
+#1005 = DIRECTION('',(0.,0.,1.));
+#1006 = DIRECTION('',(1.,0.,0.));
+#1007 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1011))
+GLOBAL_UNIT_ASSIGNED_CONTEXT((#1008,#1009,#1010)) REPRESENTATION_CONTEXT
+('Context #1','3D Context with UNIT and UNCERTAINTY') );
+#1008 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#1009 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#1010 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#1011 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(2.E-05),#1008,
+ 'distance_accuracy_value','confusion accuracy');
+#1012 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1013,#1015);
+#1013 = ( REPRESENTATION_RELATIONSHIP('','',#36,#10)
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1014)
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#1014 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
+#1015 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
+ #1016);
+#1016 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','Socket','',#5,#31,$);
+#1017 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#33));
+#1018 = SHAPE_DEFINITION_REPRESENTATION(#1019,#1025);
+#1019 = PRODUCT_DEFINITION_SHAPE('','',#1020);
+#1020 = PRODUCT_DEFINITION('design','',#1021,#1024);
+#1021 = PRODUCT_DEFINITION_FORMATION('','',#1022);
+#1022 = PRODUCT('Part','Part','',(#1023));
+#1023 = PRODUCT_CONTEXT('',#2,'mechanical');
+#1024 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#1025 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#1026),#1316);
+#1026 = MANIFOLD_SOLID_BREP('',#1027);
+#1027 = CLOSED_SHELL('',(#1028,#1068,#1101,#1132,#1165,#1196,#1229,#1260
+ ,#1284,#1300));
+#1028 = ADVANCED_FACE('',(#1029),#1063,.F.);
+#1029 = FACE_BOUND('',#1030,.F.);
+#1030 = EDGE_LOOP('',(#1031,#1041,#1049,#1057));
+#1031 = ORIENTED_EDGE('',*,*,#1032,.T.);
+#1032 = EDGE_CURVE('',#1033,#1035,#1037,.T.);
+#1033 = VERTEX_POINT('',#1034);
+#1034 = CARTESIAN_POINT('',(-30.,-24.5,0.));
+#1035 = VERTEX_POINT('',#1036);
+#1036 = CARTESIAN_POINT('',(-30.,-24.5,1.5));
+#1037 = LINE('',#1038,#1039);
+#1038 = CARTESIAN_POINT('',(-30.,-24.5,0.));
+#1039 = VECTOR('',#1040,1.);
+#1040 = DIRECTION('',(0.,0.,1.));
+#1041 = ORIENTED_EDGE('',*,*,#1042,.T.);
+#1042 = EDGE_CURVE('',#1035,#1043,#1045,.T.);
+#1043 = VERTEX_POINT('',#1044);
+#1044 = CARTESIAN_POINT('',(30.,-24.5,1.5));
+#1045 = LINE('',#1046,#1047);
+#1046 = CARTESIAN_POINT('',(-30.,-24.5,1.5));
+#1047 = VECTOR('',#1048,1.);
+#1048 = DIRECTION('',(1.,0.,0.));
+#1049 = ORIENTED_EDGE('',*,*,#1050,.F.);
+#1050 = EDGE_CURVE('',#1051,#1043,#1053,.T.);
+#1051 = VERTEX_POINT('',#1052);
+#1052 = CARTESIAN_POINT('',(30.,-24.5,0.));
+#1053 = LINE('',#1054,#1055);
+#1054 = CARTESIAN_POINT('',(30.,-24.5,0.));
+#1055 = VECTOR('',#1056,1.);
+#1056 = DIRECTION('',(0.,0.,1.));
+#1057 = ORIENTED_EDGE('',*,*,#1058,.F.);
+#1058 = EDGE_CURVE('',#1033,#1051,#1059,.T.);
+#1059 = LINE('',#1060,#1061);
+#1060 = CARTESIAN_POINT('',(-30.,-24.5,0.));
+#1061 = VECTOR('',#1062,1.);
+#1062 = DIRECTION('',(1.,0.,0.));
+#1063 = PLANE('',#1064);
+#1064 = AXIS2_PLACEMENT_3D('',#1065,#1066,#1067);
+#1065 = CARTESIAN_POINT('',(-30.,-24.5,0.));
+#1066 = DIRECTION('',(0.,1.,0.));
+#1067 = DIRECTION('',(1.,0.,0.));
+#1068 = ADVANCED_FACE('',(#1069),#1096,.T.);
+#1069 = FACE_BOUND('',#1070,.F.);
+#1070 = EDGE_LOOP('',(#1071,#1072,#1081,#1089));
+#1071 = ORIENTED_EDGE('',*,*,#1050,.T.);
+#1072 = ORIENTED_EDGE('',*,*,#1073,.T.);
+#1073 = EDGE_CURVE('',#1043,#1074,#1076,.T.);
+#1074 = VERTEX_POINT('',#1075);
+#1075 = CARTESIAN_POINT('',(32.5,-22.,1.5));
+#1076 = CIRCLE('',#1077,2.5);
+#1077 = AXIS2_PLACEMENT_3D('',#1078,#1079,#1080);
+#1078 = CARTESIAN_POINT('',(30.,-22.,1.5));
+#1079 = DIRECTION('',(0.,0.,1.));
+#1080 = DIRECTION('',(1.,0.,0.));
+#1081 = ORIENTED_EDGE('',*,*,#1082,.F.);
+#1082 = EDGE_CURVE('',#1083,#1074,#1085,.T.);
+#1083 = VERTEX_POINT('',#1084);
+#1084 = CARTESIAN_POINT('',(32.5,-22.,0.));
+#1085 = LINE('',#1086,#1087);
+#1086 = CARTESIAN_POINT('',(32.5,-22.,0.));
+#1087 = VECTOR('',#1088,1.);
+#1088 = DIRECTION('',(0.,0.,1.));
+#1089 = ORIENTED_EDGE('',*,*,#1090,.F.);
+#1090 = EDGE_CURVE('',#1051,#1083,#1091,.T.);
+#1091 = CIRCLE('',#1092,2.5);
+#1092 = AXIS2_PLACEMENT_3D('',#1093,#1094,#1095);
+#1093 = CARTESIAN_POINT('',(30.,-22.,0.));
+#1094 = DIRECTION('',(0.,0.,1.));
+#1095 = DIRECTION('',(1.,0.,0.));
+#1096 = CYLINDRICAL_SURFACE('',#1097,2.5);
+#1097 = AXIS2_PLACEMENT_3D('',#1098,#1099,#1100);
+#1098 = CARTESIAN_POINT('',(30.,-22.,0.));
+#1099 = DIRECTION('',(-0.,-0.,-1.));
+#1100 = DIRECTION('',(1.,0.,0.));
+#1101 = ADVANCED_FACE('',(#1102),#1127,.F.);
+#1102 = FACE_BOUND('',#1103,.F.);
+#1103 = EDGE_LOOP('',(#1104,#1105,#1113,#1121));
+#1104 = ORIENTED_EDGE('',*,*,#1082,.T.);
+#1105 = ORIENTED_EDGE('',*,*,#1106,.T.);
+#1106 = EDGE_CURVE('',#1074,#1107,#1109,.T.);
+#1107 = VERTEX_POINT('',#1108);
+#1108 = CARTESIAN_POINT('',(32.5,22.,1.5));
+#1109 = LINE('',#1110,#1111);
+#1110 = CARTESIAN_POINT('',(32.5,-22.,1.5));
+#1111 = VECTOR('',#1112,1.);
+#1112 = DIRECTION('',(0.,1.,0.));
+#1113 = ORIENTED_EDGE('',*,*,#1114,.F.);
+#1114 = EDGE_CURVE('',#1115,#1107,#1117,.T.);
+#1115 = VERTEX_POINT('',#1116);
+#1116 = CARTESIAN_POINT('',(32.5,22.,0.));
+#1117 = LINE('',#1118,#1119);
+#1118 = CARTESIAN_POINT('',(32.5,22.,0.));
+#1119 = VECTOR('',#1120,1.);
+#1120 = DIRECTION('',(0.,0.,1.));
+#1121 = ORIENTED_EDGE('',*,*,#1122,.F.);
+#1122 = EDGE_CURVE('',#1083,#1115,#1123,.T.);
+#1123 = LINE('',#1124,#1125);
+#1124 = CARTESIAN_POINT('',(32.5,-22.,0.));
+#1125 = VECTOR('',#1126,1.);
+#1126 = DIRECTION('',(0.,1.,0.));
+#1127 = PLANE('',#1128);
+#1128 = AXIS2_PLACEMENT_3D('',#1129,#1130,#1131);
+#1129 = CARTESIAN_POINT('',(32.5,-22.,0.));
+#1130 = DIRECTION('',(-1.,0.,0.));
+#1131 = DIRECTION('',(0.,1.,0.));
+#1132 = ADVANCED_FACE('',(#1133),#1160,.T.);
+#1133 = FACE_BOUND('',#1134,.F.);
+#1134 = EDGE_LOOP('',(#1135,#1136,#1145,#1153));
+#1135 = ORIENTED_EDGE('',*,*,#1114,.T.);
+#1136 = ORIENTED_EDGE('',*,*,#1137,.T.);
+#1137 = EDGE_CURVE('',#1107,#1138,#1140,.T.);
+#1138 = VERTEX_POINT('',#1139);
+#1139 = CARTESIAN_POINT('',(30.,24.5,1.5));
+#1140 = CIRCLE('',#1141,2.5);
+#1141 = AXIS2_PLACEMENT_3D('',#1142,#1143,#1144);
+#1142 = CARTESIAN_POINT('',(30.,22.,1.5));
+#1143 = DIRECTION('',(0.,0.,1.));
+#1144 = DIRECTION('',(1.,0.,0.));
+#1145 = ORIENTED_EDGE('',*,*,#1146,.F.);
+#1146 = EDGE_CURVE('',#1147,#1138,#1149,.T.);
+#1147 = VERTEX_POINT('',#1148);
+#1148 = CARTESIAN_POINT('',(30.,24.5,0.));
+#1149 = LINE('',#1150,#1151);
+#1150 = CARTESIAN_POINT('',(30.,24.5,0.));
+#1151 = VECTOR('',#1152,1.);
+#1152 = DIRECTION('',(0.,0.,1.));
+#1153 = ORIENTED_EDGE('',*,*,#1154,.F.);
+#1154 = EDGE_CURVE('',#1115,#1147,#1155,.T.);
+#1155 = CIRCLE('',#1156,2.5);
+#1156 = AXIS2_PLACEMENT_3D('',#1157,#1158,#1159);
+#1157 = CARTESIAN_POINT('',(30.,22.,0.));
+#1158 = DIRECTION('',(0.,0.,1.));
+#1159 = DIRECTION('',(1.,0.,0.));
+#1160 = CYLINDRICAL_SURFACE('',#1161,2.5);
+#1161 = AXIS2_PLACEMENT_3D('',#1162,#1163,#1164);
+#1162 = CARTESIAN_POINT('',(30.,22.,0.));
+#1163 = DIRECTION('',(-0.,-0.,-1.));
+#1164 = DIRECTION('',(1.,0.,0.));
+#1165 = ADVANCED_FACE('',(#1166),#1191,.F.);
+#1166 = FACE_BOUND('',#1167,.F.);
+#1167 = EDGE_LOOP('',(#1168,#1169,#1177,#1185));
+#1168 = ORIENTED_EDGE('',*,*,#1146,.T.);
+#1169 = ORIENTED_EDGE('',*,*,#1170,.T.);
+#1170 = EDGE_CURVE('',#1138,#1171,#1173,.T.);
+#1171 = VERTEX_POINT('',#1172);
+#1172 = CARTESIAN_POINT('',(-30.,24.5,1.5));
+#1173 = LINE('',#1174,#1175);
+#1174 = CARTESIAN_POINT('',(30.,24.5,1.5));
+#1175 = VECTOR('',#1176,1.);
+#1176 = DIRECTION('',(-1.,0.,0.));
+#1177 = ORIENTED_EDGE('',*,*,#1178,.F.);
+#1178 = EDGE_CURVE('',#1179,#1171,#1181,.T.);
+#1179 = VERTEX_POINT('',#1180);
+#1180 = CARTESIAN_POINT('',(-30.,24.5,0.));
+#1181 = LINE('',#1182,#1183);
+#1182 = CARTESIAN_POINT('',(-30.,24.5,0.));
+#1183 = VECTOR('',#1184,1.);
+#1184 = DIRECTION('',(0.,0.,1.));
+#1185 = ORIENTED_EDGE('',*,*,#1186,.F.);
+#1186 = EDGE_CURVE('',#1147,#1179,#1187,.T.);
+#1187 = LINE('',#1188,#1189);
+#1188 = CARTESIAN_POINT('',(30.,24.5,0.));
+#1189 = VECTOR('',#1190,1.);
+#1190 = DIRECTION('',(-1.,0.,0.));
+#1191 = PLANE('',#1192);
+#1192 = AXIS2_PLACEMENT_3D('',#1193,#1194,#1195);
+#1193 = CARTESIAN_POINT('',(30.,24.5,0.));
+#1194 = DIRECTION('',(0.,-1.,0.));
+#1195 = DIRECTION('',(-1.,0.,0.));
+#1196 = ADVANCED_FACE('',(#1197),#1224,.T.);
+#1197 = FACE_BOUND('',#1198,.F.);
+#1198 = EDGE_LOOP('',(#1199,#1200,#1209,#1217));
+#1199 = ORIENTED_EDGE('',*,*,#1178,.T.);
+#1200 = ORIENTED_EDGE('',*,*,#1201,.T.);
+#1201 = EDGE_CURVE('',#1171,#1202,#1204,.T.);
+#1202 = VERTEX_POINT('',#1203);
+#1203 = CARTESIAN_POINT('',(-32.5,22.,1.5));
+#1204 = CIRCLE('',#1205,2.5);
+#1205 = AXIS2_PLACEMENT_3D('',#1206,#1207,#1208);
+#1206 = CARTESIAN_POINT('',(-30.,22.,1.5));
+#1207 = DIRECTION('',(0.,0.,1.));
+#1208 = DIRECTION('',(1.,0.,0.));
+#1209 = ORIENTED_EDGE('',*,*,#1210,.F.);
+#1210 = EDGE_CURVE('',#1211,#1202,#1213,.T.);
+#1211 = VERTEX_POINT('',#1212);
+#1212 = CARTESIAN_POINT('',(-32.5,22.,0.));
+#1213 = LINE('',#1214,#1215);
+#1214 = CARTESIAN_POINT('',(-32.5,22.,0.));
+#1215 = VECTOR('',#1216,1.);
+#1216 = DIRECTION('',(0.,0.,1.));
+#1217 = ORIENTED_EDGE('',*,*,#1218,.F.);
+#1218 = EDGE_CURVE('',#1179,#1211,#1219,.T.);
+#1219 = CIRCLE('',#1220,2.5);
+#1220 = AXIS2_PLACEMENT_3D('',#1221,#1222,#1223);
+#1221 = CARTESIAN_POINT('',(-30.,22.,0.));
+#1222 = DIRECTION('',(0.,0.,1.));
+#1223 = DIRECTION('',(1.,0.,0.));
+#1224 = CYLINDRICAL_SURFACE('',#1225,2.5);
+#1225 = AXIS2_PLACEMENT_3D('',#1226,#1227,#1228);
+#1226 = CARTESIAN_POINT('',(-30.,22.,0.));
+#1227 = DIRECTION('',(-0.,-0.,-1.));
+#1228 = DIRECTION('',(1.,0.,0.));
+#1229 = ADVANCED_FACE('',(#1230),#1255,.F.);
+#1230 = FACE_BOUND('',#1231,.F.);
+#1231 = EDGE_LOOP('',(#1232,#1233,#1241,#1249));
+#1232 = ORIENTED_EDGE('',*,*,#1210,.T.);
+#1233 = ORIENTED_EDGE('',*,*,#1234,.T.);
+#1234 = EDGE_CURVE('',#1202,#1235,#1237,.T.);
+#1235 = VERTEX_POINT('',#1236);
+#1236 = CARTESIAN_POINT('',(-32.5,-22.,1.5));
+#1237 = LINE('',#1238,#1239);
+#1238 = CARTESIAN_POINT('',(-32.5,22.,1.5));
+#1239 = VECTOR('',#1240,1.);
+#1240 = DIRECTION('',(0.,-1.,0.));
+#1241 = ORIENTED_EDGE('',*,*,#1242,.F.);
+#1242 = EDGE_CURVE('',#1243,#1235,#1245,.T.);
+#1243 = VERTEX_POINT('',#1244);
+#1244 = CARTESIAN_POINT('',(-32.5,-22.,0.));
+#1245 = LINE('',#1246,#1247);
+#1246 = CARTESIAN_POINT('',(-32.5,-22.,0.));
+#1247 = VECTOR('',#1248,1.);
+#1248 = DIRECTION('',(0.,0.,1.));
+#1249 = ORIENTED_EDGE('',*,*,#1250,.F.);
+#1250 = EDGE_CURVE('',#1211,#1243,#1251,.T.);
+#1251 = LINE('',#1252,#1253);
+#1252 = CARTESIAN_POINT('',(-32.5,22.,0.));
+#1253 = VECTOR('',#1254,1.);
+#1254 = DIRECTION('',(0.,-1.,0.));
+#1255 = PLANE('',#1256);
+#1256 = AXIS2_PLACEMENT_3D('',#1257,#1258,#1259);
+#1257 = CARTESIAN_POINT('',(-32.5,22.,0.));
+#1258 = DIRECTION('',(1.,0.,0.));
+#1259 = DIRECTION('',(0.,-1.,0.));
+#1260 = ADVANCED_FACE('',(#1261),#1279,.T.);
+#1261 = FACE_BOUND('',#1262,.F.);
+#1262 = EDGE_LOOP('',(#1263,#1264,#1271,#1272));
+#1263 = ORIENTED_EDGE('',*,*,#1242,.T.);
+#1264 = ORIENTED_EDGE('',*,*,#1265,.T.);
+#1265 = EDGE_CURVE('',#1235,#1035,#1266,.T.);
+#1266 = CIRCLE('',#1267,2.5);
+#1267 = AXIS2_PLACEMENT_3D('',#1268,#1269,#1270);
+#1268 = CARTESIAN_POINT('',(-30.,-22.,1.5));
+#1269 = DIRECTION('',(0.,0.,1.));
+#1270 = DIRECTION('',(1.,0.,0.));
+#1271 = ORIENTED_EDGE('',*,*,#1032,.F.);
+#1272 = ORIENTED_EDGE('',*,*,#1273,.F.);
+#1273 = EDGE_CURVE('',#1243,#1033,#1274,.T.);
+#1274 = CIRCLE('',#1275,2.5);
+#1275 = AXIS2_PLACEMENT_3D('',#1276,#1277,#1278);
+#1276 = CARTESIAN_POINT('',(-30.,-22.,0.));
+#1277 = DIRECTION('',(0.,0.,1.));
+#1278 = DIRECTION('',(1.,0.,0.));
+#1279 = CYLINDRICAL_SURFACE('',#1280,2.5);
+#1280 = AXIS2_PLACEMENT_3D('',#1281,#1282,#1283);
+#1281 = CARTESIAN_POINT('',(-30.,-22.,0.));
+#1282 = DIRECTION('',(-0.,-0.,-1.));
+#1283 = DIRECTION('',(1.,0.,0.));
+#1284 = ADVANCED_FACE('',(#1285),#1295,.F.);
+#1285 = FACE_BOUND('',#1286,.F.);
+#1286 = EDGE_LOOP('',(#1287,#1288,#1289,#1290,#1291,#1292,#1293,#1294));
+#1287 = ORIENTED_EDGE('',*,*,#1058,.T.);
+#1288 = ORIENTED_EDGE('',*,*,#1090,.T.);
+#1289 = ORIENTED_EDGE('',*,*,#1122,.T.);
+#1290 = ORIENTED_EDGE('',*,*,#1154,.T.);
+#1291 = ORIENTED_EDGE('',*,*,#1186,.T.);
+#1292 = ORIENTED_EDGE('',*,*,#1218,.T.);
+#1293 = ORIENTED_EDGE('',*,*,#1250,.T.);
+#1294 = ORIENTED_EDGE('',*,*,#1273,.T.);
+#1295 = PLANE('',#1296);
+#1296 = AXIS2_PLACEMENT_3D('',#1297,#1298,#1299);
+#1297 = CARTESIAN_POINT('',(-1.1E-15,1.2E-16,0.));
+#1298 = DIRECTION('',(0.,0.,1.));
+#1299 = DIRECTION('',(1.,0.,0.));
+#1300 = ADVANCED_FACE('',(#1301),#1311,.T.);
+#1301 = FACE_BOUND('',#1302,.T.);
+#1302 = EDGE_LOOP('',(#1303,#1304,#1305,#1306,#1307,#1308,#1309,#1310));
+#1303 = ORIENTED_EDGE('',*,*,#1042,.T.);
+#1304 = ORIENTED_EDGE('',*,*,#1073,.T.);
+#1305 = ORIENTED_EDGE('',*,*,#1106,.T.);
+#1306 = ORIENTED_EDGE('',*,*,#1137,.T.);
+#1307 = ORIENTED_EDGE('',*,*,#1170,.T.);
+#1308 = ORIENTED_EDGE('',*,*,#1201,.T.);
+#1309 = ORIENTED_EDGE('',*,*,#1234,.T.);
+#1310 = ORIENTED_EDGE('',*,*,#1265,.T.);
+#1311 = PLANE('',#1312);
+#1312 = AXIS2_PLACEMENT_3D('',#1313,#1314,#1315);
+#1313 = CARTESIAN_POINT('',(-1.1E-15,1.2E-16,1.5));
+#1314 = DIRECTION('',(0.,0.,1.));
+#1315 = DIRECTION('',(1.,0.,0.));
+#1316 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#1320))
+GLOBAL_UNIT_ASSIGNED_CONTEXT((#1317,#1318,#1319)) REPRESENTATION_CONTEXT
+('Context #1','3D Context with UNIT and UNCERTAINTY') );
+#1317 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#1318 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#1319 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#1320 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#1317,
+ 'distance_accuracy_value','confusion accuracy');
+#1321 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#1322,#1324);
+#1322 = ( REPRESENTATION_RELATIONSHIP('','',#1025,#10)
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#1323)
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#1323 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19);
+#1324 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',
+ #1325);
+#1325 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('2','Part','',#5,#1020,$);
+#1326 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#1022));
+#1327 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(
+ #1328),#1007);
+#1328 = STYLED_ITEM('color',(#1329),#37);
+#1329 = PRESENTATION_STYLE_ASSIGNMENT((#1330,#1336));
+#1330 = SURFACE_STYLE_USAGE(.BOTH.,#1331);
+#1331 = SURFACE_SIDE_STYLE('',(#1332));
+#1332 = SURFACE_STYLE_FILL_AREA(#1333);
+#1333 = FILL_AREA_STYLE('',(#1334));
+#1334 = FILL_AREA_STYLE_COLOUR('',#1335);
+#1335 = COLOUR_RGB('',0.678431390124,0.709803936702,0.741176476869);
+#1336 = CURVE_STYLE('',#1337,POSITIVE_LENGTH_MEASURE(0.1),#1338);
+#1337 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+#1338 = COLOUR_RGB('',9.803921802644E-02,9.803921802644E-02,
+ 9.803921802644E-02);
+#1339 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(
+ #1340),#1316);
+#1340 = STYLED_ITEM('color',(#1341),#1026);
+#1341 = PRESENTATION_STYLE_ASSIGNMENT((#1342,#1347));
+#1342 = SURFACE_STYLE_USAGE(.BOTH.,#1343);
+#1343 = SURFACE_SIDE_STYLE('',(#1344));
+#1344 = SURFACE_STYLE_FILL_AREA(#1345);
+#1345 = FILL_AREA_STYLE('',(#1346));
+#1346 = FILL_AREA_STYLE_COLOUR('',#1335);
+#1347 = CURVE_STYLE('',#1348,POSITIVE_LENGTH_MEASURE(0.1),#1338);
+#1348 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/lib/geometry/socketsParts.ts b/src/lib/geometry/socketsParts.ts
index f74d3b8..dc780e3 100644
--- a/src/lib/geometry/socketsParts.ts
+++ b/src/lib/geometry/socketsParts.ts
@@ -11,6 +11,8 @@ const CHOC_PART = '/src/assets/switch-choc.glb'
const BOM_MX_HOTSWAP = { 'pcb-hotswap': { item: 'Kailh Hotswap Sockets', icon: 'hotswap', count: 1 } }
const BOM_CHOC_HOTSWAP = { 'pcb-hotswap': { item: 'Kailh Choc Hotswap Sockets', icon: 'hotswap', count: 1 } }
const BOM_DIODE = { 'xdiodes': { item: '1N4148 Diodes', icon: 'diode', count: 1 } }
+const BOM_HE_SWITCH = { 'heswitch': { item: 'Hall-Effect Switch (AH3572)', icon: 'diode', count: 1 } }
+const BOM_DISC_MAGNET = { 'discmagnet': { item: 'Disc Magnet (2mm x 1mm)', icon: 'diode', count: 1 } }
const DESC_MX = '\nAll MX Sockets in Cosmos are compatible with Cherry MX switches and its clones. That includes Gateron switches (with the exception of low profile), Gazzew, Outemu, Akko, etc.'
const DESC_DISPLAY = 'Display your current layer, your keymap, battery information, or whatever you like.'
@@ -253,6 +255,20 @@ export const PART_INFO: Record
+ This variant requires direct pin assignment to the microcontroller and a well-tuned 3D printer. + NIZ documentation +
+