From 008fa16966c12da8417888b24b56fe340cc57a91 Mon Sep 17 00:00:00 2001 From: joanna cai Date: Fri, 27 Jun 2025 22:36:54 -0700 Subject: [PATCH 1/3] Add files via upload --- hackpads/blipyboard/README.md | 26 + .../blipyboard/cad/blipyboard_complete.step | 4630 ++++++ hackpads/blipyboard/cad/bottom.step | 833 ++ hackpads/blipyboard/cad/plate.step | 3298 +++++ hackpads/blipyboard/cad/top.step | 671 + ...thon-seeeduino_xiao_rp2040-en_US-9.2.8.uf2 | Bin 0 -> 1741824 bytes .../adafruit_display_text/__init__.mpy | Bin 0 -> 4146 bytes .../adafruit_display_text/bitmap_label.mpy | Bin 0 -> 3955 bytes .../firmware/adafruit_display_text/label.mpy | Bin 0 -> 3568 bytes .../adafruit_display_text/outlined_label.mpy | Bin 0 -> 1734 bytes .../adafruit_display_text/scrolling_label.mpy | Bin 0 -> 1313 bytes .../adafruit_display_text/text_box.mpy | Bin 0 -> 3088 bytes hackpads/blipyboard/firmware/kmk/__init__.py | 0 hackpads/blipyboard/firmware/kmk/bootcfg.py | 138 + .../firmware/kmk/extensions/__init__.py | 54 + .../kmk/extensions/display/__init__.py | 279 + .../kmk/extensions/display/builtin.py | 24 + .../firmware/kmk/extensions/display/sh1106.py | 49 + .../kmk/extensions/display/ssd1306.py | 31 + .../firmware/kmk/extensions/international.py | 63 + .../kmk/extensions/keymap_extras/keymap_jp.py | 34 + .../blipyboard/firmware/kmk/extensions/led.py | 256 + .../firmware/kmk/extensions/lock_status.py | 69 + .../firmware/kmk/extensions/media_keys.py | 61 + .../firmware/kmk/extensions/peg_rgb_matrix.py | 200 + .../blipyboard/firmware/kmk/extensions/rgb.py | 551 + .../kmk/extensions/spacemouse_status.py | 54 + .../firmware/kmk/extensions/statusled.py | 149 + .../kmk/extensions/stringy_keymaps.py | 44 + .../firmware/kmk/handlers/__init__.py | 0 .../blipyboard/firmware/kmk/handlers/stock.py | 121 + hackpads/blipyboard/firmware/kmk/hid.py | 379 + .../firmware/kmk/hid_reports/nkro_keyboard.py | 50 + .../firmware/kmk/hid_reports/pointer.py | 53 + .../firmware/kmk/hid_reports/six_axis.py | 324 + hackpads/blipyboard/firmware/kmk/keys.py | 593 + .../blipyboard/firmware/kmk/kmk_keyboard.py | 528 + hackpads/blipyboard/firmware/kmk/kmktime.py | 34 + .../firmware/kmk/modules/__init__.py | 46 + .../firmware/kmk/modules/adns9800.py | 230 + .../firmware/kmk/modules/analogin/__init__.py | 133 + .../firmware/kmk/modules/analogin/keys.py | 20 + .../firmware/kmk/modules/autoshift.py | 82 + .../firmware/kmk/modules/capsword.py | 102 + .../firmware/kmk/modules/cg_swap.py | 70 + .../blipyboard/firmware/kmk/modules/combos.py | 330 + .../firmware/kmk/modules/dynamic_sequences.py | 261 + .../firmware/kmk/modules/easypoint.py | 130 + .../firmware/kmk/modules/encoder.py | 334 + .../firmware/kmk/modules/holdtap.py | 272 + .../blipyboard/firmware/kmk/modules/layers.py | 193 + .../blipyboard/firmware/kmk/modules/macros.py | 315 + .../blipyboard/firmware/kmk/modules/midi.py | 114 + .../firmware/kmk/modules/mouse_jiggler.py | 74 + .../firmware/kmk/modules/mouse_keys.py | 152 + .../kmk/modules/pimoroni_trackball.py | 318 + .../firmware/kmk/modules/potentiometer.py | 94 + .../blipyboard/firmware/kmk/modules/power.py | 143 + .../firmware/kmk/modules/rapidfire.py | 118 + .../firmware/kmk/modules/serialace.py | 63 + .../firmware/kmk/modules/spacemouse_keys.py | 131 + .../blipyboard/firmware/kmk/modules/split.py | 391 + .../blipyboard/firmware/kmk/modules/steno.py | 107 + .../firmware/kmk/modules/sticky_keys.py | 151 + .../firmware/kmk/modules/sticky_mod.py | 64 + .../kmk/modules/string_substitution.py | 229 + .../firmware/kmk/modules/tapdance.py | 121 + .../kmk/quickpin/pro_micro/avr_promicro.py | 20 + .../kmk/quickpin/pro_micro/bitc_promicro.py | 32 + .../quickpin/pro_micro/boardsource_blok.py | 28 + .../kmk/quickpin/pro_micro/elite_pi.py | 28 + .../firmware/kmk/quickpin/pro_micro/frood.py | 33 + .../firmware/kmk/quickpin/pro_micro/helios.py | 28 + .../firmware/kmk/quickpin/pro_micro/kb2040.py | 28 + .../kmk/quickpin/pro_micro/liatris.py | 43 + .../kmk/quickpin/pro_micro/nice_nano.py | 28 + .../pro_micro/sparkfun_promicro_rp2040.py | 28 + .../firmware/kmk/scanners/__init__.py | 38 + .../firmware/kmk/scanners/digitalio.py | 144 + .../firmware/kmk/scanners/encoder.py | 43 + .../firmware/kmk/scanners/keypad.py | 59 + hackpads/blipyboard/firmware/kmk/scheduler.py | 75 + .../firmware/kmk/transports/__init__.py | 0 .../firmware/kmk/transports/pio_uart.py | 93 + hackpads/blipyboard/firmware/kmk/utils.py | 49 + hackpads/blipyboard/firmware/main.py | 96 + .../blipyboard/pcb/hackpad copy.kicad_pcb | 11929 ++++++++++++++++ .../blipyboard/pcb/hackpad copy.kicad_pro | 584 + .../blipyboard/pcb/hackpad copy.kicad_sch | 5701 ++++++++ .../blipyboard/pcb/hackpad.kicad_prl copy | 83 + hackpads/blipyboard/production/bottom.stl | Bin 0 -> 48884 bytes hackpads/blipyboard/production/hackpad.zip | Bin 0 -> 156692 bytes hackpads/blipyboard/production/plate.stl | Bin 0 -> 81884 bytes hackpads/blipyboard/production/top.stl | Bin 0 -> 28884 bytes 94 files changed, 37574 insertions(+) create mode 100644 hackpads/blipyboard/README.md create mode 100644 hackpads/blipyboard/cad/blipyboard_complete.step create mode 100644 hackpads/blipyboard/cad/bottom.step create mode 100644 hackpads/blipyboard/cad/plate.step create mode 100644 hackpads/blipyboard/cad/top.step create mode 100644 hackpads/blipyboard/firmware/adafruit-circuitpython-seeeduino_xiao_rp2040-en_US-9.2.8.uf2 create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/__init__.mpy create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/bitmap_label.mpy create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/label.mpy create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/outlined_label.mpy create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/scrolling_label.mpy create mode 100644 hackpads/blipyboard/firmware/adafruit_display_text/text_box.mpy create mode 100644 hackpads/blipyboard/firmware/kmk/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/bootcfg.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/display/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/display/builtin.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/display/sh1106.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/display/ssd1306.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/international.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/keymap_extras/keymap_jp.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/led.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/lock_status.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/media_keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/peg_rgb_matrix.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/rgb.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/spacemouse_status.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/statusled.py create mode 100644 hackpads/blipyboard/firmware/kmk/extensions/stringy_keymaps.py create mode 100644 hackpads/blipyboard/firmware/kmk/handlers/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/handlers/stock.py create mode 100644 hackpads/blipyboard/firmware/kmk/hid.py create mode 100644 hackpads/blipyboard/firmware/kmk/hid_reports/nkro_keyboard.py create mode 100644 hackpads/blipyboard/firmware/kmk/hid_reports/pointer.py create mode 100644 hackpads/blipyboard/firmware/kmk/hid_reports/six_axis.py create mode 100644 hackpads/blipyboard/firmware/kmk/keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/kmk_keyboard.py create mode 100644 hackpads/blipyboard/firmware/kmk/kmktime.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/adns9800.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/analogin/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/analogin/keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/autoshift.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/capsword.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/cg_swap.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/combos.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/dynamic_sequences.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/easypoint.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/encoder.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/holdtap.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/layers.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/macros.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/midi.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/mouse_jiggler.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/mouse_keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/pimoroni_trackball.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/potentiometer.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/power.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/rapidfire.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/serialace.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/spacemouse_keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/split.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/steno.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/sticky_keys.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/sticky_mod.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/string_substitution.py create mode 100644 hackpads/blipyboard/firmware/kmk/modules/tapdance.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/avr_promicro.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/bitc_promicro.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/boardsource_blok.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/elite_pi.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/frood.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/helios.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/kb2040.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/liatris.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/nice_nano.py create mode 100644 hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/sparkfun_promicro_rp2040.py create mode 100644 hackpads/blipyboard/firmware/kmk/scanners/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/scanners/digitalio.py create mode 100644 hackpads/blipyboard/firmware/kmk/scanners/encoder.py create mode 100644 hackpads/blipyboard/firmware/kmk/scanners/keypad.py create mode 100644 hackpads/blipyboard/firmware/kmk/scheduler.py create mode 100644 hackpads/blipyboard/firmware/kmk/transports/__init__.py create mode 100644 hackpads/blipyboard/firmware/kmk/transports/pio_uart.py create mode 100644 hackpads/blipyboard/firmware/kmk/utils.py create mode 100644 hackpads/blipyboard/firmware/main.py create mode 100644 hackpads/blipyboard/pcb/hackpad copy.kicad_pcb create mode 100644 hackpads/blipyboard/pcb/hackpad copy.kicad_pro create mode 100644 hackpads/blipyboard/pcb/hackpad copy.kicad_sch create mode 100644 hackpads/blipyboard/pcb/hackpad.kicad_prl copy create mode 100644 hackpads/blipyboard/production/bottom.stl create mode 100644 hackpads/blipyboard/production/hackpad.zip create mode 100644 hackpads/blipyboard/production/plate.stl create mode 100644 hackpads/blipyboard/production/top.stl diff --git a/hackpads/blipyboard/README.md b/hackpads/blipyboard/README.md new file mode 100644 index 0000000000..67d5645745 --- /dev/null +++ b/hackpads/blipyboard/README.md @@ -0,0 +1,26 @@ +# blipyboard +An 8 key macropad with an OLED screen and potentiometer for HackPad. It also has 8 SK6812 leds for lighting and utilizes custom KMK firmware. + +# **CAD Model** +Screenshot 2025-06-27 at 9 58 29 PM
+Designed and Modeled using Fusion 360 + +# **Schematic** +Screenshot 2025-06-27 at 10 01 06 PM + +# **PCB** +Screenshot 2025-06-27 at 10 02 29 PM
+Schematic and PCB created using KiCad + +# **BOM** +8x Cherry MX Switches
+9x 1N4148 Diodes
+8x SK6812 Mini LED
+8x Keycaps
+1x Rotary Encoder with push button
+1x 0.91" OLED Display (128x32)
+1x XIAO-RP2040 microcontroller
+4x M3x10mm screws
+1x Custom PCB
+1x 1kg spool of white filament from Amazon
+I will print my own case diff --git a/hackpads/blipyboard/cad/blipyboard_complete.step b/hackpads/blipyboard/cad/blipyboard_complete.step new file mode 100644 index 0000000000..a3b2f40781 --- /dev/null +++ b/hackpads/blipyboard/cad/blipyboard_complete.step @@ -0,0 +1,4630 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'blipyboard_complete.step', +/* time_stamp */ '2025-06-27T21:56:00-07:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v20.1', +/* originating_system */ 'Autodesk Translation Framework v14.10.0.0', +/* authorisation */ ''); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); +ENDSEC; + +DATA; +#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#13,#14, +#15),#4546); +#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#4552,#12); +#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#16,#17,#18),#4545); +#13=STYLED_ITEM('',(#4561),#16); +#14=STYLED_ITEM('',(#4561),#17); +#15=STYLED_ITEM('',(#4561),#18); +#16=MANIFOLD_SOLID_BREP('bottom',#2724); +#17=MANIFOLD_SOLID_BREP('plate',#2725); +#18=MANIFOLD_SOLID_BREP('top',#2726); +#19=FACE_BOUND('',#277,.T.); +#20=FACE_BOUND('',#278,.T.); +#21=FACE_BOUND('',#279,.T.); +#22=FACE_BOUND('',#280,.T.); +#23=FACE_BOUND('',#302,.T.); +#24=FACE_BOUND('',#303,.T.); +#25=FACE_BOUND('',#304,.T.); +#26=FACE_BOUND('',#305,.T.); +#27=FACE_BOUND('',#309,.T.); +#28=FACE_BOUND('',#310,.T.); +#29=FACE_BOUND('',#311,.T.); +#30=FACE_BOUND('',#312,.T.); +#31=FACE_BOUND('',#313,.T.); +#32=FACE_BOUND('',#314,.T.); +#33=FACE_BOUND('',#315,.T.); +#34=FACE_BOUND('',#316,.T.); +#35=FACE_BOUND('',#317,.T.); +#36=FACE_BOUND('',#318,.T.); +#37=FACE_BOUND('',#319,.T.); +#38=FACE_BOUND('',#320,.T.); +#39=FACE_BOUND('',#321,.T.); +#40=FACE_BOUND('',#322,.T.); +#41=FACE_BOUND('',#414,.T.); +#42=FACE_BOUND('',#415,.T.); +#43=FACE_BOUND('',#416,.T.); +#44=FACE_BOUND('',#417,.T.); +#45=FACE_BOUND('',#418,.T.); +#46=FACE_BOUND('',#419,.T.); +#47=FACE_BOUND('',#420,.T.); +#48=FACE_BOUND('',#421,.T.); +#49=FACE_BOUND('',#422,.T.); +#50=FACE_BOUND('',#423,.T.); +#51=FACE_BOUND('',#424,.T.); +#52=FACE_BOUND('',#425,.T.); +#53=FACE_BOUND('',#426,.T.); +#54=FACE_BOUND('',#427,.T.); +#55=FACE_BOUND('',#431,.T.); +#56=FACE_BOUND('',#432,.T.); +#57=FACE_BOUND('',#433,.T.); +#58=FACE_BOUND('',#434,.T.); +#59=FACE_BOUND('',#435,.T.); +#60=FACE_BOUND('',#451,.T.); +#61=FACE_BOUND('',#452,.T.); +#62=FACE_BOUND('',#453,.T.); +#63=FACE_BOUND('',#454,.T.); +#64=FACE_BOUND('',#455,.T.); +#65=PLANE('',#2731); +#66=PLANE('',#2739); +#67=PLANE('',#2744); +#68=PLANE('',#2747); +#69=PLANE('',#2748); +#70=PLANE('',#2749); +#71=PLANE('',#2750); +#72=PLANE('',#2751); +#73=PLANE('',#2752); +#74=PLANE('',#2753); +#75=PLANE('',#2754); +#76=PLANE('',#2755); +#77=PLANE('',#2756); +#78=PLANE('',#2765); +#79=PLANE('',#2766); +#80=PLANE('',#2770); +#81=PLANE('',#2771); +#82=PLANE('',#2817); +#83=PLANE('',#2822); +#84=PLANE('',#2833); +#85=PLANE('',#2836); +#86=PLANE('',#2839); +#87=PLANE('',#2842); +#88=PLANE('',#2845); +#89=PLANE('',#2848); +#90=PLANE('',#2851); +#91=PLANE('',#2854); +#92=PLANE('',#2857); +#93=PLANE('',#2860); +#94=PLANE('',#2863); +#95=PLANE('',#2866); +#96=PLANE('',#2869); +#97=PLANE('',#2872); +#98=PLANE('',#2875); +#99=PLANE('',#2878); +#100=PLANE('',#2881); +#101=PLANE('',#2884); +#102=PLANE('',#2887); +#103=PLANE('',#2890); +#104=PLANE('',#2893); +#105=PLANE('',#2896); +#106=PLANE('',#2899); +#107=PLANE('',#2902); +#108=PLANE('',#2905); +#109=PLANE('',#2908); +#110=PLANE('',#2911); +#111=PLANE('',#2914); +#112=PLANE('',#2917); +#113=PLANE('',#2920); +#114=PLANE('',#2923); +#115=PLANE('',#2926); +#116=PLANE('',#2929); +#117=PLANE('',#2932); +#118=PLANE('',#2935); +#119=PLANE('',#2938); +#120=PLANE('',#2939); +#121=PLANE('',#2940); +#122=PLANE('',#2941); +#123=PLANE('',#2942); +#124=PLANE('',#2943); +#125=PLANE('',#2944); +#126=PLANE('',#2945); +#127=PLANE('',#2946); +#128=PLANE('',#2947); +#129=PLANE('',#2948); +#130=PLANE('',#2952); +#131=PLANE('',#2953); +#132=PLANE('',#2963); +#133=PLANE('',#2966); +#134=PLANE('',#2975); +#135=PLANE('',#2976); +#136=PLANE('',#2977); +#137=PLANE('',#2978); +#138=PLANE('',#2981); +#139=PLANE('',#2982); +#140=FACE_OUTER_BOUND('',#275,.T.); +#141=FACE_OUTER_BOUND('',#276,.T.); +#142=FACE_OUTER_BOUND('',#281,.T.); +#143=FACE_OUTER_BOUND('',#282,.T.); +#144=FACE_OUTER_BOUND('',#283,.T.); +#145=FACE_OUTER_BOUND('',#284,.T.); +#146=FACE_OUTER_BOUND('',#285,.T.); +#147=FACE_OUTER_BOUND('',#286,.T.); +#148=FACE_OUTER_BOUND('',#287,.T.); +#149=FACE_OUTER_BOUND('',#288,.T.); +#150=FACE_OUTER_BOUND('',#289,.T.); +#151=FACE_OUTER_BOUND('',#290,.T.); +#152=FACE_OUTER_BOUND('',#291,.T.); +#153=FACE_OUTER_BOUND('',#292,.T.); +#154=FACE_OUTER_BOUND('',#293,.T.); +#155=FACE_OUTER_BOUND('',#294,.T.); +#156=FACE_OUTER_BOUND('',#295,.T.); +#157=FACE_OUTER_BOUND('',#296,.T.); +#158=FACE_OUTER_BOUND('',#297,.T.); +#159=FACE_OUTER_BOUND('',#298,.T.); +#160=FACE_OUTER_BOUND('',#299,.T.); +#161=FACE_OUTER_BOUND('',#300,.T.); +#162=FACE_OUTER_BOUND('',#301,.T.); +#163=FACE_OUTER_BOUND('',#306,.T.); +#164=FACE_OUTER_BOUND('',#307,.T.); +#165=FACE_OUTER_BOUND('',#308,.T.); +#166=FACE_OUTER_BOUND('',#323,.T.); +#167=FACE_OUTER_BOUND('',#324,.T.); +#168=FACE_OUTER_BOUND('',#325,.T.); +#169=FACE_OUTER_BOUND('',#326,.T.); +#170=FACE_OUTER_BOUND('',#327,.T.); +#171=FACE_OUTER_BOUND('',#328,.T.); +#172=FACE_OUTER_BOUND('',#329,.T.); +#173=FACE_OUTER_BOUND('',#330,.T.); +#174=FACE_OUTER_BOUND('',#331,.T.); +#175=FACE_OUTER_BOUND('',#332,.T.); +#176=FACE_OUTER_BOUND('',#333,.T.); +#177=FACE_OUTER_BOUND('',#334,.T.); +#178=FACE_OUTER_BOUND('',#335,.T.); +#179=FACE_OUTER_BOUND('',#336,.T.); +#180=FACE_OUTER_BOUND('',#337,.T.); +#181=FACE_OUTER_BOUND('',#338,.T.); +#182=FACE_OUTER_BOUND('',#339,.T.); +#183=FACE_OUTER_BOUND('',#340,.T.); +#184=FACE_OUTER_BOUND('',#341,.T.); +#185=FACE_OUTER_BOUND('',#342,.T.); +#186=FACE_OUTER_BOUND('',#343,.T.); +#187=FACE_OUTER_BOUND('',#344,.T.); +#188=FACE_OUTER_BOUND('',#345,.T.); +#189=FACE_OUTER_BOUND('',#346,.T.); +#190=FACE_OUTER_BOUND('',#347,.T.); +#191=FACE_OUTER_BOUND('',#348,.T.); +#192=FACE_OUTER_BOUND('',#349,.T.); +#193=FACE_OUTER_BOUND('',#350,.T.); +#194=FACE_OUTER_BOUND('',#351,.T.); +#195=FACE_OUTER_BOUND('',#352,.T.); +#196=FACE_OUTER_BOUND('',#353,.T.); +#197=FACE_OUTER_BOUND('',#354,.T.); +#198=FACE_OUTER_BOUND('',#355,.T.); +#199=FACE_OUTER_BOUND('',#356,.T.); +#200=FACE_OUTER_BOUND('',#357,.T.); +#201=FACE_OUTER_BOUND('',#358,.T.); +#202=FACE_OUTER_BOUND('',#359,.T.); +#203=FACE_OUTER_BOUND('',#360,.T.); +#204=FACE_OUTER_BOUND('',#361,.T.); +#205=FACE_OUTER_BOUND('',#362,.T.); +#206=FACE_OUTER_BOUND('',#363,.T.); +#207=FACE_OUTER_BOUND('',#364,.T.); +#208=FACE_OUTER_BOUND('',#365,.T.); +#209=FACE_OUTER_BOUND('',#366,.T.); +#210=FACE_OUTER_BOUND('',#367,.T.); +#211=FACE_OUTER_BOUND('',#368,.T.); +#212=FACE_OUTER_BOUND('',#369,.T.); +#213=FACE_OUTER_BOUND('',#370,.T.); +#214=FACE_OUTER_BOUND('',#371,.T.); +#215=FACE_OUTER_BOUND('',#372,.T.); +#216=FACE_OUTER_BOUND('',#373,.T.); +#217=FACE_OUTER_BOUND('',#374,.T.); +#218=FACE_OUTER_BOUND('',#375,.T.); +#219=FACE_OUTER_BOUND('',#376,.T.); +#220=FACE_OUTER_BOUND('',#377,.T.); +#221=FACE_OUTER_BOUND('',#378,.T.); +#222=FACE_OUTER_BOUND('',#379,.T.); +#223=FACE_OUTER_BOUND('',#380,.T.); +#224=FACE_OUTER_BOUND('',#381,.T.); +#225=FACE_OUTER_BOUND('',#382,.T.); +#226=FACE_OUTER_BOUND('',#383,.T.); +#227=FACE_OUTER_BOUND('',#384,.T.); +#228=FACE_OUTER_BOUND('',#385,.T.); +#229=FACE_OUTER_BOUND('',#386,.T.); +#230=FACE_OUTER_BOUND('',#387,.T.); +#231=FACE_OUTER_BOUND('',#388,.T.); +#232=FACE_OUTER_BOUND('',#389,.T.); +#233=FACE_OUTER_BOUND('',#390,.T.); +#234=FACE_OUTER_BOUND('',#391,.T.); +#235=FACE_OUTER_BOUND('',#392,.T.); +#236=FACE_OUTER_BOUND('',#393,.T.); +#237=FACE_OUTER_BOUND('',#394,.T.); +#238=FACE_OUTER_BOUND('',#395,.T.); +#239=FACE_OUTER_BOUND('',#396,.T.); +#240=FACE_OUTER_BOUND('',#397,.T.); +#241=FACE_OUTER_BOUND('',#398,.T.); +#242=FACE_OUTER_BOUND('',#399,.T.); +#243=FACE_OUTER_BOUND('',#400,.T.); +#244=FACE_OUTER_BOUND('',#401,.T.); +#245=FACE_OUTER_BOUND('',#402,.T.); +#246=FACE_OUTER_BOUND('',#403,.T.); +#247=FACE_OUTER_BOUND('',#404,.T.); +#248=FACE_OUTER_BOUND('',#405,.T.); +#249=FACE_OUTER_BOUND('',#406,.T.); +#250=FACE_OUTER_BOUND('',#407,.T.); +#251=FACE_OUTER_BOUND('',#408,.T.); +#252=FACE_OUTER_BOUND('',#409,.T.); +#253=FACE_OUTER_BOUND('',#410,.T.); +#254=FACE_OUTER_BOUND('',#411,.T.); +#255=FACE_OUTER_BOUND('',#412,.T.); +#256=FACE_OUTER_BOUND('',#413,.T.); +#257=FACE_OUTER_BOUND('',#428,.T.); +#258=FACE_OUTER_BOUND('',#429,.T.); +#259=FACE_OUTER_BOUND('',#430,.T.); +#260=FACE_OUTER_BOUND('',#436,.T.); +#261=FACE_OUTER_BOUND('',#437,.T.); +#262=FACE_OUTER_BOUND('',#438,.T.); +#263=FACE_OUTER_BOUND('',#439,.T.); +#264=FACE_OUTER_BOUND('',#440,.T.); +#265=FACE_OUTER_BOUND('',#441,.T.); +#266=FACE_OUTER_BOUND('',#442,.T.); +#267=FACE_OUTER_BOUND('',#443,.T.); +#268=FACE_OUTER_BOUND('',#444,.T.); +#269=FACE_OUTER_BOUND('',#445,.T.); +#270=FACE_OUTER_BOUND('',#446,.T.); +#271=FACE_OUTER_BOUND('',#447,.T.); +#272=FACE_OUTER_BOUND('',#448,.T.); +#273=FACE_OUTER_BOUND('',#449,.T.); +#274=FACE_OUTER_BOUND('',#450,.T.); +#275=EDGE_LOOP('',(#1755,#1756,#1757,#1758)); +#276=EDGE_LOOP('',(#1759,#1760,#1761,#1762,#1763,#1764,#1765,#1766,#1767, +#1768,#1769,#1770,#1771,#1772,#1773,#1774,#1775)); +#277=EDGE_LOOP('',(#1776)); +#278=EDGE_LOOP('',(#1777)); +#279=EDGE_LOOP('',(#1778)); +#280=EDGE_LOOP('',(#1779)); +#281=EDGE_LOOP('',(#1780,#1781,#1782,#1783)); +#282=EDGE_LOOP('',(#1784,#1785,#1786,#1787)); +#283=EDGE_LOOP('',(#1788,#1789,#1790,#1791)); +#284=EDGE_LOOP('',(#1792,#1793,#1794,#1795)); +#285=EDGE_LOOP('',(#1796,#1797,#1798,#1799)); +#286=EDGE_LOOP('',(#1800,#1801,#1802,#1803,#1804,#1805,#1806,#1807)); +#287=EDGE_LOOP('',(#1808,#1809,#1810,#1811)); +#288=EDGE_LOOP('',(#1812,#1813,#1814,#1815)); +#289=EDGE_LOOP('',(#1816,#1817,#1818,#1819)); +#290=EDGE_LOOP('',(#1820,#1821,#1822,#1823)); +#291=EDGE_LOOP('',(#1824,#1825,#1826,#1827,#1828)); +#292=EDGE_LOOP('',(#1829,#1830,#1831,#1832)); +#293=EDGE_LOOP('',(#1833,#1834,#1835,#1836)); +#294=EDGE_LOOP('',(#1837,#1838,#1839,#1840,#1841,#1842,#1843,#1844)); +#295=EDGE_LOOP('',(#1845,#1846,#1847,#1848)); +#296=EDGE_LOOP('',(#1849,#1850,#1851,#1852)); +#297=EDGE_LOOP('',(#1853,#1854,#1855,#1856)); +#298=EDGE_LOOP('',(#1857,#1858,#1859,#1860)); +#299=EDGE_LOOP('',(#1861,#1862,#1863,#1864)); +#300=EDGE_LOOP('',(#1865,#1866,#1867,#1868)); +#301=EDGE_LOOP('',(#1869,#1870,#1871,#1872,#1873,#1874,#1875,#1876)); +#302=EDGE_LOOP('',(#1877)); +#303=EDGE_LOOP('',(#1878)); +#304=EDGE_LOOP('',(#1879)); +#305=EDGE_LOOP('',(#1880)); +#306=EDGE_LOOP('',(#1881,#1882,#1883,#1884)); +#307=EDGE_LOOP('',(#1885,#1886,#1887,#1888)); +#308=EDGE_LOOP('',(#1889,#1890,#1891,#1892,#1893,#1894,#1895,#1896,#1897, +#1898,#1899,#1900)); +#309=EDGE_LOOP('',(#1901,#1902,#1903,#1904)); +#310=EDGE_LOOP('',(#1905,#1906,#1907,#1908,#1909,#1910,#1911,#1912)); +#311=EDGE_LOOP('',(#1913,#1914,#1915,#1916,#1917,#1918,#1919,#1920)); +#312=EDGE_LOOP('',(#1921,#1922,#1923,#1924,#1925,#1926,#1927,#1928)); +#313=EDGE_LOOP('',(#1929,#1930,#1931,#1932,#1933,#1934,#1935,#1936)); +#314=EDGE_LOOP('',(#1937,#1938,#1939,#1940,#1941,#1942,#1943,#1944)); +#315=EDGE_LOOP('',(#1945,#1946,#1947,#1948,#1949,#1950,#1951,#1952)); +#316=EDGE_LOOP('',(#1953,#1954,#1955,#1956,#1957,#1958,#1959,#1960)); +#317=EDGE_LOOP('',(#1961,#1962,#1963,#1964,#1965,#1966,#1967,#1968)); +#318=EDGE_LOOP('',(#1969,#1970,#1971,#1972,#1973,#1974,#1975,#1976)); +#319=EDGE_LOOP('',(#1977)); +#320=EDGE_LOOP('',(#1978)); +#321=EDGE_LOOP('',(#1979)); +#322=EDGE_LOOP('',(#1980)); +#323=EDGE_LOOP('',(#1981,#1982,#1983,#1984)); +#324=EDGE_LOOP('',(#1985,#1986,#1987,#1988)); +#325=EDGE_LOOP('',(#1989,#1990,#1991,#1992)); +#326=EDGE_LOOP('',(#1993,#1994,#1995,#1996)); +#327=EDGE_LOOP('',(#1997,#1998,#1999,#2000)); +#328=EDGE_LOOP('',(#2001,#2002,#2003,#2004)); +#329=EDGE_LOOP('',(#2005,#2006,#2007,#2008)); +#330=EDGE_LOOP('',(#2009,#2010,#2011,#2012)); +#331=EDGE_LOOP('',(#2013,#2014,#2015,#2016)); +#332=EDGE_LOOP('',(#2017,#2018,#2019,#2020)); +#333=EDGE_LOOP('',(#2021,#2022,#2023,#2024)); +#334=EDGE_LOOP('',(#2025,#2026,#2027,#2028)); +#335=EDGE_LOOP('',(#2029,#2030,#2031,#2032)); +#336=EDGE_LOOP('',(#2033,#2034,#2035,#2036)); +#337=EDGE_LOOP('',(#2037,#2038,#2039,#2040)); +#338=EDGE_LOOP('',(#2041,#2042,#2043,#2044)); +#339=EDGE_LOOP('',(#2045,#2046,#2047,#2048)); +#340=EDGE_LOOP('',(#2049,#2050,#2051,#2052)); +#341=EDGE_LOOP('',(#2053,#2054,#2055,#2056)); +#342=EDGE_LOOP('',(#2057,#2058,#2059,#2060)); +#343=EDGE_LOOP('',(#2061,#2062,#2063,#2064)); +#344=EDGE_LOOP('',(#2065,#2066,#2067,#2068)); +#345=EDGE_LOOP('',(#2069,#2070,#2071,#2072)); +#346=EDGE_LOOP('',(#2073,#2074,#2075,#2076)); +#347=EDGE_LOOP('',(#2077,#2078,#2079,#2080)); +#348=EDGE_LOOP('',(#2081,#2082,#2083,#2084)); +#349=EDGE_LOOP('',(#2085,#2086,#2087,#2088)); +#350=EDGE_LOOP('',(#2089,#2090,#2091,#2092)); +#351=EDGE_LOOP('',(#2093,#2094,#2095,#2096)); +#352=EDGE_LOOP('',(#2097,#2098,#2099,#2100)); +#353=EDGE_LOOP('',(#2101,#2102,#2103,#2104)); +#354=EDGE_LOOP('',(#2105,#2106,#2107,#2108)); +#355=EDGE_LOOP('',(#2109,#2110,#2111,#2112)); +#356=EDGE_LOOP('',(#2113,#2114,#2115,#2116)); +#357=EDGE_LOOP('',(#2117,#2118,#2119,#2120)); +#358=EDGE_LOOP('',(#2121,#2122,#2123,#2124)); +#359=EDGE_LOOP('',(#2125,#2126,#2127,#2128)); +#360=EDGE_LOOP('',(#2129,#2130,#2131,#2132)); +#361=EDGE_LOOP('',(#2133,#2134,#2135,#2136)); +#362=EDGE_LOOP('',(#2137,#2138,#2139,#2140)); +#363=EDGE_LOOP('',(#2141,#2142,#2143,#2144)); +#364=EDGE_LOOP('',(#2145,#2146,#2147,#2148)); +#365=EDGE_LOOP('',(#2149,#2150,#2151,#2152)); +#366=EDGE_LOOP('',(#2153,#2154,#2155,#2156)); +#367=EDGE_LOOP('',(#2157,#2158,#2159,#2160)); +#368=EDGE_LOOP('',(#2161,#2162,#2163,#2164)); +#369=EDGE_LOOP('',(#2165,#2166,#2167,#2168)); +#370=EDGE_LOOP('',(#2169,#2170,#2171,#2172)); +#371=EDGE_LOOP('',(#2173,#2174,#2175,#2176)); +#372=EDGE_LOOP('',(#2177,#2178,#2179,#2180)); +#373=EDGE_LOOP('',(#2181,#2182,#2183,#2184)); +#374=EDGE_LOOP('',(#2185,#2186,#2187,#2188)); +#375=EDGE_LOOP('',(#2189,#2190,#2191,#2192)); +#376=EDGE_LOOP('',(#2193,#2194,#2195,#2196)); +#377=EDGE_LOOP('',(#2197,#2198,#2199,#2200)); +#378=EDGE_LOOP('',(#2201,#2202,#2203,#2204)); +#379=EDGE_LOOP('',(#2205,#2206,#2207,#2208)); +#380=EDGE_LOOP('',(#2209,#2210,#2211,#2212)); +#381=EDGE_LOOP('',(#2213,#2214,#2215,#2216)); +#382=EDGE_LOOP('',(#2217,#2218,#2219,#2220)); +#383=EDGE_LOOP('',(#2221,#2222,#2223,#2224)); +#384=EDGE_LOOP('',(#2225,#2226,#2227,#2228)); +#385=EDGE_LOOP('',(#2229,#2230,#2231,#2232)); +#386=EDGE_LOOP('',(#2233,#2234,#2235,#2236)); +#387=EDGE_LOOP('',(#2237,#2238,#2239,#2240)); +#388=EDGE_LOOP('',(#2241,#2242,#2243,#2244)); +#389=EDGE_LOOP('',(#2245,#2246,#2247,#2248)); +#390=EDGE_LOOP('',(#2249,#2250,#2251,#2252)); +#391=EDGE_LOOP('',(#2253,#2254,#2255,#2256)); +#392=EDGE_LOOP('',(#2257,#2258,#2259,#2260)); +#393=EDGE_LOOP('',(#2261,#2262,#2263,#2264)); +#394=EDGE_LOOP('',(#2265,#2266,#2267,#2268)); +#395=EDGE_LOOP('',(#2269,#2270,#2271,#2272)); +#396=EDGE_LOOP('',(#2273,#2274,#2275,#2276)); +#397=EDGE_LOOP('',(#2277,#2278,#2279,#2280)); +#398=EDGE_LOOP('',(#2281,#2282,#2283,#2284)); +#399=EDGE_LOOP('',(#2285,#2286,#2287,#2288)); +#400=EDGE_LOOP('',(#2289,#2290,#2291,#2292)); +#401=EDGE_LOOP('',(#2293,#2294,#2295,#2296)); +#402=EDGE_LOOP('',(#2297,#2298,#2299,#2300)); +#403=EDGE_LOOP('',(#2301,#2302,#2303,#2304)); +#404=EDGE_LOOP('',(#2305,#2306,#2307,#2308)); +#405=EDGE_LOOP('',(#2309,#2310,#2311,#2312)); +#406=EDGE_LOOP('',(#2313,#2314,#2315,#2316)); +#407=EDGE_LOOP('',(#2317,#2318,#2319,#2320)); +#408=EDGE_LOOP('',(#2321,#2322,#2323,#2324)); +#409=EDGE_LOOP('',(#2325,#2326,#2327,#2328)); +#410=EDGE_LOOP('',(#2329,#2330,#2331,#2332)); +#411=EDGE_LOOP('',(#2333,#2334,#2335,#2336)); +#412=EDGE_LOOP('',(#2337,#2338,#2339,#2340)); +#413=EDGE_LOOP('',(#2341,#2342,#2343,#2344,#2345,#2346,#2347,#2348,#2349, +#2350,#2351,#2352)); +#414=EDGE_LOOP('',(#2353,#2354,#2355,#2356)); +#415=EDGE_LOOP('',(#2357,#2358,#2359,#2360,#2361,#2362,#2363,#2364)); +#416=EDGE_LOOP('',(#2365,#2366,#2367,#2368,#2369,#2370,#2371,#2372)); +#417=EDGE_LOOP('',(#2373,#2374,#2375,#2376,#2377,#2378,#2379,#2380)); +#418=EDGE_LOOP('',(#2381,#2382,#2383,#2384,#2385,#2386,#2387,#2388)); +#419=EDGE_LOOP('',(#2389,#2390,#2391,#2392,#2393,#2394,#2395,#2396)); +#420=EDGE_LOOP('',(#2397,#2398,#2399,#2400,#2401,#2402,#2403,#2404)); +#421=EDGE_LOOP('',(#2405,#2406,#2407,#2408,#2409,#2410,#2411,#2412)); +#422=EDGE_LOOP('',(#2413,#2414,#2415,#2416,#2417,#2418,#2419,#2420)); +#423=EDGE_LOOP('',(#2421,#2422,#2423,#2424,#2425,#2426,#2427,#2428)); +#424=EDGE_LOOP('',(#2429)); +#425=EDGE_LOOP('',(#2430)); +#426=EDGE_LOOP('',(#2431)); +#427=EDGE_LOOP('',(#2432)); +#428=EDGE_LOOP('',(#2433,#2434,#2435,#2436)); +#429=EDGE_LOOP('',(#2437,#2438,#2439,#2440)); +#430=EDGE_LOOP('',(#2441,#2442,#2443,#2444,#2445,#2446,#2447,#2448)); +#431=EDGE_LOOP('',(#2449)); +#432=EDGE_LOOP('',(#2450,#2451,#2452,#2453)); +#433=EDGE_LOOP('',(#2454)); +#434=EDGE_LOOP('',(#2455)); +#435=EDGE_LOOP('',(#2456)); +#436=EDGE_LOOP('',(#2457,#2458,#2459,#2460)); +#437=EDGE_LOOP('',(#2461,#2462,#2463,#2464)); +#438=EDGE_LOOP('',(#2465,#2466,#2467,#2468)); +#439=EDGE_LOOP('',(#2469,#2470,#2471,#2472)); +#440=EDGE_LOOP('',(#2473,#2474,#2475,#2476)); +#441=EDGE_LOOP('',(#2477,#2478,#2479,#2480)); +#442=EDGE_LOOP('',(#2481,#2482,#2483,#2484)); +#443=EDGE_LOOP('',(#2485,#2486,#2487,#2488)); +#444=EDGE_LOOP('',(#2489,#2490,#2491,#2492)); +#445=EDGE_LOOP('',(#2493,#2494,#2495,#2496)); +#446=EDGE_LOOP('',(#2497,#2498,#2499,#2500)); +#447=EDGE_LOOP('',(#2501,#2502,#2503,#2504)); +#448=EDGE_LOOP('',(#2505,#2506,#2507,#2508)); +#449=EDGE_LOOP('',(#2509,#2510,#2511,#2512)); +#450=EDGE_LOOP('',(#2513,#2514,#2515,#2516,#2517,#2518,#2519,#2520)); +#451=EDGE_LOOP('',(#2521)); +#452=EDGE_LOOP('',(#2522,#2523,#2524,#2525)); +#453=EDGE_LOOP('',(#2526)); +#454=EDGE_LOOP('',(#2527)); +#455=EDGE_LOOP('',(#2528)); +#456=LINE('',#3768,#723); +#457=LINE('',#3771,#724); +#458=LINE('',#3774,#725); +#459=LINE('',#3778,#726); +#460=LINE('',#3782,#727); +#461=LINE('',#3786,#728); +#462=LINE('',#3788,#729); +#463=LINE('',#3790,#730); +#464=LINE('',#3792,#731); +#465=LINE('',#3794,#732); +#466=LINE('',#3796,#733); +#467=LINE('',#3798,#734); +#468=LINE('',#3800,#735); +#469=LINE('',#3802,#736); +#470=LINE('',#3803,#737); +#471=LINE('',#3814,#738); +#472=LINE('',#3815,#739); +#473=LINE('',#3819,#740); +#474=LINE('',#3822,#741); +#475=LINE('',#3825,#742); +#476=LINE('',#3828,#743); +#477=LINE('',#3829,#744); +#478=LINE('',#3833,#745); +#479=LINE('',#3836,#746); +#480=LINE('',#3838,#747); +#481=LINE('',#3839,#748); +#482=LINE('',#3840,#749); +#483=LINE('',#3843,#750); +#484=LINE('',#3844,#751); +#485=LINE('',#3847,#752); +#486=LINE('',#3848,#753); +#487=LINE('',#3850,#754); +#488=LINE('',#3853,#755); +#489=LINE('',#3854,#756); +#490=LINE('',#3856,#757); +#491=LINE('',#3860,#758); +#492=LINE('',#3861,#759); +#493=LINE('',#3862,#760); +#494=LINE('',#3865,#761); +#495=LINE('',#3866,#762); +#496=LINE('',#3869,#763); +#497=LINE('',#3870,#764); +#498=LINE('',#3872,#765); +#499=LINE('',#3875,#766); +#500=LINE('',#3879,#767); +#501=LINE('',#3883,#768); +#502=LINE('',#3887,#769); +#503=LINE('',#3896,#770); +#504=LINE('',#3899,#771); +#505=LINE('',#3902,#772); +#506=LINE('',#3904,#773); +#507=LINE('',#3905,#774); +#508=LINE('',#3908,#775); +#509=LINE('',#3912,#776); +#510=LINE('',#3916,#777); +#511=LINE('',#3920,#778); +#512=LINE('',#3922,#779); +#513=LINE('',#3924,#780); +#514=LINE('',#3925,#781); +#515=LINE('',#3928,#782); +#516=LINE('',#3930,#783); +#517=LINE('',#3932,#784); +#518=LINE('',#3933,#785); +#519=LINE('',#3936,#786); +#520=LINE('',#3940,#787); +#521=LINE('',#3944,#788); +#522=LINE('',#3948,#789); +#523=LINE('',#3952,#790); +#524=LINE('',#3956,#791); +#525=LINE('',#3960,#792); +#526=LINE('',#3964,#793); +#527=LINE('',#3968,#794); +#528=LINE('',#3972,#795); +#529=LINE('',#3976,#796); +#530=LINE('',#3980,#797); +#531=LINE('',#3984,#798); +#532=LINE('',#3988,#799); +#533=LINE('',#3992,#800); +#534=LINE('',#3996,#801); +#535=LINE('',#4000,#802); +#536=LINE('',#4004,#803); +#537=LINE('',#4008,#804); +#538=LINE('',#4012,#805); +#539=LINE('',#4016,#806); +#540=LINE('',#4020,#807); +#541=LINE('',#4024,#808); +#542=LINE('',#4028,#809); +#543=LINE('',#4032,#810); +#544=LINE('',#4036,#811); +#545=LINE('',#4040,#812); +#546=LINE('',#4044,#813); +#547=LINE('',#4048,#814); +#548=LINE('',#4052,#815); +#549=LINE('',#4056,#816); +#550=LINE('',#4060,#817); +#551=LINE('',#4064,#818); +#552=LINE('',#4068,#819); +#553=LINE('',#4072,#820); +#554=LINE('',#4076,#821); +#555=LINE('',#4090,#822); +#556=LINE('',#4091,#823); +#557=LINE('',#4094,#824); +#558=LINE('',#4095,#825); +#559=LINE('',#4099,#826); +#560=LINE('',#4104,#827); +#561=LINE('',#4105,#828); +#562=LINE('',#4108,#829); +#563=LINE('',#4109,#830); +#564=LINE('',#4113,#831); +#565=LINE('',#4117,#832); +#566=LINE('',#4121,#833); +#567=LINE('',#4125,#834); +#568=LINE('',#4128,#835); +#569=LINE('',#4131,#836); +#570=LINE('',#4134,#837); +#571=LINE('',#4135,#838); +#572=LINE('',#4139,#839); +#573=LINE('',#4142,#840); +#574=LINE('',#4143,#841); +#575=LINE('',#4147,#842); +#576=LINE('',#4150,#843); +#577=LINE('',#4151,#844); +#578=LINE('',#4155,#845); +#579=LINE('',#4157,#846); +#580=LINE('',#4160,#847); +#581=LINE('',#4163,#848); +#582=LINE('',#4166,#849); +#583=LINE('',#4167,#850); +#584=LINE('',#4171,#851); +#585=LINE('',#4174,#852); +#586=LINE('',#4175,#853); +#587=LINE('',#4179,#854); +#588=LINE('',#4182,#855); +#589=LINE('',#4183,#856); +#590=LINE('',#4187,#857); +#591=LINE('',#4189,#858); +#592=LINE('',#4192,#859); +#593=LINE('',#4195,#860); +#594=LINE('',#4198,#861); +#595=LINE('',#4199,#862); +#596=LINE('',#4203,#863); +#597=LINE('',#4206,#864); +#598=LINE('',#4207,#865); +#599=LINE('',#4211,#866); +#600=LINE('',#4214,#867); +#601=LINE('',#4215,#868); +#602=LINE('',#4219,#869); +#603=LINE('',#4221,#870); +#604=LINE('',#4224,#871); +#605=LINE('',#4227,#872); +#606=LINE('',#4230,#873); +#607=LINE('',#4231,#874); +#608=LINE('',#4235,#875); +#609=LINE('',#4238,#876); +#610=LINE('',#4239,#877); +#611=LINE('',#4243,#878); +#612=LINE('',#4246,#879); +#613=LINE('',#4247,#880); +#614=LINE('',#4251,#881); +#615=LINE('',#4253,#882); +#616=LINE('',#4256,#883); +#617=LINE('',#4259,#884); +#618=LINE('',#4262,#885); +#619=LINE('',#4263,#886); +#620=LINE('',#4267,#887); +#621=LINE('',#4270,#888); +#622=LINE('',#4271,#889); +#623=LINE('',#4275,#890); +#624=LINE('',#4278,#891); +#625=LINE('',#4279,#892); +#626=LINE('',#4283,#893); +#627=LINE('',#4285,#894); +#628=LINE('',#4288,#895); +#629=LINE('',#4291,#896); +#630=LINE('',#4294,#897); +#631=LINE('',#4295,#898); +#632=LINE('',#4299,#899); +#633=LINE('',#4302,#900); +#634=LINE('',#4303,#901); +#635=LINE('',#4307,#902); +#636=LINE('',#4310,#903); +#637=LINE('',#4311,#904); +#638=LINE('',#4315,#905); +#639=LINE('',#4317,#906); +#640=LINE('',#4320,#907); +#641=LINE('',#4323,#908); +#642=LINE('',#4326,#909); +#643=LINE('',#4327,#910); +#644=LINE('',#4331,#911); +#645=LINE('',#4334,#912); +#646=LINE('',#4335,#913); +#647=LINE('',#4339,#914); +#648=LINE('',#4342,#915); +#649=LINE('',#4343,#916); +#650=LINE('',#4347,#917); +#651=LINE('',#4349,#918); +#652=LINE('',#4352,#919); +#653=LINE('',#4355,#920); +#654=LINE('',#4358,#921); +#655=LINE('',#4359,#922); +#656=LINE('',#4363,#923); +#657=LINE('',#4366,#924); +#658=LINE('',#4367,#925); +#659=LINE('',#4371,#926); +#660=LINE('',#4374,#927); +#661=LINE('',#4375,#928); +#662=LINE('',#4379,#929); +#663=LINE('',#4381,#930); +#664=LINE('',#4384,#931); +#665=LINE('',#4387,#932); +#666=LINE('',#4390,#933); +#667=LINE('',#4391,#934); +#668=LINE('',#4395,#935); +#669=LINE('',#4398,#936); +#670=LINE('',#4399,#937); +#671=LINE('',#4403,#938); +#672=LINE('',#4406,#939); +#673=LINE('',#4407,#940); +#674=LINE('',#4411,#941); +#675=LINE('',#4413,#942); +#676=LINE('',#4416,#943); +#677=LINE('',#4418,#944); +#678=LINE('',#4419,#945); +#679=LINE('',#4422,#946); +#680=LINE('',#4423,#947); +#681=LINE('',#4426,#948); +#682=LINE('',#4427,#949); +#683=LINE('',#4429,#950); +#684=LINE('',#4432,#951); +#685=LINE('',#4434,#952); +#686=LINE('',#4435,#953); +#687=LINE('',#4437,#954); +#688=LINE('',#4439,#955); +#689=LINE('',#4441,#956); +#690=LINE('',#4443,#957); +#691=LINE('',#4450,#958); +#692=LINE('',#4453,#959); +#693=LINE('',#4456,#960); +#694=LINE('',#4458,#961); +#695=LINE('',#4459,#962); +#696=LINE('',#4462,#963); +#697=LINE('',#4466,#964); +#698=LINE('',#4470,#965); +#699=LINE('',#4476,#966); +#700=LINE('',#4478,#967); +#701=LINE('',#4480,#968); +#702=LINE('',#4481,#969); +#703=LINE('',#4491,#970); +#704=LINE('',#4494,#971); +#705=LINE('',#4495,#972); +#706=LINE('',#4499,#973); +#707=LINE('',#4502,#974); +#708=LINE('',#4503,#975); +#709=LINE('',#4507,#976); +#710=LINE('',#4511,#977); +#711=LINE('',#4515,#978); +#712=LINE('',#4519,#979); +#713=LINE('',#4522,#980); +#714=LINE('',#4524,#981); +#715=LINE('',#4525,#982); +#716=LINE('',#4528,#983); +#717=LINE('',#4529,#984); +#718=LINE('',#4532,#985); +#719=LINE('',#4533,#986); +#720=LINE('',#4535,#987); +#721=LINE('',#4539,#988); +#722=LINE('',#4541,#989); +#723=VECTOR('',#2989,10.); +#724=VECTOR('',#2992,10.); +#725=VECTOR('',#2995,10.); +#726=VECTOR('',#2998,10.); +#727=VECTOR('',#3001,10.); +#728=VECTOR('',#3004,10.); +#729=VECTOR('',#3005,10.); +#730=VECTOR('',#3006,10.); +#731=VECTOR('',#3007,10.); +#732=VECTOR('',#3008,10.); +#733=VECTOR('',#3009,10.); +#734=VECTOR('',#3010,10.); +#735=VECTOR('',#3011,10.); +#736=VECTOR('',#3012,10.); +#737=VECTOR('',#3013,10.); +#738=VECTOR('',#3024,10.); +#739=VECTOR('',#3025,10.); +#740=VECTOR('',#3030,10.); +#741=VECTOR('',#3033,10.); +#742=VECTOR('',#3036,10.); +#743=VECTOR('',#3039,10.); +#744=VECTOR('',#3040,10.); +#745=VECTOR('',#3045,10.); +#746=VECTOR('',#3048,10.); +#747=VECTOR('',#3049,10.); +#748=VECTOR('',#3050,10.); +#749=VECTOR('',#3051,10.); +#750=VECTOR('',#3054,10.); +#751=VECTOR('',#3055,10.); +#752=VECTOR('',#3058,10.); +#753=VECTOR('',#3059,10.); +#754=VECTOR('',#3062,10.); +#755=VECTOR('',#3065,10.); +#756=VECTOR('',#3066,10.); +#757=VECTOR('',#3069,10.); +#758=VECTOR('',#3072,10.); +#759=VECTOR('',#3073,10.); +#760=VECTOR('',#3074,10.); +#761=VECTOR('',#3077,10.); +#762=VECTOR('',#3078,10.); +#763=VECTOR('',#3081,10.); +#764=VECTOR('',#3082,10.); +#765=VECTOR('',#3085,10.); +#766=VECTOR('',#3088,1.45); +#767=VECTOR('',#3093,1.45); +#768=VECTOR('',#3098,1.45); +#769=VECTOR('',#3103,1.45); +#770=VECTOR('',#3114,10.); +#771=VECTOR('',#3117,10.); +#772=VECTOR('',#3120,10.); +#773=VECTOR('',#3121,10.); +#774=VECTOR('',#3122,10.); +#775=VECTOR('',#3125,10.); +#776=VECTOR('',#3128,10.); +#777=VECTOR('',#3131,10.); +#778=VECTOR('',#3134,10.); +#779=VECTOR('',#3135,10.); +#780=VECTOR('',#3136,10.); +#781=VECTOR('',#3137,10.); +#782=VECTOR('',#3138,10.); +#783=VECTOR('',#3139,10.); +#784=VECTOR('',#3140,10.); +#785=VECTOR('',#3141,10.); +#786=VECTOR('',#3142,10.); +#787=VECTOR('',#3145,10.); +#788=VECTOR('',#3148,10.); +#789=VECTOR('',#3151,10.); +#790=VECTOR('',#3154,10.); +#791=VECTOR('',#3157,10.); +#792=VECTOR('',#3160,10.); +#793=VECTOR('',#3163,10.); +#794=VECTOR('',#3166,10.); +#795=VECTOR('',#3169,10.); +#796=VECTOR('',#3172,10.); +#797=VECTOR('',#3175,10.); +#798=VECTOR('',#3178,10.); +#799=VECTOR('',#3181,10.); +#800=VECTOR('',#3184,10.); +#801=VECTOR('',#3187,10.); +#802=VECTOR('',#3190,10.); +#803=VECTOR('',#3193,10.); +#804=VECTOR('',#3196,10.); +#805=VECTOR('',#3199,10.); +#806=VECTOR('',#3202,10.); +#807=VECTOR('',#3205,10.); +#808=VECTOR('',#3208,10.); +#809=VECTOR('',#3211,10.); +#810=VECTOR('',#3214,10.); +#811=VECTOR('',#3217,10.); +#812=VECTOR('',#3220,10.); +#813=VECTOR('',#3223,10.); +#814=VECTOR('',#3226,10.); +#815=VECTOR('',#3229,10.); +#816=VECTOR('',#3232,10.); +#817=VECTOR('',#3235,10.); +#818=VECTOR('',#3238,10.); +#819=VECTOR('',#3241,10.); +#820=VECTOR('',#3244,10.); +#821=VECTOR('',#3247,10.); +#822=VECTOR('',#3262,10.); +#823=VECTOR('',#3263,10.); +#824=VECTOR('',#3266,10.); +#825=VECTOR('',#3267,10.); +#826=VECTOR('',#3272,10.); +#827=VECTOR('',#3277,10.); +#828=VECTOR('',#3278,10.); +#829=VECTOR('',#3281,10.); +#830=VECTOR('',#3282,10.); +#831=VECTOR('',#3287,1.45); +#832=VECTOR('',#3292,1.45); +#833=VECTOR('',#3297,1.45); +#834=VECTOR('',#3302,1.45); +#835=VECTOR('',#3305,10.); +#836=VECTOR('',#3308,10.); +#837=VECTOR('',#3311,10.); +#838=VECTOR('',#3312,10.); +#839=VECTOR('',#3317,10.); +#840=VECTOR('',#3320,10.); +#841=VECTOR('',#3321,10.); +#842=VECTOR('',#3326,10.); +#843=VECTOR('',#3329,10.); +#844=VECTOR('',#3330,10.); +#845=VECTOR('',#3335,10.); +#846=VECTOR('',#3338,10.); +#847=VECTOR('',#3341,10.); +#848=VECTOR('',#3344,10.); +#849=VECTOR('',#3347,10.); +#850=VECTOR('',#3348,10.); +#851=VECTOR('',#3353,10.); +#852=VECTOR('',#3356,10.); +#853=VECTOR('',#3357,10.); +#854=VECTOR('',#3362,10.); +#855=VECTOR('',#3365,10.); +#856=VECTOR('',#3366,10.); +#857=VECTOR('',#3371,10.); +#858=VECTOR('',#3374,10.); +#859=VECTOR('',#3377,10.); +#860=VECTOR('',#3380,10.); +#861=VECTOR('',#3383,10.); +#862=VECTOR('',#3384,10.); +#863=VECTOR('',#3389,10.); +#864=VECTOR('',#3392,10.); +#865=VECTOR('',#3393,10.); +#866=VECTOR('',#3398,10.); +#867=VECTOR('',#3401,10.); +#868=VECTOR('',#3402,10.); +#869=VECTOR('',#3407,10.); +#870=VECTOR('',#3410,10.); +#871=VECTOR('',#3413,10.); +#872=VECTOR('',#3416,10.); +#873=VECTOR('',#3419,10.); +#874=VECTOR('',#3420,10.); +#875=VECTOR('',#3425,10.); +#876=VECTOR('',#3428,10.); +#877=VECTOR('',#3429,10.); +#878=VECTOR('',#3434,10.); +#879=VECTOR('',#3437,10.); +#880=VECTOR('',#3438,10.); +#881=VECTOR('',#3443,10.); +#882=VECTOR('',#3446,10.); +#883=VECTOR('',#3449,10.); +#884=VECTOR('',#3452,10.); +#885=VECTOR('',#3455,10.); +#886=VECTOR('',#3456,10.); +#887=VECTOR('',#3461,10.); +#888=VECTOR('',#3464,10.); +#889=VECTOR('',#3465,10.); +#890=VECTOR('',#3470,10.); +#891=VECTOR('',#3473,10.); +#892=VECTOR('',#3474,10.); +#893=VECTOR('',#3479,10.); +#894=VECTOR('',#3482,10.); +#895=VECTOR('',#3485,10.); +#896=VECTOR('',#3488,10.); +#897=VECTOR('',#3491,10.); +#898=VECTOR('',#3492,10.); +#899=VECTOR('',#3497,10.); +#900=VECTOR('',#3500,10.); +#901=VECTOR('',#3501,10.); +#902=VECTOR('',#3506,10.); +#903=VECTOR('',#3509,10.); +#904=VECTOR('',#3510,10.); +#905=VECTOR('',#3515,10.); +#906=VECTOR('',#3518,10.); +#907=VECTOR('',#3521,10.); +#908=VECTOR('',#3524,10.); +#909=VECTOR('',#3527,10.); +#910=VECTOR('',#3528,10.); +#911=VECTOR('',#3533,10.); +#912=VECTOR('',#3536,10.); +#913=VECTOR('',#3537,10.); +#914=VECTOR('',#3542,10.); +#915=VECTOR('',#3545,10.); +#916=VECTOR('',#3546,10.); +#917=VECTOR('',#3551,10.); +#918=VECTOR('',#3554,10.); +#919=VECTOR('',#3557,10.); +#920=VECTOR('',#3560,10.); +#921=VECTOR('',#3563,10.); +#922=VECTOR('',#3564,10.); +#923=VECTOR('',#3569,10.); +#924=VECTOR('',#3572,10.); +#925=VECTOR('',#3573,10.); +#926=VECTOR('',#3578,10.); +#927=VECTOR('',#3581,10.); +#928=VECTOR('',#3582,10.); +#929=VECTOR('',#3587,10.); +#930=VECTOR('',#3590,10.); +#931=VECTOR('',#3593,10.); +#932=VECTOR('',#3596,10.); +#933=VECTOR('',#3599,10.); +#934=VECTOR('',#3600,10.); +#935=VECTOR('',#3605,10.); +#936=VECTOR('',#3608,10.); +#937=VECTOR('',#3609,10.); +#938=VECTOR('',#3614,10.); +#939=VECTOR('',#3617,10.); +#940=VECTOR('',#3618,10.); +#941=VECTOR('',#3623,10.); +#942=VECTOR('',#3626,10.); +#943=VECTOR('',#3629,10.); +#944=VECTOR('',#3630,10.); +#945=VECTOR('',#3631,10.); +#946=VECTOR('',#3634,10.); +#947=VECTOR('',#3635,10.); +#948=VECTOR('',#3638,10.); +#949=VECTOR('',#3639,10.); +#950=VECTOR('',#3642,10.); +#951=VECTOR('',#3645,10.); +#952=VECTOR('',#3646,10.); +#953=VECTOR('',#3647,10.); +#954=VECTOR('',#3650,10.); +#955=VECTOR('',#3653,10.); +#956=VECTOR('',#3656,10.); +#957=VECTOR('',#3659,10.); +#958=VECTOR('',#3666,10.); +#959=VECTOR('',#3669,10.); +#960=VECTOR('',#3672,10.); +#961=VECTOR('',#3673,10.); +#962=VECTOR('',#3674,10.); +#963=VECTOR('',#3677,10.); +#964=VECTOR('',#3680,10.); +#965=VECTOR('',#3683,10.); +#966=VECTOR('',#3688,10.); +#967=VECTOR('',#3689,10.); +#968=VECTOR('',#3690,10.); +#969=VECTOR('',#3691,10.); +#970=VECTOR('',#3702,10.); +#971=VECTOR('',#3705,10.); +#972=VECTOR('',#3706,10.); +#973=VECTOR('',#3711,10.); +#974=VECTOR('',#3714,10.); +#975=VECTOR('',#3715,10.); +#976=VECTOR('',#3720,10.); +#977=VECTOR('',#3725,1.45); +#978=VECTOR('',#3730,1.45); +#979=VECTOR('',#3735,1.45); +#980=VECTOR('',#3738,10.); +#981=VECTOR('',#3739,10.); +#982=VECTOR('',#3740,10.); +#983=VECTOR('',#3743,10.); +#984=VECTOR('',#3744,10.); +#985=VECTOR('',#3747,10.); +#986=VECTOR('',#3748,10.); +#987=VECTOR('',#3751,10.); +#988=VECTOR('',#3756,1.45); +#989=VECTOR('',#3759,10.); +#990=CIRCLE('',#2729,5.); +#991=CIRCLE('',#2730,5.); +#992=CIRCLE('',#2732,5.); +#993=CIRCLE('',#2733,5.); +#994=CIRCLE('',#2734,5.); +#995=CIRCLE('',#2735,1.45); +#996=CIRCLE('',#2736,1.45); +#997=CIRCLE('',#2737,1.45); +#998=CIRCLE('',#2738,1.45); +#999=CIRCLE('',#2741,5.); +#1000=CIRCLE('',#2743,5.); +#1001=CIRCLE('',#2746,5.); +#1002=CIRCLE('',#2758,1.45); +#1003=CIRCLE('',#2760,1.45); +#1004=CIRCLE('',#2762,1.45); +#1005=CIRCLE('',#2764,1.45); +#1006=CIRCLE('',#2768,5.); +#1007=CIRCLE('',#2769,5.); +#1008=CIRCLE('',#2772,5.); +#1009=CIRCLE('',#2773,5.); +#1010=CIRCLE('',#2774,5.); +#1011=CIRCLE('',#2775,0.499999999999998); +#1012=CIRCLE('',#2776,0.499999999999998); +#1013=CIRCLE('',#2777,0.499999999999998); +#1014=CIRCLE('',#2778,0.499999999999989); +#1015=CIRCLE('',#2779,0.499999999999998); +#1016=CIRCLE('',#2780,0.499999999999998); +#1017=CIRCLE('',#2781,0.499999999999998); +#1018=CIRCLE('',#2782,0.499999999999998); +#1019=CIRCLE('',#2783,0.499999999999998); +#1020=CIRCLE('',#2784,0.499999999999998); +#1021=CIRCLE('',#2785,0.499999999999998); +#1022=CIRCLE('',#2786,0.499999999999998); +#1023=CIRCLE('',#2787,0.500000000000003); +#1024=CIRCLE('',#2788,0.5); +#1025=CIRCLE('',#2789,0.499999999999998); +#1026=CIRCLE('',#2790,0.499999999999998); +#1027=CIRCLE('',#2791,0.500000000000003); +#1028=CIRCLE('',#2792,0.499999999999998); +#1029=CIRCLE('',#2793,0.499999999999998); +#1030=CIRCLE('',#2794,0.499999999999989); +#1031=CIRCLE('',#2795,0.500000000000003); +#1032=CIRCLE('',#2796,0.499999999999998); +#1033=CIRCLE('',#2797,0.499999999999998); +#1034=CIRCLE('',#2798,0.499999999999998); +#1035=CIRCLE('',#2799,0.499999999999998); +#1036=CIRCLE('',#2800,0.5); +#1037=CIRCLE('',#2801,0.499999999999998); +#1038=CIRCLE('',#2802,0.499999999999998); +#1039=CIRCLE('',#2803,0.500000000000003); +#1040=CIRCLE('',#2804,0.499999999999998); +#1041=CIRCLE('',#2805,0.499999999999998); +#1042=CIRCLE('',#2806,0.499999999999998); +#1043=CIRCLE('',#2807,0.499999999999998); +#1044=CIRCLE('',#2808,0.499999999999998); +#1045=CIRCLE('',#2809,0.499999999999998); +#1046=CIRCLE('',#2810,0.499999999999989); +#1047=CIRCLE('',#2811,1.45); +#1048=CIRCLE('',#2812,1.45); +#1049=CIRCLE('',#2813,1.45); +#1050=CIRCLE('',#2814,1.45); +#1051=CIRCLE('',#2816,5.); +#1052=CIRCLE('',#2819,5.); +#1053=CIRCLE('',#2821,5.); +#1054=CIRCLE('',#2824,1.45); +#1055=CIRCLE('',#2826,1.45); +#1056=CIRCLE('',#2828,1.45); +#1057=CIRCLE('',#2830,1.45); +#1058=CIRCLE('',#2832,0.499999999999998); +#1059=CIRCLE('',#2835,0.499999999999998); +#1060=CIRCLE('',#2838,0.499999999999998); +#1061=CIRCLE('',#2841,0.499999999999989); +#1062=CIRCLE('',#2844,0.500000000000003); +#1063=CIRCLE('',#2847,0.499999999999998); +#1064=CIRCLE('',#2850,0.499999999999998); +#1065=CIRCLE('',#2853,0.499999999999998); +#1066=CIRCLE('',#2856,0.499999999999998); +#1067=CIRCLE('',#2859,0.5); +#1068=CIRCLE('',#2862,0.499999999999998); +#1069=CIRCLE('',#2865,0.499999999999998); +#1070=CIRCLE('',#2868,0.500000000000003); +#1071=CIRCLE('',#2871,0.499999999999998); +#1072=CIRCLE('',#2874,0.499999999999998); +#1073=CIRCLE('',#2877,0.499999999999998); +#1074=CIRCLE('',#2880,0.500000000000003); +#1075=CIRCLE('',#2883,0.499999999999998); +#1076=CIRCLE('',#2886,0.499999999999998); +#1077=CIRCLE('',#2889,0.499999999999989); +#1078=CIRCLE('',#2892,0.500000000000003); +#1079=CIRCLE('',#2895,0.5); +#1080=CIRCLE('',#2898,0.499999999999998); +#1081=CIRCLE('',#2901,0.499999999999998); +#1082=CIRCLE('',#2904,0.499999999999998); +#1083=CIRCLE('',#2907,0.499999999999998); +#1084=CIRCLE('',#2910,0.499999999999998); +#1085=CIRCLE('',#2913,0.499999999999998); +#1086=CIRCLE('',#2916,0.499999999999998); +#1087=CIRCLE('',#2919,0.499999999999998); +#1088=CIRCLE('',#2922,0.499999999999998); +#1089=CIRCLE('',#2925,0.499999999999998); +#1090=CIRCLE('',#2928,0.499999999999998); +#1091=CIRCLE('',#2931,0.499999999999998); +#1092=CIRCLE('',#2934,0.499999999999998); +#1093=CIRCLE('',#2937,0.499999999999989); +#1094=CIRCLE('',#2950,5.); +#1095=CIRCLE('',#2951,5.); +#1096=CIRCLE('',#2954,5.); +#1097=CIRCLE('',#2955,5.); +#1098=CIRCLE('',#2956,5.); +#1099=CIRCLE('',#2957,1.45); +#1100=CIRCLE('',#2958,1.45); +#1101=CIRCLE('',#2959,1.45); +#1102=CIRCLE('',#2960,1.45); +#1103=CIRCLE('',#2962,5.); +#1104=CIRCLE('',#2965,5.); +#1105=CIRCLE('',#2968,5.); +#1106=CIRCLE('',#2970,1.45); +#1107=CIRCLE('',#2972,1.45); +#1108=CIRCLE('',#2974,1.45); +#1109=CIRCLE('',#2980,1.45); +#1110=VERTEX_POINT('',#3764); +#1111=VERTEX_POINT('',#3765); +#1112=VERTEX_POINT('',#3767); +#1113=VERTEX_POINT('',#3769); +#1114=VERTEX_POINT('',#3773); +#1115=VERTEX_POINT('',#3775); +#1116=VERTEX_POINT('',#3777); +#1117=VERTEX_POINT('',#3779); +#1118=VERTEX_POINT('',#3781); +#1119=VERTEX_POINT('',#3783); +#1120=VERTEX_POINT('',#3785); +#1121=VERTEX_POINT('',#3787); +#1122=VERTEX_POINT('',#3789); +#1123=VERTEX_POINT('',#3791); +#1124=VERTEX_POINT('',#3793); +#1125=VERTEX_POINT('',#3795); +#1126=VERTEX_POINT('',#3797); +#1127=VERTEX_POINT('',#3799); +#1128=VERTEX_POINT('',#3801); +#1129=VERTEX_POINT('',#3804); +#1130=VERTEX_POINT('',#3806); +#1131=VERTEX_POINT('',#3808); +#1132=VERTEX_POINT('',#3810); +#1133=VERTEX_POINT('',#3813); +#1134=VERTEX_POINT('',#3817); +#1135=VERTEX_POINT('',#3821); +#1136=VERTEX_POINT('',#3823); +#1137=VERTEX_POINT('',#3827); +#1138=VERTEX_POINT('',#3831); +#1139=VERTEX_POINT('',#3835); +#1140=VERTEX_POINT('',#3837); +#1141=VERTEX_POINT('',#3842); +#1142=VERTEX_POINT('',#3846); +#1143=VERTEX_POINT('',#3852); +#1144=VERTEX_POINT('',#3858); +#1145=VERTEX_POINT('',#3859); +#1146=VERTEX_POINT('',#3864); +#1147=VERTEX_POINT('',#3868); +#1148=VERTEX_POINT('',#3874); +#1149=VERTEX_POINT('',#3878); +#1150=VERTEX_POINT('',#3882); +#1151=VERTEX_POINT('',#3886); +#1152=VERTEX_POINT('',#3892); +#1153=VERTEX_POINT('',#3893); +#1154=VERTEX_POINT('',#3895); +#1155=VERTEX_POINT('',#3897); +#1156=VERTEX_POINT('',#3901); +#1157=VERTEX_POINT('',#3903); +#1158=VERTEX_POINT('',#3907); +#1159=VERTEX_POINT('',#3909); +#1160=VERTEX_POINT('',#3911); +#1161=VERTEX_POINT('',#3913); +#1162=VERTEX_POINT('',#3915); +#1163=VERTEX_POINT('',#3917); +#1164=VERTEX_POINT('',#3919); +#1165=VERTEX_POINT('',#3921); +#1166=VERTEX_POINT('',#3923); +#1167=VERTEX_POINT('',#3926); +#1168=VERTEX_POINT('',#3927); +#1169=VERTEX_POINT('',#3929); +#1170=VERTEX_POINT('',#3931); +#1171=VERTEX_POINT('',#3934); +#1172=VERTEX_POINT('',#3935); +#1173=VERTEX_POINT('',#3937); +#1174=VERTEX_POINT('',#3939); +#1175=VERTEX_POINT('',#3941); +#1176=VERTEX_POINT('',#3943); +#1177=VERTEX_POINT('',#3945); +#1178=VERTEX_POINT('',#3947); +#1179=VERTEX_POINT('',#3950); +#1180=VERTEX_POINT('',#3951); +#1181=VERTEX_POINT('',#3953); +#1182=VERTEX_POINT('',#3955); +#1183=VERTEX_POINT('',#3957); +#1184=VERTEX_POINT('',#3959); +#1185=VERTEX_POINT('',#3961); +#1186=VERTEX_POINT('',#3963); +#1187=VERTEX_POINT('',#3966); +#1188=VERTEX_POINT('',#3967); +#1189=VERTEX_POINT('',#3969); +#1190=VERTEX_POINT('',#3971); +#1191=VERTEX_POINT('',#3973); +#1192=VERTEX_POINT('',#3975); +#1193=VERTEX_POINT('',#3977); +#1194=VERTEX_POINT('',#3979); +#1195=VERTEX_POINT('',#3982); +#1196=VERTEX_POINT('',#3983); +#1197=VERTEX_POINT('',#3985); +#1198=VERTEX_POINT('',#3987); +#1199=VERTEX_POINT('',#3989); +#1200=VERTEX_POINT('',#3991); +#1201=VERTEX_POINT('',#3993); +#1202=VERTEX_POINT('',#3995); +#1203=VERTEX_POINT('',#3998); +#1204=VERTEX_POINT('',#3999); +#1205=VERTEX_POINT('',#4001); +#1206=VERTEX_POINT('',#4003); +#1207=VERTEX_POINT('',#4005); +#1208=VERTEX_POINT('',#4007); +#1209=VERTEX_POINT('',#4009); +#1210=VERTEX_POINT('',#4011); +#1211=VERTEX_POINT('',#4014); +#1212=VERTEX_POINT('',#4015); +#1213=VERTEX_POINT('',#4017); +#1214=VERTEX_POINT('',#4019); +#1215=VERTEX_POINT('',#4021); +#1216=VERTEX_POINT('',#4023); +#1217=VERTEX_POINT('',#4025); +#1218=VERTEX_POINT('',#4027); +#1219=VERTEX_POINT('',#4030); +#1220=VERTEX_POINT('',#4031); +#1221=VERTEX_POINT('',#4033); +#1222=VERTEX_POINT('',#4035); +#1223=VERTEX_POINT('',#4037); +#1224=VERTEX_POINT('',#4039); +#1225=VERTEX_POINT('',#4041); +#1226=VERTEX_POINT('',#4043); +#1227=VERTEX_POINT('',#4046); +#1228=VERTEX_POINT('',#4047); +#1229=VERTEX_POINT('',#4049); +#1230=VERTEX_POINT('',#4051); +#1231=VERTEX_POINT('',#4053); +#1232=VERTEX_POINT('',#4055); +#1233=VERTEX_POINT('',#4057); +#1234=VERTEX_POINT('',#4059); +#1235=VERTEX_POINT('',#4062); +#1236=VERTEX_POINT('',#4063); +#1237=VERTEX_POINT('',#4065); +#1238=VERTEX_POINT('',#4067); +#1239=VERTEX_POINT('',#4069); +#1240=VERTEX_POINT('',#4071); +#1241=VERTEX_POINT('',#4073); +#1242=VERTEX_POINT('',#4075); +#1243=VERTEX_POINT('',#4078); +#1244=VERTEX_POINT('',#4080); +#1245=VERTEX_POINT('',#4082); +#1246=VERTEX_POINT('',#4084); +#1247=VERTEX_POINT('',#4087); +#1248=VERTEX_POINT('',#4088); +#1249=VERTEX_POINT('',#4093); +#1250=VERTEX_POINT('',#4097); +#1251=VERTEX_POINT('',#4101); +#1252=VERTEX_POINT('',#4102); +#1253=VERTEX_POINT('',#4107); +#1254=VERTEX_POINT('',#4111); +#1255=VERTEX_POINT('',#4115); +#1256=VERTEX_POINT('',#4119); +#1257=VERTEX_POINT('',#4123); +#1258=VERTEX_POINT('',#4127); +#1259=VERTEX_POINT('',#4129); +#1260=VERTEX_POINT('',#4133); +#1261=VERTEX_POINT('',#4137); +#1262=VERTEX_POINT('',#4141); +#1263=VERTEX_POINT('',#4145); +#1264=VERTEX_POINT('',#4149); +#1265=VERTEX_POINT('',#4153); +#1266=VERTEX_POINT('',#4159); +#1267=VERTEX_POINT('',#4161); +#1268=VERTEX_POINT('',#4165); +#1269=VERTEX_POINT('',#4169); +#1270=VERTEX_POINT('',#4173); +#1271=VERTEX_POINT('',#4177); +#1272=VERTEX_POINT('',#4181); +#1273=VERTEX_POINT('',#4185); +#1274=VERTEX_POINT('',#4191); +#1275=VERTEX_POINT('',#4193); +#1276=VERTEX_POINT('',#4197); +#1277=VERTEX_POINT('',#4201); +#1278=VERTEX_POINT('',#4205); +#1279=VERTEX_POINT('',#4209); +#1280=VERTEX_POINT('',#4213); +#1281=VERTEX_POINT('',#4217); +#1282=VERTEX_POINT('',#4223); +#1283=VERTEX_POINT('',#4225); +#1284=VERTEX_POINT('',#4229); +#1285=VERTEX_POINT('',#4233); +#1286=VERTEX_POINT('',#4237); +#1287=VERTEX_POINT('',#4241); +#1288=VERTEX_POINT('',#4245); +#1289=VERTEX_POINT('',#4249); +#1290=VERTEX_POINT('',#4255); +#1291=VERTEX_POINT('',#4257); +#1292=VERTEX_POINT('',#4261); +#1293=VERTEX_POINT('',#4265); +#1294=VERTEX_POINT('',#4269); +#1295=VERTEX_POINT('',#4273); +#1296=VERTEX_POINT('',#4277); +#1297=VERTEX_POINT('',#4281); +#1298=VERTEX_POINT('',#4287); +#1299=VERTEX_POINT('',#4289); +#1300=VERTEX_POINT('',#4293); +#1301=VERTEX_POINT('',#4297); +#1302=VERTEX_POINT('',#4301); +#1303=VERTEX_POINT('',#4305); +#1304=VERTEX_POINT('',#4309); +#1305=VERTEX_POINT('',#4313); +#1306=VERTEX_POINT('',#4319); +#1307=VERTEX_POINT('',#4321); +#1308=VERTEX_POINT('',#4325); +#1309=VERTEX_POINT('',#4329); +#1310=VERTEX_POINT('',#4333); +#1311=VERTEX_POINT('',#4337); +#1312=VERTEX_POINT('',#4341); +#1313=VERTEX_POINT('',#4345); +#1314=VERTEX_POINT('',#4351); +#1315=VERTEX_POINT('',#4353); +#1316=VERTEX_POINT('',#4357); +#1317=VERTEX_POINT('',#4361); +#1318=VERTEX_POINT('',#4365); +#1319=VERTEX_POINT('',#4369); +#1320=VERTEX_POINT('',#4373); +#1321=VERTEX_POINT('',#4377); +#1322=VERTEX_POINT('',#4383); +#1323=VERTEX_POINT('',#4385); +#1324=VERTEX_POINT('',#4389); +#1325=VERTEX_POINT('',#4393); +#1326=VERTEX_POINT('',#4397); +#1327=VERTEX_POINT('',#4401); +#1328=VERTEX_POINT('',#4405); +#1329=VERTEX_POINT('',#4409); +#1330=VERTEX_POINT('',#4415); +#1331=VERTEX_POINT('',#4417); +#1332=VERTEX_POINT('',#4421); +#1333=VERTEX_POINT('',#4425); +#1334=VERTEX_POINT('',#4431); +#1335=VERTEX_POINT('',#4433); +#1336=VERTEX_POINT('',#4446); +#1337=VERTEX_POINT('',#4447); +#1338=VERTEX_POINT('',#4449); +#1339=VERTEX_POINT('',#4451); +#1340=VERTEX_POINT('',#4455); +#1341=VERTEX_POINT('',#4457); +#1342=VERTEX_POINT('',#4461); +#1343=VERTEX_POINT('',#4463); +#1344=VERTEX_POINT('',#4465); +#1345=VERTEX_POINT('',#4467); +#1346=VERTEX_POINT('',#4469); +#1347=VERTEX_POINT('',#4472); +#1348=VERTEX_POINT('',#4474); +#1349=VERTEX_POINT('',#4475); +#1350=VERTEX_POINT('',#4477); +#1351=VERTEX_POINT('',#4479); +#1352=VERTEX_POINT('',#4482); +#1353=VERTEX_POINT('',#4484); +#1354=VERTEX_POINT('',#4486); +#1355=VERTEX_POINT('',#4489); +#1356=VERTEX_POINT('',#4493); +#1357=VERTEX_POINT('',#4497); +#1358=VERTEX_POINT('',#4501); +#1359=VERTEX_POINT('',#4505); +#1360=VERTEX_POINT('',#4509); +#1361=VERTEX_POINT('',#4513); +#1362=VERTEX_POINT('',#4517); +#1363=VERTEX_POINT('',#4521); +#1364=VERTEX_POINT('',#4523); +#1365=VERTEX_POINT('',#4527); +#1366=VERTEX_POINT('',#4531); +#1367=VERTEX_POINT('',#4537); +#1368=EDGE_CURVE('',#1110,#1111,#990,.T.); +#1369=EDGE_CURVE('',#1111,#1112,#456,.T.); +#1370=EDGE_CURVE('',#1112,#1113,#991,.T.); +#1371=EDGE_CURVE('',#1113,#1110,#457,.T.); +#1372=EDGE_CURVE('',#1114,#1110,#458,.T.); +#1373=EDGE_CURVE('',#1115,#1114,#992,.T.); +#1374=EDGE_CURVE('',#1116,#1115,#459,.T.); +#1375=EDGE_CURVE('',#1117,#1116,#993,.T.); +#1376=EDGE_CURVE('',#1118,#1117,#460,.T.); +#1377=EDGE_CURVE('',#1119,#1118,#994,.T.); +#1378=EDGE_CURVE('',#1120,#1119,#461,.T.); +#1379=EDGE_CURVE('',#1121,#1120,#462,.T.); +#1380=EDGE_CURVE('',#1121,#1122,#463,.T.); +#1381=EDGE_CURVE('',#1122,#1123,#464,.T.); +#1382=EDGE_CURVE('',#1123,#1124,#465,.T.); +#1383=EDGE_CURVE('',#1124,#1125,#466,.T.); +#1384=EDGE_CURVE('',#1125,#1126,#467,.T.); +#1385=EDGE_CURVE('',#1126,#1127,#468,.T.); +#1386=EDGE_CURVE('',#1128,#1127,#469,.T.); +#1387=EDGE_CURVE('',#1111,#1128,#470,.T.); +#1388=EDGE_CURVE('',#1129,#1129,#995,.T.); +#1389=EDGE_CURVE('',#1130,#1130,#996,.T.); +#1390=EDGE_CURVE('',#1131,#1131,#997,.T.); +#1391=EDGE_CURVE('',#1132,#1132,#998,.T.); +#1392=EDGE_CURVE('',#1113,#1133,#471,.T.); +#1393=EDGE_CURVE('',#1114,#1133,#472,.T.); +#1394=EDGE_CURVE('',#1133,#1134,#999,.T.); +#1395=EDGE_CURVE('',#1134,#1115,#473,.T.); +#1396=EDGE_CURVE('',#1116,#1135,#474,.T.); +#1397=EDGE_CURVE('',#1135,#1136,#1000,.T.); +#1398=EDGE_CURVE('',#1136,#1117,#475,.T.); +#1399=EDGE_CURVE('',#1136,#1137,#476,.T.); +#1400=EDGE_CURVE('',#1118,#1137,#477,.T.); +#1401=EDGE_CURVE('',#1137,#1138,#1001,.T.); +#1402=EDGE_CURVE('',#1138,#1119,#478,.T.); +#1403=EDGE_CURVE('',#1128,#1139,#479,.T.); +#1404=EDGE_CURVE('',#1140,#1139,#480,.T.); +#1405=EDGE_CURVE('',#1120,#1140,#481,.T.); +#1406=EDGE_CURVE('',#1138,#1112,#482,.T.); +#1407=EDGE_CURVE('',#1141,#1127,#483,.T.); +#1408=EDGE_CURVE('',#1141,#1139,#484,.T.); +#1409=EDGE_CURVE('',#1142,#1140,#485,.T.); +#1410=EDGE_CURVE('',#1142,#1121,#486,.T.); +#1411=EDGE_CURVE('',#1134,#1135,#487,.T.); +#1412=EDGE_CURVE('',#1122,#1143,#488,.T.); +#1413=EDGE_CURVE('',#1143,#1142,#489,.T.); +#1414=EDGE_CURVE('',#1143,#1141,#490,.T.); +#1415=EDGE_CURVE('',#1144,#1145,#491,.T.); +#1416=EDGE_CURVE('',#1144,#1124,#492,.T.); +#1417=EDGE_CURVE('',#1145,#1123,#493,.T.); +#1418=EDGE_CURVE('',#1146,#1144,#494,.T.); +#1419=EDGE_CURVE('',#1146,#1125,#495,.T.); +#1420=EDGE_CURVE('',#1147,#1126,#496,.T.); +#1421=EDGE_CURVE('',#1145,#1147,#497,.T.); +#1422=EDGE_CURVE('',#1147,#1146,#498,.T.); +#1423=EDGE_CURVE('',#1129,#1148,#499,.T.); +#1424=EDGE_CURVE('',#1148,#1148,#1002,.T.); +#1425=EDGE_CURVE('',#1130,#1149,#500,.T.); +#1426=EDGE_CURVE('',#1149,#1149,#1003,.T.); +#1427=EDGE_CURVE('',#1131,#1150,#501,.T.); +#1428=EDGE_CURVE('',#1150,#1150,#1004,.T.); +#1429=EDGE_CURVE('',#1132,#1151,#502,.T.); +#1430=EDGE_CURVE('',#1151,#1151,#1005,.T.); +#1431=EDGE_CURVE('',#1152,#1153,#1006,.T.); +#1432=EDGE_CURVE('',#1153,#1154,#503,.T.); +#1433=EDGE_CURVE('',#1154,#1155,#1007,.T.); +#1434=EDGE_CURVE('',#1155,#1152,#504,.T.); +#1435=EDGE_CURVE('',#1156,#1155,#505,.T.); +#1436=EDGE_CURVE('',#1156,#1157,#506,.T.); +#1437=EDGE_CURVE('',#1152,#1157,#507,.T.); +#1438=EDGE_CURVE('',#1154,#1158,#508,.T.); +#1439=EDGE_CURVE('',#1159,#1158,#1008,.T.); +#1440=EDGE_CURVE('',#1159,#1160,#509,.T.); +#1441=EDGE_CURVE('',#1161,#1160,#1009,.T.); +#1442=EDGE_CURVE('',#1161,#1162,#510,.T.); +#1443=EDGE_CURVE('',#1163,#1162,#1010,.T.); +#1444=EDGE_CURVE('',#1163,#1164,#511,.T.); +#1445=EDGE_CURVE('',#1164,#1165,#512,.T.); +#1446=EDGE_CURVE('',#1165,#1166,#513,.T.); +#1447=EDGE_CURVE('',#1166,#1156,#514,.T.); +#1448=EDGE_CURVE('',#1167,#1168,#515,.T.); +#1449=EDGE_CURVE('',#1168,#1169,#516,.T.); +#1450=EDGE_CURVE('',#1169,#1170,#517,.T.); +#1451=EDGE_CURVE('',#1170,#1167,#518,.T.); +#1452=EDGE_CURVE('',#1171,#1172,#519,.T.); +#1453=EDGE_CURVE('',#1172,#1173,#1011,.T.); +#1454=EDGE_CURVE('',#1173,#1174,#520,.T.); +#1455=EDGE_CURVE('',#1174,#1175,#1012,.T.); +#1456=EDGE_CURVE('',#1175,#1176,#521,.T.); +#1457=EDGE_CURVE('',#1176,#1177,#1013,.T.); +#1458=EDGE_CURVE('',#1177,#1178,#522,.T.); +#1459=EDGE_CURVE('',#1178,#1171,#1014,.T.); +#1460=EDGE_CURVE('',#1179,#1180,#523,.T.); +#1461=EDGE_CURVE('',#1180,#1181,#1015,.T.); +#1462=EDGE_CURVE('',#1181,#1182,#524,.T.); +#1463=EDGE_CURVE('',#1182,#1183,#1016,.T.); +#1464=EDGE_CURVE('',#1183,#1184,#525,.T.); +#1465=EDGE_CURVE('',#1184,#1185,#1017,.T.); +#1466=EDGE_CURVE('',#1185,#1186,#526,.T.); +#1467=EDGE_CURVE('',#1186,#1179,#1018,.T.); +#1468=EDGE_CURVE('',#1187,#1188,#527,.T.); +#1469=EDGE_CURVE('',#1188,#1189,#1019,.T.); +#1470=EDGE_CURVE('',#1189,#1190,#528,.T.); +#1471=EDGE_CURVE('',#1190,#1191,#1020,.T.); +#1472=EDGE_CURVE('',#1191,#1192,#529,.T.); +#1473=EDGE_CURVE('',#1192,#1193,#1021,.T.); +#1474=EDGE_CURVE('',#1193,#1194,#530,.T.); +#1475=EDGE_CURVE('',#1194,#1187,#1022,.T.); +#1476=EDGE_CURVE('',#1195,#1196,#531,.T.); +#1477=EDGE_CURVE('',#1196,#1197,#1023,.T.); +#1478=EDGE_CURVE('',#1197,#1198,#532,.T.); +#1479=EDGE_CURVE('',#1198,#1199,#1024,.T.); +#1480=EDGE_CURVE('',#1199,#1200,#533,.T.); +#1481=EDGE_CURVE('',#1200,#1201,#1025,.T.); +#1482=EDGE_CURVE('',#1201,#1202,#534,.T.); +#1483=EDGE_CURVE('',#1202,#1195,#1026,.T.); +#1484=EDGE_CURVE('',#1203,#1204,#535,.T.); +#1485=EDGE_CURVE('',#1204,#1205,#1027,.T.); +#1486=EDGE_CURVE('',#1205,#1206,#536,.T.); +#1487=EDGE_CURVE('',#1206,#1207,#1028,.T.); +#1488=EDGE_CURVE('',#1207,#1208,#537,.T.); +#1489=EDGE_CURVE('',#1208,#1209,#1029,.T.); +#1490=EDGE_CURVE('',#1209,#1210,#538,.T.); +#1491=EDGE_CURVE('',#1210,#1203,#1030,.T.); +#1492=EDGE_CURVE('',#1211,#1212,#539,.T.); +#1493=EDGE_CURVE('',#1212,#1213,#1031,.T.); +#1494=EDGE_CURVE('',#1213,#1214,#540,.T.); +#1495=EDGE_CURVE('',#1214,#1215,#1032,.T.); +#1496=EDGE_CURVE('',#1215,#1216,#541,.T.); +#1497=EDGE_CURVE('',#1216,#1217,#1033,.T.); +#1498=EDGE_CURVE('',#1217,#1218,#542,.T.); +#1499=EDGE_CURVE('',#1218,#1211,#1034,.T.); +#1500=EDGE_CURVE('',#1219,#1220,#543,.T.); +#1501=EDGE_CURVE('',#1220,#1221,#1035,.T.); +#1502=EDGE_CURVE('',#1221,#1222,#544,.T.); +#1503=EDGE_CURVE('',#1222,#1223,#1036,.T.); +#1504=EDGE_CURVE('',#1223,#1224,#545,.T.); +#1505=EDGE_CURVE('',#1224,#1225,#1037,.T.); +#1506=EDGE_CURVE('',#1225,#1226,#546,.T.); +#1507=EDGE_CURVE('',#1226,#1219,#1038,.T.); +#1508=EDGE_CURVE('',#1227,#1228,#547,.T.); +#1509=EDGE_CURVE('',#1228,#1229,#1039,.T.); +#1510=EDGE_CURVE('',#1229,#1230,#548,.T.); +#1511=EDGE_CURVE('',#1230,#1231,#1040,.T.); +#1512=EDGE_CURVE('',#1231,#1232,#549,.T.); +#1513=EDGE_CURVE('',#1232,#1233,#1041,.T.); +#1514=EDGE_CURVE('',#1233,#1234,#550,.T.); +#1515=EDGE_CURVE('',#1234,#1227,#1042,.T.); +#1516=EDGE_CURVE('',#1235,#1236,#551,.T.); +#1517=EDGE_CURVE('',#1236,#1237,#1043,.T.); +#1518=EDGE_CURVE('',#1237,#1238,#552,.T.); +#1519=EDGE_CURVE('',#1238,#1239,#1044,.T.); +#1520=EDGE_CURVE('',#1239,#1240,#553,.T.); +#1521=EDGE_CURVE('',#1240,#1241,#1045,.T.); +#1522=EDGE_CURVE('',#1241,#1242,#554,.T.); +#1523=EDGE_CURVE('',#1242,#1235,#1046,.T.); +#1524=EDGE_CURVE('',#1243,#1243,#1047,.T.); +#1525=EDGE_CURVE('',#1244,#1244,#1048,.T.); +#1526=EDGE_CURVE('',#1245,#1245,#1049,.T.); +#1527=EDGE_CURVE('',#1246,#1246,#1050,.T.); +#1528=EDGE_CURVE('',#1247,#1248,#1051,.T.); +#1529=EDGE_CURVE('',#1248,#1159,#555,.T.); +#1530=EDGE_CURVE('',#1158,#1247,#556,.T.); +#1531=EDGE_CURVE('',#1249,#1248,#557,.T.); +#1532=EDGE_CURVE('',#1160,#1249,#558,.T.); +#1533=EDGE_CURVE('',#1249,#1250,#1052,.T.); +#1534=EDGE_CURVE('',#1250,#1161,#559,.T.); +#1535=EDGE_CURVE('',#1251,#1252,#1053,.T.); +#1536=EDGE_CURVE('',#1252,#1163,#560,.T.); +#1537=EDGE_CURVE('',#1162,#1251,#561,.T.); +#1538=EDGE_CURVE('',#1253,#1252,#562,.T.); +#1539=EDGE_CURVE('',#1164,#1253,#563,.T.); +#1540=EDGE_CURVE('',#1254,#1254,#1054,.T.); +#1541=EDGE_CURVE('',#1254,#1246,#564,.T.); +#1542=EDGE_CURVE('',#1255,#1255,#1055,.T.); +#1543=EDGE_CURVE('',#1255,#1245,#565,.T.); +#1544=EDGE_CURVE('',#1256,#1256,#1056,.T.); +#1545=EDGE_CURVE('',#1256,#1244,#566,.T.); +#1546=EDGE_CURVE('',#1257,#1257,#1057,.T.); +#1547=EDGE_CURVE('',#1257,#1243,#567,.T.); +#1548=EDGE_CURVE('',#1236,#1258,#568,.T.); +#1549=EDGE_CURVE('',#1259,#1258,#1058,.T.); +#1550=EDGE_CURVE('',#1237,#1259,#569,.T.); +#1551=EDGE_CURVE('',#1260,#1259,#570,.T.); +#1552=EDGE_CURVE('',#1238,#1260,#571,.T.); +#1553=EDGE_CURVE('',#1261,#1260,#1059,.T.); +#1554=EDGE_CURVE('',#1239,#1261,#572,.T.); +#1555=EDGE_CURVE('',#1262,#1261,#573,.T.); +#1556=EDGE_CURVE('',#1240,#1262,#574,.T.); +#1557=EDGE_CURVE('',#1263,#1262,#1060,.T.); +#1558=EDGE_CURVE('',#1241,#1263,#575,.T.); +#1559=EDGE_CURVE('',#1264,#1263,#576,.T.); +#1560=EDGE_CURVE('',#1242,#1264,#577,.T.); +#1561=EDGE_CURVE('',#1265,#1264,#1061,.T.); +#1562=EDGE_CURVE('',#1235,#1265,#578,.T.); +#1563=EDGE_CURVE('',#1258,#1265,#579,.T.); +#1564=EDGE_CURVE('',#1228,#1266,#580,.T.); +#1565=EDGE_CURVE('',#1267,#1266,#1062,.T.); +#1566=EDGE_CURVE('',#1229,#1267,#581,.T.); +#1567=EDGE_CURVE('',#1268,#1267,#582,.T.); +#1568=EDGE_CURVE('',#1230,#1268,#583,.T.); +#1569=EDGE_CURVE('',#1269,#1268,#1063,.T.); +#1570=EDGE_CURVE('',#1231,#1269,#584,.T.); +#1571=EDGE_CURVE('',#1270,#1269,#585,.T.); +#1572=EDGE_CURVE('',#1232,#1270,#586,.T.); +#1573=EDGE_CURVE('',#1271,#1270,#1064,.T.); +#1574=EDGE_CURVE('',#1233,#1271,#587,.T.); +#1575=EDGE_CURVE('',#1272,#1271,#588,.T.); +#1576=EDGE_CURVE('',#1234,#1272,#589,.T.); +#1577=EDGE_CURVE('',#1273,#1272,#1065,.T.); +#1578=EDGE_CURVE('',#1227,#1273,#590,.T.); +#1579=EDGE_CURVE('',#1266,#1273,#591,.T.); +#1580=EDGE_CURVE('',#1220,#1274,#592,.T.); +#1581=EDGE_CURVE('',#1275,#1274,#1066,.T.); +#1582=EDGE_CURVE('',#1221,#1275,#593,.T.); +#1583=EDGE_CURVE('',#1276,#1275,#594,.T.); +#1584=EDGE_CURVE('',#1222,#1276,#595,.T.); +#1585=EDGE_CURVE('',#1277,#1276,#1067,.T.); +#1586=EDGE_CURVE('',#1223,#1277,#596,.T.); +#1587=EDGE_CURVE('',#1278,#1277,#597,.T.); +#1588=EDGE_CURVE('',#1224,#1278,#598,.T.); +#1589=EDGE_CURVE('',#1279,#1278,#1068,.T.); +#1590=EDGE_CURVE('',#1225,#1279,#599,.T.); +#1591=EDGE_CURVE('',#1280,#1279,#600,.T.); +#1592=EDGE_CURVE('',#1226,#1280,#601,.T.); +#1593=EDGE_CURVE('',#1281,#1280,#1069,.T.); +#1594=EDGE_CURVE('',#1219,#1281,#602,.T.); +#1595=EDGE_CURVE('',#1274,#1281,#603,.T.); +#1596=EDGE_CURVE('',#1212,#1282,#604,.T.); +#1597=EDGE_CURVE('',#1283,#1282,#1070,.T.); +#1598=EDGE_CURVE('',#1213,#1283,#605,.T.); +#1599=EDGE_CURVE('',#1284,#1283,#606,.T.); +#1600=EDGE_CURVE('',#1214,#1284,#607,.T.); +#1601=EDGE_CURVE('',#1285,#1284,#1071,.T.); +#1602=EDGE_CURVE('',#1215,#1285,#608,.T.); +#1603=EDGE_CURVE('',#1286,#1285,#609,.T.); +#1604=EDGE_CURVE('',#1216,#1286,#610,.T.); +#1605=EDGE_CURVE('',#1287,#1286,#1072,.T.); +#1606=EDGE_CURVE('',#1217,#1287,#611,.T.); +#1607=EDGE_CURVE('',#1288,#1287,#612,.T.); +#1608=EDGE_CURVE('',#1218,#1288,#613,.T.); +#1609=EDGE_CURVE('',#1289,#1288,#1073,.T.); +#1610=EDGE_CURVE('',#1211,#1289,#614,.T.); +#1611=EDGE_CURVE('',#1282,#1289,#615,.T.); +#1612=EDGE_CURVE('',#1204,#1290,#616,.T.); +#1613=EDGE_CURVE('',#1291,#1290,#1074,.T.); +#1614=EDGE_CURVE('',#1205,#1291,#617,.T.); +#1615=EDGE_CURVE('',#1292,#1291,#618,.T.); +#1616=EDGE_CURVE('',#1206,#1292,#619,.T.); +#1617=EDGE_CURVE('',#1293,#1292,#1075,.T.); +#1618=EDGE_CURVE('',#1207,#1293,#620,.T.); +#1619=EDGE_CURVE('',#1294,#1293,#621,.T.); +#1620=EDGE_CURVE('',#1208,#1294,#622,.T.); +#1621=EDGE_CURVE('',#1295,#1294,#1076,.T.); +#1622=EDGE_CURVE('',#1209,#1295,#623,.T.); +#1623=EDGE_CURVE('',#1296,#1295,#624,.T.); +#1624=EDGE_CURVE('',#1210,#1296,#625,.T.); +#1625=EDGE_CURVE('',#1297,#1296,#1077,.T.); +#1626=EDGE_CURVE('',#1203,#1297,#626,.T.); +#1627=EDGE_CURVE('',#1290,#1297,#627,.T.); +#1628=EDGE_CURVE('',#1196,#1298,#628,.T.); +#1629=EDGE_CURVE('',#1299,#1298,#1078,.T.); +#1630=EDGE_CURVE('',#1197,#1299,#629,.T.); +#1631=EDGE_CURVE('',#1300,#1299,#630,.T.); +#1632=EDGE_CURVE('',#1198,#1300,#631,.T.); +#1633=EDGE_CURVE('',#1301,#1300,#1079,.T.); +#1634=EDGE_CURVE('',#1199,#1301,#632,.T.); +#1635=EDGE_CURVE('',#1302,#1301,#633,.T.); +#1636=EDGE_CURVE('',#1200,#1302,#634,.T.); +#1637=EDGE_CURVE('',#1303,#1302,#1080,.T.); +#1638=EDGE_CURVE('',#1201,#1303,#635,.T.); +#1639=EDGE_CURVE('',#1304,#1303,#636,.T.); +#1640=EDGE_CURVE('',#1202,#1304,#637,.T.); +#1641=EDGE_CURVE('',#1305,#1304,#1081,.T.); +#1642=EDGE_CURVE('',#1195,#1305,#638,.T.); +#1643=EDGE_CURVE('',#1298,#1305,#639,.T.); +#1644=EDGE_CURVE('',#1188,#1306,#640,.T.); +#1645=EDGE_CURVE('',#1307,#1306,#1082,.T.); +#1646=EDGE_CURVE('',#1189,#1307,#641,.T.); +#1647=EDGE_CURVE('',#1308,#1307,#642,.T.); +#1648=EDGE_CURVE('',#1190,#1308,#643,.T.); +#1649=EDGE_CURVE('',#1309,#1308,#1083,.T.); +#1650=EDGE_CURVE('',#1191,#1309,#644,.T.); +#1651=EDGE_CURVE('',#1310,#1309,#645,.T.); +#1652=EDGE_CURVE('',#1192,#1310,#646,.T.); +#1653=EDGE_CURVE('',#1311,#1310,#1084,.T.); +#1654=EDGE_CURVE('',#1193,#1311,#647,.T.); +#1655=EDGE_CURVE('',#1312,#1311,#648,.T.); +#1656=EDGE_CURVE('',#1194,#1312,#649,.T.); +#1657=EDGE_CURVE('',#1313,#1312,#1085,.T.); +#1658=EDGE_CURVE('',#1187,#1313,#650,.T.); +#1659=EDGE_CURVE('',#1306,#1313,#651,.T.); +#1660=EDGE_CURVE('',#1180,#1314,#652,.T.); +#1661=EDGE_CURVE('',#1315,#1314,#1086,.T.); +#1662=EDGE_CURVE('',#1181,#1315,#653,.T.); +#1663=EDGE_CURVE('',#1316,#1315,#654,.T.); +#1664=EDGE_CURVE('',#1182,#1316,#655,.T.); +#1665=EDGE_CURVE('',#1317,#1316,#1087,.T.); +#1666=EDGE_CURVE('',#1183,#1317,#656,.T.); +#1667=EDGE_CURVE('',#1318,#1317,#657,.T.); +#1668=EDGE_CURVE('',#1184,#1318,#658,.T.); +#1669=EDGE_CURVE('',#1319,#1318,#1088,.T.); +#1670=EDGE_CURVE('',#1185,#1319,#659,.T.); +#1671=EDGE_CURVE('',#1320,#1319,#660,.T.); +#1672=EDGE_CURVE('',#1186,#1320,#661,.T.); +#1673=EDGE_CURVE('',#1321,#1320,#1089,.T.); +#1674=EDGE_CURVE('',#1179,#1321,#662,.T.); +#1675=EDGE_CURVE('',#1314,#1321,#663,.T.); +#1676=EDGE_CURVE('',#1172,#1322,#664,.T.); +#1677=EDGE_CURVE('',#1323,#1322,#1090,.T.); +#1678=EDGE_CURVE('',#1173,#1323,#665,.T.); +#1679=EDGE_CURVE('',#1324,#1323,#666,.T.); +#1680=EDGE_CURVE('',#1174,#1324,#667,.T.); +#1681=EDGE_CURVE('',#1325,#1324,#1091,.T.); +#1682=EDGE_CURVE('',#1175,#1325,#668,.T.); +#1683=EDGE_CURVE('',#1326,#1325,#669,.T.); +#1684=EDGE_CURVE('',#1176,#1326,#670,.T.); +#1685=EDGE_CURVE('',#1327,#1326,#1092,.T.); +#1686=EDGE_CURVE('',#1177,#1327,#671,.T.); +#1687=EDGE_CURVE('',#1328,#1327,#672,.T.); +#1688=EDGE_CURVE('',#1178,#1328,#673,.T.); +#1689=EDGE_CURVE('',#1329,#1328,#1093,.T.); +#1690=EDGE_CURVE('',#1171,#1329,#674,.T.); +#1691=EDGE_CURVE('',#1322,#1329,#675,.T.); +#1692=EDGE_CURVE('',#1168,#1330,#676,.T.); +#1693=EDGE_CURVE('',#1331,#1330,#677,.T.); +#1694=EDGE_CURVE('',#1169,#1331,#678,.T.); +#1695=EDGE_CURVE('',#1332,#1331,#679,.T.); +#1696=EDGE_CURVE('',#1170,#1332,#680,.T.); +#1697=EDGE_CURVE('',#1333,#1332,#681,.T.); +#1698=EDGE_CURVE('',#1167,#1333,#682,.T.); +#1699=EDGE_CURVE('',#1330,#1333,#683,.T.); +#1700=EDGE_CURVE('',#1165,#1334,#684,.T.); +#1701=EDGE_CURVE('',#1335,#1334,#685,.T.); +#1702=EDGE_CURVE('',#1166,#1335,#686,.T.); +#1703=EDGE_CURVE('',#1157,#1335,#687,.T.); +#1704=EDGE_CURVE('',#1247,#1153,#688,.T.); +#1705=EDGE_CURVE('',#1251,#1250,#689,.T.); +#1706=EDGE_CURVE('',#1334,#1253,#690,.T.); +#1707=EDGE_CURVE('',#1336,#1337,#1094,.T.); +#1708=EDGE_CURVE('',#1337,#1338,#691,.T.); +#1709=EDGE_CURVE('',#1338,#1339,#1095,.T.); +#1710=EDGE_CURVE('',#1339,#1336,#692,.T.); +#1711=EDGE_CURVE('',#1340,#1339,#693,.T.); +#1712=EDGE_CURVE('',#1341,#1340,#694,.T.); +#1713=EDGE_CURVE('',#1336,#1341,#695,.T.); +#1714=EDGE_CURVE('',#1338,#1342,#696,.T.); +#1715=EDGE_CURVE('',#1343,#1342,#1096,.T.); +#1716=EDGE_CURVE('',#1343,#1344,#697,.T.); +#1717=EDGE_CURVE('',#1345,#1344,#1097,.T.); +#1718=EDGE_CURVE('',#1345,#1346,#698,.T.); +#1719=EDGE_CURVE('',#1340,#1346,#1098,.T.); +#1720=EDGE_CURVE('',#1347,#1347,#1099,.T.); +#1721=EDGE_CURVE('',#1348,#1349,#699,.T.); +#1722=EDGE_CURVE('',#1349,#1350,#700,.T.); +#1723=EDGE_CURVE('',#1350,#1351,#701,.T.); +#1724=EDGE_CURVE('',#1351,#1348,#702,.T.); +#1725=EDGE_CURVE('',#1352,#1352,#1100,.T.); +#1726=EDGE_CURVE('',#1353,#1353,#1101,.T.); +#1727=EDGE_CURVE('',#1354,#1354,#1102,.T.); +#1728=EDGE_CURVE('',#1355,#1341,#1103,.T.); +#1729=EDGE_CURVE('',#1346,#1355,#703,.T.); +#1730=EDGE_CURVE('',#1356,#1345,#704,.T.); +#1731=EDGE_CURVE('',#1355,#1356,#705,.T.); +#1732=EDGE_CURVE('',#1357,#1356,#1104,.T.); +#1733=EDGE_CURVE('',#1344,#1357,#706,.T.); +#1734=EDGE_CURVE('',#1358,#1343,#707,.T.); +#1735=EDGE_CURVE('',#1357,#1358,#708,.T.); +#1736=EDGE_CURVE('',#1359,#1358,#1105,.T.); +#1737=EDGE_CURVE('',#1342,#1359,#709,.T.); +#1738=EDGE_CURVE('',#1360,#1360,#1106,.T.); +#1739=EDGE_CURVE('',#1360,#1354,#710,.T.); +#1740=EDGE_CURVE('',#1361,#1361,#1107,.T.); +#1741=EDGE_CURVE('',#1361,#1353,#711,.T.); +#1742=EDGE_CURVE('',#1362,#1362,#1108,.T.); +#1743=EDGE_CURVE('',#1362,#1352,#712,.T.); +#1744=EDGE_CURVE('',#1349,#1363,#713,.T.); +#1745=EDGE_CURVE('',#1364,#1363,#714,.T.); +#1746=EDGE_CURVE('',#1350,#1364,#715,.T.); +#1747=EDGE_CURVE('',#1365,#1364,#716,.T.); +#1748=EDGE_CURVE('',#1351,#1365,#717,.T.); +#1749=EDGE_CURVE('',#1366,#1365,#718,.T.); +#1750=EDGE_CURVE('',#1348,#1366,#719,.T.); +#1751=EDGE_CURVE('',#1363,#1366,#720,.T.); +#1752=EDGE_CURVE('',#1367,#1367,#1109,.T.); +#1753=EDGE_CURVE('',#1367,#1347,#721,.T.); +#1754=EDGE_CURVE('',#1359,#1337,#722,.T.); +#1755=ORIENTED_EDGE('',*,*,#1368,.T.); +#1756=ORIENTED_EDGE('',*,*,#1369,.T.); +#1757=ORIENTED_EDGE('',*,*,#1370,.T.); +#1758=ORIENTED_EDGE('',*,*,#1371,.T.); +#1759=ORIENTED_EDGE('',*,*,#1368,.F.); +#1760=ORIENTED_EDGE('',*,*,#1372,.F.); +#1761=ORIENTED_EDGE('',*,*,#1373,.F.); +#1762=ORIENTED_EDGE('',*,*,#1374,.F.); +#1763=ORIENTED_EDGE('',*,*,#1375,.F.); +#1764=ORIENTED_EDGE('',*,*,#1376,.F.); +#1765=ORIENTED_EDGE('',*,*,#1377,.F.); +#1766=ORIENTED_EDGE('',*,*,#1378,.F.); +#1767=ORIENTED_EDGE('',*,*,#1379,.F.); +#1768=ORIENTED_EDGE('',*,*,#1380,.T.); +#1769=ORIENTED_EDGE('',*,*,#1381,.T.); +#1770=ORIENTED_EDGE('',*,*,#1382,.T.); +#1771=ORIENTED_EDGE('',*,*,#1383,.T.); +#1772=ORIENTED_EDGE('',*,*,#1384,.T.); +#1773=ORIENTED_EDGE('',*,*,#1385,.T.); +#1774=ORIENTED_EDGE('',*,*,#1386,.F.); +#1775=ORIENTED_EDGE('',*,*,#1387,.F.); +#1776=ORIENTED_EDGE('',*,*,#1388,.F.); +#1777=ORIENTED_EDGE('',*,*,#1389,.F.); +#1778=ORIENTED_EDGE('',*,*,#1390,.F.); +#1779=ORIENTED_EDGE('',*,*,#1391,.F.); +#1780=ORIENTED_EDGE('',*,*,#1371,.F.); +#1781=ORIENTED_EDGE('',*,*,#1392,.T.); +#1782=ORIENTED_EDGE('',*,*,#1393,.F.); +#1783=ORIENTED_EDGE('',*,*,#1372,.T.); +#1784=ORIENTED_EDGE('',*,*,#1373,.T.); +#1785=ORIENTED_EDGE('',*,*,#1393,.T.); +#1786=ORIENTED_EDGE('',*,*,#1394,.T.); +#1787=ORIENTED_EDGE('',*,*,#1395,.T.); +#1788=ORIENTED_EDGE('',*,*,#1375,.T.); +#1789=ORIENTED_EDGE('',*,*,#1396,.T.); +#1790=ORIENTED_EDGE('',*,*,#1397,.T.); +#1791=ORIENTED_EDGE('',*,*,#1398,.T.); +#1792=ORIENTED_EDGE('',*,*,#1398,.F.); +#1793=ORIENTED_EDGE('',*,*,#1399,.T.); +#1794=ORIENTED_EDGE('',*,*,#1400,.F.); +#1795=ORIENTED_EDGE('',*,*,#1376,.T.); +#1796=ORIENTED_EDGE('',*,*,#1377,.T.); +#1797=ORIENTED_EDGE('',*,*,#1400,.T.); +#1798=ORIENTED_EDGE('',*,*,#1401,.T.); +#1799=ORIENTED_EDGE('',*,*,#1402,.T.); +#1800=ORIENTED_EDGE('',*,*,#1369,.F.); +#1801=ORIENTED_EDGE('',*,*,#1387,.T.); +#1802=ORIENTED_EDGE('',*,*,#1403,.T.); +#1803=ORIENTED_EDGE('',*,*,#1404,.F.); +#1804=ORIENTED_EDGE('',*,*,#1405,.F.); +#1805=ORIENTED_EDGE('',*,*,#1378,.T.); +#1806=ORIENTED_EDGE('',*,*,#1402,.F.); +#1807=ORIENTED_EDGE('',*,*,#1406,.T.); +#1808=ORIENTED_EDGE('',*,*,#1386,.T.); +#1809=ORIENTED_EDGE('',*,*,#1407,.F.); +#1810=ORIENTED_EDGE('',*,*,#1408,.T.); +#1811=ORIENTED_EDGE('',*,*,#1403,.F.); +#1812=ORIENTED_EDGE('',*,*,#1379,.T.); +#1813=ORIENTED_EDGE('',*,*,#1405,.T.); +#1814=ORIENTED_EDGE('',*,*,#1409,.F.); +#1815=ORIENTED_EDGE('',*,*,#1410,.T.); +#1816=ORIENTED_EDGE('',*,*,#1395,.F.); +#1817=ORIENTED_EDGE('',*,*,#1411,.T.); +#1818=ORIENTED_EDGE('',*,*,#1396,.F.); +#1819=ORIENTED_EDGE('',*,*,#1374,.T.); +#1820=ORIENTED_EDGE('',*,*,#1412,.F.); +#1821=ORIENTED_EDGE('',*,*,#1380,.F.); +#1822=ORIENTED_EDGE('',*,*,#1410,.F.); +#1823=ORIENTED_EDGE('',*,*,#1413,.F.); +#1824=ORIENTED_EDGE('',*,*,#1409,.T.); +#1825=ORIENTED_EDGE('',*,*,#1404,.T.); +#1826=ORIENTED_EDGE('',*,*,#1408,.F.); +#1827=ORIENTED_EDGE('',*,*,#1414,.F.); +#1828=ORIENTED_EDGE('',*,*,#1413,.T.); +#1829=ORIENTED_EDGE('',*,*,#1415,.F.); +#1830=ORIENTED_EDGE('',*,*,#1416,.T.); +#1831=ORIENTED_EDGE('',*,*,#1382,.F.); +#1832=ORIENTED_EDGE('',*,*,#1417,.F.); +#1833=ORIENTED_EDGE('',*,*,#1418,.F.); +#1834=ORIENTED_EDGE('',*,*,#1419,.T.); +#1835=ORIENTED_EDGE('',*,*,#1383,.F.); +#1836=ORIENTED_EDGE('',*,*,#1416,.F.); +#1837=ORIENTED_EDGE('',*,*,#1407,.T.); +#1838=ORIENTED_EDGE('',*,*,#1385,.F.); +#1839=ORIENTED_EDGE('',*,*,#1420,.F.); +#1840=ORIENTED_EDGE('',*,*,#1421,.F.); +#1841=ORIENTED_EDGE('',*,*,#1417,.T.); +#1842=ORIENTED_EDGE('',*,*,#1381,.F.); +#1843=ORIENTED_EDGE('',*,*,#1412,.T.); +#1844=ORIENTED_EDGE('',*,*,#1414,.T.); +#1845=ORIENTED_EDGE('',*,*,#1422,.F.); +#1846=ORIENTED_EDGE('',*,*,#1420,.T.); +#1847=ORIENTED_EDGE('',*,*,#1384,.F.); +#1848=ORIENTED_EDGE('',*,*,#1419,.F.); +#1849=ORIENTED_EDGE('',*,*,#1388,.T.); +#1850=ORIENTED_EDGE('',*,*,#1423,.T.); +#1851=ORIENTED_EDGE('',*,*,#1424,.T.); +#1852=ORIENTED_EDGE('',*,*,#1423,.F.); +#1853=ORIENTED_EDGE('',*,*,#1389,.T.); +#1854=ORIENTED_EDGE('',*,*,#1425,.T.); +#1855=ORIENTED_EDGE('',*,*,#1426,.T.); +#1856=ORIENTED_EDGE('',*,*,#1425,.F.); +#1857=ORIENTED_EDGE('',*,*,#1390,.T.); +#1858=ORIENTED_EDGE('',*,*,#1427,.T.); +#1859=ORIENTED_EDGE('',*,*,#1428,.T.); +#1860=ORIENTED_EDGE('',*,*,#1427,.F.); +#1861=ORIENTED_EDGE('',*,*,#1391,.T.); +#1862=ORIENTED_EDGE('',*,*,#1429,.T.); +#1863=ORIENTED_EDGE('',*,*,#1430,.T.); +#1864=ORIENTED_EDGE('',*,*,#1429,.F.); +#1865=ORIENTED_EDGE('',*,*,#1418,.T.); +#1866=ORIENTED_EDGE('',*,*,#1415,.T.); +#1867=ORIENTED_EDGE('',*,*,#1421,.T.); +#1868=ORIENTED_EDGE('',*,*,#1422,.T.); +#1869=ORIENTED_EDGE('',*,*,#1370,.F.); +#1870=ORIENTED_EDGE('',*,*,#1406,.F.); +#1871=ORIENTED_EDGE('',*,*,#1401,.F.); +#1872=ORIENTED_EDGE('',*,*,#1399,.F.); +#1873=ORIENTED_EDGE('',*,*,#1397,.F.); +#1874=ORIENTED_EDGE('',*,*,#1411,.F.); +#1875=ORIENTED_EDGE('',*,*,#1394,.F.); +#1876=ORIENTED_EDGE('',*,*,#1392,.F.); +#1877=ORIENTED_EDGE('',*,*,#1430,.F.); +#1878=ORIENTED_EDGE('',*,*,#1428,.F.); +#1879=ORIENTED_EDGE('',*,*,#1426,.F.); +#1880=ORIENTED_EDGE('',*,*,#1424,.F.); +#1881=ORIENTED_EDGE('',*,*,#1431,.T.); +#1882=ORIENTED_EDGE('',*,*,#1432,.T.); +#1883=ORIENTED_EDGE('',*,*,#1433,.T.); +#1884=ORIENTED_EDGE('',*,*,#1434,.T.); +#1885=ORIENTED_EDGE('',*,*,#1434,.F.); +#1886=ORIENTED_EDGE('',*,*,#1435,.F.); +#1887=ORIENTED_EDGE('',*,*,#1436,.T.); +#1888=ORIENTED_EDGE('',*,*,#1437,.F.); +#1889=ORIENTED_EDGE('',*,*,#1433,.F.); +#1890=ORIENTED_EDGE('',*,*,#1438,.T.); +#1891=ORIENTED_EDGE('',*,*,#1439,.F.); +#1892=ORIENTED_EDGE('',*,*,#1440,.T.); +#1893=ORIENTED_EDGE('',*,*,#1441,.F.); +#1894=ORIENTED_EDGE('',*,*,#1442,.T.); +#1895=ORIENTED_EDGE('',*,*,#1443,.F.); +#1896=ORIENTED_EDGE('',*,*,#1444,.T.); +#1897=ORIENTED_EDGE('',*,*,#1445,.T.); +#1898=ORIENTED_EDGE('',*,*,#1446,.T.); +#1899=ORIENTED_EDGE('',*,*,#1447,.T.); +#1900=ORIENTED_EDGE('',*,*,#1435,.T.); +#1901=ORIENTED_EDGE('',*,*,#1448,.T.); +#1902=ORIENTED_EDGE('',*,*,#1449,.T.); +#1903=ORIENTED_EDGE('',*,*,#1450,.T.); +#1904=ORIENTED_EDGE('',*,*,#1451,.T.); +#1905=ORIENTED_EDGE('',*,*,#1452,.T.); +#1906=ORIENTED_EDGE('',*,*,#1453,.T.); +#1907=ORIENTED_EDGE('',*,*,#1454,.T.); +#1908=ORIENTED_EDGE('',*,*,#1455,.T.); +#1909=ORIENTED_EDGE('',*,*,#1456,.T.); +#1910=ORIENTED_EDGE('',*,*,#1457,.T.); +#1911=ORIENTED_EDGE('',*,*,#1458,.T.); +#1912=ORIENTED_EDGE('',*,*,#1459,.T.); +#1913=ORIENTED_EDGE('',*,*,#1460,.T.); +#1914=ORIENTED_EDGE('',*,*,#1461,.T.); +#1915=ORIENTED_EDGE('',*,*,#1462,.T.); +#1916=ORIENTED_EDGE('',*,*,#1463,.T.); +#1917=ORIENTED_EDGE('',*,*,#1464,.T.); +#1918=ORIENTED_EDGE('',*,*,#1465,.T.); +#1919=ORIENTED_EDGE('',*,*,#1466,.T.); +#1920=ORIENTED_EDGE('',*,*,#1467,.T.); +#1921=ORIENTED_EDGE('',*,*,#1468,.T.); +#1922=ORIENTED_EDGE('',*,*,#1469,.T.); +#1923=ORIENTED_EDGE('',*,*,#1470,.T.); +#1924=ORIENTED_EDGE('',*,*,#1471,.T.); +#1925=ORIENTED_EDGE('',*,*,#1472,.T.); +#1926=ORIENTED_EDGE('',*,*,#1473,.T.); +#1927=ORIENTED_EDGE('',*,*,#1474,.T.); +#1928=ORIENTED_EDGE('',*,*,#1475,.T.); +#1929=ORIENTED_EDGE('',*,*,#1476,.T.); +#1930=ORIENTED_EDGE('',*,*,#1477,.T.); +#1931=ORIENTED_EDGE('',*,*,#1478,.T.); +#1932=ORIENTED_EDGE('',*,*,#1479,.T.); +#1933=ORIENTED_EDGE('',*,*,#1480,.T.); +#1934=ORIENTED_EDGE('',*,*,#1481,.T.); +#1935=ORIENTED_EDGE('',*,*,#1482,.T.); +#1936=ORIENTED_EDGE('',*,*,#1483,.T.); +#1937=ORIENTED_EDGE('',*,*,#1484,.T.); +#1938=ORIENTED_EDGE('',*,*,#1485,.T.); +#1939=ORIENTED_EDGE('',*,*,#1486,.T.); +#1940=ORIENTED_EDGE('',*,*,#1487,.T.); +#1941=ORIENTED_EDGE('',*,*,#1488,.T.); +#1942=ORIENTED_EDGE('',*,*,#1489,.T.); +#1943=ORIENTED_EDGE('',*,*,#1490,.T.); +#1944=ORIENTED_EDGE('',*,*,#1491,.T.); +#1945=ORIENTED_EDGE('',*,*,#1492,.T.); +#1946=ORIENTED_EDGE('',*,*,#1493,.T.); +#1947=ORIENTED_EDGE('',*,*,#1494,.T.); +#1948=ORIENTED_EDGE('',*,*,#1495,.T.); +#1949=ORIENTED_EDGE('',*,*,#1496,.T.); +#1950=ORIENTED_EDGE('',*,*,#1497,.T.); +#1951=ORIENTED_EDGE('',*,*,#1498,.T.); +#1952=ORIENTED_EDGE('',*,*,#1499,.T.); +#1953=ORIENTED_EDGE('',*,*,#1500,.T.); +#1954=ORIENTED_EDGE('',*,*,#1501,.T.); +#1955=ORIENTED_EDGE('',*,*,#1502,.T.); +#1956=ORIENTED_EDGE('',*,*,#1503,.T.); +#1957=ORIENTED_EDGE('',*,*,#1504,.T.); +#1958=ORIENTED_EDGE('',*,*,#1505,.T.); +#1959=ORIENTED_EDGE('',*,*,#1506,.T.); +#1960=ORIENTED_EDGE('',*,*,#1507,.T.); +#1961=ORIENTED_EDGE('',*,*,#1508,.T.); +#1962=ORIENTED_EDGE('',*,*,#1509,.T.); +#1963=ORIENTED_EDGE('',*,*,#1510,.T.); +#1964=ORIENTED_EDGE('',*,*,#1511,.T.); +#1965=ORIENTED_EDGE('',*,*,#1512,.T.); +#1966=ORIENTED_EDGE('',*,*,#1513,.T.); +#1967=ORIENTED_EDGE('',*,*,#1514,.T.); +#1968=ORIENTED_EDGE('',*,*,#1515,.T.); +#1969=ORIENTED_EDGE('',*,*,#1516,.T.); +#1970=ORIENTED_EDGE('',*,*,#1517,.T.); +#1971=ORIENTED_EDGE('',*,*,#1518,.T.); +#1972=ORIENTED_EDGE('',*,*,#1519,.T.); +#1973=ORIENTED_EDGE('',*,*,#1520,.T.); +#1974=ORIENTED_EDGE('',*,*,#1521,.T.); +#1975=ORIENTED_EDGE('',*,*,#1522,.T.); +#1976=ORIENTED_EDGE('',*,*,#1523,.T.); +#1977=ORIENTED_EDGE('',*,*,#1524,.T.); +#1978=ORIENTED_EDGE('',*,*,#1525,.T.); +#1979=ORIENTED_EDGE('',*,*,#1526,.T.); +#1980=ORIENTED_EDGE('',*,*,#1527,.T.); +#1981=ORIENTED_EDGE('',*,*,#1528,.T.); +#1982=ORIENTED_EDGE('',*,*,#1529,.T.); +#1983=ORIENTED_EDGE('',*,*,#1439,.T.); +#1984=ORIENTED_EDGE('',*,*,#1530,.T.); +#1985=ORIENTED_EDGE('',*,*,#1529,.F.); +#1986=ORIENTED_EDGE('',*,*,#1531,.F.); +#1987=ORIENTED_EDGE('',*,*,#1532,.F.); +#1988=ORIENTED_EDGE('',*,*,#1440,.F.); +#1989=ORIENTED_EDGE('',*,*,#1533,.T.); +#1990=ORIENTED_EDGE('',*,*,#1534,.T.); +#1991=ORIENTED_EDGE('',*,*,#1441,.T.); +#1992=ORIENTED_EDGE('',*,*,#1532,.T.); +#1993=ORIENTED_EDGE('',*,*,#1535,.T.); +#1994=ORIENTED_EDGE('',*,*,#1536,.T.); +#1995=ORIENTED_EDGE('',*,*,#1443,.T.); +#1996=ORIENTED_EDGE('',*,*,#1537,.T.); +#1997=ORIENTED_EDGE('',*,*,#1536,.F.); +#1998=ORIENTED_EDGE('',*,*,#1538,.F.); +#1999=ORIENTED_EDGE('',*,*,#1539,.F.); +#2000=ORIENTED_EDGE('',*,*,#1444,.F.); +#2001=ORIENTED_EDGE('',*,*,#1540,.F.); +#2002=ORIENTED_EDGE('',*,*,#1541,.T.); +#2003=ORIENTED_EDGE('',*,*,#1527,.F.); +#2004=ORIENTED_EDGE('',*,*,#1541,.F.); +#2005=ORIENTED_EDGE('',*,*,#1542,.F.); +#2006=ORIENTED_EDGE('',*,*,#1543,.T.); +#2007=ORIENTED_EDGE('',*,*,#1526,.F.); +#2008=ORIENTED_EDGE('',*,*,#1543,.F.); +#2009=ORIENTED_EDGE('',*,*,#1544,.F.); +#2010=ORIENTED_EDGE('',*,*,#1545,.T.); +#2011=ORIENTED_EDGE('',*,*,#1525,.F.); +#2012=ORIENTED_EDGE('',*,*,#1545,.F.); +#2013=ORIENTED_EDGE('',*,*,#1546,.F.); +#2014=ORIENTED_EDGE('',*,*,#1547,.T.); +#2015=ORIENTED_EDGE('',*,*,#1524,.F.); +#2016=ORIENTED_EDGE('',*,*,#1547,.F.); +#2017=ORIENTED_EDGE('',*,*,#1517,.F.); +#2018=ORIENTED_EDGE('',*,*,#1548,.T.); +#2019=ORIENTED_EDGE('',*,*,#1549,.F.); +#2020=ORIENTED_EDGE('',*,*,#1550,.F.); +#2021=ORIENTED_EDGE('',*,*,#1518,.F.); +#2022=ORIENTED_EDGE('',*,*,#1550,.T.); +#2023=ORIENTED_EDGE('',*,*,#1551,.F.); +#2024=ORIENTED_EDGE('',*,*,#1552,.F.); +#2025=ORIENTED_EDGE('',*,*,#1519,.F.); +#2026=ORIENTED_EDGE('',*,*,#1552,.T.); +#2027=ORIENTED_EDGE('',*,*,#1553,.F.); +#2028=ORIENTED_EDGE('',*,*,#1554,.F.); +#2029=ORIENTED_EDGE('',*,*,#1520,.F.); +#2030=ORIENTED_EDGE('',*,*,#1554,.T.); +#2031=ORIENTED_EDGE('',*,*,#1555,.F.); +#2032=ORIENTED_EDGE('',*,*,#1556,.F.); +#2033=ORIENTED_EDGE('',*,*,#1521,.F.); +#2034=ORIENTED_EDGE('',*,*,#1556,.T.); +#2035=ORIENTED_EDGE('',*,*,#1557,.F.); +#2036=ORIENTED_EDGE('',*,*,#1558,.F.); +#2037=ORIENTED_EDGE('',*,*,#1522,.F.); +#2038=ORIENTED_EDGE('',*,*,#1558,.T.); +#2039=ORIENTED_EDGE('',*,*,#1559,.F.); +#2040=ORIENTED_EDGE('',*,*,#1560,.F.); +#2041=ORIENTED_EDGE('',*,*,#1523,.F.); +#2042=ORIENTED_EDGE('',*,*,#1560,.T.); +#2043=ORIENTED_EDGE('',*,*,#1561,.F.); +#2044=ORIENTED_EDGE('',*,*,#1562,.F.); +#2045=ORIENTED_EDGE('',*,*,#1516,.F.); +#2046=ORIENTED_EDGE('',*,*,#1562,.T.); +#2047=ORIENTED_EDGE('',*,*,#1563,.F.); +#2048=ORIENTED_EDGE('',*,*,#1548,.F.); +#2049=ORIENTED_EDGE('',*,*,#1509,.F.); +#2050=ORIENTED_EDGE('',*,*,#1564,.T.); +#2051=ORIENTED_EDGE('',*,*,#1565,.F.); +#2052=ORIENTED_EDGE('',*,*,#1566,.F.); +#2053=ORIENTED_EDGE('',*,*,#1510,.F.); +#2054=ORIENTED_EDGE('',*,*,#1566,.T.); +#2055=ORIENTED_EDGE('',*,*,#1567,.F.); +#2056=ORIENTED_EDGE('',*,*,#1568,.F.); +#2057=ORIENTED_EDGE('',*,*,#1511,.F.); +#2058=ORIENTED_EDGE('',*,*,#1568,.T.); +#2059=ORIENTED_EDGE('',*,*,#1569,.F.); +#2060=ORIENTED_EDGE('',*,*,#1570,.F.); +#2061=ORIENTED_EDGE('',*,*,#1512,.F.); +#2062=ORIENTED_EDGE('',*,*,#1570,.T.); +#2063=ORIENTED_EDGE('',*,*,#1571,.F.); +#2064=ORIENTED_EDGE('',*,*,#1572,.F.); +#2065=ORIENTED_EDGE('',*,*,#1513,.F.); +#2066=ORIENTED_EDGE('',*,*,#1572,.T.); +#2067=ORIENTED_EDGE('',*,*,#1573,.F.); +#2068=ORIENTED_EDGE('',*,*,#1574,.F.); +#2069=ORIENTED_EDGE('',*,*,#1514,.F.); +#2070=ORIENTED_EDGE('',*,*,#1574,.T.); +#2071=ORIENTED_EDGE('',*,*,#1575,.F.); +#2072=ORIENTED_EDGE('',*,*,#1576,.F.); +#2073=ORIENTED_EDGE('',*,*,#1515,.F.); +#2074=ORIENTED_EDGE('',*,*,#1576,.T.); +#2075=ORIENTED_EDGE('',*,*,#1577,.F.); +#2076=ORIENTED_EDGE('',*,*,#1578,.F.); +#2077=ORIENTED_EDGE('',*,*,#1508,.F.); +#2078=ORIENTED_EDGE('',*,*,#1578,.T.); +#2079=ORIENTED_EDGE('',*,*,#1579,.F.); +#2080=ORIENTED_EDGE('',*,*,#1564,.F.); +#2081=ORIENTED_EDGE('',*,*,#1501,.F.); +#2082=ORIENTED_EDGE('',*,*,#1580,.T.); +#2083=ORIENTED_EDGE('',*,*,#1581,.F.); +#2084=ORIENTED_EDGE('',*,*,#1582,.F.); +#2085=ORIENTED_EDGE('',*,*,#1502,.F.); +#2086=ORIENTED_EDGE('',*,*,#1582,.T.); +#2087=ORIENTED_EDGE('',*,*,#1583,.F.); +#2088=ORIENTED_EDGE('',*,*,#1584,.F.); +#2089=ORIENTED_EDGE('',*,*,#1503,.F.); +#2090=ORIENTED_EDGE('',*,*,#1584,.T.); +#2091=ORIENTED_EDGE('',*,*,#1585,.F.); +#2092=ORIENTED_EDGE('',*,*,#1586,.F.); +#2093=ORIENTED_EDGE('',*,*,#1504,.F.); +#2094=ORIENTED_EDGE('',*,*,#1586,.T.); +#2095=ORIENTED_EDGE('',*,*,#1587,.F.); +#2096=ORIENTED_EDGE('',*,*,#1588,.F.); +#2097=ORIENTED_EDGE('',*,*,#1505,.F.); +#2098=ORIENTED_EDGE('',*,*,#1588,.T.); +#2099=ORIENTED_EDGE('',*,*,#1589,.F.); +#2100=ORIENTED_EDGE('',*,*,#1590,.F.); +#2101=ORIENTED_EDGE('',*,*,#1506,.F.); +#2102=ORIENTED_EDGE('',*,*,#1590,.T.); +#2103=ORIENTED_EDGE('',*,*,#1591,.F.); +#2104=ORIENTED_EDGE('',*,*,#1592,.F.); +#2105=ORIENTED_EDGE('',*,*,#1507,.F.); +#2106=ORIENTED_EDGE('',*,*,#1592,.T.); +#2107=ORIENTED_EDGE('',*,*,#1593,.F.); +#2108=ORIENTED_EDGE('',*,*,#1594,.F.); +#2109=ORIENTED_EDGE('',*,*,#1500,.F.); +#2110=ORIENTED_EDGE('',*,*,#1594,.T.); +#2111=ORIENTED_EDGE('',*,*,#1595,.F.); +#2112=ORIENTED_EDGE('',*,*,#1580,.F.); +#2113=ORIENTED_EDGE('',*,*,#1493,.F.); +#2114=ORIENTED_EDGE('',*,*,#1596,.T.); +#2115=ORIENTED_EDGE('',*,*,#1597,.F.); +#2116=ORIENTED_EDGE('',*,*,#1598,.F.); +#2117=ORIENTED_EDGE('',*,*,#1494,.F.); +#2118=ORIENTED_EDGE('',*,*,#1598,.T.); +#2119=ORIENTED_EDGE('',*,*,#1599,.F.); +#2120=ORIENTED_EDGE('',*,*,#1600,.F.); +#2121=ORIENTED_EDGE('',*,*,#1495,.F.); +#2122=ORIENTED_EDGE('',*,*,#1600,.T.); +#2123=ORIENTED_EDGE('',*,*,#1601,.F.); +#2124=ORIENTED_EDGE('',*,*,#1602,.F.); +#2125=ORIENTED_EDGE('',*,*,#1496,.F.); +#2126=ORIENTED_EDGE('',*,*,#1602,.T.); +#2127=ORIENTED_EDGE('',*,*,#1603,.F.); +#2128=ORIENTED_EDGE('',*,*,#1604,.F.); +#2129=ORIENTED_EDGE('',*,*,#1497,.F.); +#2130=ORIENTED_EDGE('',*,*,#1604,.T.); +#2131=ORIENTED_EDGE('',*,*,#1605,.F.); +#2132=ORIENTED_EDGE('',*,*,#1606,.F.); +#2133=ORIENTED_EDGE('',*,*,#1498,.F.); +#2134=ORIENTED_EDGE('',*,*,#1606,.T.); +#2135=ORIENTED_EDGE('',*,*,#1607,.F.); +#2136=ORIENTED_EDGE('',*,*,#1608,.F.); +#2137=ORIENTED_EDGE('',*,*,#1499,.F.); +#2138=ORIENTED_EDGE('',*,*,#1608,.T.); +#2139=ORIENTED_EDGE('',*,*,#1609,.F.); +#2140=ORIENTED_EDGE('',*,*,#1610,.F.); +#2141=ORIENTED_EDGE('',*,*,#1492,.F.); +#2142=ORIENTED_EDGE('',*,*,#1610,.T.); +#2143=ORIENTED_EDGE('',*,*,#1611,.F.); +#2144=ORIENTED_EDGE('',*,*,#1596,.F.); +#2145=ORIENTED_EDGE('',*,*,#1485,.F.); +#2146=ORIENTED_EDGE('',*,*,#1612,.T.); +#2147=ORIENTED_EDGE('',*,*,#1613,.F.); +#2148=ORIENTED_EDGE('',*,*,#1614,.F.); +#2149=ORIENTED_EDGE('',*,*,#1486,.F.); +#2150=ORIENTED_EDGE('',*,*,#1614,.T.); +#2151=ORIENTED_EDGE('',*,*,#1615,.F.); +#2152=ORIENTED_EDGE('',*,*,#1616,.F.); +#2153=ORIENTED_EDGE('',*,*,#1487,.F.); +#2154=ORIENTED_EDGE('',*,*,#1616,.T.); +#2155=ORIENTED_EDGE('',*,*,#1617,.F.); +#2156=ORIENTED_EDGE('',*,*,#1618,.F.); +#2157=ORIENTED_EDGE('',*,*,#1488,.F.); +#2158=ORIENTED_EDGE('',*,*,#1618,.T.); +#2159=ORIENTED_EDGE('',*,*,#1619,.F.); +#2160=ORIENTED_EDGE('',*,*,#1620,.F.); +#2161=ORIENTED_EDGE('',*,*,#1489,.F.); +#2162=ORIENTED_EDGE('',*,*,#1620,.T.); +#2163=ORIENTED_EDGE('',*,*,#1621,.F.); +#2164=ORIENTED_EDGE('',*,*,#1622,.F.); +#2165=ORIENTED_EDGE('',*,*,#1490,.F.); +#2166=ORIENTED_EDGE('',*,*,#1622,.T.); +#2167=ORIENTED_EDGE('',*,*,#1623,.F.); +#2168=ORIENTED_EDGE('',*,*,#1624,.F.); +#2169=ORIENTED_EDGE('',*,*,#1491,.F.); +#2170=ORIENTED_EDGE('',*,*,#1624,.T.); +#2171=ORIENTED_EDGE('',*,*,#1625,.F.); +#2172=ORIENTED_EDGE('',*,*,#1626,.F.); +#2173=ORIENTED_EDGE('',*,*,#1484,.F.); +#2174=ORIENTED_EDGE('',*,*,#1626,.T.); +#2175=ORIENTED_EDGE('',*,*,#1627,.F.); +#2176=ORIENTED_EDGE('',*,*,#1612,.F.); +#2177=ORIENTED_EDGE('',*,*,#1477,.F.); +#2178=ORIENTED_EDGE('',*,*,#1628,.T.); +#2179=ORIENTED_EDGE('',*,*,#1629,.F.); +#2180=ORIENTED_EDGE('',*,*,#1630,.F.); +#2181=ORIENTED_EDGE('',*,*,#1478,.F.); +#2182=ORIENTED_EDGE('',*,*,#1630,.T.); +#2183=ORIENTED_EDGE('',*,*,#1631,.F.); +#2184=ORIENTED_EDGE('',*,*,#1632,.F.); +#2185=ORIENTED_EDGE('',*,*,#1479,.F.); +#2186=ORIENTED_EDGE('',*,*,#1632,.T.); +#2187=ORIENTED_EDGE('',*,*,#1633,.F.); +#2188=ORIENTED_EDGE('',*,*,#1634,.F.); +#2189=ORIENTED_EDGE('',*,*,#1480,.F.); +#2190=ORIENTED_EDGE('',*,*,#1634,.T.); +#2191=ORIENTED_EDGE('',*,*,#1635,.F.); +#2192=ORIENTED_EDGE('',*,*,#1636,.F.); +#2193=ORIENTED_EDGE('',*,*,#1481,.F.); +#2194=ORIENTED_EDGE('',*,*,#1636,.T.); +#2195=ORIENTED_EDGE('',*,*,#1637,.F.); +#2196=ORIENTED_EDGE('',*,*,#1638,.F.); +#2197=ORIENTED_EDGE('',*,*,#1482,.F.); +#2198=ORIENTED_EDGE('',*,*,#1638,.T.); +#2199=ORIENTED_EDGE('',*,*,#1639,.F.); +#2200=ORIENTED_EDGE('',*,*,#1640,.F.); +#2201=ORIENTED_EDGE('',*,*,#1483,.F.); +#2202=ORIENTED_EDGE('',*,*,#1640,.T.); +#2203=ORIENTED_EDGE('',*,*,#1641,.F.); +#2204=ORIENTED_EDGE('',*,*,#1642,.F.); +#2205=ORIENTED_EDGE('',*,*,#1476,.F.); +#2206=ORIENTED_EDGE('',*,*,#1642,.T.); +#2207=ORIENTED_EDGE('',*,*,#1643,.F.); +#2208=ORIENTED_EDGE('',*,*,#1628,.F.); +#2209=ORIENTED_EDGE('',*,*,#1469,.F.); +#2210=ORIENTED_EDGE('',*,*,#1644,.T.); +#2211=ORIENTED_EDGE('',*,*,#1645,.F.); +#2212=ORIENTED_EDGE('',*,*,#1646,.F.); +#2213=ORIENTED_EDGE('',*,*,#1470,.F.); +#2214=ORIENTED_EDGE('',*,*,#1646,.T.); +#2215=ORIENTED_EDGE('',*,*,#1647,.F.); +#2216=ORIENTED_EDGE('',*,*,#1648,.F.); +#2217=ORIENTED_EDGE('',*,*,#1471,.F.); +#2218=ORIENTED_EDGE('',*,*,#1648,.T.); +#2219=ORIENTED_EDGE('',*,*,#1649,.F.); +#2220=ORIENTED_EDGE('',*,*,#1650,.F.); +#2221=ORIENTED_EDGE('',*,*,#1472,.F.); +#2222=ORIENTED_EDGE('',*,*,#1650,.T.); +#2223=ORIENTED_EDGE('',*,*,#1651,.F.); +#2224=ORIENTED_EDGE('',*,*,#1652,.F.); +#2225=ORIENTED_EDGE('',*,*,#1473,.F.); +#2226=ORIENTED_EDGE('',*,*,#1652,.T.); +#2227=ORIENTED_EDGE('',*,*,#1653,.F.); +#2228=ORIENTED_EDGE('',*,*,#1654,.F.); +#2229=ORIENTED_EDGE('',*,*,#1474,.F.); +#2230=ORIENTED_EDGE('',*,*,#1654,.T.); +#2231=ORIENTED_EDGE('',*,*,#1655,.F.); +#2232=ORIENTED_EDGE('',*,*,#1656,.F.); +#2233=ORIENTED_EDGE('',*,*,#1475,.F.); +#2234=ORIENTED_EDGE('',*,*,#1656,.T.); +#2235=ORIENTED_EDGE('',*,*,#1657,.F.); +#2236=ORIENTED_EDGE('',*,*,#1658,.F.); +#2237=ORIENTED_EDGE('',*,*,#1468,.F.); +#2238=ORIENTED_EDGE('',*,*,#1658,.T.); +#2239=ORIENTED_EDGE('',*,*,#1659,.F.); +#2240=ORIENTED_EDGE('',*,*,#1644,.F.); +#2241=ORIENTED_EDGE('',*,*,#1461,.F.); +#2242=ORIENTED_EDGE('',*,*,#1660,.T.); +#2243=ORIENTED_EDGE('',*,*,#1661,.F.); +#2244=ORIENTED_EDGE('',*,*,#1662,.F.); +#2245=ORIENTED_EDGE('',*,*,#1462,.F.); +#2246=ORIENTED_EDGE('',*,*,#1662,.T.); +#2247=ORIENTED_EDGE('',*,*,#1663,.F.); +#2248=ORIENTED_EDGE('',*,*,#1664,.F.); +#2249=ORIENTED_EDGE('',*,*,#1463,.F.); +#2250=ORIENTED_EDGE('',*,*,#1664,.T.); +#2251=ORIENTED_EDGE('',*,*,#1665,.F.); +#2252=ORIENTED_EDGE('',*,*,#1666,.F.); +#2253=ORIENTED_EDGE('',*,*,#1464,.F.); +#2254=ORIENTED_EDGE('',*,*,#1666,.T.); +#2255=ORIENTED_EDGE('',*,*,#1667,.F.); +#2256=ORIENTED_EDGE('',*,*,#1668,.F.); +#2257=ORIENTED_EDGE('',*,*,#1465,.F.); +#2258=ORIENTED_EDGE('',*,*,#1668,.T.); +#2259=ORIENTED_EDGE('',*,*,#1669,.F.); +#2260=ORIENTED_EDGE('',*,*,#1670,.F.); +#2261=ORIENTED_EDGE('',*,*,#1466,.F.); +#2262=ORIENTED_EDGE('',*,*,#1670,.T.); +#2263=ORIENTED_EDGE('',*,*,#1671,.F.); +#2264=ORIENTED_EDGE('',*,*,#1672,.F.); +#2265=ORIENTED_EDGE('',*,*,#1467,.F.); +#2266=ORIENTED_EDGE('',*,*,#1672,.T.); +#2267=ORIENTED_EDGE('',*,*,#1673,.F.); +#2268=ORIENTED_EDGE('',*,*,#1674,.F.); +#2269=ORIENTED_EDGE('',*,*,#1460,.F.); +#2270=ORIENTED_EDGE('',*,*,#1674,.T.); +#2271=ORIENTED_EDGE('',*,*,#1675,.F.); +#2272=ORIENTED_EDGE('',*,*,#1660,.F.); +#2273=ORIENTED_EDGE('',*,*,#1453,.F.); +#2274=ORIENTED_EDGE('',*,*,#1676,.T.); +#2275=ORIENTED_EDGE('',*,*,#1677,.F.); +#2276=ORIENTED_EDGE('',*,*,#1678,.F.); +#2277=ORIENTED_EDGE('',*,*,#1454,.F.); +#2278=ORIENTED_EDGE('',*,*,#1678,.T.); +#2279=ORIENTED_EDGE('',*,*,#1679,.F.); +#2280=ORIENTED_EDGE('',*,*,#1680,.F.); +#2281=ORIENTED_EDGE('',*,*,#1455,.F.); +#2282=ORIENTED_EDGE('',*,*,#1680,.T.); +#2283=ORIENTED_EDGE('',*,*,#1681,.F.); +#2284=ORIENTED_EDGE('',*,*,#1682,.F.); +#2285=ORIENTED_EDGE('',*,*,#1456,.F.); +#2286=ORIENTED_EDGE('',*,*,#1682,.T.); +#2287=ORIENTED_EDGE('',*,*,#1683,.F.); +#2288=ORIENTED_EDGE('',*,*,#1684,.F.); +#2289=ORIENTED_EDGE('',*,*,#1457,.F.); +#2290=ORIENTED_EDGE('',*,*,#1684,.T.); +#2291=ORIENTED_EDGE('',*,*,#1685,.F.); +#2292=ORIENTED_EDGE('',*,*,#1686,.F.); +#2293=ORIENTED_EDGE('',*,*,#1458,.F.); +#2294=ORIENTED_EDGE('',*,*,#1686,.T.); +#2295=ORIENTED_EDGE('',*,*,#1687,.F.); +#2296=ORIENTED_EDGE('',*,*,#1688,.F.); +#2297=ORIENTED_EDGE('',*,*,#1459,.F.); +#2298=ORIENTED_EDGE('',*,*,#1688,.T.); +#2299=ORIENTED_EDGE('',*,*,#1689,.F.); +#2300=ORIENTED_EDGE('',*,*,#1690,.F.); +#2301=ORIENTED_EDGE('',*,*,#1452,.F.); +#2302=ORIENTED_EDGE('',*,*,#1690,.T.); +#2303=ORIENTED_EDGE('',*,*,#1691,.F.); +#2304=ORIENTED_EDGE('',*,*,#1676,.F.); +#2305=ORIENTED_EDGE('',*,*,#1449,.F.); +#2306=ORIENTED_EDGE('',*,*,#1692,.T.); +#2307=ORIENTED_EDGE('',*,*,#1693,.F.); +#2308=ORIENTED_EDGE('',*,*,#1694,.F.); +#2309=ORIENTED_EDGE('',*,*,#1450,.F.); +#2310=ORIENTED_EDGE('',*,*,#1694,.T.); +#2311=ORIENTED_EDGE('',*,*,#1695,.F.); +#2312=ORIENTED_EDGE('',*,*,#1696,.F.); +#2313=ORIENTED_EDGE('',*,*,#1451,.F.); +#2314=ORIENTED_EDGE('',*,*,#1696,.T.); +#2315=ORIENTED_EDGE('',*,*,#1697,.F.); +#2316=ORIENTED_EDGE('',*,*,#1698,.F.); +#2317=ORIENTED_EDGE('',*,*,#1448,.F.); +#2318=ORIENTED_EDGE('',*,*,#1698,.T.); +#2319=ORIENTED_EDGE('',*,*,#1699,.F.); +#2320=ORIENTED_EDGE('',*,*,#1692,.F.); +#2321=ORIENTED_EDGE('',*,*,#1446,.F.); +#2322=ORIENTED_EDGE('',*,*,#1700,.T.); +#2323=ORIENTED_EDGE('',*,*,#1701,.F.); +#2324=ORIENTED_EDGE('',*,*,#1702,.F.); +#2325=ORIENTED_EDGE('',*,*,#1447,.F.); +#2326=ORIENTED_EDGE('',*,*,#1702,.T.); +#2327=ORIENTED_EDGE('',*,*,#1703,.F.); +#2328=ORIENTED_EDGE('',*,*,#1436,.F.); +#2329=ORIENTED_EDGE('',*,*,#1432,.F.); +#2330=ORIENTED_EDGE('',*,*,#1704,.F.); +#2331=ORIENTED_EDGE('',*,*,#1530,.F.); +#2332=ORIENTED_EDGE('',*,*,#1438,.F.); +#2333=ORIENTED_EDGE('',*,*,#1534,.F.); +#2334=ORIENTED_EDGE('',*,*,#1705,.F.); +#2335=ORIENTED_EDGE('',*,*,#1537,.F.); +#2336=ORIENTED_EDGE('',*,*,#1442,.F.); +#2337=ORIENTED_EDGE('',*,*,#1445,.F.); +#2338=ORIENTED_EDGE('',*,*,#1539,.T.); +#2339=ORIENTED_EDGE('',*,*,#1706,.F.); +#2340=ORIENTED_EDGE('',*,*,#1700,.F.); +#2341=ORIENTED_EDGE('',*,*,#1431,.F.); +#2342=ORIENTED_EDGE('',*,*,#1437,.T.); +#2343=ORIENTED_EDGE('',*,*,#1703,.T.); +#2344=ORIENTED_EDGE('',*,*,#1701,.T.); +#2345=ORIENTED_EDGE('',*,*,#1706,.T.); +#2346=ORIENTED_EDGE('',*,*,#1538,.T.); +#2347=ORIENTED_EDGE('',*,*,#1535,.F.); +#2348=ORIENTED_EDGE('',*,*,#1705,.T.); +#2349=ORIENTED_EDGE('',*,*,#1533,.F.); +#2350=ORIENTED_EDGE('',*,*,#1531,.T.); +#2351=ORIENTED_EDGE('',*,*,#1528,.F.); +#2352=ORIENTED_EDGE('',*,*,#1704,.T.); +#2353=ORIENTED_EDGE('',*,*,#1699,.T.); +#2354=ORIENTED_EDGE('',*,*,#1697,.T.); +#2355=ORIENTED_EDGE('',*,*,#1695,.T.); +#2356=ORIENTED_EDGE('',*,*,#1693,.T.); +#2357=ORIENTED_EDGE('',*,*,#1691,.T.); +#2358=ORIENTED_EDGE('',*,*,#1689,.T.); +#2359=ORIENTED_EDGE('',*,*,#1687,.T.); +#2360=ORIENTED_EDGE('',*,*,#1685,.T.); +#2361=ORIENTED_EDGE('',*,*,#1683,.T.); +#2362=ORIENTED_EDGE('',*,*,#1681,.T.); +#2363=ORIENTED_EDGE('',*,*,#1679,.T.); +#2364=ORIENTED_EDGE('',*,*,#1677,.T.); +#2365=ORIENTED_EDGE('',*,*,#1675,.T.); +#2366=ORIENTED_EDGE('',*,*,#1673,.T.); +#2367=ORIENTED_EDGE('',*,*,#1671,.T.); +#2368=ORIENTED_EDGE('',*,*,#1669,.T.); +#2369=ORIENTED_EDGE('',*,*,#1667,.T.); +#2370=ORIENTED_EDGE('',*,*,#1665,.T.); +#2371=ORIENTED_EDGE('',*,*,#1663,.T.); +#2372=ORIENTED_EDGE('',*,*,#1661,.T.); +#2373=ORIENTED_EDGE('',*,*,#1659,.T.); +#2374=ORIENTED_EDGE('',*,*,#1657,.T.); +#2375=ORIENTED_EDGE('',*,*,#1655,.T.); +#2376=ORIENTED_EDGE('',*,*,#1653,.T.); +#2377=ORIENTED_EDGE('',*,*,#1651,.T.); +#2378=ORIENTED_EDGE('',*,*,#1649,.T.); +#2379=ORIENTED_EDGE('',*,*,#1647,.T.); +#2380=ORIENTED_EDGE('',*,*,#1645,.T.); +#2381=ORIENTED_EDGE('',*,*,#1643,.T.); +#2382=ORIENTED_EDGE('',*,*,#1641,.T.); +#2383=ORIENTED_EDGE('',*,*,#1639,.T.); +#2384=ORIENTED_EDGE('',*,*,#1637,.T.); +#2385=ORIENTED_EDGE('',*,*,#1635,.T.); +#2386=ORIENTED_EDGE('',*,*,#1633,.T.); +#2387=ORIENTED_EDGE('',*,*,#1631,.T.); +#2388=ORIENTED_EDGE('',*,*,#1629,.T.); +#2389=ORIENTED_EDGE('',*,*,#1627,.T.); +#2390=ORIENTED_EDGE('',*,*,#1625,.T.); +#2391=ORIENTED_EDGE('',*,*,#1623,.T.); +#2392=ORIENTED_EDGE('',*,*,#1621,.T.); +#2393=ORIENTED_EDGE('',*,*,#1619,.T.); +#2394=ORIENTED_EDGE('',*,*,#1617,.T.); +#2395=ORIENTED_EDGE('',*,*,#1615,.T.); +#2396=ORIENTED_EDGE('',*,*,#1613,.T.); +#2397=ORIENTED_EDGE('',*,*,#1611,.T.); +#2398=ORIENTED_EDGE('',*,*,#1609,.T.); +#2399=ORIENTED_EDGE('',*,*,#1607,.T.); +#2400=ORIENTED_EDGE('',*,*,#1605,.T.); +#2401=ORIENTED_EDGE('',*,*,#1603,.T.); +#2402=ORIENTED_EDGE('',*,*,#1601,.T.); +#2403=ORIENTED_EDGE('',*,*,#1599,.T.); +#2404=ORIENTED_EDGE('',*,*,#1597,.T.); +#2405=ORIENTED_EDGE('',*,*,#1595,.T.); +#2406=ORIENTED_EDGE('',*,*,#1593,.T.); +#2407=ORIENTED_EDGE('',*,*,#1591,.T.); +#2408=ORIENTED_EDGE('',*,*,#1589,.T.); +#2409=ORIENTED_EDGE('',*,*,#1587,.T.); +#2410=ORIENTED_EDGE('',*,*,#1585,.T.); +#2411=ORIENTED_EDGE('',*,*,#1583,.T.); +#2412=ORIENTED_EDGE('',*,*,#1581,.T.); +#2413=ORIENTED_EDGE('',*,*,#1579,.T.); +#2414=ORIENTED_EDGE('',*,*,#1577,.T.); +#2415=ORIENTED_EDGE('',*,*,#1575,.T.); +#2416=ORIENTED_EDGE('',*,*,#1573,.T.); +#2417=ORIENTED_EDGE('',*,*,#1571,.T.); +#2418=ORIENTED_EDGE('',*,*,#1569,.T.); +#2419=ORIENTED_EDGE('',*,*,#1567,.T.); +#2420=ORIENTED_EDGE('',*,*,#1565,.T.); +#2421=ORIENTED_EDGE('',*,*,#1563,.T.); +#2422=ORIENTED_EDGE('',*,*,#1561,.T.); +#2423=ORIENTED_EDGE('',*,*,#1559,.T.); +#2424=ORIENTED_EDGE('',*,*,#1557,.T.); +#2425=ORIENTED_EDGE('',*,*,#1555,.T.); +#2426=ORIENTED_EDGE('',*,*,#1553,.T.); +#2427=ORIENTED_EDGE('',*,*,#1551,.T.); +#2428=ORIENTED_EDGE('',*,*,#1549,.T.); +#2429=ORIENTED_EDGE('',*,*,#1546,.T.); +#2430=ORIENTED_EDGE('',*,*,#1544,.T.); +#2431=ORIENTED_EDGE('',*,*,#1542,.T.); +#2432=ORIENTED_EDGE('',*,*,#1540,.T.); +#2433=ORIENTED_EDGE('',*,*,#1707,.T.); +#2434=ORIENTED_EDGE('',*,*,#1708,.T.); +#2435=ORIENTED_EDGE('',*,*,#1709,.T.); +#2436=ORIENTED_EDGE('',*,*,#1710,.T.); +#2437=ORIENTED_EDGE('',*,*,#1710,.F.); +#2438=ORIENTED_EDGE('',*,*,#1711,.F.); +#2439=ORIENTED_EDGE('',*,*,#1712,.F.); +#2440=ORIENTED_EDGE('',*,*,#1713,.F.); +#2441=ORIENTED_EDGE('',*,*,#1709,.F.); +#2442=ORIENTED_EDGE('',*,*,#1714,.T.); +#2443=ORIENTED_EDGE('',*,*,#1715,.F.); +#2444=ORIENTED_EDGE('',*,*,#1716,.T.); +#2445=ORIENTED_EDGE('',*,*,#1717,.F.); +#2446=ORIENTED_EDGE('',*,*,#1718,.T.); +#2447=ORIENTED_EDGE('',*,*,#1719,.F.); +#2448=ORIENTED_EDGE('',*,*,#1711,.T.); +#2449=ORIENTED_EDGE('',*,*,#1720,.T.); +#2450=ORIENTED_EDGE('',*,*,#1721,.T.); +#2451=ORIENTED_EDGE('',*,*,#1722,.T.); +#2452=ORIENTED_EDGE('',*,*,#1723,.T.); +#2453=ORIENTED_EDGE('',*,*,#1724,.T.); +#2454=ORIENTED_EDGE('',*,*,#1725,.T.); +#2455=ORIENTED_EDGE('',*,*,#1726,.T.); +#2456=ORIENTED_EDGE('',*,*,#1727,.T.); +#2457=ORIENTED_EDGE('',*,*,#1728,.T.); +#2458=ORIENTED_EDGE('',*,*,#1712,.T.); +#2459=ORIENTED_EDGE('',*,*,#1719,.T.); +#2460=ORIENTED_EDGE('',*,*,#1729,.T.); +#2461=ORIENTED_EDGE('',*,*,#1729,.F.); +#2462=ORIENTED_EDGE('',*,*,#1718,.F.); +#2463=ORIENTED_EDGE('',*,*,#1730,.F.); +#2464=ORIENTED_EDGE('',*,*,#1731,.F.); +#2465=ORIENTED_EDGE('',*,*,#1732,.T.); +#2466=ORIENTED_EDGE('',*,*,#1730,.T.); +#2467=ORIENTED_EDGE('',*,*,#1717,.T.); +#2468=ORIENTED_EDGE('',*,*,#1733,.T.); +#2469=ORIENTED_EDGE('',*,*,#1733,.F.); +#2470=ORIENTED_EDGE('',*,*,#1716,.F.); +#2471=ORIENTED_EDGE('',*,*,#1734,.F.); +#2472=ORIENTED_EDGE('',*,*,#1735,.F.); +#2473=ORIENTED_EDGE('',*,*,#1736,.T.); +#2474=ORIENTED_EDGE('',*,*,#1734,.T.); +#2475=ORIENTED_EDGE('',*,*,#1715,.T.); +#2476=ORIENTED_EDGE('',*,*,#1737,.T.); +#2477=ORIENTED_EDGE('',*,*,#1738,.F.); +#2478=ORIENTED_EDGE('',*,*,#1739,.T.); +#2479=ORIENTED_EDGE('',*,*,#1727,.F.); +#2480=ORIENTED_EDGE('',*,*,#1739,.F.); +#2481=ORIENTED_EDGE('',*,*,#1740,.F.); +#2482=ORIENTED_EDGE('',*,*,#1741,.T.); +#2483=ORIENTED_EDGE('',*,*,#1726,.F.); +#2484=ORIENTED_EDGE('',*,*,#1741,.F.); +#2485=ORIENTED_EDGE('',*,*,#1742,.F.); +#2486=ORIENTED_EDGE('',*,*,#1743,.T.); +#2487=ORIENTED_EDGE('',*,*,#1725,.F.); +#2488=ORIENTED_EDGE('',*,*,#1743,.F.); +#2489=ORIENTED_EDGE('',*,*,#1722,.F.); +#2490=ORIENTED_EDGE('',*,*,#1744,.T.); +#2491=ORIENTED_EDGE('',*,*,#1745,.F.); +#2492=ORIENTED_EDGE('',*,*,#1746,.F.); +#2493=ORIENTED_EDGE('',*,*,#1723,.F.); +#2494=ORIENTED_EDGE('',*,*,#1746,.T.); +#2495=ORIENTED_EDGE('',*,*,#1747,.F.); +#2496=ORIENTED_EDGE('',*,*,#1748,.F.); +#2497=ORIENTED_EDGE('',*,*,#1724,.F.); +#2498=ORIENTED_EDGE('',*,*,#1748,.T.); +#2499=ORIENTED_EDGE('',*,*,#1749,.F.); +#2500=ORIENTED_EDGE('',*,*,#1750,.F.); +#2501=ORIENTED_EDGE('',*,*,#1721,.F.); +#2502=ORIENTED_EDGE('',*,*,#1750,.T.); +#2503=ORIENTED_EDGE('',*,*,#1751,.F.); +#2504=ORIENTED_EDGE('',*,*,#1744,.F.); +#2505=ORIENTED_EDGE('',*,*,#1752,.F.); +#2506=ORIENTED_EDGE('',*,*,#1753,.T.); +#2507=ORIENTED_EDGE('',*,*,#1720,.F.); +#2508=ORIENTED_EDGE('',*,*,#1753,.F.); +#2509=ORIENTED_EDGE('',*,*,#1708,.F.); +#2510=ORIENTED_EDGE('',*,*,#1754,.F.); +#2511=ORIENTED_EDGE('',*,*,#1737,.F.); +#2512=ORIENTED_EDGE('',*,*,#1714,.F.); +#2513=ORIENTED_EDGE('',*,*,#1707,.F.); +#2514=ORIENTED_EDGE('',*,*,#1713,.T.); +#2515=ORIENTED_EDGE('',*,*,#1728,.F.); +#2516=ORIENTED_EDGE('',*,*,#1731,.T.); +#2517=ORIENTED_EDGE('',*,*,#1732,.F.); +#2518=ORIENTED_EDGE('',*,*,#1735,.T.); +#2519=ORIENTED_EDGE('',*,*,#1736,.F.); +#2520=ORIENTED_EDGE('',*,*,#1754,.T.); +#2521=ORIENTED_EDGE('',*,*,#1752,.T.); +#2522=ORIENTED_EDGE('',*,*,#1751,.T.); +#2523=ORIENTED_EDGE('',*,*,#1749,.T.); +#2524=ORIENTED_EDGE('',*,*,#1747,.T.); +#2525=ORIENTED_EDGE('',*,*,#1745,.T.); +#2526=ORIENTED_EDGE('',*,*,#1742,.T.); +#2527=ORIENTED_EDGE('',*,*,#1740,.T.); +#2528=ORIENTED_EDGE('',*,*,#1738,.T.); +#2529=CYLINDRICAL_SURFACE('',#2728,5.); +#2530=CYLINDRICAL_SURFACE('',#2740,5.); +#2531=CYLINDRICAL_SURFACE('',#2742,5.); +#2532=CYLINDRICAL_SURFACE('',#2745,5.); +#2533=CYLINDRICAL_SURFACE('',#2757,1.45); +#2534=CYLINDRICAL_SURFACE('',#2759,1.45); +#2535=CYLINDRICAL_SURFACE('',#2761,1.45); +#2536=CYLINDRICAL_SURFACE('',#2763,1.45); +#2537=CYLINDRICAL_SURFACE('',#2767,5.); +#2538=CYLINDRICAL_SURFACE('',#2815,5.); +#2539=CYLINDRICAL_SURFACE('',#2818,5.); +#2540=CYLINDRICAL_SURFACE('',#2820,5.); +#2541=CYLINDRICAL_SURFACE('',#2823,1.45); +#2542=CYLINDRICAL_SURFACE('',#2825,1.45); +#2543=CYLINDRICAL_SURFACE('',#2827,1.45); +#2544=CYLINDRICAL_SURFACE('',#2829,1.45); +#2545=CYLINDRICAL_SURFACE('',#2831,0.499999999999998); +#2546=CYLINDRICAL_SURFACE('',#2834,0.499999999999998); +#2547=CYLINDRICAL_SURFACE('',#2837,0.499999999999998); +#2548=CYLINDRICAL_SURFACE('',#2840,0.499999999999989); +#2549=CYLINDRICAL_SURFACE('',#2843,0.500000000000003); +#2550=CYLINDRICAL_SURFACE('',#2846,0.499999999999998); +#2551=CYLINDRICAL_SURFACE('',#2849,0.499999999999998); +#2552=CYLINDRICAL_SURFACE('',#2852,0.499999999999998); +#2553=CYLINDRICAL_SURFACE('',#2855,0.499999999999998); +#2554=CYLINDRICAL_SURFACE('',#2858,0.5); +#2555=CYLINDRICAL_SURFACE('',#2861,0.499999999999998); +#2556=CYLINDRICAL_SURFACE('',#2864,0.499999999999998); +#2557=CYLINDRICAL_SURFACE('',#2867,0.500000000000003); +#2558=CYLINDRICAL_SURFACE('',#2870,0.499999999999998); +#2559=CYLINDRICAL_SURFACE('',#2873,0.499999999999998); +#2560=CYLINDRICAL_SURFACE('',#2876,0.499999999999998); +#2561=CYLINDRICAL_SURFACE('',#2879,0.500000000000003); +#2562=CYLINDRICAL_SURFACE('',#2882,0.499999999999998); +#2563=CYLINDRICAL_SURFACE('',#2885,0.499999999999998); +#2564=CYLINDRICAL_SURFACE('',#2888,0.499999999999989); +#2565=CYLINDRICAL_SURFACE('',#2891,0.500000000000003); +#2566=CYLINDRICAL_SURFACE('',#2894,0.5); +#2567=CYLINDRICAL_SURFACE('',#2897,0.499999999999998); +#2568=CYLINDRICAL_SURFACE('',#2900,0.499999999999998); +#2569=CYLINDRICAL_SURFACE('',#2903,0.499999999999998); +#2570=CYLINDRICAL_SURFACE('',#2906,0.499999999999998); +#2571=CYLINDRICAL_SURFACE('',#2909,0.499999999999998); +#2572=CYLINDRICAL_SURFACE('',#2912,0.499999999999998); +#2573=CYLINDRICAL_SURFACE('',#2915,0.499999999999998); +#2574=CYLINDRICAL_SURFACE('',#2918,0.499999999999998); +#2575=CYLINDRICAL_SURFACE('',#2921,0.499999999999998); +#2576=CYLINDRICAL_SURFACE('',#2924,0.499999999999998); +#2577=CYLINDRICAL_SURFACE('',#2927,0.499999999999998); +#2578=CYLINDRICAL_SURFACE('',#2930,0.499999999999998); +#2579=CYLINDRICAL_SURFACE('',#2933,0.499999999999998); +#2580=CYLINDRICAL_SURFACE('',#2936,0.499999999999989); +#2581=CYLINDRICAL_SURFACE('',#2949,5.); +#2582=CYLINDRICAL_SURFACE('',#2961,5.); +#2583=CYLINDRICAL_SURFACE('',#2964,5.); +#2584=CYLINDRICAL_SURFACE('',#2967,5.); +#2585=CYLINDRICAL_SURFACE('',#2969,1.45); +#2586=CYLINDRICAL_SURFACE('',#2971,1.45); +#2587=CYLINDRICAL_SURFACE('',#2973,1.45); +#2588=CYLINDRICAL_SURFACE('',#2979,1.45); +#2589=ADVANCED_FACE('',(#140),#2529,.T.); +#2590=ADVANCED_FACE('',(#141,#19,#20,#21,#22),#65,.T.); +#2591=ADVANCED_FACE('',(#142),#66,.T.); +#2592=ADVANCED_FACE('',(#143),#2530,.T.); +#2593=ADVANCED_FACE('',(#144),#2531,.T.); +#2594=ADVANCED_FACE('',(#145),#67,.T.); +#2595=ADVANCED_FACE('',(#146),#2532,.T.); +#2596=ADVANCED_FACE('',(#147),#68,.T.); +#2597=ADVANCED_FACE('',(#148),#69,.F.); +#2598=ADVANCED_FACE('',(#149),#70,.T.); +#2599=ADVANCED_FACE('',(#150),#71,.T.); +#2600=ADVANCED_FACE('',(#151),#72,.T.); +#2601=ADVANCED_FACE('',(#152),#73,.F.); +#2602=ADVANCED_FACE('',(#153),#74,.T.); +#2603=ADVANCED_FACE('',(#154),#75,.T.); +#2604=ADVANCED_FACE('',(#155),#76,.T.); +#2605=ADVANCED_FACE('',(#156),#77,.T.); +#2606=ADVANCED_FACE('',(#157),#2533,.F.); +#2607=ADVANCED_FACE('',(#158),#2534,.F.); +#2608=ADVANCED_FACE('',(#159),#2535,.F.); +#2609=ADVANCED_FACE('',(#160),#2536,.F.); +#2610=ADVANCED_FACE('',(#161),#78,.T.); +#2611=ADVANCED_FACE('',(#162,#23,#24,#25,#26),#79,.F.); +#2612=ADVANCED_FACE('',(#163),#2537,.T.); +#2613=ADVANCED_FACE('',(#164),#80,.T.); +#2614=ADVANCED_FACE('',(#165,#27,#28,#29,#30,#31,#32,#33,#34,#35,#36,#37, +#38,#39,#40),#81,.T.); +#2615=ADVANCED_FACE('',(#166),#2538,.T.); +#2616=ADVANCED_FACE('',(#167),#82,.T.); +#2617=ADVANCED_FACE('',(#168),#2539,.T.); +#2618=ADVANCED_FACE('',(#169),#2540,.T.); +#2619=ADVANCED_FACE('',(#170),#83,.T.); +#2620=ADVANCED_FACE('',(#171),#2541,.F.); +#2621=ADVANCED_FACE('',(#172),#2542,.F.); +#2622=ADVANCED_FACE('',(#173),#2543,.F.); +#2623=ADVANCED_FACE('',(#174),#2544,.F.); +#2624=ADVANCED_FACE('',(#175),#2545,.F.); +#2625=ADVANCED_FACE('',(#176),#84,.T.); +#2626=ADVANCED_FACE('',(#177),#2546,.F.); +#2627=ADVANCED_FACE('',(#178),#85,.T.); +#2628=ADVANCED_FACE('',(#179),#2547,.F.); +#2629=ADVANCED_FACE('',(#180),#86,.T.); +#2630=ADVANCED_FACE('',(#181),#2548,.F.); +#2631=ADVANCED_FACE('',(#182),#87,.T.); +#2632=ADVANCED_FACE('',(#183),#2549,.F.); +#2633=ADVANCED_FACE('',(#184),#88,.T.); +#2634=ADVANCED_FACE('',(#185),#2550,.F.); +#2635=ADVANCED_FACE('',(#186),#89,.T.); +#2636=ADVANCED_FACE('',(#187),#2551,.F.); +#2637=ADVANCED_FACE('',(#188),#90,.T.); +#2638=ADVANCED_FACE('',(#189),#2552,.F.); +#2639=ADVANCED_FACE('',(#190),#91,.T.); +#2640=ADVANCED_FACE('',(#191),#2553,.F.); +#2641=ADVANCED_FACE('',(#192),#92,.T.); +#2642=ADVANCED_FACE('',(#193),#2554,.F.); +#2643=ADVANCED_FACE('',(#194),#93,.T.); +#2644=ADVANCED_FACE('',(#195),#2555,.F.); +#2645=ADVANCED_FACE('',(#196),#94,.T.); +#2646=ADVANCED_FACE('',(#197),#2556,.F.); +#2647=ADVANCED_FACE('',(#198),#95,.T.); +#2648=ADVANCED_FACE('',(#199),#2557,.F.); +#2649=ADVANCED_FACE('',(#200),#96,.T.); +#2650=ADVANCED_FACE('',(#201),#2558,.F.); +#2651=ADVANCED_FACE('',(#202),#97,.T.); +#2652=ADVANCED_FACE('',(#203),#2559,.F.); +#2653=ADVANCED_FACE('',(#204),#98,.T.); +#2654=ADVANCED_FACE('',(#205),#2560,.F.); +#2655=ADVANCED_FACE('',(#206),#99,.T.); +#2656=ADVANCED_FACE('',(#207),#2561,.F.); +#2657=ADVANCED_FACE('',(#208),#100,.T.); +#2658=ADVANCED_FACE('',(#209),#2562,.F.); +#2659=ADVANCED_FACE('',(#210),#101,.T.); +#2660=ADVANCED_FACE('',(#211),#2563,.F.); +#2661=ADVANCED_FACE('',(#212),#102,.T.); +#2662=ADVANCED_FACE('',(#213),#2564,.F.); +#2663=ADVANCED_FACE('',(#214),#103,.T.); +#2664=ADVANCED_FACE('',(#215),#2565,.F.); +#2665=ADVANCED_FACE('',(#216),#104,.T.); +#2666=ADVANCED_FACE('',(#217),#2566,.F.); +#2667=ADVANCED_FACE('',(#218),#105,.T.); +#2668=ADVANCED_FACE('',(#219),#2567,.F.); +#2669=ADVANCED_FACE('',(#220),#106,.T.); +#2670=ADVANCED_FACE('',(#221),#2568,.F.); +#2671=ADVANCED_FACE('',(#222),#107,.T.); +#2672=ADVANCED_FACE('',(#223),#2569,.F.); +#2673=ADVANCED_FACE('',(#224),#108,.T.); +#2674=ADVANCED_FACE('',(#225),#2570,.F.); +#2675=ADVANCED_FACE('',(#226),#109,.T.); +#2676=ADVANCED_FACE('',(#227),#2571,.F.); +#2677=ADVANCED_FACE('',(#228),#110,.T.); +#2678=ADVANCED_FACE('',(#229),#2572,.F.); +#2679=ADVANCED_FACE('',(#230),#111,.T.); +#2680=ADVANCED_FACE('',(#231),#2573,.F.); +#2681=ADVANCED_FACE('',(#232),#112,.T.); +#2682=ADVANCED_FACE('',(#233),#2574,.F.); +#2683=ADVANCED_FACE('',(#234),#113,.T.); +#2684=ADVANCED_FACE('',(#235),#2575,.F.); +#2685=ADVANCED_FACE('',(#236),#114,.T.); +#2686=ADVANCED_FACE('',(#237),#2576,.F.); +#2687=ADVANCED_FACE('',(#238),#115,.T.); +#2688=ADVANCED_FACE('',(#239),#2577,.F.); +#2689=ADVANCED_FACE('',(#240),#116,.T.); +#2690=ADVANCED_FACE('',(#241),#2578,.F.); +#2691=ADVANCED_FACE('',(#242),#117,.T.); +#2692=ADVANCED_FACE('',(#243),#2579,.F.); +#2693=ADVANCED_FACE('',(#244),#118,.T.); +#2694=ADVANCED_FACE('',(#245),#2580,.F.); +#2695=ADVANCED_FACE('',(#246),#119,.T.); +#2696=ADVANCED_FACE('',(#247),#120,.T.); +#2697=ADVANCED_FACE('',(#248),#121,.T.); +#2698=ADVANCED_FACE('',(#249),#122,.T.); +#2699=ADVANCED_FACE('',(#250),#123,.T.); +#2700=ADVANCED_FACE('',(#251),#124,.T.); +#2701=ADVANCED_FACE('',(#252),#125,.T.); +#2702=ADVANCED_FACE('',(#253),#126,.T.); +#2703=ADVANCED_FACE('',(#254),#127,.T.); +#2704=ADVANCED_FACE('',(#255),#128,.T.); +#2705=ADVANCED_FACE('',(#256,#41,#42,#43,#44,#45,#46,#47,#48,#49,#50,#51, +#52,#53,#54),#129,.F.); +#2706=ADVANCED_FACE('',(#257),#2581,.T.); +#2707=ADVANCED_FACE('',(#258),#130,.T.); +#2708=ADVANCED_FACE('',(#259,#55,#56,#57,#58,#59),#131,.F.); +#2709=ADVANCED_FACE('',(#260),#2582,.T.); +#2710=ADVANCED_FACE('',(#261),#132,.T.); +#2711=ADVANCED_FACE('',(#262),#2583,.T.); +#2712=ADVANCED_FACE('',(#263),#133,.T.); +#2713=ADVANCED_FACE('',(#264),#2584,.T.); +#2714=ADVANCED_FACE('',(#265),#2585,.F.); +#2715=ADVANCED_FACE('',(#266),#2586,.F.); +#2716=ADVANCED_FACE('',(#267),#2587,.F.); +#2717=ADVANCED_FACE('',(#268),#134,.T.); +#2718=ADVANCED_FACE('',(#269),#135,.T.); +#2719=ADVANCED_FACE('',(#270),#136,.T.); +#2720=ADVANCED_FACE('',(#271),#137,.T.); +#2721=ADVANCED_FACE('',(#272),#2588,.F.); +#2722=ADVANCED_FACE('',(#273),#138,.T.); +#2723=ADVANCED_FACE('',(#274,#60,#61,#62,#63,#64),#139,.T.); +#2724=CLOSED_SHELL('',(#2589,#2590,#2591,#2592,#2593,#2594,#2595,#2596, +#2597,#2598,#2599,#2600,#2601,#2602,#2603,#2604,#2605,#2606,#2607,#2608, +#2609,#2610,#2611)); +#2725=CLOSED_SHELL('',(#2612,#2613,#2614,#2615,#2616,#2617,#2618,#2619, +#2620,#2621,#2622,#2623,#2624,#2625,#2626,#2627,#2628,#2629,#2630,#2631, +#2632,#2633,#2634,#2635,#2636,#2637,#2638,#2639,#2640,#2641,#2642,#2643, +#2644,#2645,#2646,#2647,#2648,#2649,#2650,#2651,#2652,#2653,#2654,#2655, +#2656,#2657,#2658,#2659,#2660,#2661,#2662,#2663,#2664,#2665,#2666,#2667, +#2668,#2669,#2670,#2671,#2672,#2673,#2674,#2675,#2676,#2677,#2678,#2679, +#2680,#2681,#2682,#2683,#2684,#2685,#2686,#2687,#2688,#2689,#2690,#2691, +#2692,#2693,#2694,#2695,#2696,#2697,#2698,#2699,#2700,#2701,#2702,#2703, +#2704,#2705)); +#2726=CLOSED_SHELL('',(#2706,#2707,#2708,#2709,#2710,#2711,#2712,#2713, +#2714,#2715,#2716,#2717,#2718,#2719,#2720,#2721,#2722,#2723)); +#2727=AXIS2_PLACEMENT_3D('',#3762,#2983,#2984); +#2728=AXIS2_PLACEMENT_3D('',#3763,#2985,#2986); +#2729=AXIS2_PLACEMENT_3D('',#3766,#2987,#2988); +#2730=AXIS2_PLACEMENT_3D('',#3770,#2990,#2991); +#2731=AXIS2_PLACEMENT_3D('',#3772,#2993,#2994); +#2732=AXIS2_PLACEMENT_3D('',#3776,#2996,#2997); +#2733=AXIS2_PLACEMENT_3D('',#3780,#2999,#3000); +#2734=AXIS2_PLACEMENT_3D('',#3784,#3002,#3003); +#2735=AXIS2_PLACEMENT_3D('',#3805,#3014,#3015); +#2736=AXIS2_PLACEMENT_3D('',#3807,#3016,#3017); +#2737=AXIS2_PLACEMENT_3D('',#3809,#3018,#3019); +#2738=AXIS2_PLACEMENT_3D('',#3811,#3020,#3021); +#2739=AXIS2_PLACEMENT_3D('',#3812,#3022,#3023); +#2740=AXIS2_PLACEMENT_3D('',#3816,#3026,#3027); +#2741=AXIS2_PLACEMENT_3D('',#3818,#3028,#3029); +#2742=AXIS2_PLACEMENT_3D('',#3820,#3031,#3032); +#2743=AXIS2_PLACEMENT_3D('',#3824,#3034,#3035); +#2744=AXIS2_PLACEMENT_3D('',#3826,#3037,#3038); +#2745=AXIS2_PLACEMENT_3D('',#3830,#3041,#3042); +#2746=AXIS2_PLACEMENT_3D('',#3832,#3043,#3044); +#2747=AXIS2_PLACEMENT_3D('',#3834,#3046,#3047); +#2748=AXIS2_PLACEMENT_3D('',#3841,#3052,#3053); +#2749=AXIS2_PLACEMENT_3D('',#3845,#3056,#3057); +#2750=AXIS2_PLACEMENT_3D('',#3849,#3060,#3061); +#2751=AXIS2_PLACEMENT_3D('',#3851,#3063,#3064); +#2752=AXIS2_PLACEMENT_3D('',#3855,#3067,#3068); +#2753=AXIS2_PLACEMENT_3D('',#3857,#3070,#3071); +#2754=AXIS2_PLACEMENT_3D('',#3863,#3075,#3076); +#2755=AXIS2_PLACEMENT_3D('',#3867,#3079,#3080); +#2756=AXIS2_PLACEMENT_3D('',#3871,#3083,#3084); +#2757=AXIS2_PLACEMENT_3D('',#3873,#3086,#3087); +#2758=AXIS2_PLACEMENT_3D('',#3876,#3089,#3090); +#2759=AXIS2_PLACEMENT_3D('',#3877,#3091,#3092); +#2760=AXIS2_PLACEMENT_3D('',#3880,#3094,#3095); +#2761=AXIS2_PLACEMENT_3D('',#3881,#3096,#3097); +#2762=AXIS2_PLACEMENT_3D('',#3884,#3099,#3100); +#2763=AXIS2_PLACEMENT_3D('',#3885,#3101,#3102); +#2764=AXIS2_PLACEMENT_3D('',#3888,#3104,#3105); +#2765=AXIS2_PLACEMENT_3D('',#3889,#3106,#3107); +#2766=AXIS2_PLACEMENT_3D('',#3890,#3108,#3109); +#2767=AXIS2_PLACEMENT_3D('',#3891,#3110,#3111); +#2768=AXIS2_PLACEMENT_3D('',#3894,#3112,#3113); +#2769=AXIS2_PLACEMENT_3D('',#3898,#3115,#3116); +#2770=AXIS2_PLACEMENT_3D('',#3900,#3118,#3119); +#2771=AXIS2_PLACEMENT_3D('',#3906,#3123,#3124); +#2772=AXIS2_PLACEMENT_3D('',#3910,#3126,#3127); +#2773=AXIS2_PLACEMENT_3D('',#3914,#3129,#3130); +#2774=AXIS2_PLACEMENT_3D('',#3918,#3132,#3133); +#2775=AXIS2_PLACEMENT_3D('',#3938,#3143,#3144); +#2776=AXIS2_PLACEMENT_3D('',#3942,#3146,#3147); +#2777=AXIS2_PLACEMENT_3D('',#3946,#3149,#3150); +#2778=AXIS2_PLACEMENT_3D('',#3949,#3152,#3153); +#2779=AXIS2_PLACEMENT_3D('',#3954,#3155,#3156); +#2780=AXIS2_PLACEMENT_3D('',#3958,#3158,#3159); +#2781=AXIS2_PLACEMENT_3D('',#3962,#3161,#3162); +#2782=AXIS2_PLACEMENT_3D('',#3965,#3164,#3165); +#2783=AXIS2_PLACEMENT_3D('',#3970,#3167,#3168); +#2784=AXIS2_PLACEMENT_3D('',#3974,#3170,#3171); +#2785=AXIS2_PLACEMENT_3D('',#3978,#3173,#3174); +#2786=AXIS2_PLACEMENT_3D('',#3981,#3176,#3177); +#2787=AXIS2_PLACEMENT_3D('',#3986,#3179,#3180); +#2788=AXIS2_PLACEMENT_3D('',#3990,#3182,#3183); +#2789=AXIS2_PLACEMENT_3D('',#3994,#3185,#3186); +#2790=AXIS2_PLACEMENT_3D('',#3997,#3188,#3189); +#2791=AXIS2_PLACEMENT_3D('',#4002,#3191,#3192); +#2792=AXIS2_PLACEMENT_3D('',#4006,#3194,#3195); +#2793=AXIS2_PLACEMENT_3D('',#4010,#3197,#3198); +#2794=AXIS2_PLACEMENT_3D('',#4013,#3200,#3201); +#2795=AXIS2_PLACEMENT_3D('',#4018,#3203,#3204); +#2796=AXIS2_PLACEMENT_3D('',#4022,#3206,#3207); +#2797=AXIS2_PLACEMENT_3D('',#4026,#3209,#3210); +#2798=AXIS2_PLACEMENT_3D('',#4029,#3212,#3213); +#2799=AXIS2_PLACEMENT_3D('',#4034,#3215,#3216); +#2800=AXIS2_PLACEMENT_3D('',#4038,#3218,#3219); +#2801=AXIS2_PLACEMENT_3D('',#4042,#3221,#3222); +#2802=AXIS2_PLACEMENT_3D('',#4045,#3224,#3225); +#2803=AXIS2_PLACEMENT_3D('',#4050,#3227,#3228); +#2804=AXIS2_PLACEMENT_3D('',#4054,#3230,#3231); +#2805=AXIS2_PLACEMENT_3D('',#4058,#3233,#3234); +#2806=AXIS2_PLACEMENT_3D('',#4061,#3236,#3237); +#2807=AXIS2_PLACEMENT_3D('',#4066,#3239,#3240); +#2808=AXIS2_PLACEMENT_3D('',#4070,#3242,#3243); +#2809=AXIS2_PLACEMENT_3D('',#4074,#3245,#3246); +#2810=AXIS2_PLACEMENT_3D('',#4077,#3248,#3249); +#2811=AXIS2_PLACEMENT_3D('',#4079,#3250,#3251); +#2812=AXIS2_PLACEMENT_3D('',#4081,#3252,#3253); +#2813=AXIS2_PLACEMENT_3D('',#4083,#3254,#3255); +#2814=AXIS2_PLACEMENT_3D('',#4085,#3256,#3257); +#2815=AXIS2_PLACEMENT_3D('',#4086,#3258,#3259); +#2816=AXIS2_PLACEMENT_3D('',#4089,#3260,#3261); +#2817=AXIS2_PLACEMENT_3D('',#4092,#3264,#3265); +#2818=AXIS2_PLACEMENT_3D('',#4096,#3268,#3269); +#2819=AXIS2_PLACEMENT_3D('',#4098,#3270,#3271); +#2820=AXIS2_PLACEMENT_3D('',#4100,#3273,#3274); +#2821=AXIS2_PLACEMENT_3D('',#4103,#3275,#3276); +#2822=AXIS2_PLACEMENT_3D('',#4106,#3279,#3280); +#2823=AXIS2_PLACEMENT_3D('',#4110,#3283,#3284); +#2824=AXIS2_PLACEMENT_3D('',#4112,#3285,#3286); +#2825=AXIS2_PLACEMENT_3D('',#4114,#3288,#3289); +#2826=AXIS2_PLACEMENT_3D('',#4116,#3290,#3291); +#2827=AXIS2_PLACEMENT_3D('',#4118,#3293,#3294); +#2828=AXIS2_PLACEMENT_3D('',#4120,#3295,#3296); +#2829=AXIS2_PLACEMENT_3D('',#4122,#3298,#3299); +#2830=AXIS2_PLACEMENT_3D('',#4124,#3300,#3301); +#2831=AXIS2_PLACEMENT_3D('',#4126,#3303,#3304); +#2832=AXIS2_PLACEMENT_3D('',#4130,#3306,#3307); +#2833=AXIS2_PLACEMENT_3D('',#4132,#3309,#3310); +#2834=AXIS2_PLACEMENT_3D('',#4136,#3313,#3314); +#2835=AXIS2_PLACEMENT_3D('',#4138,#3315,#3316); +#2836=AXIS2_PLACEMENT_3D('',#4140,#3318,#3319); +#2837=AXIS2_PLACEMENT_3D('',#4144,#3322,#3323); +#2838=AXIS2_PLACEMENT_3D('',#4146,#3324,#3325); +#2839=AXIS2_PLACEMENT_3D('',#4148,#3327,#3328); +#2840=AXIS2_PLACEMENT_3D('',#4152,#3331,#3332); +#2841=AXIS2_PLACEMENT_3D('',#4154,#3333,#3334); +#2842=AXIS2_PLACEMENT_3D('',#4156,#3336,#3337); +#2843=AXIS2_PLACEMENT_3D('',#4158,#3339,#3340); +#2844=AXIS2_PLACEMENT_3D('',#4162,#3342,#3343); +#2845=AXIS2_PLACEMENT_3D('',#4164,#3345,#3346); +#2846=AXIS2_PLACEMENT_3D('',#4168,#3349,#3350); +#2847=AXIS2_PLACEMENT_3D('',#4170,#3351,#3352); +#2848=AXIS2_PLACEMENT_3D('',#4172,#3354,#3355); +#2849=AXIS2_PLACEMENT_3D('',#4176,#3358,#3359); +#2850=AXIS2_PLACEMENT_3D('',#4178,#3360,#3361); +#2851=AXIS2_PLACEMENT_3D('',#4180,#3363,#3364); +#2852=AXIS2_PLACEMENT_3D('',#4184,#3367,#3368); +#2853=AXIS2_PLACEMENT_3D('',#4186,#3369,#3370); +#2854=AXIS2_PLACEMENT_3D('',#4188,#3372,#3373); +#2855=AXIS2_PLACEMENT_3D('',#4190,#3375,#3376); +#2856=AXIS2_PLACEMENT_3D('',#4194,#3378,#3379); +#2857=AXIS2_PLACEMENT_3D('',#4196,#3381,#3382); +#2858=AXIS2_PLACEMENT_3D('',#4200,#3385,#3386); +#2859=AXIS2_PLACEMENT_3D('',#4202,#3387,#3388); +#2860=AXIS2_PLACEMENT_3D('',#4204,#3390,#3391); +#2861=AXIS2_PLACEMENT_3D('',#4208,#3394,#3395); +#2862=AXIS2_PLACEMENT_3D('',#4210,#3396,#3397); +#2863=AXIS2_PLACEMENT_3D('',#4212,#3399,#3400); +#2864=AXIS2_PLACEMENT_3D('',#4216,#3403,#3404); +#2865=AXIS2_PLACEMENT_3D('',#4218,#3405,#3406); +#2866=AXIS2_PLACEMENT_3D('',#4220,#3408,#3409); +#2867=AXIS2_PLACEMENT_3D('',#4222,#3411,#3412); +#2868=AXIS2_PLACEMENT_3D('',#4226,#3414,#3415); +#2869=AXIS2_PLACEMENT_3D('',#4228,#3417,#3418); +#2870=AXIS2_PLACEMENT_3D('',#4232,#3421,#3422); +#2871=AXIS2_PLACEMENT_3D('',#4234,#3423,#3424); +#2872=AXIS2_PLACEMENT_3D('',#4236,#3426,#3427); +#2873=AXIS2_PLACEMENT_3D('',#4240,#3430,#3431); +#2874=AXIS2_PLACEMENT_3D('',#4242,#3432,#3433); +#2875=AXIS2_PLACEMENT_3D('',#4244,#3435,#3436); +#2876=AXIS2_PLACEMENT_3D('',#4248,#3439,#3440); +#2877=AXIS2_PLACEMENT_3D('',#4250,#3441,#3442); +#2878=AXIS2_PLACEMENT_3D('',#4252,#3444,#3445); +#2879=AXIS2_PLACEMENT_3D('',#4254,#3447,#3448); +#2880=AXIS2_PLACEMENT_3D('',#4258,#3450,#3451); +#2881=AXIS2_PLACEMENT_3D('',#4260,#3453,#3454); +#2882=AXIS2_PLACEMENT_3D('',#4264,#3457,#3458); +#2883=AXIS2_PLACEMENT_3D('',#4266,#3459,#3460); +#2884=AXIS2_PLACEMENT_3D('',#4268,#3462,#3463); +#2885=AXIS2_PLACEMENT_3D('',#4272,#3466,#3467); +#2886=AXIS2_PLACEMENT_3D('',#4274,#3468,#3469); +#2887=AXIS2_PLACEMENT_3D('',#4276,#3471,#3472); +#2888=AXIS2_PLACEMENT_3D('',#4280,#3475,#3476); +#2889=AXIS2_PLACEMENT_3D('',#4282,#3477,#3478); +#2890=AXIS2_PLACEMENT_3D('',#4284,#3480,#3481); +#2891=AXIS2_PLACEMENT_3D('',#4286,#3483,#3484); +#2892=AXIS2_PLACEMENT_3D('',#4290,#3486,#3487); +#2893=AXIS2_PLACEMENT_3D('',#4292,#3489,#3490); +#2894=AXIS2_PLACEMENT_3D('',#4296,#3493,#3494); +#2895=AXIS2_PLACEMENT_3D('',#4298,#3495,#3496); +#2896=AXIS2_PLACEMENT_3D('',#4300,#3498,#3499); +#2897=AXIS2_PLACEMENT_3D('',#4304,#3502,#3503); +#2898=AXIS2_PLACEMENT_3D('',#4306,#3504,#3505); +#2899=AXIS2_PLACEMENT_3D('',#4308,#3507,#3508); +#2900=AXIS2_PLACEMENT_3D('',#4312,#3511,#3512); +#2901=AXIS2_PLACEMENT_3D('',#4314,#3513,#3514); +#2902=AXIS2_PLACEMENT_3D('',#4316,#3516,#3517); +#2903=AXIS2_PLACEMENT_3D('',#4318,#3519,#3520); +#2904=AXIS2_PLACEMENT_3D('',#4322,#3522,#3523); +#2905=AXIS2_PLACEMENT_3D('',#4324,#3525,#3526); +#2906=AXIS2_PLACEMENT_3D('',#4328,#3529,#3530); +#2907=AXIS2_PLACEMENT_3D('',#4330,#3531,#3532); +#2908=AXIS2_PLACEMENT_3D('',#4332,#3534,#3535); +#2909=AXIS2_PLACEMENT_3D('',#4336,#3538,#3539); +#2910=AXIS2_PLACEMENT_3D('',#4338,#3540,#3541); +#2911=AXIS2_PLACEMENT_3D('',#4340,#3543,#3544); +#2912=AXIS2_PLACEMENT_3D('',#4344,#3547,#3548); +#2913=AXIS2_PLACEMENT_3D('',#4346,#3549,#3550); +#2914=AXIS2_PLACEMENT_3D('',#4348,#3552,#3553); +#2915=AXIS2_PLACEMENT_3D('',#4350,#3555,#3556); +#2916=AXIS2_PLACEMENT_3D('',#4354,#3558,#3559); +#2917=AXIS2_PLACEMENT_3D('',#4356,#3561,#3562); +#2918=AXIS2_PLACEMENT_3D('',#4360,#3565,#3566); +#2919=AXIS2_PLACEMENT_3D('',#4362,#3567,#3568); +#2920=AXIS2_PLACEMENT_3D('',#4364,#3570,#3571); +#2921=AXIS2_PLACEMENT_3D('',#4368,#3574,#3575); +#2922=AXIS2_PLACEMENT_3D('',#4370,#3576,#3577); +#2923=AXIS2_PLACEMENT_3D('',#4372,#3579,#3580); +#2924=AXIS2_PLACEMENT_3D('',#4376,#3583,#3584); +#2925=AXIS2_PLACEMENT_3D('',#4378,#3585,#3586); +#2926=AXIS2_PLACEMENT_3D('',#4380,#3588,#3589); +#2927=AXIS2_PLACEMENT_3D('',#4382,#3591,#3592); +#2928=AXIS2_PLACEMENT_3D('',#4386,#3594,#3595); +#2929=AXIS2_PLACEMENT_3D('',#4388,#3597,#3598); +#2930=AXIS2_PLACEMENT_3D('',#4392,#3601,#3602); +#2931=AXIS2_PLACEMENT_3D('',#4394,#3603,#3604); +#2932=AXIS2_PLACEMENT_3D('',#4396,#3606,#3607); +#2933=AXIS2_PLACEMENT_3D('',#4400,#3610,#3611); +#2934=AXIS2_PLACEMENT_3D('',#4402,#3612,#3613); +#2935=AXIS2_PLACEMENT_3D('',#4404,#3615,#3616); +#2936=AXIS2_PLACEMENT_3D('',#4408,#3619,#3620); +#2937=AXIS2_PLACEMENT_3D('',#4410,#3621,#3622); +#2938=AXIS2_PLACEMENT_3D('',#4412,#3624,#3625); +#2939=AXIS2_PLACEMENT_3D('',#4414,#3627,#3628); +#2940=AXIS2_PLACEMENT_3D('',#4420,#3632,#3633); +#2941=AXIS2_PLACEMENT_3D('',#4424,#3636,#3637); +#2942=AXIS2_PLACEMENT_3D('',#4428,#3640,#3641); +#2943=AXIS2_PLACEMENT_3D('',#4430,#3643,#3644); +#2944=AXIS2_PLACEMENT_3D('',#4436,#3648,#3649); +#2945=AXIS2_PLACEMENT_3D('',#4438,#3651,#3652); +#2946=AXIS2_PLACEMENT_3D('',#4440,#3654,#3655); +#2947=AXIS2_PLACEMENT_3D('',#4442,#3657,#3658); +#2948=AXIS2_PLACEMENT_3D('',#4444,#3660,#3661); +#2949=AXIS2_PLACEMENT_3D('',#4445,#3662,#3663); +#2950=AXIS2_PLACEMENT_3D('',#4448,#3664,#3665); +#2951=AXIS2_PLACEMENT_3D('',#4452,#3667,#3668); +#2952=AXIS2_PLACEMENT_3D('',#4454,#3670,#3671); +#2953=AXIS2_PLACEMENT_3D('',#4460,#3675,#3676); +#2954=AXIS2_PLACEMENT_3D('',#4464,#3678,#3679); +#2955=AXIS2_PLACEMENT_3D('',#4468,#3681,#3682); +#2956=AXIS2_PLACEMENT_3D('',#4471,#3684,#3685); +#2957=AXIS2_PLACEMENT_3D('',#4473,#3686,#3687); +#2958=AXIS2_PLACEMENT_3D('',#4483,#3692,#3693); +#2959=AXIS2_PLACEMENT_3D('',#4485,#3694,#3695); +#2960=AXIS2_PLACEMENT_3D('',#4487,#3696,#3697); +#2961=AXIS2_PLACEMENT_3D('',#4488,#3698,#3699); +#2962=AXIS2_PLACEMENT_3D('',#4490,#3700,#3701); +#2963=AXIS2_PLACEMENT_3D('',#4492,#3703,#3704); +#2964=AXIS2_PLACEMENT_3D('',#4496,#3707,#3708); +#2965=AXIS2_PLACEMENT_3D('',#4498,#3709,#3710); +#2966=AXIS2_PLACEMENT_3D('',#4500,#3712,#3713); +#2967=AXIS2_PLACEMENT_3D('',#4504,#3716,#3717); +#2968=AXIS2_PLACEMENT_3D('',#4506,#3718,#3719); +#2969=AXIS2_PLACEMENT_3D('',#4508,#3721,#3722); +#2970=AXIS2_PLACEMENT_3D('',#4510,#3723,#3724); +#2971=AXIS2_PLACEMENT_3D('',#4512,#3726,#3727); +#2972=AXIS2_PLACEMENT_3D('',#4514,#3728,#3729); +#2973=AXIS2_PLACEMENT_3D('',#4516,#3731,#3732); +#2974=AXIS2_PLACEMENT_3D('',#4518,#3733,#3734); +#2975=AXIS2_PLACEMENT_3D('',#4520,#3736,#3737); +#2976=AXIS2_PLACEMENT_3D('',#4526,#3741,#3742); +#2977=AXIS2_PLACEMENT_3D('',#4530,#3745,#3746); +#2978=AXIS2_PLACEMENT_3D('',#4534,#3749,#3750); +#2979=AXIS2_PLACEMENT_3D('',#4536,#3752,#3753); +#2980=AXIS2_PLACEMENT_3D('',#4538,#3754,#3755); +#2981=AXIS2_PLACEMENT_3D('',#4540,#3757,#3758); +#2982=AXIS2_PLACEMENT_3D('',#4542,#3760,#3761); +#2983=DIRECTION('axis',(0.,0.,1.)); +#2984=DIRECTION('refdir',(1.,0.,0.)); +#2985=DIRECTION('center_axis',(0.,0.,1.)); +#2986=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2987=DIRECTION('center_axis',(0.,0.,-1.)); +#2988=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2989=DIRECTION('',(0.,0.,-1.)); +#2990=DIRECTION('center_axis',(0.,0.,1.)); +#2991=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2992=DIRECTION('',(0.,0.,1.)); +#2993=DIRECTION('center_axis',(0.,0.,1.)); +#2994=DIRECTION('ref_axis',(1.,0.,0.)); +#2995=DIRECTION('',(0.,1.,0.)); +#2996=DIRECTION('center_axis',(0.,0.,-1.)); +#2997=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#2998=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#2999=DIRECTION('center_axis',(0.,0.,-1.)); +#3000=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#3001=DIRECTION('',(0.,-1.,0.)); +#3002=DIRECTION('center_axis',(0.,0.,-1.)); +#3003=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3004=DIRECTION('',(1.,0.,0.)); +#3005=DIRECTION('',(0.00211883867751913,0.99999775525881,0.)); +#3006=DIRECTION('',(0.99999775525881,-0.00211883867752468,0.)); +#3007=DIRECTION('',(1.,0.,0.)); +#3008=DIRECTION('',(0.,-1.,0.)); +#3009=DIRECTION('',(-1.,-2.89337761429314E-33,0.)); +#3010=DIRECTION('',(1.72904223214608E-33,1.,0.)); +#3011=DIRECTION('',(1.,0.,0.)); +#3012=DIRECTION('',(-0.00211883867752538,-0.99999775525881,0.)); +#3013=DIRECTION('',(1.,0.,0.)); +#3014=DIRECTION('center_axis',(0.,0.,1.)); +#3015=DIRECTION('ref_axis',(1.,0.,0.)); +#3016=DIRECTION('center_axis',(0.,0.,1.)); +#3017=DIRECTION('ref_axis',(1.,0.,0.)); +#3018=DIRECTION('center_axis',(0.,0.,1.)); +#3019=DIRECTION('ref_axis',(1.,0.,0.)); +#3020=DIRECTION('center_axis',(0.,0.,1.)); +#3021=DIRECTION('ref_axis',(1.,0.,0.)); +#3022=DIRECTION('center_axis',(-1.,0.,0.)); +#3023=DIRECTION('ref_axis',(0.,-1.,0.)); +#3024=DIRECTION('',(0.,-1.,0.)); +#3025=DIRECTION('',(0.,0.,-1.)); +#3026=DIRECTION('center_axis',(0.,0.,1.)); +#3027=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#3028=DIRECTION('center_axis',(0.,0.,1.)); +#3029=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#3030=DIRECTION('',(0.,0.,1.)); +#3031=DIRECTION('center_axis',(0.,0.,1.)); +#3032=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#3033=DIRECTION('',(0.,0.,-1.)); +#3034=DIRECTION('center_axis',(0.,0.,1.)); +#3035=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#3036=DIRECTION('',(0.,0.,1.)); +#3037=DIRECTION('center_axis',(1.,0.,0.)); +#3038=DIRECTION('ref_axis',(0.,1.,0.)); +#3039=DIRECTION('',(0.,1.,0.)); +#3040=DIRECTION('',(0.,0.,-1.)); +#3041=DIRECTION('center_axis',(0.,0.,1.)); +#3042=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3043=DIRECTION('center_axis',(0.,0.,1.)); +#3044=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3045=DIRECTION('',(0.,0.,1.)); +#3046=DIRECTION('center_axis',(0.,1.,0.)); +#3047=DIRECTION('ref_axis',(-1.,0.,0.)); +#3048=DIRECTION('',(0.,0.,-1.)); +#3049=DIRECTION('',(-1.,0.,0.)); +#3050=DIRECTION('',(0.,0.,-1.)); +#3051=DIRECTION('',(-1.,0.,0.)); +#3052=DIRECTION('center_axis',(-0.99999775525881,0.00211883867752538,0.)); +#3053=DIRECTION('ref_axis',(0.00211883867752538,0.99999775525881,0.)); +#3054=DIRECTION('',(0.,0.,1.)); +#3055=DIRECTION('',(0.00211883867752538,0.99999775525881,0.)); +#3056=DIRECTION('center_axis',(-0.99999775525881,0.00211883867751913,0.)); +#3057=DIRECTION('ref_axis',(0.,0.,1.)); +#3058=DIRECTION('',(0.00211883867752468,0.99999775525881,0.)); +#3059=DIRECTION('',(0.,0.,1.)); +#3060=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#3061=DIRECTION('ref_axis',(1.,4.8472887907141E-17,0.)); +#3062=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#3063=DIRECTION('center_axis',(-0.00211883867752468,-0.99999775525881,0.)); +#3064=DIRECTION('ref_axis',(0.,0.,1.)); +#3065=DIRECTION('',(0.,0.,-1.)); +#3066=DIRECTION('',(-0.99999775525881,0.00211883867752468,0.)); +#3067=DIRECTION('center_axis',(0.,0.,-1.)); +#3068=DIRECTION('ref_axis',(-1.,0.,0.)); +#3069=DIRECTION('',(-1.,0.,0.)); +#3070=DIRECTION('center_axis',(-1.,0.,0.)); +#3071=DIRECTION('ref_axis',(0.,-1.,0.)); +#3072=DIRECTION('',(0.,1.,0.)); +#3073=DIRECTION('',(0.,0.,1.)); +#3074=DIRECTION('',(0.,0.,1.)); +#3075=DIRECTION('center_axis',(-2.89337761429314E-33,1.,0.)); +#3076=DIRECTION('ref_axis',(-1.,-2.89337761429314E-33,0.)); +#3077=DIRECTION('',(1.,2.89337761429314E-33,0.)); +#3078=DIRECTION('',(0.,0.,1.)); +#3079=DIRECTION('center_axis',(0.,-1.,0.)); +#3080=DIRECTION('ref_axis',(1.,0.,0.)); +#3081=DIRECTION('',(0.,0.,1.)); +#3082=DIRECTION('',(-1.,0.,0.)); +#3083=DIRECTION('center_axis',(1.,-1.72904223214608E-33,0.)); +#3084=DIRECTION('ref_axis',(1.72904223214608E-33,1.,0.)); +#3085=DIRECTION('',(-1.72904223214608E-33,-1.,0.)); +#3086=DIRECTION('center_axis',(0.,0.,1.)); +#3087=DIRECTION('ref_axis',(1.,0.,0.)); +#3088=DIRECTION('',(0.,0.,-1.)); +#3089=DIRECTION('center_axis',(0.,0.,-1.)); +#3090=DIRECTION('ref_axis',(1.,0.,0.)); +#3091=DIRECTION('center_axis',(0.,0.,1.)); +#3092=DIRECTION('ref_axis',(1.,0.,0.)); +#3093=DIRECTION('',(0.,0.,-1.)); +#3094=DIRECTION('center_axis',(0.,0.,-1.)); +#3095=DIRECTION('ref_axis',(1.,0.,0.)); +#3096=DIRECTION('center_axis',(0.,0.,1.)); +#3097=DIRECTION('ref_axis',(1.,0.,0.)); +#3098=DIRECTION('',(0.,0.,-1.)); +#3099=DIRECTION('center_axis',(0.,0.,-1.)); +#3100=DIRECTION('ref_axis',(1.,0.,0.)); +#3101=DIRECTION('center_axis',(0.,0.,1.)); +#3102=DIRECTION('ref_axis',(1.,0.,0.)); +#3103=DIRECTION('',(0.,0.,-1.)); +#3104=DIRECTION('center_axis',(0.,0.,-1.)); +#3105=DIRECTION('ref_axis',(1.,0.,0.)); +#3106=DIRECTION('center_axis',(0.,0.,1.)); +#3107=DIRECTION('ref_axis',(1.,0.,0.)); +#3108=DIRECTION('center_axis',(0.,0.,1.)); +#3109=DIRECTION('ref_axis',(1.,0.,0.)); +#3110=DIRECTION('center_axis',(0.,0.,-1.)); +#3111=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3112=DIRECTION('center_axis',(0.,0.,1.)); +#3113=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3114=DIRECTION('',(0.,0.,1.)); +#3115=DIRECTION('center_axis',(0.,0.,-1.)); +#3116=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3117=DIRECTION('',(0.,0.,-1.)); +#3118=DIRECTION('center_axis',(0.,1.,0.)); +#3119=DIRECTION('ref_axis',(1.,0.,0.)); +#3120=DIRECTION('',(-1.,0.,0.)); +#3121=DIRECTION('',(0.,0.,-1.)); +#3122=DIRECTION('',(1.,0.,0.)); +#3123=DIRECTION('center_axis',(0.,0.,1.)); +#3124=DIRECTION('ref_axis',(1.,0.,0.)); +#3125=DIRECTION('',(0.,-1.,0.)); +#3126=DIRECTION('center_axis',(0.,0.,-1.)); +#3127=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#3128=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#3129=DIRECTION('center_axis',(0.,0.,-1.)); +#3130=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3131=DIRECTION('',(0.,1.,0.)); +#3132=DIRECTION('center_axis',(0.,0.,-1.)); +#3133=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3134=DIRECTION('',(-1.,0.,0.)); +#3135=DIRECTION('',(-0.00211883867751913,-0.99999775525881,0.)); +#3136=DIRECTION('',(-0.99999775525881,0.00211883867752521,0.)); +#3137=DIRECTION('',(0.00211883867752538,0.99999775525881,0.)); +#3138=DIRECTION('',(0.,-1.,0.)); +#3139=DIRECTION('',(-1.,0.,0.)); +#3140=DIRECTION('',(0.,1.,0.)); +#3141=DIRECTION('',(1.,0.,0.)); +#3142=DIRECTION('',(0.,-1.,0.)); +#3143=DIRECTION('center_axis',(0.,0.,-1.)); +#3144=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3145=DIRECTION('',(-1.,0.,0.)); +#3146=DIRECTION('center_axis',(0.,0.,-1.)); +#3147=DIRECTION('ref_axis',(-1.,0.,0.)); +#3148=DIRECTION('',(0.,1.,0.)); +#3149=DIRECTION('center_axis',(0.,0.,-1.)); +#3150=DIRECTION('ref_axis',(0.,1.,0.)); +#3151=DIRECTION('',(1.,0.,0.)); +#3152=DIRECTION('center_axis',(0.,0.,-1.)); +#3153=DIRECTION('ref_axis',(1.,0.,0.)); +#3154=DIRECTION('',(0.,-1.,0.)); +#3155=DIRECTION('center_axis',(0.,0.,-1.)); +#3156=DIRECTION('ref_axis',(0.,-1.,0.)); +#3157=DIRECTION('',(-1.,0.,0.)); +#3158=DIRECTION('center_axis',(0.,0.,-1.)); +#3159=DIRECTION('ref_axis',(-1.,0.,0.)); +#3160=DIRECTION('',(0.,1.,0.)); +#3161=DIRECTION('center_axis',(0.,0.,-1.)); +#3162=DIRECTION('ref_axis',(0.,1.,0.)); +#3163=DIRECTION('',(1.,0.,0.)); +#3164=DIRECTION('center_axis',(0.,0.,-1.)); +#3165=DIRECTION('ref_axis',(1.,0.,0.)); +#3166=DIRECTION('',(0.,-1.,0.)); +#3167=DIRECTION('center_axis',(0.,0.,-1.)); +#3168=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#3169=DIRECTION('',(-1.,0.,0.)); +#3170=DIRECTION('center_axis',(0.,0.,-1.)); +#3171=DIRECTION('ref_axis',(-1.,0.,0.)); +#3172=DIRECTION('',(0.,1.,0.)); +#3173=DIRECTION('center_axis',(0.,0.,-1.)); +#3174=DIRECTION('ref_axis',(0.,1.,0.)); +#3175=DIRECTION('',(1.,0.,0.)); +#3176=DIRECTION('center_axis',(0.,0.,-1.)); +#3177=DIRECTION('ref_axis',(1.,0.,0.)); +#3178=DIRECTION('',(0.,-1.,0.)); +#3179=DIRECTION('center_axis',(0.,0.,-1.)); +#3180=DIRECTION('ref_axis',(0.,-1.,0.)); +#3181=DIRECTION('',(-1.,0.,0.)); +#3182=DIRECTION('center_axis',(0.,0.,-1.)); +#3183=DIRECTION('ref_axis',(-1.,0.,0.)); +#3184=DIRECTION('',(0.,1.,0.)); +#3185=DIRECTION('center_axis',(0.,0.,-1.)); +#3186=DIRECTION('ref_axis',(0.,1.,0.)); +#3187=DIRECTION('',(1.,0.,0.)); +#3188=DIRECTION('center_axis',(0.,0.,-1.)); +#3189=DIRECTION('ref_axis',(1.,0.,0.)); +#3190=DIRECTION('',(0.,-1.,0.)); +#3191=DIRECTION('center_axis',(0.,0.,-1.)); +#3192=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#3193=DIRECTION('',(-1.,0.,0.)); +#3194=DIRECTION('center_axis',(0.,0.,-1.)); +#3195=DIRECTION('ref_axis',(-1.,0.,0.)); +#3196=DIRECTION('',(0.,1.,0.)); +#3197=DIRECTION('center_axis',(0.,0.,-1.)); +#3198=DIRECTION('ref_axis',(0.,1.,0.)); +#3199=DIRECTION('',(1.,0.,0.)); +#3200=DIRECTION('center_axis',(0.,0.,-1.)); +#3201=DIRECTION('ref_axis',(1.,0.,0.)); +#3202=DIRECTION('',(0.,-1.,0.)); +#3203=DIRECTION('center_axis',(0.,0.,-1.)); +#3204=DIRECTION('ref_axis',(0.,-1.,0.)); +#3205=DIRECTION('',(-1.,0.,0.)); +#3206=DIRECTION('center_axis',(0.,0.,-1.)); +#3207=DIRECTION('ref_axis',(-1.,0.,0.)); +#3208=DIRECTION('',(0.,1.,0.)); +#3209=DIRECTION('center_axis',(0.,0.,-1.)); +#3210=DIRECTION('ref_axis',(0.,1.,0.)); +#3211=DIRECTION('',(1.,0.,0.)); +#3212=DIRECTION('center_axis',(0.,0.,-1.)); +#3213=DIRECTION('ref_axis',(1.,0.,0.)); +#3214=DIRECTION('',(0.,-1.,0.)); +#3215=DIRECTION('center_axis',(0.,0.,-1.)); +#3216=DIRECTION('ref_axis',(0.,-1.,0.)); +#3217=DIRECTION('',(-1.,0.,0.)); +#3218=DIRECTION('center_axis',(0.,0.,-1.)); +#3219=DIRECTION('ref_axis',(-1.,0.,0.)); +#3220=DIRECTION('',(0.,1.,0.)); +#3221=DIRECTION('center_axis',(0.,0.,-1.)); +#3222=DIRECTION('ref_axis',(0.,1.,0.)); +#3223=DIRECTION('',(1.,0.,0.)); +#3224=DIRECTION('center_axis',(0.,0.,-1.)); +#3225=DIRECTION('ref_axis',(1.,0.,0.)); +#3226=DIRECTION('',(0.,-1.,0.)); +#3227=DIRECTION('center_axis',(0.,0.,-1.)); +#3228=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#3229=DIRECTION('',(-1.,0.,0.)); +#3230=DIRECTION('center_axis',(0.,0.,-1.)); +#3231=DIRECTION('ref_axis',(-1.,0.,0.)); +#3232=DIRECTION('',(0.,1.,0.)); +#3233=DIRECTION('center_axis',(0.,0.,-1.)); +#3234=DIRECTION('ref_axis',(0.,1.,0.)); +#3235=DIRECTION('',(1.,0.,0.)); +#3236=DIRECTION('center_axis',(0.,0.,-1.)); +#3237=DIRECTION('ref_axis',(1.,0.,0.)); +#3238=DIRECTION('',(0.,-1.,0.)); +#3239=DIRECTION('center_axis',(0.,0.,-1.)); +#3240=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3241=DIRECTION('',(-1.,0.,0.)); +#3242=DIRECTION('center_axis',(0.,0.,-1.)); +#3243=DIRECTION('ref_axis',(-1.,0.,0.)); +#3244=DIRECTION('',(0.,1.,0.)); +#3245=DIRECTION('center_axis',(0.,0.,-1.)); +#3246=DIRECTION('ref_axis',(0.,1.,0.)); +#3247=DIRECTION('',(1.,0.,0.)); +#3248=DIRECTION('center_axis',(0.,0.,-1.)); +#3249=DIRECTION('ref_axis',(1.,0.,0.)); +#3250=DIRECTION('center_axis',(0.,0.,-1.)); +#3251=DIRECTION('ref_axis',(1.,0.,0.)); +#3252=DIRECTION('center_axis',(0.,0.,-1.)); +#3253=DIRECTION('ref_axis',(1.,0.,0.)); +#3254=DIRECTION('center_axis',(0.,0.,-1.)); +#3255=DIRECTION('ref_axis',(1.,0.,0.)); +#3256=DIRECTION('center_axis',(0.,0.,-1.)); +#3257=DIRECTION('ref_axis',(1.,0.,0.)); +#3258=DIRECTION('center_axis',(0.,0.,-1.)); +#3259=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#3260=DIRECTION('center_axis',(0.,0.,1.)); +#3261=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#3262=DIRECTION('',(0.,0.,1.)); +#3263=DIRECTION('',(0.,0.,-1.)); +#3264=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#3265=DIRECTION('ref_axis',(-1.,-4.8472887907141E-17,0.)); +#3266=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#3267=DIRECTION('',(0.,0.,-1.)); +#3268=DIRECTION('center_axis',(0.,0.,-1.)); +#3269=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3270=DIRECTION('center_axis',(0.,0.,1.)); +#3271=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3272=DIRECTION('',(0.,0.,1.)); +#3273=DIRECTION('center_axis',(0.,0.,-1.)); +#3274=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3275=DIRECTION('center_axis',(0.,0.,1.)); +#3276=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3277=DIRECTION('',(0.,0.,1.)); +#3278=DIRECTION('',(0.,0.,-1.)); +#3279=DIRECTION('center_axis',(0.,1.,0.)); +#3280=DIRECTION('ref_axis',(1.,0.,0.)); +#3281=DIRECTION('',(1.,0.,0.)); +#3282=DIRECTION('',(0.,0.,-1.)); +#3283=DIRECTION('center_axis',(0.,0.,-1.)); +#3284=DIRECTION('ref_axis',(1.,0.,0.)); +#3285=DIRECTION('center_axis',(0.,0.,1.)); +#3286=DIRECTION('ref_axis',(1.,0.,0.)); +#3287=DIRECTION('',(0.,0.,1.)); +#3288=DIRECTION('center_axis',(0.,0.,-1.)); +#3289=DIRECTION('ref_axis',(1.,0.,0.)); +#3290=DIRECTION('center_axis',(0.,0.,1.)); +#3291=DIRECTION('ref_axis',(1.,0.,0.)); +#3292=DIRECTION('',(0.,0.,1.)); +#3293=DIRECTION('center_axis',(0.,0.,-1.)); +#3294=DIRECTION('ref_axis',(1.,0.,0.)); +#3295=DIRECTION('center_axis',(0.,0.,1.)); +#3296=DIRECTION('ref_axis',(1.,0.,0.)); +#3297=DIRECTION('',(0.,0.,1.)); +#3298=DIRECTION('center_axis',(0.,0.,-1.)); +#3299=DIRECTION('ref_axis',(1.,0.,0.)); +#3300=DIRECTION('center_axis',(0.,0.,1.)); +#3301=DIRECTION('ref_axis',(1.,0.,0.)); +#3302=DIRECTION('',(0.,0.,1.)); +#3303=DIRECTION('center_axis',(0.,0.,-1.)); +#3304=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3305=DIRECTION('',(0.,0.,-1.)); +#3306=DIRECTION('center_axis',(0.,0.,1.)); +#3307=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3308=DIRECTION('',(0.,0.,-1.)); +#3309=DIRECTION('center_axis',(0.,1.,0.)); +#3310=DIRECTION('ref_axis',(1.,0.,0.)); +#3311=DIRECTION('',(1.,0.,0.)); +#3312=DIRECTION('',(0.,0.,-1.)); +#3313=DIRECTION('center_axis',(0.,0.,-1.)); +#3314=DIRECTION('ref_axis',(-1.,0.,0.)); +#3315=DIRECTION('center_axis',(0.,0.,1.)); +#3316=DIRECTION('ref_axis',(-1.,0.,0.)); +#3317=DIRECTION('',(0.,0.,-1.)); +#3318=DIRECTION('center_axis',(1.,0.,0.)); +#3319=DIRECTION('ref_axis',(0.,-1.,0.)); +#3320=DIRECTION('',(0.,-1.,0.)); +#3321=DIRECTION('',(0.,0.,-1.)); +#3322=DIRECTION('center_axis',(0.,0.,-1.)); +#3323=DIRECTION('ref_axis',(0.,1.,0.)); +#3324=DIRECTION('center_axis',(0.,0.,1.)); +#3325=DIRECTION('ref_axis',(0.,1.,0.)); +#3326=DIRECTION('',(0.,0.,-1.)); +#3327=DIRECTION('center_axis',(0.,-1.,0.)); +#3328=DIRECTION('ref_axis',(-1.,0.,0.)); +#3329=DIRECTION('',(-1.,0.,0.)); +#3330=DIRECTION('',(0.,0.,-1.)); +#3331=DIRECTION('center_axis',(0.,0.,-1.)); +#3332=DIRECTION('ref_axis',(1.,0.,0.)); +#3333=DIRECTION('center_axis',(0.,0.,1.)); +#3334=DIRECTION('ref_axis',(1.,0.,0.)); +#3335=DIRECTION('',(0.,0.,-1.)); +#3336=DIRECTION('center_axis',(-1.,0.,0.)); +#3337=DIRECTION('ref_axis',(0.,1.,0.)); +#3338=DIRECTION('',(0.,1.,0.)); +#3339=DIRECTION('center_axis',(0.,0.,-1.)); +#3340=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#3341=DIRECTION('',(0.,0.,-1.)); +#3342=DIRECTION('center_axis',(0.,0.,1.)); +#3343=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#3344=DIRECTION('',(0.,0.,-1.)); +#3345=DIRECTION('center_axis',(0.,1.,0.)); +#3346=DIRECTION('ref_axis',(1.,0.,0.)); +#3347=DIRECTION('',(1.,0.,0.)); +#3348=DIRECTION('',(0.,0.,-1.)); +#3349=DIRECTION('center_axis',(0.,0.,-1.)); +#3350=DIRECTION('ref_axis',(-1.,0.,0.)); +#3351=DIRECTION('center_axis',(0.,0.,1.)); +#3352=DIRECTION('ref_axis',(-1.,0.,0.)); +#3353=DIRECTION('',(0.,0.,-1.)); +#3354=DIRECTION('center_axis',(1.,0.,0.)); +#3355=DIRECTION('ref_axis',(0.,-1.,0.)); +#3356=DIRECTION('',(0.,-1.,0.)); +#3357=DIRECTION('',(0.,0.,-1.)); +#3358=DIRECTION('center_axis',(0.,0.,-1.)); +#3359=DIRECTION('ref_axis',(0.,1.,0.)); +#3360=DIRECTION('center_axis',(0.,0.,1.)); +#3361=DIRECTION('ref_axis',(0.,1.,0.)); +#3362=DIRECTION('',(0.,0.,-1.)); +#3363=DIRECTION('center_axis',(0.,-1.,0.)); +#3364=DIRECTION('ref_axis',(-1.,0.,0.)); +#3365=DIRECTION('',(-1.,0.,0.)); +#3366=DIRECTION('',(0.,0.,-1.)); +#3367=DIRECTION('center_axis',(0.,0.,-1.)); +#3368=DIRECTION('ref_axis',(1.,0.,0.)); +#3369=DIRECTION('center_axis',(0.,0.,1.)); +#3370=DIRECTION('ref_axis',(1.,0.,0.)); +#3371=DIRECTION('',(0.,0.,-1.)); +#3372=DIRECTION('center_axis',(-1.,0.,0.)); +#3373=DIRECTION('ref_axis',(0.,1.,0.)); +#3374=DIRECTION('',(0.,1.,0.)); +#3375=DIRECTION('center_axis',(0.,0.,-1.)); +#3376=DIRECTION('ref_axis',(0.,-1.,0.)); +#3377=DIRECTION('',(0.,0.,-1.)); +#3378=DIRECTION('center_axis',(0.,0.,1.)); +#3379=DIRECTION('ref_axis',(0.,-1.,0.)); +#3380=DIRECTION('',(0.,0.,-1.)); +#3381=DIRECTION('center_axis',(0.,1.,0.)); +#3382=DIRECTION('ref_axis',(1.,0.,0.)); +#3383=DIRECTION('',(1.,0.,0.)); +#3384=DIRECTION('',(0.,0.,-1.)); +#3385=DIRECTION('center_axis',(0.,0.,-1.)); +#3386=DIRECTION('ref_axis',(-1.,0.,0.)); +#3387=DIRECTION('center_axis',(0.,0.,1.)); +#3388=DIRECTION('ref_axis',(-1.,0.,0.)); +#3389=DIRECTION('',(0.,0.,-1.)); +#3390=DIRECTION('center_axis',(1.,0.,0.)); +#3391=DIRECTION('ref_axis',(0.,-1.,0.)); +#3392=DIRECTION('',(0.,-1.,0.)); +#3393=DIRECTION('',(0.,0.,-1.)); +#3394=DIRECTION('center_axis',(0.,0.,-1.)); +#3395=DIRECTION('ref_axis',(0.,1.,0.)); +#3396=DIRECTION('center_axis',(0.,0.,1.)); +#3397=DIRECTION('ref_axis',(0.,1.,0.)); +#3398=DIRECTION('',(0.,0.,-1.)); +#3399=DIRECTION('center_axis',(0.,-1.,0.)); +#3400=DIRECTION('ref_axis',(-1.,0.,0.)); +#3401=DIRECTION('',(-1.,0.,0.)); +#3402=DIRECTION('',(0.,0.,-1.)); +#3403=DIRECTION('center_axis',(0.,0.,-1.)); +#3404=DIRECTION('ref_axis',(1.,0.,0.)); +#3405=DIRECTION('center_axis',(0.,0.,1.)); +#3406=DIRECTION('ref_axis',(1.,0.,0.)); +#3407=DIRECTION('',(0.,0.,-1.)); +#3408=DIRECTION('center_axis',(-1.,0.,0.)); +#3409=DIRECTION('ref_axis',(0.,1.,0.)); +#3410=DIRECTION('',(0.,1.,0.)); +#3411=DIRECTION('center_axis',(0.,0.,-1.)); +#3412=DIRECTION('ref_axis',(0.,-1.,0.)); +#3413=DIRECTION('',(0.,0.,-1.)); +#3414=DIRECTION('center_axis',(0.,0.,1.)); +#3415=DIRECTION('ref_axis',(0.,-1.,0.)); +#3416=DIRECTION('',(0.,0.,-1.)); +#3417=DIRECTION('center_axis',(0.,1.,0.)); +#3418=DIRECTION('ref_axis',(1.,0.,0.)); +#3419=DIRECTION('',(1.,0.,0.)); +#3420=DIRECTION('',(0.,0.,-1.)); +#3421=DIRECTION('center_axis',(0.,0.,-1.)); +#3422=DIRECTION('ref_axis',(-1.,0.,0.)); +#3423=DIRECTION('center_axis',(0.,0.,1.)); +#3424=DIRECTION('ref_axis',(-1.,0.,0.)); +#3425=DIRECTION('',(0.,0.,-1.)); +#3426=DIRECTION('center_axis',(1.,0.,0.)); +#3427=DIRECTION('ref_axis',(0.,-1.,0.)); +#3428=DIRECTION('',(0.,-1.,0.)); +#3429=DIRECTION('',(0.,0.,-1.)); +#3430=DIRECTION('center_axis',(0.,0.,-1.)); +#3431=DIRECTION('ref_axis',(0.,1.,0.)); +#3432=DIRECTION('center_axis',(0.,0.,1.)); +#3433=DIRECTION('ref_axis',(0.,1.,0.)); +#3434=DIRECTION('',(0.,0.,-1.)); +#3435=DIRECTION('center_axis',(0.,-1.,0.)); +#3436=DIRECTION('ref_axis',(-1.,0.,0.)); +#3437=DIRECTION('',(-1.,0.,0.)); +#3438=DIRECTION('',(0.,0.,-1.)); +#3439=DIRECTION('center_axis',(0.,0.,-1.)); +#3440=DIRECTION('ref_axis',(1.,0.,0.)); +#3441=DIRECTION('center_axis',(0.,0.,1.)); +#3442=DIRECTION('ref_axis',(1.,0.,0.)); +#3443=DIRECTION('',(0.,0.,-1.)); +#3444=DIRECTION('center_axis',(-1.,0.,0.)); +#3445=DIRECTION('ref_axis',(0.,1.,0.)); +#3446=DIRECTION('',(0.,1.,0.)); +#3447=DIRECTION('center_axis',(0.,0.,-1.)); +#3448=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#3449=DIRECTION('',(0.,0.,-1.)); +#3450=DIRECTION('center_axis',(0.,0.,1.)); +#3451=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#3452=DIRECTION('',(0.,0.,-1.)); +#3453=DIRECTION('center_axis',(0.,1.,0.)); +#3454=DIRECTION('ref_axis',(1.,0.,0.)); +#3455=DIRECTION('',(1.,0.,0.)); +#3456=DIRECTION('',(0.,0.,-1.)); +#3457=DIRECTION('center_axis',(0.,0.,-1.)); +#3458=DIRECTION('ref_axis',(-1.,0.,0.)); +#3459=DIRECTION('center_axis',(0.,0.,1.)); +#3460=DIRECTION('ref_axis',(-1.,0.,0.)); +#3461=DIRECTION('',(0.,0.,-1.)); +#3462=DIRECTION('center_axis',(1.,0.,0.)); +#3463=DIRECTION('ref_axis',(0.,-1.,0.)); +#3464=DIRECTION('',(0.,-1.,0.)); +#3465=DIRECTION('',(0.,0.,-1.)); +#3466=DIRECTION('center_axis',(0.,0.,-1.)); +#3467=DIRECTION('ref_axis',(0.,1.,0.)); +#3468=DIRECTION('center_axis',(0.,0.,1.)); +#3469=DIRECTION('ref_axis',(0.,1.,0.)); +#3470=DIRECTION('',(0.,0.,-1.)); +#3471=DIRECTION('center_axis',(0.,-1.,0.)); +#3472=DIRECTION('ref_axis',(-1.,0.,0.)); +#3473=DIRECTION('',(-1.,0.,0.)); +#3474=DIRECTION('',(0.,0.,-1.)); +#3475=DIRECTION('center_axis',(0.,0.,-1.)); +#3476=DIRECTION('ref_axis',(1.,0.,0.)); +#3477=DIRECTION('center_axis',(0.,0.,1.)); +#3478=DIRECTION('ref_axis',(1.,0.,0.)); +#3479=DIRECTION('',(0.,0.,-1.)); +#3480=DIRECTION('center_axis',(-1.,0.,0.)); +#3481=DIRECTION('ref_axis',(0.,1.,0.)); +#3482=DIRECTION('',(0.,1.,0.)); +#3483=DIRECTION('center_axis',(0.,0.,-1.)); +#3484=DIRECTION('ref_axis',(0.,-1.,0.)); +#3485=DIRECTION('',(0.,0.,-1.)); +#3486=DIRECTION('center_axis',(0.,0.,1.)); +#3487=DIRECTION('ref_axis',(0.,-1.,0.)); +#3488=DIRECTION('',(0.,0.,-1.)); +#3489=DIRECTION('center_axis',(0.,1.,0.)); +#3490=DIRECTION('ref_axis',(1.,0.,0.)); +#3491=DIRECTION('',(1.,0.,0.)); +#3492=DIRECTION('',(0.,0.,-1.)); +#3493=DIRECTION('center_axis',(0.,0.,-1.)); +#3494=DIRECTION('ref_axis',(-1.,0.,0.)); +#3495=DIRECTION('center_axis',(0.,0.,1.)); +#3496=DIRECTION('ref_axis',(-1.,0.,0.)); +#3497=DIRECTION('',(0.,0.,-1.)); +#3498=DIRECTION('center_axis',(1.,0.,0.)); +#3499=DIRECTION('ref_axis',(0.,-1.,0.)); +#3500=DIRECTION('',(0.,-1.,0.)); +#3501=DIRECTION('',(0.,0.,-1.)); +#3502=DIRECTION('center_axis',(0.,0.,-1.)); +#3503=DIRECTION('ref_axis',(0.,1.,0.)); +#3504=DIRECTION('center_axis',(0.,0.,1.)); +#3505=DIRECTION('ref_axis',(0.,1.,0.)); +#3506=DIRECTION('',(0.,0.,-1.)); +#3507=DIRECTION('center_axis',(0.,-1.,0.)); +#3508=DIRECTION('ref_axis',(-1.,0.,0.)); +#3509=DIRECTION('',(-1.,0.,0.)); +#3510=DIRECTION('',(0.,0.,-1.)); +#3511=DIRECTION('center_axis',(0.,0.,-1.)); +#3512=DIRECTION('ref_axis',(1.,0.,0.)); +#3513=DIRECTION('center_axis',(0.,0.,1.)); +#3514=DIRECTION('ref_axis',(1.,0.,0.)); +#3515=DIRECTION('',(0.,0.,-1.)); +#3516=DIRECTION('center_axis',(-1.,0.,0.)); +#3517=DIRECTION('ref_axis',(0.,1.,0.)); +#3518=DIRECTION('',(0.,1.,0.)); +#3519=DIRECTION('center_axis',(0.,0.,-1.)); +#3520=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#3521=DIRECTION('',(0.,0.,-1.)); +#3522=DIRECTION('center_axis',(0.,0.,1.)); +#3523=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#3524=DIRECTION('',(0.,0.,-1.)); +#3525=DIRECTION('center_axis',(0.,1.,0.)); +#3526=DIRECTION('ref_axis',(1.,0.,0.)); +#3527=DIRECTION('',(1.,0.,0.)); +#3528=DIRECTION('',(0.,0.,-1.)); +#3529=DIRECTION('center_axis',(0.,0.,-1.)); +#3530=DIRECTION('ref_axis',(-1.,0.,0.)); +#3531=DIRECTION('center_axis',(0.,0.,1.)); +#3532=DIRECTION('ref_axis',(-1.,0.,0.)); +#3533=DIRECTION('',(0.,0.,-1.)); +#3534=DIRECTION('center_axis',(1.,0.,0.)); +#3535=DIRECTION('ref_axis',(0.,-1.,0.)); +#3536=DIRECTION('',(0.,-1.,0.)); +#3537=DIRECTION('',(0.,0.,-1.)); +#3538=DIRECTION('center_axis',(0.,0.,-1.)); +#3539=DIRECTION('ref_axis',(0.,1.,0.)); +#3540=DIRECTION('center_axis',(0.,0.,1.)); +#3541=DIRECTION('ref_axis',(0.,1.,0.)); +#3542=DIRECTION('',(0.,0.,-1.)); +#3543=DIRECTION('center_axis',(0.,-1.,0.)); +#3544=DIRECTION('ref_axis',(-1.,0.,0.)); +#3545=DIRECTION('',(-1.,0.,0.)); +#3546=DIRECTION('',(0.,0.,-1.)); +#3547=DIRECTION('center_axis',(0.,0.,-1.)); +#3548=DIRECTION('ref_axis',(1.,0.,0.)); +#3549=DIRECTION('center_axis',(0.,0.,1.)); +#3550=DIRECTION('ref_axis',(1.,0.,0.)); +#3551=DIRECTION('',(0.,0.,-1.)); +#3552=DIRECTION('center_axis',(-1.,0.,0.)); +#3553=DIRECTION('ref_axis',(0.,1.,0.)); +#3554=DIRECTION('',(0.,1.,0.)); +#3555=DIRECTION('center_axis',(0.,0.,-1.)); +#3556=DIRECTION('ref_axis',(0.,-1.,0.)); +#3557=DIRECTION('',(0.,0.,-1.)); +#3558=DIRECTION('center_axis',(0.,0.,1.)); +#3559=DIRECTION('ref_axis',(0.,-1.,0.)); +#3560=DIRECTION('',(0.,0.,-1.)); +#3561=DIRECTION('center_axis',(0.,1.,0.)); +#3562=DIRECTION('ref_axis',(1.,0.,0.)); +#3563=DIRECTION('',(1.,0.,0.)); +#3564=DIRECTION('',(0.,0.,-1.)); +#3565=DIRECTION('center_axis',(0.,0.,-1.)); +#3566=DIRECTION('ref_axis',(-1.,0.,0.)); +#3567=DIRECTION('center_axis',(0.,0.,1.)); +#3568=DIRECTION('ref_axis',(-1.,0.,0.)); +#3569=DIRECTION('',(0.,0.,-1.)); +#3570=DIRECTION('center_axis',(1.,0.,0.)); +#3571=DIRECTION('ref_axis',(0.,-1.,0.)); +#3572=DIRECTION('',(0.,-1.,0.)); +#3573=DIRECTION('',(0.,0.,-1.)); +#3574=DIRECTION('center_axis',(0.,0.,-1.)); +#3575=DIRECTION('ref_axis',(0.,1.,0.)); +#3576=DIRECTION('center_axis',(0.,0.,1.)); +#3577=DIRECTION('ref_axis',(0.,1.,0.)); +#3578=DIRECTION('',(0.,0.,-1.)); +#3579=DIRECTION('center_axis',(0.,-1.,0.)); +#3580=DIRECTION('ref_axis',(-1.,0.,0.)); +#3581=DIRECTION('',(-1.,0.,0.)); +#3582=DIRECTION('',(0.,0.,-1.)); +#3583=DIRECTION('center_axis',(0.,0.,-1.)); +#3584=DIRECTION('ref_axis',(1.,0.,0.)); +#3585=DIRECTION('center_axis',(0.,0.,1.)); +#3586=DIRECTION('ref_axis',(1.,0.,0.)); +#3587=DIRECTION('',(0.,0.,-1.)); +#3588=DIRECTION('center_axis',(-1.,0.,0.)); +#3589=DIRECTION('ref_axis',(0.,1.,0.)); +#3590=DIRECTION('',(0.,1.,0.)); +#3591=DIRECTION('center_axis',(0.,0.,-1.)); +#3592=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3593=DIRECTION('',(0.,0.,-1.)); +#3594=DIRECTION('center_axis',(0.,0.,1.)); +#3595=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#3596=DIRECTION('',(0.,0.,-1.)); +#3597=DIRECTION('center_axis',(0.,1.,0.)); +#3598=DIRECTION('ref_axis',(1.,0.,0.)); +#3599=DIRECTION('',(1.,0.,0.)); +#3600=DIRECTION('',(0.,0.,-1.)); +#3601=DIRECTION('center_axis',(0.,0.,-1.)); +#3602=DIRECTION('ref_axis',(-1.,0.,0.)); +#3603=DIRECTION('center_axis',(0.,0.,1.)); +#3604=DIRECTION('ref_axis',(-1.,0.,0.)); +#3605=DIRECTION('',(0.,0.,-1.)); +#3606=DIRECTION('center_axis',(1.,0.,0.)); +#3607=DIRECTION('ref_axis',(0.,-1.,0.)); +#3608=DIRECTION('',(0.,-1.,0.)); +#3609=DIRECTION('',(0.,0.,-1.)); +#3610=DIRECTION('center_axis',(0.,0.,-1.)); +#3611=DIRECTION('ref_axis',(0.,1.,0.)); +#3612=DIRECTION('center_axis',(0.,0.,1.)); +#3613=DIRECTION('ref_axis',(0.,1.,0.)); +#3614=DIRECTION('',(0.,0.,-1.)); +#3615=DIRECTION('center_axis',(0.,-1.,0.)); +#3616=DIRECTION('ref_axis',(-1.,0.,0.)); +#3617=DIRECTION('',(-1.,0.,0.)); +#3618=DIRECTION('',(0.,0.,-1.)); +#3619=DIRECTION('center_axis',(0.,0.,-1.)); +#3620=DIRECTION('ref_axis',(1.,0.,0.)); +#3621=DIRECTION('center_axis',(0.,0.,1.)); +#3622=DIRECTION('ref_axis',(1.,0.,0.)); +#3623=DIRECTION('',(0.,0.,-1.)); +#3624=DIRECTION('center_axis',(-1.,0.,0.)); +#3625=DIRECTION('ref_axis',(0.,1.,0.)); +#3626=DIRECTION('',(0.,1.,0.)); +#3627=DIRECTION('center_axis',(0.,1.,0.)); +#3628=DIRECTION('ref_axis',(1.,0.,0.)); +#3629=DIRECTION('',(0.,0.,-1.)); +#3630=DIRECTION('',(1.,0.,0.)); +#3631=DIRECTION('',(0.,0.,-1.)); +#3632=DIRECTION('center_axis',(1.,0.,0.)); +#3633=DIRECTION('ref_axis',(0.,-1.,0.)); +#3634=DIRECTION('',(0.,-1.,0.)); +#3635=DIRECTION('',(0.,0.,-1.)); +#3636=DIRECTION('center_axis',(0.,-1.,0.)); +#3637=DIRECTION('ref_axis',(-1.,0.,0.)); +#3638=DIRECTION('',(-1.,0.,0.)); +#3639=DIRECTION('',(0.,0.,-1.)); +#3640=DIRECTION('center_axis',(-1.,0.,0.)); +#3641=DIRECTION('ref_axis',(0.,1.,0.)); +#3642=DIRECTION('',(0.,1.,0.)); +#3643=DIRECTION('center_axis',(0.00211883867752521,0.99999775525881,0.)); +#3644=DIRECTION('ref_axis',(0.99999775525881,-0.00211883867752521,0.)); +#3645=DIRECTION('',(0.,0.,-1.)); +#3646=DIRECTION('',(0.99999775525881,-0.00211883867752521,0.)); +#3647=DIRECTION('',(0.,0.,-1.)); +#3648=DIRECTION('center_axis',(0.99999775525881,-0.00211883867752538,0.)); +#3649=DIRECTION('ref_axis',(-0.00211883867752538,-0.99999775525881,0.)); +#3650=DIRECTION('',(-0.00211883867752538,-0.99999775525881,0.)); +#3651=DIRECTION('center_axis',(-1.,0.,0.)); +#3652=DIRECTION('ref_axis',(0.,1.,0.)); +#3653=DIRECTION('',(0.,1.,0.)); +#3654=DIRECTION('center_axis',(1.,0.,0.)); +#3655=DIRECTION('ref_axis',(0.,-1.,0.)); +#3656=DIRECTION('',(0.,-1.,0.)); +#3657=DIRECTION('center_axis',(-0.99999775525881,0.00211883867751913,0.)); +#3658=DIRECTION('ref_axis',(0.00211883867751913,0.99999775525881,0.)); +#3659=DIRECTION('',(0.00211883867751913,0.99999775525881,0.)); +#3660=DIRECTION('center_axis',(0.,0.,1.)); +#3661=DIRECTION('ref_axis',(1.,0.,0.)); +#3662=DIRECTION('center_axis',(0.,0.,1.)); +#3663=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3664=DIRECTION('center_axis',(0.,0.,-1.)); +#3665=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3666=DIRECTION('',(0.,0.,-1.)); +#3667=DIRECTION('center_axis',(0.,0.,1.)); +#3668=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#3669=DIRECTION('',(0.,0.,1.)); +#3670=DIRECTION('center_axis',(-1.,0.,0.)); +#3671=DIRECTION('ref_axis',(0.,-1.,0.)); +#3672=DIRECTION('',(0.,1.,0.)); +#3673=DIRECTION('',(0.,0.,-1.)); +#3674=DIRECTION('',(0.,-1.,0.)); +#3675=DIRECTION('center_axis',(0.,0.,1.)); +#3676=DIRECTION('ref_axis',(1.,0.,0.)); +#3677=DIRECTION('',(1.,0.,0.)); +#3678=DIRECTION('center_axis',(0.,0.,1.)); +#3679=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3680=DIRECTION('',(0.,-1.,0.)); +#3681=DIRECTION('center_axis',(0.,0.,1.)); +#3682=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3683=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#3684=DIRECTION('center_axis',(0.,0.,1.)); +#3685=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#3686=DIRECTION('center_axis',(0.,0.,1.)); +#3687=DIRECTION('ref_axis',(1.,0.,0.)); +#3688=DIRECTION('',(1.,2.89337761429314E-33,0.)); +#3689=DIRECTION('',(0.,1.,0.)); +#3690=DIRECTION('',(-1.,0.,0.)); +#3691=DIRECTION('',(-1.72904223214608E-33,-1.,0.)); +#3692=DIRECTION('center_axis',(0.,0.,1.)); +#3693=DIRECTION('ref_axis',(1.,0.,0.)); +#3694=DIRECTION('center_axis',(0.,0.,1.)); +#3695=DIRECTION('ref_axis',(1.,0.,0.)); +#3696=DIRECTION('center_axis',(0.,0.,1.)); +#3697=DIRECTION('ref_axis',(1.,0.,0.)); +#3698=DIRECTION('center_axis',(0.,0.,1.)); +#3699=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#3700=DIRECTION('center_axis',(0.,0.,-1.)); +#3701=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#3702=DIRECTION('',(0.,0.,1.)); +#3703=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#3704=DIRECTION('ref_axis',(1.,4.8472887907141E-17,0.)); +#3705=DIRECTION('',(0.,0.,-1.)); +#3706=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#3707=DIRECTION('center_axis',(0.,0.,1.)); +#3708=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3709=DIRECTION('center_axis',(0.,0.,-1.)); +#3710=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#3711=DIRECTION('',(0.,0.,1.)); +#3712=DIRECTION('center_axis',(1.,0.,0.)); +#3713=DIRECTION('ref_axis',(0.,1.,0.)); +#3714=DIRECTION('',(0.,0.,-1.)); +#3715=DIRECTION('',(0.,1.,0.)); +#3716=DIRECTION('center_axis',(0.,0.,1.)); +#3717=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3718=DIRECTION('center_axis',(0.,0.,-1.)); +#3719=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#3720=DIRECTION('',(0.,0.,1.)); +#3721=DIRECTION('center_axis',(0.,0.,1.)); +#3722=DIRECTION('ref_axis',(1.,0.,0.)); +#3723=DIRECTION('center_axis',(0.,0.,-1.)); +#3724=DIRECTION('ref_axis',(1.,0.,0.)); +#3725=DIRECTION('',(0.,0.,-1.)); +#3726=DIRECTION('center_axis',(0.,0.,1.)); +#3727=DIRECTION('ref_axis',(1.,0.,0.)); +#3728=DIRECTION('center_axis',(0.,0.,-1.)); +#3729=DIRECTION('ref_axis',(1.,0.,0.)); +#3730=DIRECTION('',(0.,0.,-1.)); +#3731=DIRECTION('center_axis',(0.,0.,1.)); +#3732=DIRECTION('ref_axis',(1.,0.,0.)); +#3733=DIRECTION('center_axis',(0.,0.,-1.)); +#3734=DIRECTION('ref_axis',(1.,0.,0.)); +#3735=DIRECTION('',(0.,0.,-1.)); +#3736=DIRECTION('center_axis',(-1.,0.,0.)); +#3737=DIRECTION('ref_axis',(0.,-1.,0.)); +#3738=DIRECTION('',(0.,0.,1.)); +#3739=DIRECTION('',(0.,-1.,0.)); +#3740=DIRECTION('',(0.,0.,1.)); +#3741=DIRECTION('center_axis',(0.,-1.,0.)); +#3742=DIRECTION('ref_axis',(1.,0.,0.)); +#3743=DIRECTION('',(1.,0.,0.)); +#3744=DIRECTION('',(0.,0.,1.)); +#3745=DIRECTION('center_axis',(1.,-1.72904223214608E-33,0.)); +#3746=DIRECTION('ref_axis',(1.72904223214608E-33,1.,0.)); +#3747=DIRECTION('',(1.72904223214608E-33,1.,0.)); +#3748=DIRECTION('',(0.,0.,1.)); +#3749=DIRECTION('center_axis',(-2.89337761429314E-33,1.,0.)); +#3750=DIRECTION('ref_axis',(-1.,-2.89337761429314E-33,0.)); +#3751=DIRECTION('',(-1.,-2.89337761429314E-33,0.)); +#3752=DIRECTION('center_axis',(0.,0.,1.)); +#3753=DIRECTION('ref_axis',(1.,0.,0.)); +#3754=DIRECTION('center_axis',(0.,0.,-1.)); +#3755=DIRECTION('ref_axis',(1.,0.,0.)); +#3756=DIRECTION('',(0.,0.,-1.)); +#3757=DIRECTION('center_axis',(0.,1.,0.)); +#3758=DIRECTION('ref_axis',(-1.,0.,0.)); +#3759=DIRECTION('',(-1.,0.,0.)); +#3760=DIRECTION('center_axis',(0.,0.,1.)); +#3761=DIRECTION('ref_axis',(1.,0.,0.)); +#3762=CARTESIAN_POINT('',(0.,0.,0.)); +#3763=CARTESIAN_POINT('Origin',(-5.,74.06,0.)); +#3764=CARTESIAN_POINT('',(-10.,74.06,18.)); +#3765=CARTESIAN_POINT('',(-5.,79.06,18.)); +#3766=CARTESIAN_POINT('Origin',(-5.,74.06,18.)); +#3767=CARTESIAN_POINT('',(-5.,79.06,0.)); +#3768=CARTESIAN_POINT('',(-5.,79.06,0.)); +#3769=CARTESIAN_POINT('',(-10.,74.06,0.)); +#3770=CARTESIAN_POINT('Origin',(-5.,74.06,0.)); +#3771=CARTESIAN_POINT('',(-10.,74.06,0.)); +#3772=CARTESIAN_POINT('Origin',(47.26,34.53,18.)); +#3773=CARTESIAN_POINT('',(-10.,-5.,18.)); +#3774=CARTESIAN_POINT('',(-10.,56.795,18.)); +#3775=CARTESIAN_POINT('',(-5.,-10.,18.)); +#3776=CARTESIAN_POINT('Origin',(-5.,-5.,18.)); +#3777=CARTESIAN_POINT('',(99.52,-10.,18.)); +#3778=CARTESIAN_POINT('',(18.63,-10.,18.)); +#3779=CARTESIAN_POINT('',(104.52,-5.,18.)); +#3780=CARTESIAN_POINT('Origin',(99.52,-5.,18.)); +#3781=CARTESIAN_POINT('',(104.52,74.06,18.)); +#3782=CARTESIAN_POINT('',(104.52,12.265,18.)); +#3783=CARTESIAN_POINT('',(99.52,79.06,18.)); +#3784=CARTESIAN_POINT('Origin',(99.52,74.06,18.)); +#3785=CARTESIAN_POINT('',(23.4403267770942,79.06,18.)); +#3786=CARTESIAN_POINT('',(75.89,79.06,18.)); +#3787=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,18.)); +#3788=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,18.)); +#3789=CARTESIAN_POINT('',(28.2191491175385,69.06,18.)); +#3790=CARTESIAN_POINT('',(37.7761134846859,69.0397502888038,18.)); +#3791=CARTESIAN_POINT('',(94.52,69.06,18.)); +#3792=CARTESIAN_POINT('',(94.52,69.06,18.)); +#3793=CARTESIAN_POINT('',(94.52,0.,18.)); +#3794=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,18.)); +#3795=CARTESIAN_POINT('',(0.,0.,18.)); +#3796=CARTESIAN_POINT('',(0.,0.,18.)); +#3797=CARTESIAN_POINT('',(0.,69.06,18.)); +#3798=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,18.)); +#3799=CARTESIAN_POINT('',(4.21914911753852,69.06,18.)); +#3800=CARTESIAN_POINT('',(94.52,69.06,18.)); +#3801=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#3802=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,18.)); +#3803=CARTESIAN_POINT('',(75.89,79.06,18.)); +#3804=CARTESIAN_POINT('',(98.17,-5.1,18.)); +#3805=CARTESIAN_POINT('Origin',(99.62,-5.1,18.)); +#3806=CARTESIAN_POINT('',(-6.54999999999999,-5.1,18.)); +#3807=CARTESIAN_POINT('Origin',(-5.1,-5.1,18.)); +#3808=CARTESIAN_POINT('',(98.17,74.16,18.)); +#3809=CARTESIAN_POINT('Origin',(99.62,74.16,18.)); +#3810=CARTESIAN_POINT('',(-6.4500000745058,74.16,18.)); +#3811=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,18.)); +#3812=CARTESIAN_POINT('Origin',(-10.,79.06,0.)); +#3813=CARTESIAN_POINT('',(-10.,-5.,0.)); +#3814=CARTESIAN_POINT('',(-10.,79.06,0.)); +#3815=CARTESIAN_POINT('',(-10.,-5.,0.)); +#3816=CARTESIAN_POINT('Origin',(-5.,-5.,0.)); +#3817=CARTESIAN_POINT('',(-5.,-10.,0.)); +#3818=CARTESIAN_POINT('Origin',(-5.,-5.,0.)); +#3819=CARTESIAN_POINT('',(-5.,-10.,0.)); +#3820=CARTESIAN_POINT('Origin',(99.52,-5.,0.)); +#3821=CARTESIAN_POINT('',(99.52,-10.,0.)); +#3822=CARTESIAN_POINT('',(99.52,-10.,0.)); +#3823=CARTESIAN_POINT('',(104.52,-5.,0.)); +#3824=CARTESIAN_POINT('Origin',(99.52,-5.,0.)); +#3825=CARTESIAN_POINT('',(104.52,-5.,0.)); +#3826=CARTESIAN_POINT('Origin',(104.52,-10.,0.)); +#3827=CARTESIAN_POINT('',(104.52,74.06,0.)); +#3828=CARTESIAN_POINT('',(104.52,-10.,0.)); +#3829=CARTESIAN_POINT('',(104.52,74.06,0.)); +#3830=CARTESIAN_POINT('Origin',(99.52,74.06,0.)); +#3831=CARTESIAN_POINT('',(99.52,79.06,0.)); +#3832=CARTESIAN_POINT('Origin',(99.52,74.06,0.)); +#3833=CARTESIAN_POINT('',(99.52,79.06,0.)); +#3834=CARTESIAN_POINT('Origin',(104.52,79.06,0.)); +#3835=CARTESIAN_POINT('',(4.24033755187632,79.06,14.)); +#3836=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#3837=CARTESIAN_POINT('',(23.4403267770944,79.06,14.)); +#3838=CARTESIAN_POINT('',(66.3801687759382,79.06,14.)); +#3839=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#3840=CARTESIAN_POINT('',(104.52,79.06,0.)); +#3841=CARTESIAN_POINT('Origin',(4.16350149405484,42.7967931030271,36.)); +#3842=CARTESIAN_POINT('',(4.21914911753851,69.06,14.)); +#3843=CARTESIAN_POINT('',(4.21914911753851,69.06,18.)); +#3844=CARTESIAN_POINT('',(4.24431242958124,80.9359657469501,14.)); +#3845=CARTESIAN_POINT('Origin',(23.4443232043387,80.9461361726022,36.)); +#3846=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,14.)); +#3847=CARTESIAN_POINT('',(23.4240665968502,71.3859170616409,14.)); +#3848=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,18.)); +#3849=CARTESIAN_POINT('Origin',(-10.,-10.,0.)); +#3850=CARTESIAN_POINT('',(-10.,-10.,0.)); +#3851=CARTESIAN_POINT('Origin',(28.2191491175385,69.06,14.)); +#3852=CARTESIAN_POINT('',(28.2191491175385,69.06,14.)); +#3853=CARTESIAN_POINT('',(28.2191491175385,69.06,18.)); +#3854=CARTESIAN_POINT('',(22.2192029911457,69.072712946453,14.)); +#3855=CARTESIAN_POINT('Origin',(16.203906961818,61.8409534179332,14.)); +#3856=CARTESIAN_POINT('',(8.10195348090902,69.06,14.)); +#3857=CARTESIAN_POINT('Origin',(94.52,69.06,0.)); +#3858=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,4.)); +#3859=CARTESIAN_POINT('',(94.52,69.06,4.)); +#3860=CARTESIAN_POINT('',(94.52,51.795,4.)); +#3861=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,0.)); +#3862=CARTESIAN_POINT('',(94.52,69.06,0.)); +#3863=CARTESIAN_POINT('Origin',(94.52,2.73482052102987E-31,0.)); +#3864=CARTESIAN_POINT('',(0.,0.,4.)); +#3865=CARTESIAN_POINT('',(70.89,0.,4.)); +#3866=CARTESIAN_POINT('',(0.,0.,0.)); +#3867=CARTESIAN_POINT('Origin',(0.,69.06,0.)); +#3868=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,4.)); +#3869=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,0.)); +#3870=CARTESIAN_POINT('',(23.63,69.06,4.)); +#3871=CARTESIAN_POINT('Origin',(0.,0.,0.)); +#3872=CARTESIAN_POINT('',(0.,17.265,4.)); +#3873=CARTESIAN_POINT('Origin',(99.62,-5.1,0.)); +#3874=CARTESIAN_POINT('',(98.17,-5.1,0.)); +#3875=CARTESIAN_POINT('',(98.17,-5.1,0.)); +#3876=CARTESIAN_POINT('Origin',(99.62,-5.1,0.)); +#3877=CARTESIAN_POINT('Origin',(-5.1,-5.1,0.)); +#3878=CARTESIAN_POINT('',(-6.55,-5.1,0.)); +#3879=CARTESIAN_POINT('',(-6.55,-5.1,0.)); +#3880=CARTESIAN_POINT('Origin',(-5.1,-5.1,0.)); +#3881=CARTESIAN_POINT('Origin',(99.62,74.16,0.)); +#3882=CARTESIAN_POINT('',(98.17,74.16,0.)); +#3883=CARTESIAN_POINT('',(98.17,74.16,0.)); +#3884=CARTESIAN_POINT('Origin',(99.62,74.16,0.)); +#3885=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,0.)); +#3886=CARTESIAN_POINT('',(-6.45000007450581,74.16,0.)); +#3887=CARTESIAN_POINT('',(-6.45000007450581,74.16,0.)); +#3888=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,0.)); +#3889=CARTESIAN_POINT('Origin',(47.26,34.53,4.)); +#3890=CARTESIAN_POINT('Origin',(47.26,34.53,0.)); +#3891=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#3892=CARTESIAN_POINT('',(-5.,79.06,18.)); +#3893=CARTESIAN_POINT('',(-10.,74.06,18.)); +#3894=CARTESIAN_POINT('Origin',(-5.,74.06,18.)); +#3895=CARTESIAN_POINT('',(-10.,74.06,21.)); +#3896=CARTESIAN_POINT('',(-10.,74.06,21.)); +#3897=CARTESIAN_POINT('',(-5.,79.06,21.)); +#3898=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#3899=CARTESIAN_POINT('',(-5.,79.06,21.)); +#3900=CARTESIAN_POINT('Origin',(-10.,79.06,21.)); +#3901=CARTESIAN_POINT('',(4.24033755187631,79.06,21.)); +#3902=CARTESIAN_POINT('',(75.89,79.06,21.)); +#3903=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#3904=CARTESIAN_POINT('',(4.24033755187631,79.06,21.)); +#3905=CARTESIAN_POINT('',(75.89,79.06,18.)); +#3906=CARTESIAN_POINT('Origin',(47.26,34.53,21.)); +#3907=CARTESIAN_POINT('',(-10.,-5.,21.)); +#3908=CARTESIAN_POINT('',(-10.,56.795,21.)); +#3909=CARTESIAN_POINT('',(-5.,-10.,21.)); +#3910=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#3911=CARTESIAN_POINT('',(99.52,-10.,21.)); +#3912=CARTESIAN_POINT('',(18.63,-10.,21.)); +#3913=CARTESIAN_POINT('',(104.52,-5.,21.)); +#3914=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#3915=CARTESIAN_POINT('',(104.52,74.06,21.)); +#3916=CARTESIAN_POINT('',(104.52,12.265,21.)); +#3917=CARTESIAN_POINT('',(99.52,79.06,21.)); +#3918=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#3919=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#3920=CARTESIAN_POINT('',(75.89,79.06,21.)); +#3921=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,21.)); +#3922=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,21.)); +#3923=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,21.)); +#3924=CARTESIAN_POINT('',(37.720358113746,42.7256913777202,21.)); +#3925=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,21.)); +#3926=CARTESIAN_POINT('',(65.245,59.545,21.)); +#3927=CARTESIAN_POINT('',(65.245,47.045,21.)); +#3928=CARTESIAN_POINT('',(65.245,46.9375,21.)); +#3929=CARTESIAN_POINT('',(26.545,47.045,21.)); +#3930=CARTESIAN_POINT('',(56.1525,47.045,21.)); +#3931=CARTESIAN_POINT('',(26.545,59.545,21.)); +#3932=CARTESIAN_POINT('',(26.545,40.8875,21.)); +#3933=CARTESIAN_POINT('',(37.0025,59.545,21.)); +#3934=CARTESIAN_POINT('',(87.61,59.79,21.)); +#3935=CARTESIAN_POINT('',(87.61,46.79,21.)); +#3936=CARTESIAN_POINT('',(87.61,47.16,21.)); +#3937=CARTESIAN_POINT('',(87.11,46.29,21.)); +#3938=CARTESIAN_POINT('Origin',(87.11,46.79,21.)); +#3939=CARTESIAN_POINT('',(74.11,46.29,21.)); +#3940=CARTESIAN_POINT('',(67.185,46.29,21.)); +#3941=CARTESIAN_POINT('',(73.61,46.79,21.)); +#3942=CARTESIAN_POINT('Origin',(74.11,46.79,21.)); +#3943=CARTESIAN_POINT('',(73.61,59.79,21.)); +#3944=CARTESIAN_POINT('',(73.61,40.66,21.)); +#3945=CARTESIAN_POINT('',(74.11,60.29,21.)); +#3946=CARTESIAN_POINT('Origin',(74.11,59.79,21.)); +#3947=CARTESIAN_POINT('',(87.11,60.29,21.)); +#3948=CARTESIAN_POINT('',(60.685,60.29,21.)); +#3949=CARTESIAN_POINT('Origin',(87.11,59.79,21.)); +#3950=CARTESIAN_POINT('',(58.835,39.59,21.)); +#3951=CARTESIAN_POINT('',(58.835,26.59,21.)); +#3952=CARTESIAN_POINT('',(58.835,37.06,21.)); +#3953=CARTESIAN_POINT('',(58.335,26.09,21.)); +#3954=CARTESIAN_POINT('Origin',(58.335,26.59,21.)); +#3955=CARTESIAN_POINT('',(45.335,26.09,21.)); +#3956=CARTESIAN_POINT('',(52.7975,26.09,21.)); +#3957=CARTESIAN_POINT('',(44.835,26.59,21.)); +#3958=CARTESIAN_POINT('Origin',(45.335,26.59,21.)); +#3959=CARTESIAN_POINT('',(44.835,39.59,21.)); +#3960=CARTESIAN_POINT('',(44.835,30.56,21.)); +#3961=CARTESIAN_POINT('',(45.335,40.09,21.)); +#3962=CARTESIAN_POINT('Origin',(45.335,39.59,21.)); +#3963=CARTESIAN_POINT('',(58.335,40.09,21.)); +#3964=CARTESIAN_POINT('',(46.2975,40.09,21.)); +#3965=CARTESIAN_POINT('Origin',(58.335,39.59,21.)); +#3966=CARTESIAN_POINT('',(39.785,39.59,21.)); +#3967=CARTESIAN_POINT('',(39.785,26.59,21.)); +#3968=CARTESIAN_POINT('',(39.785,37.06,21.)); +#3969=CARTESIAN_POINT('',(39.285,26.09,21.)); +#3970=CARTESIAN_POINT('Origin',(39.285,26.59,21.)); +#3971=CARTESIAN_POINT('',(26.285,26.09,21.)); +#3972=CARTESIAN_POINT('',(43.2725,26.09,21.)); +#3973=CARTESIAN_POINT('',(25.785,26.59,21.)); +#3974=CARTESIAN_POINT('Origin',(26.285,26.59,21.)); +#3975=CARTESIAN_POINT('',(25.785,39.59,21.)); +#3976=CARTESIAN_POINT('',(25.785,30.56,21.)); +#3977=CARTESIAN_POINT('',(26.285,40.09,21.)); +#3978=CARTESIAN_POINT('Origin',(26.285,39.59,21.)); +#3979=CARTESIAN_POINT('',(39.285,40.09,21.)); +#3980=CARTESIAN_POINT('',(36.7725,40.09,21.)); +#3981=CARTESIAN_POINT('Origin',(39.285,39.59,21.)); +#3982=CARTESIAN_POINT('',(20.735,20.54,21.)); +#3983=CARTESIAN_POINT('',(20.735,7.54,21.)); +#3984=CARTESIAN_POINT('',(20.735,27.535,21.)); +#3985=CARTESIAN_POINT('',(20.235,7.04,21.)); +#3986=CARTESIAN_POINT('Origin',(20.235,7.54,21.)); +#3987=CARTESIAN_POINT('',(7.235,7.04000000000001,21.)); +#3988=CARTESIAN_POINT('',(33.7475,7.04,21.)); +#3989=CARTESIAN_POINT('',(6.735,7.54,21.)); +#3990=CARTESIAN_POINT('Origin',(7.235,7.54,21.)); +#3991=CARTESIAN_POINT('',(6.735,20.54,21.)); +#3992=CARTESIAN_POINT('',(6.735,21.035,21.)); +#3993=CARTESIAN_POINT('',(7.235,21.04,21.)); +#3994=CARTESIAN_POINT('Origin',(7.235,20.54,21.)); +#3995=CARTESIAN_POINT('',(20.235,21.04,21.)); +#3996=CARTESIAN_POINT('',(27.2475,21.04,21.)); +#3997=CARTESIAN_POINT('Origin',(20.235,20.54,21.)); +#3998=CARTESIAN_POINT('',(87.41,20.54,21.)); +#3999=CARTESIAN_POINT('',(87.41,7.54,21.)); +#4000=CARTESIAN_POINT('',(87.41,27.535,21.)); +#4001=CARTESIAN_POINT('',(86.91,7.04,21.)); +#4002=CARTESIAN_POINT('Origin',(86.91,7.54,21.)); +#4003=CARTESIAN_POINT('',(73.91,7.04000000000001,21.)); +#4004=CARTESIAN_POINT('',(67.085,7.04,21.)); +#4005=CARTESIAN_POINT('',(73.41,7.54,21.)); +#4006=CARTESIAN_POINT('Origin',(73.91,7.54,21.)); +#4007=CARTESIAN_POINT('',(73.41,20.54,21.)); +#4008=CARTESIAN_POINT('',(73.41,21.035,21.)); +#4009=CARTESIAN_POINT('',(73.91,21.04,21.)); +#4010=CARTESIAN_POINT('Origin',(73.91,20.54,21.)); +#4011=CARTESIAN_POINT('',(86.91,21.04,21.)); +#4012=CARTESIAN_POINT('',(60.585,21.04,21.)); +#4013=CARTESIAN_POINT('Origin',(86.91,20.54,21.)); +#4014=CARTESIAN_POINT('',(58.835,20.54,21.)); +#4015=CARTESIAN_POINT('',(58.835,7.54,21.)); +#4016=CARTESIAN_POINT('',(58.835,27.535,21.)); +#4017=CARTESIAN_POINT('',(58.335,7.04,21.)); +#4018=CARTESIAN_POINT('Origin',(58.335,7.54,21.)); +#4019=CARTESIAN_POINT('',(45.335,7.04000000000001,21.)); +#4020=CARTESIAN_POINT('',(52.7975,7.04,21.)); +#4021=CARTESIAN_POINT('',(44.835,7.54,21.)); +#4022=CARTESIAN_POINT('Origin',(45.335,7.54,21.)); +#4023=CARTESIAN_POINT('',(44.835,20.54,21.)); +#4024=CARTESIAN_POINT('',(44.835,21.035,21.)); +#4025=CARTESIAN_POINT('',(45.335,21.04,21.)); +#4026=CARTESIAN_POINT('Origin',(45.335,20.54,21.)); +#4027=CARTESIAN_POINT('',(58.335,21.04,21.)); +#4028=CARTESIAN_POINT('',(46.2975,21.04,21.)); +#4029=CARTESIAN_POINT('Origin',(58.335,20.54,21.)); +#4030=CARTESIAN_POINT('',(20.735,39.59,21.)); +#4031=CARTESIAN_POINT('',(20.735,26.59,21.)); +#4032=CARTESIAN_POINT('',(20.735,37.06,21.)); +#4033=CARTESIAN_POINT('',(20.235,26.09,21.)); +#4034=CARTESIAN_POINT('Origin',(20.235,26.59,21.)); +#4035=CARTESIAN_POINT('',(7.235,26.09,21.)); +#4036=CARTESIAN_POINT('',(33.7475,26.09,21.)); +#4037=CARTESIAN_POINT('',(6.735,26.59,21.)); +#4038=CARTESIAN_POINT('Origin',(7.235,26.59,21.)); +#4039=CARTESIAN_POINT('',(6.735,39.59,21.)); +#4040=CARTESIAN_POINT('',(6.735,30.56,21.)); +#4041=CARTESIAN_POINT('',(7.235,40.09,21.)); +#4042=CARTESIAN_POINT('Origin',(7.235,39.59,21.)); +#4043=CARTESIAN_POINT('',(20.235,40.09,21.)); +#4044=CARTESIAN_POINT('',(27.2475,40.09,21.)); +#4045=CARTESIAN_POINT('Origin',(20.235,39.59,21.)); +#4046=CARTESIAN_POINT('',(39.785,20.54,21.)); +#4047=CARTESIAN_POINT('',(39.785,7.54,21.)); +#4048=CARTESIAN_POINT('',(39.785,27.535,21.)); +#4049=CARTESIAN_POINT('',(39.285,7.04,21.)); +#4050=CARTESIAN_POINT('Origin',(39.285,7.54,21.)); +#4051=CARTESIAN_POINT('',(26.285,7.04000000000001,21.)); +#4052=CARTESIAN_POINT('',(43.2725,7.04,21.)); +#4053=CARTESIAN_POINT('',(25.785,7.54,21.)); +#4054=CARTESIAN_POINT('Origin',(26.285,7.54,21.)); +#4055=CARTESIAN_POINT('',(25.785,20.54,21.)); +#4056=CARTESIAN_POINT('',(25.785,21.035,21.)); +#4057=CARTESIAN_POINT('',(26.285,21.04,21.)); +#4058=CARTESIAN_POINT('Origin',(26.285,20.54,21.)); +#4059=CARTESIAN_POINT('',(39.285,21.04,21.)); +#4060=CARTESIAN_POINT('',(36.7725,21.04,21.)); +#4061=CARTESIAN_POINT('Origin',(39.285,20.54,21.)); +#4062=CARTESIAN_POINT('',(87.41,39.59,21.)); +#4063=CARTESIAN_POINT('',(87.41,26.59,21.)); +#4064=CARTESIAN_POINT('',(87.41,37.06,21.)); +#4065=CARTESIAN_POINT('',(86.91,26.09,21.)); +#4066=CARTESIAN_POINT('Origin',(86.91,26.59,21.)); +#4067=CARTESIAN_POINT('',(73.91,26.09,21.)); +#4068=CARTESIAN_POINT('',(67.085,26.09,21.)); +#4069=CARTESIAN_POINT('',(73.41,26.59,21.)); +#4070=CARTESIAN_POINT('Origin',(73.91,26.59,21.)); +#4071=CARTESIAN_POINT('',(73.41,39.59,21.)); +#4072=CARTESIAN_POINT('',(73.41,30.56,21.)); +#4073=CARTESIAN_POINT('',(73.91,40.09,21.)); +#4074=CARTESIAN_POINT('Origin',(73.91,39.59,21.)); +#4075=CARTESIAN_POINT('',(86.91,40.09,21.)); +#4076=CARTESIAN_POINT('',(60.585,40.09,21.)); +#4077=CARTESIAN_POINT('Origin',(86.91,39.59,21.)); +#4078=CARTESIAN_POINT('',(-6.4500000745058,74.16,21.)); +#4079=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#4080=CARTESIAN_POINT('',(98.17,74.16,21.)); +#4081=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#4082=CARTESIAN_POINT('',(-6.54999999999999,-5.10000000000001,21.)); +#4083=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#4084=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#4085=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#4086=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#4087=CARTESIAN_POINT('',(-10.,-5.,18.)); +#4088=CARTESIAN_POINT('',(-5.,-10.,18.)); +#4089=CARTESIAN_POINT('Origin',(-5.,-5.,18.)); +#4090=CARTESIAN_POINT('',(-5.,-10.,21.)); +#4091=CARTESIAN_POINT('',(-10.,-5.,21.)); +#4092=CARTESIAN_POINT('Origin',(104.52,-10.,21.)); +#4093=CARTESIAN_POINT('',(99.52,-10.,18.)); +#4094=CARTESIAN_POINT('',(18.63,-10.,18.)); +#4095=CARTESIAN_POINT('',(99.52,-10.,21.)); +#4096=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#4097=CARTESIAN_POINT('',(104.52,-5.,18.)); +#4098=CARTESIAN_POINT('Origin',(99.52,-5.,18.)); +#4099=CARTESIAN_POINT('',(104.52,-5.,21.)); +#4100=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#4101=CARTESIAN_POINT('',(104.52,74.06,18.)); +#4102=CARTESIAN_POINT('',(99.52,79.06,18.)); +#4103=CARTESIAN_POINT('Origin',(99.52,74.06,18.)); +#4104=CARTESIAN_POINT('',(99.52,79.06,21.)); +#4105=CARTESIAN_POINT('',(104.52,74.06,21.)); +#4106=CARTESIAN_POINT('Origin',(23.4403267770942,79.06,21.)); +#4107=CARTESIAN_POINT('',(23.4403267770942,79.06,18.)); +#4108=CARTESIAN_POINT('',(75.89,79.06,18.)); +#4109=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#4110=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#4111=CARTESIAN_POINT('',(98.17,-5.1,18.)); +#4112=CARTESIAN_POINT('Origin',(99.62,-5.1,18.)); +#4113=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#4114=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#4115=CARTESIAN_POINT('',(-6.54999999999999,-5.1,18.)); +#4116=CARTESIAN_POINT('Origin',(-5.1,-5.1,18.)); +#4117=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#4118=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#4119=CARTESIAN_POINT('',(98.17,74.16,18.)); +#4120=CARTESIAN_POINT('Origin',(99.62,74.16,18.)); +#4121=CARTESIAN_POINT('',(98.17,74.16,21.)); +#4122=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#4123=CARTESIAN_POINT('',(-6.4500000745058,74.16,18.)); +#4124=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,18.)); +#4125=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#4126=CARTESIAN_POINT('Origin',(86.91,26.59,21.)); +#4127=CARTESIAN_POINT('',(87.41,26.59,18.)); +#4128=CARTESIAN_POINT('',(87.41,26.59,21.)); +#4129=CARTESIAN_POINT('',(86.91,26.09,18.)); +#4130=CARTESIAN_POINT('Origin',(86.91,26.59,18.)); +#4131=CARTESIAN_POINT('',(86.91,26.09,21.)); +#4132=CARTESIAN_POINT('Origin',(73.91,26.09,21.)); +#4133=CARTESIAN_POINT('',(73.91,26.09,18.)); +#4134=CARTESIAN_POINT('',(67.085,26.09,18.)); +#4135=CARTESIAN_POINT('',(73.91,26.09,21.)); +#4136=CARTESIAN_POINT('Origin',(73.91,26.59,21.)); +#4137=CARTESIAN_POINT('',(73.41,26.59,18.)); +#4138=CARTESIAN_POINT('Origin',(73.91,26.59,18.)); +#4139=CARTESIAN_POINT('',(73.41,26.59,21.)); +#4140=CARTESIAN_POINT('Origin',(73.41,39.59,21.)); +#4141=CARTESIAN_POINT('',(73.41,39.59,18.)); +#4142=CARTESIAN_POINT('',(73.41,30.56,18.)); +#4143=CARTESIAN_POINT('',(73.41,39.59,21.)); +#4144=CARTESIAN_POINT('Origin',(73.91,39.59,21.)); +#4145=CARTESIAN_POINT('',(73.91,40.09,18.)); +#4146=CARTESIAN_POINT('Origin',(73.91,39.59,18.)); +#4147=CARTESIAN_POINT('',(73.91,40.09,21.)); +#4148=CARTESIAN_POINT('Origin',(86.91,40.09,21.)); +#4149=CARTESIAN_POINT('',(86.91,40.09,18.)); +#4150=CARTESIAN_POINT('',(60.585,40.09,18.)); +#4151=CARTESIAN_POINT('',(86.91,40.09,21.)); +#4152=CARTESIAN_POINT('Origin',(86.91,39.59,21.)); +#4153=CARTESIAN_POINT('',(87.41,39.59,18.)); +#4154=CARTESIAN_POINT('Origin',(86.91,39.59,18.)); +#4155=CARTESIAN_POINT('',(87.41,39.59,21.)); +#4156=CARTESIAN_POINT('Origin',(87.41,26.59,21.)); +#4157=CARTESIAN_POINT('',(87.41,37.06,18.)); +#4158=CARTESIAN_POINT('Origin',(39.285,7.54,21.)); +#4159=CARTESIAN_POINT('',(39.785,7.54,18.)); +#4160=CARTESIAN_POINT('',(39.785,7.54,21.)); +#4161=CARTESIAN_POINT('',(39.285,7.04000000000001,18.)); +#4162=CARTESIAN_POINT('Origin',(39.285,7.54,18.)); +#4163=CARTESIAN_POINT('',(39.285,7.04,21.)); +#4164=CARTESIAN_POINT('Origin',(26.285,7.04,21.)); +#4165=CARTESIAN_POINT('',(26.285,7.04000000000001,18.)); +#4166=CARTESIAN_POINT('',(43.2725,7.04,18.)); +#4167=CARTESIAN_POINT('',(26.285,7.04000000000001,21.)); +#4168=CARTESIAN_POINT('Origin',(26.285,7.54,21.)); +#4169=CARTESIAN_POINT('',(25.785,7.54,18.)); +#4170=CARTESIAN_POINT('Origin',(26.285,7.54,18.)); +#4171=CARTESIAN_POINT('',(25.785,7.54,21.)); +#4172=CARTESIAN_POINT('Origin',(25.785,20.54,21.)); +#4173=CARTESIAN_POINT('',(25.785,20.54,18.)); +#4174=CARTESIAN_POINT('',(25.785,21.035,18.)); +#4175=CARTESIAN_POINT('',(25.785,20.54,21.)); +#4176=CARTESIAN_POINT('Origin',(26.285,20.54,21.)); +#4177=CARTESIAN_POINT('',(26.285,21.04,18.)); +#4178=CARTESIAN_POINT('Origin',(26.285,20.54,18.)); +#4179=CARTESIAN_POINT('',(26.285,21.04,21.)); +#4180=CARTESIAN_POINT('Origin',(39.285,21.04,21.)); +#4181=CARTESIAN_POINT('',(39.285,21.04,18.)); +#4182=CARTESIAN_POINT('',(36.7725,21.04,18.)); +#4183=CARTESIAN_POINT('',(39.285,21.04,21.)); +#4184=CARTESIAN_POINT('Origin',(39.285,20.54,21.)); +#4185=CARTESIAN_POINT('',(39.785,20.54,18.)); +#4186=CARTESIAN_POINT('Origin',(39.285,20.54,18.)); +#4187=CARTESIAN_POINT('',(39.785,20.54,21.)); +#4188=CARTESIAN_POINT('Origin',(39.785,7.54,21.)); +#4189=CARTESIAN_POINT('',(39.785,27.535,18.)); +#4190=CARTESIAN_POINT('Origin',(20.235,26.59,21.)); +#4191=CARTESIAN_POINT('',(20.735,26.59,18.)); +#4192=CARTESIAN_POINT('',(20.735,26.59,21.)); +#4193=CARTESIAN_POINT('',(20.235,26.09,18.)); +#4194=CARTESIAN_POINT('Origin',(20.235,26.59,18.)); +#4195=CARTESIAN_POINT('',(20.235,26.09,21.)); +#4196=CARTESIAN_POINT('Origin',(7.235,26.09,21.)); +#4197=CARTESIAN_POINT('',(7.235,26.09,18.)); +#4198=CARTESIAN_POINT('',(33.7475,26.09,18.)); +#4199=CARTESIAN_POINT('',(7.235,26.09,21.)); +#4200=CARTESIAN_POINT('Origin',(7.235,26.59,21.)); +#4201=CARTESIAN_POINT('',(6.735,26.59,18.)); +#4202=CARTESIAN_POINT('Origin',(7.235,26.59,18.)); +#4203=CARTESIAN_POINT('',(6.735,26.59,21.)); +#4204=CARTESIAN_POINT('Origin',(6.735,39.59,21.)); +#4205=CARTESIAN_POINT('',(6.735,39.59,18.)); +#4206=CARTESIAN_POINT('',(6.735,30.56,18.)); +#4207=CARTESIAN_POINT('',(6.735,39.59,21.)); +#4208=CARTESIAN_POINT('Origin',(7.235,39.59,21.)); +#4209=CARTESIAN_POINT('',(7.235,40.09,18.)); +#4210=CARTESIAN_POINT('Origin',(7.235,39.59,18.)); +#4211=CARTESIAN_POINT('',(7.235,40.09,21.)); +#4212=CARTESIAN_POINT('Origin',(20.235,40.09,21.)); +#4213=CARTESIAN_POINT('',(20.235,40.09,18.)); +#4214=CARTESIAN_POINT('',(27.2475,40.09,18.)); +#4215=CARTESIAN_POINT('',(20.235,40.09,21.)); +#4216=CARTESIAN_POINT('Origin',(20.235,39.59,21.)); +#4217=CARTESIAN_POINT('',(20.735,39.59,18.)); +#4218=CARTESIAN_POINT('Origin',(20.235,39.59,18.)); +#4219=CARTESIAN_POINT('',(20.735,39.59,21.)); +#4220=CARTESIAN_POINT('Origin',(20.735,26.59,21.)); +#4221=CARTESIAN_POINT('',(20.735,37.06,18.)); +#4222=CARTESIAN_POINT('Origin',(58.335,7.54,21.)); +#4223=CARTESIAN_POINT('',(58.835,7.54,18.)); +#4224=CARTESIAN_POINT('',(58.835,7.54,21.)); +#4225=CARTESIAN_POINT('',(58.335,7.04000000000001,18.)); +#4226=CARTESIAN_POINT('Origin',(58.335,7.54,18.)); +#4227=CARTESIAN_POINT('',(58.335,7.04,21.)); +#4228=CARTESIAN_POINT('Origin',(45.335,7.04,21.)); +#4229=CARTESIAN_POINT('',(45.335,7.04000000000001,18.)); +#4230=CARTESIAN_POINT('',(52.7975,7.04,18.)); +#4231=CARTESIAN_POINT('',(45.335,7.04000000000001,21.)); +#4232=CARTESIAN_POINT('Origin',(45.335,7.54,21.)); +#4233=CARTESIAN_POINT('',(44.835,7.54,18.)); +#4234=CARTESIAN_POINT('Origin',(45.335,7.54,18.)); +#4235=CARTESIAN_POINT('',(44.835,7.54,21.)); +#4236=CARTESIAN_POINT('Origin',(44.835,20.54,21.)); +#4237=CARTESIAN_POINT('',(44.835,20.54,18.)); +#4238=CARTESIAN_POINT('',(44.835,21.035,18.)); +#4239=CARTESIAN_POINT('',(44.835,20.54,21.)); +#4240=CARTESIAN_POINT('Origin',(45.335,20.54,21.)); +#4241=CARTESIAN_POINT('',(45.335,21.04,18.)); +#4242=CARTESIAN_POINT('Origin',(45.335,20.54,18.)); +#4243=CARTESIAN_POINT('',(45.335,21.04,21.)); +#4244=CARTESIAN_POINT('Origin',(58.335,21.04,21.)); +#4245=CARTESIAN_POINT('',(58.335,21.04,18.)); +#4246=CARTESIAN_POINT('',(46.2975,21.04,18.)); +#4247=CARTESIAN_POINT('',(58.335,21.04,21.)); +#4248=CARTESIAN_POINT('Origin',(58.335,20.54,21.)); +#4249=CARTESIAN_POINT('',(58.835,20.54,18.)); +#4250=CARTESIAN_POINT('Origin',(58.335,20.54,18.)); +#4251=CARTESIAN_POINT('',(58.835,20.54,21.)); +#4252=CARTESIAN_POINT('Origin',(58.835,7.54,21.)); +#4253=CARTESIAN_POINT('',(58.835,27.535,18.)); +#4254=CARTESIAN_POINT('Origin',(86.91,7.54,21.)); +#4255=CARTESIAN_POINT('',(87.41,7.54,18.)); +#4256=CARTESIAN_POINT('',(87.41,7.54,21.)); +#4257=CARTESIAN_POINT('',(86.91,7.04000000000001,18.)); +#4258=CARTESIAN_POINT('Origin',(86.91,7.54,18.)); +#4259=CARTESIAN_POINT('',(86.91,7.04,21.)); +#4260=CARTESIAN_POINT('Origin',(73.91,7.04,21.)); +#4261=CARTESIAN_POINT('',(73.91,7.04000000000001,18.)); +#4262=CARTESIAN_POINT('',(67.085,7.04,18.)); +#4263=CARTESIAN_POINT('',(73.91,7.04000000000001,21.)); +#4264=CARTESIAN_POINT('Origin',(73.91,7.54,21.)); +#4265=CARTESIAN_POINT('',(73.41,7.54,18.)); +#4266=CARTESIAN_POINT('Origin',(73.91,7.54,18.)); +#4267=CARTESIAN_POINT('',(73.41,7.54,21.)); +#4268=CARTESIAN_POINT('Origin',(73.41,20.54,21.)); +#4269=CARTESIAN_POINT('',(73.41,20.54,18.)); +#4270=CARTESIAN_POINT('',(73.41,21.035,18.)); +#4271=CARTESIAN_POINT('',(73.41,20.54,21.)); +#4272=CARTESIAN_POINT('Origin',(73.91,20.54,21.)); +#4273=CARTESIAN_POINT('',(73.91,21.04,18.)); +#4274=CARTESIAN_POINT('Origin',(73.91,20.54,18.)); +#4275=CARTESIAN_POINT('',(73.91,21.04,21.)); +#4276=CARTESIAN_POINT('Origin',(86.91,21.04,21.)); +#4277=CARTESIAN_POINT('',(86.91,21.04,18.)); +#4278=CARTESIAN_POINT('',(60.585,21.04,18.)); +#4279=CARTESIAN_POINT('',(86.91,21.04,21.)); +#4280=CARTESIAN_POINT('Origin',(86.91,20.54,21.)); +#4281=CARTESIAN_POINT('',(87.41,20.54,18.)); +#4282=CARTESIAN_POINT('Origin',(86.91,20.54,18.)); +#4283=CARTESIAN_POINT('',(87.41,20.54,21.)); +#4284=CARTESIAN_POINT('Origin',(87.41,7.54,21.)); +#4285=CARTESIAN_POINT('',(87.41,27.535,18.)); +#4286=CARTESIAN_POINT('Origin',(20.235,7.54,21.)); +#4287=CARTESIAN_POINT('',(20.735,7.54,18.)); +#4288=CARTESIAN_POINT('',(20.735,7.54,21.)); +#4289=CARTESIAN_POINT('',(20.235,7.04000000000001,18.)); +#4290=CARTESIAN_POINT('Origin',(20.235,7.54,18.)); +#4291=CARTESIAN_POINT('',(20.235,7.04,21.)); +#4292=CARTESIAN_POINT('Origin',(7.235,7.04,21.)); +#4293=CARTESIAN_POINT('',(7.235,7.04000000000001,18.)); +#4294=CARTESIAN_POINT('',(33.7475,7.04,18.)); +#4295=CARTESIAN_POINT('',(7.235,7.04000000000001,21.)); +#4296=CARTESIAN_POINT('Origin',(7.235,7.54,21.)); +#4297=CARTESIAN_POINT('',(6.735,7.54,18.)); +#4298=CARTESIAN_POINT('Origin',(7.235,7.54,18.)); +#4299=CARTESIAN_POINT('',(6.735,7.54,21.)); +#4300=CARTESIAN_POINT('Origin',(6.735,20.54,21.)); +#4301=CARTESIAN_POINT('',(6.735,20.54,18.)); +#4302=CARTESIAN_POINT('',(6.735,21.035,18.)); +#4303=CARTESIAN_POINT('',(6.735,20.54,21.)); +#4304=CARTESIAN_POINT('Origin',(7.235,20.54,21.)); +#4305=CARTESIAN_POINT('',(7.235,21.04,18.)); +#4306=CARTESIAN_POINT('Origin',(7.235,20.54,18.)); +#4307=CARTESIAN_POINT('',(7.235,21.04,21.)); +#4308=CARTESIAN_POINT('Origin',(20.235,21.04,21.)); +#4309=CARTESIAN_POINT('',(20.235,21.04,18.)); +#4310=CARTESIAN_POINT('',(27.2475,21.04,18.)); +#4311=CARTESIAN_POINT('',(20.235,21.04,21.)); +#4312=CARTESIAN_POINT('Origin',(20.235,20.54,21.)); +#4313=CARTESIAN_POINT('',(20.735,20.54,18.)); +#4314=CARTESIAN_POINT('Origin',(20.235,20.54,18.)); +#4315=CARTESIAN_POINT('',(20.735,20.54,21.)); +#4316=CARTESIAN_POINT('Origin',(20.735,7.54,21.)); +#4317=CARTESIAN_POINT('',(20.735,27.535,18.)); +#4318=CARTESIAN_POINT('Origin',(39.285,26.59,21.)); +#4319=CARTESIAN_POINT('',(39.785,26.59,18.)); +#4320=CARTESIAN_POINT('',(39.785,26.59,21.)); +#4321=CARTESIAN_POINT('',(39.285,26.09,18.)); +#4322=CARTESIAN_POINT('Origin',(39.285,26.59,18.)); +#4323=CARTESIAN_POINT('',(39.285,26.09,21.)); +#4324=CARTESIAN_POINT('Origin',(26.285,26.09,21.)); +#4325=CARTESIAN_POINT('',(26.285,26.09,18.)); +#4326=CARTESIAN_POINT('',(43.2725,26.09,18.)); +#4327=CARTESIAN_POINT('',(26.285,26.09,21.)); +#4328=CARTESIAN_POINT('Origin',(26.285,26.59,21.)); +#4329=CARTESIAN_POINT('',(25.785,26.59,18.)); +#4330=CARTESIAN_POINT('Origin',(26.285,26.59,18.)); +#4331=CARTESIAN_POINT('',(25.785,26.59,21.)); +#4332=CARTESIAN_POINT('Origin',(25.785,39.59,21.)); +#4333=CARTESIAN_POINT('',(25.785,39.59,18.)); +#4334=CARTESIAN_POINT('',(25.785,30.56,18.)); +#4335=CARTESIAN_POINT('',(25.785,39.59,21.)); +#4336=CARTESIAN_POINT('Origin',(26.285,39.59,21.)); +#4337=CARTESIAN_POINT('',(26.285,40.09,18.)); +#4338=CARTESIAN_POINT('Origin',(26.285,39.59,18.)); +#4339=CARTESIAN_POINT('',(26.285,40.09,21.)); +#4340=CARTESIAN_POINT('Origin',(39.285,40.09,21.)); +#4341=CARTESIAN_POINT('',(39.285,40.09,18.)); +#4342=CARTESIAN_POINT('',(36.7725,40.09,18.)); +#4343=CARTESIAN_POINT('',(39.285,40.09,21.)); +#4344=CARTESIAN_POINT('Origin',(39.285,39.59,21.)); +#4345=CARTESIAN_POINT('',(39.785,39.59,18.)); +#4346=CARTESIAN_POINT('Origin',(39.285,39.59,18.)); +#4347=CARTESIAN_POINT('',(39.785,39.59,21.)); +#4348=CARTESIAN_POINT('Origin',(39.785,26.59,21.)); +#4349=CARTESIAN_POINT('',(39.785,37.06,18.)); +#4350=CARTESIAN_POINT('Origin',(58.335,26.59,21.)); +#4351=CARTESIAN_POINT('',(58.835,26.59,18.)); +#4352=CARTESIAN_POINT('',(58.835,26.59,21.)); +#4353=CARTESIAN_POINT('',(58.335,26.09,18.)); +#4354=CARTESIAN_POINT('Origin',(58.335,26.59,18.)); +#4355=CARTESIAN_POINT('',(58.335,26.09,21.)); +#4356=CARTESIAN_POINT('Origin',(45.335,26.09,21.)); +#4357=CARTESIAN_POINT('',(45.335,26.09,18.)); +#4358=CARTESIAN_POINT('',(52.7975,26.09,18.)); +#4359=CARTESIAN_POINT('',(45.335,26.09,21.)); +#4360=CARTESIAN_POINT('Origin',(45.335,26.59,21.)); +#4361=CARTESIAN_POINT('',(44.835,26.59,18.)); +#4362=CARTESIAN_POINT('Origin',(45.335,26.59,18.)); +#4363=CARTESIAN_POINT('',(44.835,26.59,21.)); +#4364=CARTESIAN_POINT('Origin',(44.835,39.59,21.)); +#4365=CARTESIAN_POINT('',(44.835,39.59,18.)); +#4366=CARTESIAN_POINT('',(44.835,30.56,18.)); +#4367=CARTESIAN_POINT('',(44.835,39.59,21.)); +#4368=CARTESIAN_POINT('Origin',(45.335,39.59,21.)); +#4369=CARTESIAN_POINT('',(45.335,40.09,18.)); +#4370=CARTESIAN_POINT('Origin',(45.335,39.59,18.)); +#4371=CARTESIAN_POINT('',(45.335,40.09,21.)); +#4372=CARTESIAN_POINT('Origin',(58.335,40.09,21.)); +#4373=CARTESIAN_POINT('',(58.335,40.09,18.)); +#4374=CARTESIAN_POINT('',(46.2975,40.09,18.)); +#4375=CARTESIAN_POINT('',(58.335,40.09,21.)); +#4376=CARTESIAN_POINT('Origin',(58.335,39.59,21.)); +#4377=CARTESIAN_POINT('',(58.835,39.59,18.)); +#4378=CARTESIAN_POINT('Origin',(58.335,39.59,18.)); +#4379=CARTESIAN_POINT('',(58.835,39.59,21.)); +#4380=CARTESIAN_POINT('Origin',(58.835,26.59,21.)); +#4381=CARTESIAN_POINT('',(58.835,37.06,18.)); +#4382=CARTESIAN_POINT('Origin',(87.11,46.79,21.)); +#4383=CARTESIAN_POINT('',(87.61,46.79,18.)); +#4384=CARTESIAN_POINT('',(87.61,46.79,21.)); +#4385=CARTESIAN_POINT('',(87.11,46.29,18.)); +#4386=CARTESIAN_POINT('Origin',(87.11,46.79,18.)); +#4387=CARTESIAN_POINT('',(87.11,46.29,21.)); +#4388=CARTESIAN_POINT('Origin',(74.11,46.29,21.)); +#4389=CARTESIAN_POINT('',(74.11,46.29,18.)); +#4390=CARTESIAN_POINT('',(67.185,46.29,18.)); +#4391=CARTESIAN_POINT('',(74.11,46.29,21.)); +#4392=CARTESIAN_POINT('Origin',(74.11,46.79,21.)); +#4393=CARTESIAN_POINT('',(73.61,46.79,18.)); +#4394=CARTESIAN_POINT('Origin',(74.11,46.79,18.)); +#4395=CARTESIAN_POINT('',(73.61,46.79,21.)); +#4396=CARTESIAN_POINT('Origin',(73.61,59.79,21.)); +#4397=CARTESIAN_POINT('',(73.61,59.79,18.)); +#4398=CARTESIAN_POINT('',(73.61,40.66,18.)); +#4399=CARTESIAN_POINT('',(73.61,59.79,21.)); +#4400=CARTESIAN_POINT('Origin',(74.11,59.79,21.)); +#4401=CARTESIAN_POINT('',(74.11,60.29,18.)); +#4402=CARTESIAN_POINT('Origin',(74.11,59.79,18.)); +#4403=CARTESIAN_POINT('',(74.11,60.29,21.)); +#4404=CARTESIAN_POINT('Origin',(87.11,60.29,21.)); +#4405=CARTESIAN_POINT('',(87.11,60.29,18.)); +#4406=CARTESIAN_POINT('',(60.685,60.29,18.)); +#4407=CARTESIAN_POINT('',(87.11,60.29,21.)); +#4408=CARTESIAN_POINT('Origin',(87.11,59.79,21.)); +#4409=CARTESIAN_POINT('',(87.61,59.79,18.)); +#4410=CARTESIAN_POINT('Origin',(87.11,59.79,18.)); +#4411=CARTESIAN_POINT('',(87.61,59.79,21.)); +#4412=CARTESIAN_POINT('Origin',(87.61,46.79,21.)); +#4413=CARTESIAN_POINT('',(87.61,47.16,18.)); +#4414=CARTESIAN_POINT('Origin',(26.545,47.045,21.)); +#4415=CARTESIAN_POINT('',(65.245,47.045,18.)); +#4416=CARTESIAN_POINT('',(65.245,47.045,21.)); +#4417=CARTESIAN_POINT('',(26.545,47.045,18.)); +#4418=CARTESIAN_POINT('',(56.1525,47.045,18.)); +#4419=CARTESIAN_POINT('',(26.545,47.045,21.)); +#4420=CARTESIAN_POINT('Origin',(26.545,59.545,21.)); +#4421=CARTESIAN_POINT('',(26.545,59.545,18.)); +#4422=CARTESIAN_POINT('',(26.545,40.8875,18.)); +#4423=CARTESIAN_POINT('',(26.545,59.545,21.)); +#4424=CARTESIAN_POINT('Origin',(65.245,59.545,21.)); +#4425=CARTESIAN_POINT('',(65.245,59.545,18.)); +#4426=CARTESIAN_POINT('',(37.0025,59.545,18.)); +#4427=CARTESIAN_POINT('',(65.245,59.545,21.)); +#4428=CARTESIAN_POINT('Origin',(65.245,47.045,21.)); +#4429=CARTESIAN_POINT('',(65.245,46.9375,18.)); +#4430=CARTESIAN_POINT('Origin',(4.16350149405484,42.7967931030271,21.)); +#4431=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,18.)); +#4432=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,21.)); +#4433=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,18.)); +#4434=CARTESIAN_POINT('',(37.720358113746,42.7256913777202,18.)); +#4435=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,21.)); +#4436=CARTESIAN_POINT('Origin',(4.24033755187632,79.06,21.)); +#4437=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,18.)); +#4438=CARTESIAN_POINT('Origin',(-10.,-10.,21.)); +#4439=CARTESIAN_POINT('',(-10.,56.795,18.)); +#4440=CARTESIAN_POINT('Origin',(104.52,79.06,21.)); +#4441=CARTESIAN_POINT('',(104.52,12.265,18.)); +#4442=CARTESIAN_POINT('Origin',(23.3634045213564,42.7561115145685,21.)); +#4443=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,18.)); +#4444=CARTESIAN_POINT('Origin',(47.26,34.53,18.)); +#4445=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#4446=CARTESIAN_POINT('',(-10.,74.06,27.)); +#4447=CARTESIAN_POINT('',(-5.,79.06,27.)); +#4448=CARTESIAN_POINT('Origin',(-5.,74.06,27.)); +#4449=CARTESIAN_POINT('',(-5.,79.06,21.)); +#4450=CARTESIAN_POINT('',(-5.,79.06,21.)); +#4451=CARTESIAN_POINT('',(-10.,74.06,21.)); +#4452=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#4453=CARTESIAN_POINT('',(-10.,74.06,21.)); +#4454=CARTESIAN_POINT('Origin',(-10.,79.06,21.)); +#4455=CARTESIAN_POINT('',(-10.,-5.,21.)); +#4456=CARTESIAN_POINT('',(-10.,56.795,21.)); +#4457=CARTESIAN_POINT('',(-10.,-5.,27.)); +#4458=CARTESIAN_POINT('',(-10.,-5.,21.)); +#4459=CARTESIAN_POINT('',(-10.,56.795,27.)); +#4460=CARTESIAN_POINT('Origin',(47.26,34.53,21.)); +#4461=CARTESIAN_POINT('',(99.52,79.06,21.)); +#4462=CARTESIAN_POINT('',(75.89,79.06,21.)); +#4463=CARTESIAN_POINT('',(104.52,74.06,21.)); +#4464=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#4465=CARTESIAN_POINT('',(104.52,-5.,21.)); +#4466=CARTESIAN_POINT('',(104.52,12.265,21.)); +#4467=CARTESIAN_POINT('',(99.52,-10.,21.)); +#4468=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#4469=CARTESIAN_POINT('',(-5.,-10.,21.)); +#4470=CARTESIAN_POINT('',(18.63,-10.,21.)); +#4471=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#4472=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#4473=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#4474=CARTESIAN_POINT('',(0.,0.,21.)); +#4475=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,21.)); +#4476=CARTESIAN_POINT('',(70.89,0.,21.)); +#4477=CARTESIAN_POINT('',(94.52,69.06,21.)); +#4478=CARTESIAN_POINT('',(94.52,51.795,21.)); +#4479=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,21.)); +#4480=CARTESIAN_POINT('',(23.63,69.06,21.)); +#4481=CARTESIAN_POINT('',(0.,17.265,21.)); +#4482=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#4483=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#4484=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#4485=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#4486=CARTESIAN_POINT('',(98.17,74.16,21.)); +#4487=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#4488=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#4489=CARTESIAN_POINT('',(-5.,-10.,27.)); +#4490=CARTESIAN_POINT('Origin',(-5.,-5.,27.)); +#4491=CARTESIAN_POINT('',(-5.,-10.,21.)); +#4492=CARTESIAN_POINT('Origin',(-10.,-10.,21.)); +#4493=CARTESIAN_POINT('',(99.52,-10.,27.)); +#4494=CARTESIAN_POINT('',(99.52,-10.,21.)); +#4495=CARTESIAN_POINT('',(18.63,-10.,27.)); +#4496=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#4497=CARTESIAN_POINT('',(104.52,-5.,27.)); +#4498=CARTESIAN_POINT('Origin',(99.52,-5.,27.)); +#4499=CARTESIAN_POINT('',(104.52,-5.,21.)); +#4500=CARTESIAN_POINT('Origin',(104.52,-10.,21.)); +#4501=CARTESIAN_POINT('',(104.52,74.06,27.)); +#4502=CARTESIAN_POINT('',(104.52,74.06,21.)); +#4503=CARTESIAN_POINT('',(104.52,12.265,27.)); +#4504=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#4505=CARTESIAN_POINT('',(99.52,79.06,27.)); +#4506=CARTESIAN_POINT('Origin',(99.52,74.06,27.)); +#4507=CARTESIAN_POINT('',(99.52,79.06,21.)); +#4508=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#4509=CARTESIAN_POINT('',(98.17,74.16,27.)); +#4510=CARTESIAN_POINT('Origin',(99.62,74.16,27.)); +#4511=CARTESIAN_POINT('',(98.17,74.16,21.)); +#4512=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#4513=CARTESIAN_POINT('',(-6.55,-5.1,27.)); +#4514=CARTESIAN_POINT('Origin',(-5.1,-5.1,27.)); +#4515=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#4516=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#4517=CARTESIAN_POINT('',(98.17,-5.1,27.)); +#4518=CARTESIAN_POINT('Origin',(99.62,-5.1,27.)); +#4519=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#4520=CARTESIAN_POINT('Origin',(94.52,69.06,21.)); +#4521=CARTESIAN_POINT('',(94.52,0.,27.)); +#4522=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,21.)); +#4523=CARTESIAN_POINT('',(94.52,69.06,27.)); +#4524=CARTESIAN_POINT('',(94.52,51.795,27.)); +#4525=CARTESIAN_POINT('',(94.52,69.06,21.)); +#4526=CARTESIAN_POINT('Origin',(0.,69.06,21.)); +#4527=CARTESIAN_POINT('',(0.,69.06,27.)); +#4528=CARTESIAN_POINT('',(23.63,69.06,27.)); +#4529=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,21.)); +#4530=CARTESIAN_POINT('Origin',(-2.98519141380022E-32,0.,21.)); +#4531=CARTESIAN_POINT('',(0.,0.,27.)); +#4532=CARTESIAN_POINT('',(0.,17.265,27.)); +#4533=CARTESIAN_POINT('',(0.,0.,21.)); +#4534=CARTESIAN_POINT('Origin',(94.52,6.83705130257469E-32,21.)); +#4535=CARTESIAN_POINT('',(70.89,0.,27.)); +#4536=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#4537=CARTESIAN_POINT('',(-6.45000007450581,74.16,27.)); +#4538=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,27.)); +#4539=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#4540=CARTESIAN_POINT('Origin',(104.52,79.06,21.)); +#4541=CARTESIAN_POINT('',(75.89,79.06,27.)); +#4542=CARTESIAN_POINT('Origin',(47.26,34.53,27.)); +#4543=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#4547, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#4544=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#4547, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#4545=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#4543)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#4547,#4548,#4549)) +REPRESENTATION_CONTEXT('','3D') +); +#4546=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#4544)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#4547,#4548,#4549)) +REPRESENTATION_CONTEXT('','3D') +); +#4547=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#4548=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#4549=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#4550=SHAPE_DEFINITION_REPRESENTATION(#4551,#4552); +#4551=PRODUCT_DEFINITION_SHAPE('',$,#4554); +#4552=SHAPE_REPRESENTATION('',(#2727),#4545); +#4553=PRODUCT_DEFINITION_CONTEXT('part definition',#4558,'design'); +#4554=PRODUCT_DEFINITION('hackpad','hackpad v5',#4555,#4553); +#4555=PRODUCT_DEFINITION_FORMATION('',$,#4560); +#4556=PRODUCT_RELATED_PRODUCT_CATEGORY('hackpad v5','hackpad v5',(#4560)); +#4557=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2009,#4558); +#4558=APPLICATION_CONTEXT( +'Core Data for Automotive Mechanical Design Process'); +#4559=PRODUCT_CONTEXT('part definition',#4558,'mechanical'); +#4560=PRODUCT('hackpad','hackpad v5',$,(#4559)); +#4561=PRESENTATION_STYLE_ASSIGNMENT((#4562)); +#4562=SURFACE_STYLE_USAGE(.BOTH.,#4563); +#4563=SURFACE_SIDE_STYLE('',(#4564)); +#4564=SURFACE_STYLE_FILL_AREA(#4565); +#4565=FILL_AREA_STYLE('Steel - Satin',(#4566)); +#4566=FILL_AREA_STYLE_COLOUR('Steel - Satin',#4567); +#4567=COLOUR_RGB('Steel - Satin',0.627450980392157,0.627450980392157,0.627450980392157); +ENDSEC; +END-ISO-10303-21; diff --git a/hackpads/blipyboard/cad/bottom.step b/hackpads/blipyboard/cad/bottom.step new file mode 100644 index 0000000000..bd8b7e4535 --- /dev/null +++ b/hackpads/blipyboard/cad/bottom.step @@ -0,0 +1,833 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'bottom.step', +/* time_stamp */ '2025-06-27T17:52:25-07:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v20.1', +/* originating_system */ 'Autodesk Translation Framework v14.10.0.0', +/* authorisation */ ''); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); +ENDSEC; + +DATA; +#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#13),#764); +#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#770,#12); +#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#14),#763); +#13=STYLED_ITEM('',(#779),#14); +#14=MANIFOLD_SOLID_BREP('bottom',#464); +#15=FACE_BOUND('',#63,.T.); +#16=FACE_BOUND('',#64,.T.); +#17=FACE_BOUND('',#65,.T.); +#18=FACE_BOUND('',#66,.T.); +#19=FACE_BOUND('',#88,.T.); +#20=FACE_BOUND('',#89,.T.); +#21=FACE_BOUND('',#90,.T.); +#22=FACE_BOUND('',#91,.T.); +#23=PLANE('',#469); +#24=PLANE('',#477); +#25=PLANE('',#482); +#26=PLANE('',#485); +#27=PLANE('',#486); +#28=PLANE('',#487); +#29=PLANE('',#488); +#30=PLANE('',#489); +#31=PLANE('',#490); +#32=PLANE('',#491); +#33=PLANE('',#492); +#34=PLANE('',#493); +#35=PLANE('',#494); +#36=PLANE('',#503); +#37=PLANE('',#504); +#38=FACE_OUTER_BOUND('',#61,.T.); +#39=FACE_OUTER_BOUND('',#62,.T.); +#40=FACE_OUTER_BOUND('',#67,.T.); +#41=FACE_OUTER_BOUND('',#68,.T.); +#42=FACE_OUTER_BOUND('',#69,.T.); +#43=FACE_OUTER_BOUND('',#70,.T.); +#44=FACE_OUTER_BOUND('',#71,.T.); +#45=FACE_OUTER_BOUND('',#72,.T.); +#46=FACE_OUTER_BOUND('',#73,.T.); +#47=FACE_OUTER_BOUND('',#74,.T.); +#48=FACE_OUTER_BOUND('',#75,.T.); +#49=FACE_OUTER_BOUND('',#76,.T.); +#50=FACE_OUTER_BOUND('',#77,.T.); +#51=FACE_OUTER_BOUND('',#78,.T.); +#52=FACE_OUTER_BOUND('',#79,.T.); +#53=FACE_OUTER_BOUND('',#80,.T.); +#54=FACE_OUTER_BOUND('',#81,.T.); +#55=FACE_OUTER_BOUND('',#82,.T.); +#56=FACE_OUTER_BOUND('',#83,.T.); +#57=FACE_OUTER_BOUND('',#84,.T.); +#58=FACE_OUTER_BOUND('',#85,.T.); +#59=FACE_OUTER_BOUND('',#86,.T.); +#60=FACE_OUTER_BOUND('',#87,.T.); +#61=EDGE_LOOP('',(#307,#308,#309,#310)); +#62=EDGE_LOOP('',(#311,#312,#313,#314,#315,#316,#317,#318,#319,#320,#321, +#322,#323,#324,#325,#326,#327)); +#63=EDGE_LOOP('',(#328)); +#64=EDGE_LOOP('',(#329)); +#65=EDGE_LOOP('',(#330)); +#66=EDGE_LOOP('',(#331)); +#67=EDGE_LOOP('',(#332,#333,#334,#335)); +#68=EDGE_LOOP('',(#336,#337,#338,#339)); +#69=EDGE_LOOP('',(#340,#341,#342,#343)); +#70=EDGE_LOOP('',(#344,#345,#346,#347)); +#71=EDGE_LOOP('',(#348,#349,#350,#351)); +#72=EDGE_LOOP('',(#352,#353,#354,#355,#356,#357,#358,#359)); +#73=EDGE_LOOP('',(#360,#361,#362,#363)); +#74=EDGE_LOOP('',(#364,#365,#366,#367)); +#75=EDGE_LOOP('',(#368,#369,#370,#371)); +#76=EDGE_LOOP('',(#372,#373,#374,#375)); +#77=EDGE_LOOP('',(#376,#377,#378,#379,#380)); +#78=EDGE_LOOP('',(#381,#382,#383,#384)); +#79=EDGE_LOOP('',(#385,#386,#387,#388)); +#80=EDGE_LOOP('',(#389,#390,#391,#392,#393,#394,#395,#396)); +#81=EDGE_LOOP('',(#397,#398,#399,#400)); +#82=EDGE_LOOP('',(#401,#402,#403,#404)); +#83=EDGE_LOOP('',(#405,#406,#407,#408)); +#84=EDGE_LOOP('',(#409,#410,#411,#412)); +#85=EDGE_LOOP('',(#413,#414,#415,#416)); +#86=EDGE_LOOP('',(#417,#418,#419,#420)); +#87=EDGE_LOOP('',(#421,#422,#423,#424,#425,#426,#427,#428)); +#88=EDGE_LOOP('',(#429)); +#89=EDGE_LOOP('',(#430)); +#90=EDGE_LOOP('',(#431)); +#91=EDGE_LOOP('',(#432)); +#92=LINE('',#638,#139); +#93=LINE('',#641,#140); +#94=LINE('',#644,#141); +#95=LINE('',#648,#142); +#96=LINE('',#652,#143); +#97=LINE('',#656,#144); +#98=LINE('',#658,#145); +#99=LINE('',#660,#146); +#100=LINE('',#662,#147); +#101=LINE('',#664,#148); +#102=LINE('',#666,#149); +#103=LINE('',#668,#150); +#104=LINE('',#670,#151); +#105=LINE('',#672,#152); +#106=LINE('',#673,#153); +#107=LINE('',#684,#154); +#108=LINE('',#685,#155); +#109=LINE('',#689,#156); +#110=LINE('',#692,#157); +#111=LINE('',#695,#158); +#112=LINE('',#698,#159); +#113=LINE('',#699,#160); +#114=LINE('',#703,#161); +#115=LINE('',#706,#162); +#116=LINE('',#708,#163); +#117=LINE('',#709,#164); +#118=LINE('',#710,#165); +#119=LINE('',#713,#166); +#120=LINE('',#714,#167); +#121=LINE('',#717,#168); +#122=LINE('',#718,#169); +#123=LINE('',#720,#170); +#124=LINE('',#723,#171); +#125=LINE('',#724,#172); +#126=LINE('',#726,#173); +#127=LINE('',#730,#174); +#128=LINE('',#731,#175); +#129=LINE('',#732,#176); +#130=LINE('',#735,#177); +#131=LINE('',#736,#178); +#132=LINE('',#739,#179); +#133=LINE('',#740,#180); +#134=LINE('',#742,#181); +#135=LINE('',#745,#182); +#136=LINE('',#749,#183); +#137=LINE('',#753,#184); +#138=LINE('',#757,#185); +#139=VECTOR('',#511,10.); +#140=VECTOR('',#514,10.); +#141=VECTOR('',#517,10.); +#142=VECTOR('',#520,10.); +#143=VECTOR('',#523,10.); +#144=VECTOR('',#526,10.); +#145=VECTOR('',#527,10.); +#146=VECTOR('',#528,10.); +#147=VECTOR('',#529,10.); +#148=VECTOR('',#530,10.); +#149=VECTOR('',#531,10.); +#150=VECTOR('',#532,10.); +#151=VECTOR('',#533,10.); +#152=VECTOR('',#534,10.); +#153=VECTOR('',#535,10.); +#154=VECTOR('',#546,10.); +#155=VECTOR('',#547,10.); +#156=VECTOR('',#552,10.); +#157=VECTOR('',#555,10.); +#158=VECTOR('',#558,10.); +#159=VECTOR('',#561,10.); +#160=VECTOR('',#562,10.); +#161=VECTOR('',#567,10.); +#162=VECTOR('',#570,10.); +#163=VECTOR('',#571,10.); +#164=VECTOR('',#572,10.); +#165=VECTOR('',#573,10.); +#166=VECTOR('',#576,10.); +#167=VECTOR('',#577,10.); +#168=VECTOR('',#580,10.); +#169=VECTOR('',#581,10.); +#170=VECTOR('',#584,10.); +#171=VECTOR('',#587,10.); +#172=VECTOR('',#588,10.); +#173=VECTOR('',#591,10.); +#174=VECTOR('',#594,10.); +#175=VECTOR('',#595,10.); +#176=VECTOR('',#596,10.); +#177=VECTOR('',#599,10.); +#178=VECTOR('',#600,10.); +#179=VECTOR('',#603,10.); +#180=VECTOR('',#604,10.); +#181=VECTOR('',#607,10.); +#182=VECTOR('',#610,1.45); +#183=VECTOR('',#615,1.45); +#184=VECTOR('',#620,1.45); +#185=VECTOR('',#625,1.45); +#186=CIRCLE('',#467,5.); +#187=CIRCLE('',#468,5.); +#188=CIRCLE('',#470,5.); +#189=CIRCLE('',#471,5.); +#190=CIRCLE('',#472,5.); +#191=CIRCLE('',#473,1.45); +#192=CIRCLE('',#474,1.45); +#193=CIRCLE('',#475,1.45); +#194=CIRCLE('',#476,1.45); +#195=CIRCLE('',#479,5.); +#196=CIRCLE('',#481,5.); +#197=CIRCLE('',#484,5.); +#198=CIRCLE('',#496,1.45); +#199=CIRCLE('',#498,1.45); +#200=CIRCLE('',#500,1.45); +#201=CIRCLE('',#502,1.45); +#202=VERTEX_POINT('',#634); +#203=VERTEX_POINT('',#635); +#204=VERTEX_POINT('',#637); +#205=VERTEX_POINT('',#639); +#206=VERTEX_POINT('',#643); +#207=VERTEX_POINT('',#645); +#208=VERTEX_POINT('',#647); +#209=VERTEX_POINT('',#649); +#210=VERTEX_POINT('',#651); +#211=VERTEX_POINT('',#653); +#212=VERTEX_POINT('',#655); +#213=VERTEX_POINT('',#657); +#214=VERTEX_POINT('',#659); +#215=VERTEX_POINT('',#661); +#216=VERTEX_POINT('',#663); +#217=VERTEX_POINT('',#665); +#218=VERTEX_POINT('',#667); +#219=VERTEX_POINT('',#669); +#220=VERTEX_POINT('',#671); +#221=VERTEX_POINT('',#674); +#222=VERTEX_POINT('',#676); +#223=VERTEX_POINT('',#678); +#224=VERTEX_POINT('',#680); +#225=VERTEX_POINT('',#683); +#226=VERTEX_POINT('',#687); +#227=VERTEX_POINT('',#691); +#228=VERTEX_POINT('',#693); +#229=VERTEX_POINT('',#697); +#230=VERTEX_POINT('',#701); +#231=VERTEX_POINT('',#705); +#232=VERTEX_POINT('',#707); +#233=VERTEX_POINT('',#712); +#234=VERTEX_POINT('',#716); +#235=VERTEX_POINT('',#722); +#236=VERTEX_POINT('',#728); +#237=VERTEX_POINT('',#729); +#238=VERTEX_POINT('',#734); +#239=VERTEX_POINT('',#738); +#240=VERTEX_POINT('',#744); +#241=VERTEX_POINT('',#748); +#242=VERTEX_POINT('',#752); +#243=VERTEX_POINT('',#756); +#244=EDGE_CURVE('',#202,#203,#186,.T.); +#245=EDGE_CURVE('',#203,#204,#92,.T.); +#246=EDGE_CURVE('',#204,#205,#187,.T.); +#247=EDGE_CURVE('',#205,#202,#93,.T.); +#248=EDGE_CURVE('',#206,#202,#94,.T.); +#249=EDGE_CURVE('',#207,#206,#188,.T.); +#250=EDGE_CURVE('',#208,#207,#95,.T.); +#251=EDGE_CURVE('',#209,#208,#189,.T.); +#252=EDGE_CURVE('',#210,#209,#96,.T.); +#253=EDGE_CURVE('',#211,#210,#190,.T.); +#254=EDGE_CURVE('',#212,#211,#97,.T.); +#255=EDGE_CURVE('',#213,#212,#98,.T.); +#256=EDGE_CURVE('',#213,#214,#99,.T.); +#257=EDGE_CURVE('',#214,#215,#100,.T.); +#258=EDGE_CURVE('',#215,#216,#101,.T.); +#259=EDGE_CURVE('',#216,#217,#102,.T.); +#260=EDGE_CURVE('',#217,#218,#103,.T.); +#261=EDGE_CURVE('',#218,#219,#104,.T.); +#262=EDGE_CURVE('',#220,#219,#105,.T.); +#263=EDGE_CURVE('',#203,#220,#106,.T.); +#264=EDGE_CURVE('',#221,#221,#191,.T.); +#265=EDGE_CURVE('',#222,#222,#192,.T.); +#266=EDGE_CURVE('',#223,#223,#193,.T.); +#267=EDGE_CURVE('',#224,#224,#194,.T.); +#268=EDGE_CURVE('',#205,#225,#107,.T.); +#269=EDGE_CURVE('',#206,#225,#108,.T.); +#270=EDGE_CURVE('',#225,#226,#195,.T.); +#271=EDGE_CURVE('',#226,#207,#109,.T.); +#272=EDGE_CURVE('',#208,#227,#110,.T.); +#273=EDGE_CURVE('',#227,#228,#196,.T.); +#274=EDGE_CURVE('',#228,#209,#111,.T.); +#275=EDGE_CURVE('',#228,#229,#112,.T.); +#276=EDGE_CURVE('',#210,#229,#113,.T.); +#277=EDGE_CURVE('',#229,#230,#197,.T.); +#278=EDGE_CURVE('',#230,#211,#114,.T.); +#279=EDGE_CURVE('',#220,#231,#115,.T.); +#280=EDGE_CURVE('',#232,#231,#116,.T.); +#281=EDGE_CURVE('',#212,#232,#117,.T.); +#282=EDGE_CURVE('',#230,#204,#118,.T.); +#283=EDGE_CURVE('',#233,#219,#119,.T.); +#284=EDGE_CURVE('',#233,#231,#120,.T.); +#285=EDGE_CURVE('',#234,#232,#121,.T.); +#286=EDGE_CURVE('',#234,#213,#122,.T.); +#287=EDGE_CURVE('',#226,#227,#123,.T.); +#288=EDGE_CURVE('',#214,#235,#124,.T.); +#289=EDGE_CURVE('',#235,#234,#125,.T.); +#290=EDGE_CURVE('',#235,#233,#126,.T.); +#291=EDGE_CURVE('',#236,#237,#127,.T.); +#292=EDGE_CURVE('',#236,#216,#128,.T.); +#293=EDGE_CURVE('',#237,#215,#129,.T.); +#294=EDGE_CURVE('',#238,#236,#130,.T.); +#295=EDGE_CURVE('',#238,#217,#131,.T.); +#296=EDGE_CURVE('',#239,#218,#132,.T.); +#297=EDGE_CURVE('',#237,#239,#133,.T.); +#298=EDGE_CURVE('',#239,#238,#134,.T.); +#299=EDGE_CURVE('',#221,#240,#135,.T.); +#300=EDGE_CURVE('',#240,#240,#198,.T.); +#301=EDGE_CURVE('',#222,#241,#136,.T.); +#302=EDGE_CURVE('',#241,#241,#199,.T.); +#303=EDGE_CURVE('',#223,#242,#137,.T.); +#304=EDGE_CURVE('',#242,#242,#200,.T.); +#305=EDGE_CURVE('',#224,#243,#138,.T.); +#306=EDGE_CURVE('',#243,#243,#201,.T.); +#307=ORIENTED_EDGE('',*,*,#244,.T.); +#308=ORIENTED_EDGE('',*,*,#245,.T.); +#309=ORIENTED_EDGE('',*,*,#246,.T.); +#310=ORIENTED_EDGE('',*,*,#247,.T.); +#311=ORIENTED_EDGE('',*,*,#244,.F.); +#312=ORIENTED_EDGE('',*,*,#248,.F.); +#313=ORIENTED_EDGE('',*,*,#249,.F.); +#314=ORIENTED_EDGE('',*,*,#250,.F.); +#315=ORIENTED_EDGE('',*,*,#251,.F.); +#316=ORIENTED_EDGE('',*,*,#252,.F.); +#317=ORIENTED_EDGE('',*,*,#253,.F.); +#318=ORIENTED_EDGE('',*,*,#254,.F.); +#319=ORIENTED_EDGE('',*,*,#255,.F.); +#320=ORIENTED_EDGE('',*,*,#256,.T.); +#321=ORIENTED_EDGE('',*,*,#257,.T.); +#322=ORIENTED_EDGE('',*,*,#258,.T.); +#323=ORIENTED_EDGE('',*,*,#259,.T.); +#324=ORIENTED_EDGE('',*,*,#260,.T.); +#325=ORIENTED_EDGE('',*,*,#261,.T.); +#326=ORIENTED_EDGE('',*,*,#262,.F.); +#327=ORIENTED_EDGE('',*,*,#263,.F.); +#328=ORIENTED_EDGE('',*,*,#264,.F.); +#329=ORIENTED_EDGE('',*,*,#265,.F.); +#330=ORIENTED_EDGE('',*,*,#266,.F.); +#331=ORIENTED_EDGE('',*,*,#267,.F.); +#332=ORIENTED_EDGE('',*,*,#247,.F.); +#333=ORIENTED_EDGE('',*,*,#268,.T.); +#334=ORIENTED_EDGE('',*,*,#269,.F.); +#335=ORIENTED_EDGE('',*,*,#248,.T.); +#336=ORIENTED_EDGE('',*,*,#249,.T.); +#337=ORIENTED_EDGE('',*,*,#269,.T.); +#338=ORIENTED_EDGE('',*,*,#270,.T.); +#339=ORIENTED_EDGE('',*,*,#271,.T.); +#340=ORIENTED_EDGE('',*,*,#251,.T.); +#341=ORIENTED_EDGE('',*,*,#272,.T.); +#342=ORIENTED_EDGE('',*,*,#273,.T.); +#343=ORIENTED_EDGE('',*,*,#274,.T.); +#344=ORIENTED_EDGE('',*,*,#274,.F.); +#345=ORIENTED_EDGE('',*,*,#275,.T.); +#346=ORIENTED_EDGE('',*,*,#276,.F.); +#347=ORIENTED_EDGE('',*,*,#252,.T.); +#348=ORIENTED_EDGE('',*,*,#253,.T.); +#349=ORIENTED_EDGE('',*,*,#276,.T.); +#350=ORIENTED_EDGE('',*,*,#277,.T.); +#351=ORIENTED_EDGE('',*,*,#278,.T.); +#352=ORIENTED_EDGE('',*,*,#245,.F.); +#353=ORIENTED_EDGE('',*,*,#263,.T.); +#354=ORIENTED_EDGE('',*,*,#279,.T.); +#355=ORIENTED_EDGE('',*,*,#280,.F.); +#356=ORIENTED_EDGE('',*,*,#281,.F.); +#357=ORIENTED_EDGE('',*,*,#254,.T.); +#358=ORIENTED_EDGE('',*,*,#278,.F.); +#359=ORIENTED_EDGE('',*,*,#282,.T.); +#360=ORIENTED_EDGE('',*,*,#262,.T.); +#361=ORIENTED_EDGE('',*,*,#283,.F.); +#362=ORIENTED_EDGE('',*,*,#284,.T.); +#363=ORIENTED_EDGE('',*,*,#279,.F.); +#364=ORIENTED_EDGE('',*,*,#255,.T.); +#365=ORIENTED_EDGE('',*,*,#281,.T.); +#366=ORIENTED_EDGE('',*,*,#285,.F.); +#367=ORIENTED_EDGE('',*,*,#286,.T.); +#368=ORIENTED_EDGE('',*,*,#271,.F.); +#369=ORIENTED_EDGE('',*,*,#287,.T.); +#370=ORIENTED_EDGE('',*,*,#272,.F.); +#371=ORIENTED_EDGE('',*,*,#250,.T.); +#372=ORIENTED_EDGE('',*,*,#288,.F.); +#373=ORIENTED_EDGE('',*,*,#256,.F.); +#374=ORIENTED_EDGE('',*,*,#286,.F.); +#375=ORIENTED_EDGE('',*,*,#289,.F.); +#376=ORIENTED_EDGE('',*,*,#285,.T.); +#377=ORIENTED_EDGE('',*,*,#280,.T.); +#378=ORIENTED_EDGE('',*,*,#284,.F.); +#379=ORIENTED_EDGE('',*,*,#290,.F.); +#380=ORIENTED_EDGE('',*,*,#289,.T.); +#381=ORIENTED_EDGE('',*,*,#291,.F.); +#382=ORIENTED_EDGE('',*,*,#292,.T.); +#383=ORIENTED_EDGE('',*,*,#258,.F.); +#384=ORIENTED_EDGE('',*,*,#293,.F.); +#385=ORIENTED_EDGE('',*,*,#294,.F.); +#386=ORIENTED_EDGE('',*,*,#295,.T.); +#387=ORIENTED_EDGE('',*,*,#259,.F.); +#388=ORIENTED_EDGE('',*,*,#292,.F.); +#389=ORIENTED_EDGE('',*,*,#283,.T.); +#390=ORIENTED_EDGE('',*,*,#261,.F.); +#391=ORIENTED_EDGE('',*,*,#296,.F.); +#392=ORIENTED_EDGE('',*,*,#297,.F.); +#393=ORIENTED_EDGE('',*,*,#293,.T.); +#394=ORIENTED_EDGE('',*,*,#257,.F.); +#395=ORIENTED_EDGE('',*,*,#288,.T.); +#396=ORIENTED_EDGE('',*,*,#290,.T.); +#397=ORIENTED_EDGE('',*,*,#298,.F.); +#398=ORIENTED_EDGE('',*,*,#296,.T.); +#399=ORIENTED_EDGE('',*,*,#260,.F.); +#400=ORIENTED_EDGE('',*,*,#295,.F.); +#401=ORIENTED_EDGE('',*,*,#264,.T.); +#402=ORIENTED_EDGE('',*,*,#299,.T.); +#403=ORIENTED_EDGE('',*,*,#300,.T.); +#404=ORIENTED_EDGE('',*,*,#299,.F.); +#405=ORIENTED_EDGE('',*,*,#265,.T.); +#406=ORIENTED_EDGE('',*,*,#301,.T.); +#407=ORIENTED_EDGE('',*,*,#302,.T.); +#408=ORIENTED_EDGE('',*,*,#301,.F.); +#409=ORIENTED_EDGE('',*,*,#266,.T.); +#410=ORIENTED_EDGE('',*,*,#303,.T.); +#411=ORIENTED_EDGE('',*,*,#304,.T.); +#412=ORIENTED_EDGE('',*,*,#303,.F.); +#413=ORIENTED_EDGE('',*,*,#267,.T.); +#414=ORIENTED_EDGE('',*,*,#305,.T.); +#415=ORIENTED_EDGE('',*,*,#306,.T.); +#416=ORIENTED_EDGE('',*,*,#305,.F.); +#417=ORIENTED_EDGE('',*,*,#294,.T.); +#418=ORIENTED_EDGE('',*,*,#291,.T.); +#419=ORIENTED_EDGE('',*,*,#297,.T.); +#420=ORIENTED_EDGE('',*,*,#298,.T.); +#421=ORIENTED_EDGE('',*,*,#246,.F.); +#422=ORIENTED_EDGE('',*,*,#282,.F.); +#423=ORIENTED_EDGE('',*,*,#277,.F.); +#424=ORIENTED_EDGE('',*,*,#275,.F.); +#425=ORIENTED_EDGE('',*,*,#273,.F.); +#426=ORIENTED_EDGE('',*,*,#287,.F.); +#427=ORIENTED_EDGE('',*,*,#270,.F.); +#428=ORIENTED_EDGE('',*,*,#268,.F.); +#429=ORIENTED_EDGE('',*,*,#306,.F.); +#430=ORIENTED_EDGE('',*,*,#304,.F.); +#431=ORIENTED_EDGE('',*,*,#302,.F.); +#432=ORIENTED_EDGE('',*,*,#300,.F.); +#433=CYLINDRICAL_SURFACE('',#466,5.); +#434=CYLINDRICAL_SURFACE('',#478,5.); +#435=CYLINDRICAL_SURFACE('',#480,5.); +#436=CYLINDRICAL_SURFACE('',#483,5.); +#437=CYLINDRICAL_SURFACE('',#495,1.45); +#438=CYLINDRICAL_SURFACE('',#497,1.45); +#439=CYLINDRICAL_SURFACE('',#499,1.45); +#440=CYLINDRICAL_SURFACE('',#501,1.45); +#441=ADVANCED_FACE('',(#38),#433,.T.); +#442=ADVANCED_FACE('',(#39,#15,#16,#17,#18),#23,.T.); +#443=ADVANCED_FACE('',(#40),#24,.T.); +#444=ADVANCED_FACE('',(#41),#434,.T.); +#445=ADVANCED_FACE('',(#42),#435,.T.); +#446=ADVANCED_FACE('',(#43),#25,.T.); +#447=ADVANCED_FACE('',(#44),#436,.T.); +#448=ADVANCED_FACE('',(#45),#26,.T.); +#449=ADVANCED_FACE('',(#46),#27,.F.); +#450=ADVANCED_FACE('',(#47),#28,.T.); +#451=ADVANCED_FACE('',(#48),#29,.T.); +#452=ADVANCED_FACE('',(#49),#30,.T.); +#453=ADVANCED_FACE('',(#50),#31,.F.); +#454=ADVANCED_FACE('',(#51),#32,.T.); +#455=ADVANCED_FACE('',(#52),#33,.T.); +#456=ADVANCED_FACE('',(#53),#34,.T.); +#457=ADVANCED_FACE('',(#54),#35,.T.); +#458=ADVANCED_FACE('',(#55),#437,.F.); +#459=ADVANCED_FACE('',(#56),#438,.F.); +#460=ADVANCED_FACE('',(#57),#439,.F.); +#461=ADVANCED_FACE('',(#58),#440,.F.); +#462=ADVANCED_FACE('',(#59),#36,.T.); +#463=ADVANCED_FACE('',(#60,#19,#20,#21,#22),#37,.F.); +#464=CLOSED_SHELL('',(#441,#442,#443,#444,#445,#446,#447,#448,#449,#450, +#451,#452,#453,#454,#455,#456,#457,#458,#459,#460,#461,#462,#463)); +#465=AXIS2_PLACEMENT_3D('',#632,#505,#506); +#466=AXIS2_PLACEMENT_3D('',#633,#507,#508); +#467=AXIS2_PLACEMENT_3D('',#636,#509,#510); +#468=AXIS2_PLACEMENT_3D('',#640,#512,#513); +#469=AXIS2_PLACEMENT_3D('',#642,#515,#516); +#470=AXIS2_PLACEMENT_3D('',#646,#518,#519); +#471=AXIS2_PLACEMENT_3D('',#650,#521,#522); +#472=AXIS2_PLACEMENT_3D('',#654,#524,#525); +#473=AXIS2_PLACEMENT_3D('',#675,#536,#537); +#474=AXIS2_PLACEMENT_3D('',#677,#538,#539); +#475=AXIS2_PLACEMENT_3D('',#679,#540,#541); +#476=AXIS2_PLACEMENT_3D('',#681,#542,#543); +#477=AXIS2_PLACEMENT_3D('',#682,#544,#545); +#478=AXIS2_PLACEMENT_3D('',#686,#548,#549); +#479=AXIS2_PLACEMENT_3D('',#688,#550,#551); +#480=AXIS2_PLACEMENT_3D('',#690,#553,#554); +#481=AXIS2_PLACEMENT_3D('',#694,#556,#557); +#482=AXIS2_PLACEMENT_3D('',#696,#559,#560); +#483=AXIS2_PLACEMENT_3D('',#700,#563,#564); +#484=AXIS2_PLACEMENT_3D('',#702,#565,#566); +#485=AXIS2_PLACEMENT_3D('',#704,#568,#569); +#486=AXIS2_PLACEMENT_3D('',#711,#574,#575); +#487=AXIS2_PLACEMENT_3D('',#715,#578,#579); +#488=AXIS2_PLACEMENT_3D('',#719,#582,#583); +#489=AXIS2_PLACEMENT_3D('',#721,#585,#586); +#490=AXIS2_PLACEMENT_3D('',#725,#589,#590); +#491=AXIS2_PLACEMENT_3D('',#727,#592,#593); +#492=AXIS2_PLACEMENT_3D('',#733,#597,#598); +#493=AXIS2_PLACEMENT_3D('',#737,#601,#602); +#494=AXIS2_PLACEMENT_3D('',#741,#605,#606); +#495=AXIS2_PLACEMENT_3D('',#743,#608,#609); +#496=AXIS2_PLACEMENT_3D('',#746,#611,#612); +#497=AXIS2_PLACEMENT_3D('',#747,#613,#614); +#498=AXIS2_PLACEMENT_3D('',#750,#616,#617); +#499=AXIS2_PLACEMENT_3D('',#751,#618,#619); +#500=AXIS2_PLACEMENT_3D('',#754,#621,#622); +#501=AXIS2_PLACEMENT_3D('',#755,#623,#624); +#502=AXIS2_PLACEMENT_3D('',#758,#626,#627); +#503=AXIS2_PLACEMENT_3D('',#759,#628,#629); +#504=AXIS2_PLACEMENT_3D('',#760,#630,#631); +#505=DIRECTION('axis',(0.,0.,1.)); +#506=DIRECTION('refdir',(1.,0.,0.)); +#507=DIRECTION('center_axis',(0.,0.,1.)); +#508=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#509=DIRECTION('center_axis',(0.,0.,-1.)); +#510=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#511=DIRECTION('',(0.,0.,-1.)); +#512=DIRECTION('center_axis',(0.,0.,1.)); +#513=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#514=DIRECTION('',(0.,0.,1.)); +#515=DIRECTION('center_axis',(0.,0.,1.)); +#516=DIRECTION('ref_axis',(1.,0.,0.)); +#517=DIRECTION('',(0.,1.,0.)); +#518=DIRECTION('center_axis',(0.,0.,-1.)); +#519=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#520=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#521=DIRECTION('center_axis',(0.,0.,-1.)); +#522=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#523=DIRECTION('',(0.,-1.,0.)); +#524=DIRECTION('center_axis',(0.,0.,-1.)); +#525=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#526=DIRECTION('',(1.,0.,0.)); +#527=DIRECTION('',(0.00211883867751913,0.99999775525881,0.)); +#528=DIRECTION('',(0.99999775525881,-0.00211883867752468,0.)); +#529=DIRECTION('',(1.,0.,0.)); +#530=DIRECTION('',(0.,-1.,0.)); +#531=DIRECTION('',(-1.,-2.89337761429314E-33,0.)); +#532=DIRECTION('',(1.72904223214608E-33,1.,0.)); +#533=DIRECTION('',(1.,0.,0.)); +#534=DIRECTION('',(-0.00211883867752538,-0.99999775525881,0.)); +#535=DIRECTION('',(1.,0.,0.)); +#536=DIRECTION('center_axis',(0.,0.,1.)); +#537=DIRECTION('ref_axis',(1.,0.,0.)); +#538=DIRECTION('center_axis',(0.,0.,1.)); +#539=DIRECTION('ref_axis',(1.,0.,0.)); +#540=DIRECTION('center_axis',(0.,0.,1.)); +#541=DIRECTION('ref_axis',(1.,0.,0.)); +#542=DIRECTION('center_axis',(0.,0.,1.)); +#543=DIRECTION('ref_axis',(1.,0.,0.)); +#544=DIRECTION('center_axis',(-1.,0.,0.)); +#545=DIRECTION('ref_axis',(0.,-1.,0.)); +#546=DIRECTION('',(0.,-1.,0.)); +#547=DIRECTION('',(0.,0.,-1.)); +#548=DIRECTION('center_axis',(0.,0.,1.)); +#549=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#550=DIRECTION('center_axis',(0.,0.,1.)); +#551=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#552=DIRECTION('',(0.,0.,1.)); +#553=DIRECTION('center_axis',(0.,0.,1.)); +#554=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#555=DIRECTION('',(0.,0.,-1.)); +#556=DIRECTION('center_axis',(0.,0.,1.)); +#557=DIRECTION('ref_axis',(0.707106781186548,-0.707106781186547,0.)); +#558=DIRECTION('',(0.,0.,1.)); +#559=DIRECTION('center_axis',(1.,0.,0.)); +#560=DIRECTION('ref_axis',(0.,1.,0.)); +#561=DIRECTION('',(0.,1.,0.)); +#562=DIRECTION('',(0.,0.,-1.)); +#563=DIRECTION('center_axis',(0.,0.,1.)); +#564=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#565=DIRECTION('center_axis',(0.,0.,1.)); +#566=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#567=DIRECTION('',(0.,0.,1.)); +#568=DIRECTION('center_axis',(0.,1.,0.)); +#569=DIRECTION('ref_axis',(-1.,0.,0.)); +#570=DIRECTION('',(0.,0.,-1.)); +#571=DIRECTION('',(-1.,0.,0.)); +#572=DIRECTION('',(0.,0.,-1.)); +#573=DIRECTION('',(-1.,0.,0.)); +#574=DIRECTION('center_axis',(-0.99999775525881,0.00211883867752538,0.)); +#575=DIRECTION('ref_axis',(0.00211883867752538,0.99999775525881,0.)); +#576=DIRECTION('',(0.,0.,1.)); +#577=DIRECTION('',(0.00211883867752538,0.99999775525881,0.)); +#578=DIRECTION('center_axis',(-0.99999775525881,0.00211883867751913,0.)); +#579=DIRECTION('ref_axis',(0.,0.,1.)); +#580=DIRECTION('',(0.00211883867752468,0.99999775525881,0.)); +#581=DIRECTION('',(0.,0.,1.)); +#582=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#583=DIRECTION('ref_axis',(1.,4.8472887907141E-17,0.)); +#584=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#585=DIRECTION('center_axis',(-0.00211883867752468,-0.99999775525881,0.)); +#586=DIRECTION('ref_axis',(0.,0.,1.)); +#587=DIRECTION('',(0.,0.,-1.)); +#588=DIRECTION('',(-0.99999775525881,0.00211883867752468,0.)); +#589=DIRECTION('center_axis',(0.,0.,-1.)); +#590=DIRECTION('ref_axis',(-1.,0.,0.)); +#591=DIRECTION('',(-1.,0.,0.)); +#592=DIRECTION('center_axis',(-1.,0.,0.)); +#593=DIRECTION('ref_axis',(0.,-1.,0.)); +#594=DIRECTION('',(0.,1.,0.)); +#595=DIRECTION('',(0.,0.,1.)); +#596=DIRECTION('',(0.,0.,1.)); +#597=DIRECTION('center_axis',(-2.89337761429314E-33,1.,0.)); +#598=DIRECTION('ref_axis',(-1.,-2.89337761429314E-33,0.)); +#599=DIRECTION('',(1.,2.89337761429314E-33,0.)); +#600=DIRECTION('',(0.,0.,1.)); +#601=DIRECTION('center_axis',(0.,-1.,0.)); +#602=DIRECTION('ref_axis',(1.,0.,0.)); +#603=DIRECTION('',(0.,0.,1.)); +#604=DIRECTION('',(-1.,0.,0.)); +#605=DIRECTION('center_axis',(1.,-1.72904223214608E-33,0.)); +#606=DIRECTION('ref_axis',(1.72904223214608E-33,1.,0.)); +#607=DIRECTION('',(-1.72904223214608E-33,-1.,0.)); +#608=DIRECTION('center_axis',(0.,0.,1.)); +#609=DIRECTION('ref_axis',(1.,0.,0.)); +#610=DIRECTION('',(0.,0.,-1.)); +#611=DIRECTION('center_axis',(0.,0.,-1.)); +#612=DIRECTION('ref_axis',(1.,0.,0.)); +#613=DIRECTION('center_axis',(0.,0.,1.)); +#614=DIRECTION('ref_axis',(1.,0.,0.)); +#615=DIRECTION('',(0.,0.,-1.)); +#616=DIRECTION('center_axis',(0.,0.,-1.)); +#617=DIRECTION('ref_axis',(1.,0.,0.)); +#618=DIRECTION('center_axis',(0.,0.,1.)); +#619=DIRECTION('ref_axis',(1.,0.,0.)); +#620=DIRECTION('',(0.,0.,-1.)); +#621=DIRECTION('center_axis',(0.,0.,-1.)); +#622=DIRECTION('ref_axis',(1.,0.,0.)); +#623=DIRECTION('center_axis',(0.,0.,1.)); +#624=DIRECTION('ref_axis',(1.,0.,0.)); +#625=DIRECTION('',(0.,0.,-1.)); +#626=DIRECTION('center_axis',(0.,0.,-1.)); +#627=DIRECTION('ref_axis',(1.,0.,0.)); +#628=DIRECTION('center_axis',(0.,0.,1.)); +#629=DIRECTION('ref_axis',(1.,0.,0.)); +#630=DIRECTION('center_axis',(0.,0.,1.)); +#631=DIRECTION('ref_axis',(1.,0.,0.)); +#632=CARTESIAN_POINT('',(0.,0.,0.)); +#633=CARTESIAN_POINT('Origin',(-5.,74.06,0.)); +#634=CARTESIAN_POINT('',(-10.,74.06,18.)); +#635=CARTESIAN_POINT('',(-5.,79.06,18.)); +#636=CARTESIAN_POINT('Origin',(-5.,74.06,18.)); +#637=CARTESIAN_POINT('',(-5.,79.06,0.)); +#638=CARTESIAN_POINT('',(-5.,79.06,0.)); +#639=CARTESIAN_POINT('',(-10.,74.06,0.)); +#640=CARTESIAN_POINT('Origin',(-5.,74.06,0.)); +#641=CARTESIAN_POINT('',(-10.,74.06,0.)); +#642=CARTESIAN_POINT('Origin',(47.26,34.53,18.)); +#643=CARTESIAN_POINT('',(-10.,-5.,18.)); +#644=CARTESIAN_POINT('',(-10.,56.795,18.)); +#645=CARTESIAN_POINT('',(-5.,-10.,18.)); +#646=CARTESIAN_POINT('Origin',(-5.,-5.,18.)); +#647=CARTESIAN_POINT('',(99.52,-10.,18.)); +#648=CARTESIAN_POINT('',(18.63,-10.,18.)); +#649=CARTESIAN_POINT('',(104.52,-5.,18.)); +#650=CARTESIAN_POINT('Origin',(99.52,-5.,18.)); +#651=CARTESIAN_POINT('',(104.52,74.06,18.)); +#652=CARTESIAN_POINT('',(104.52,12.265,18.)); +#653=CARTESIAN_POINT('',(99.52,79.06,18.)); +#654=CARTESIAN_POINT('Origin',(99.52,74.06,18.)); +#655=CARTESIAN_POINT('',(23.4403267770942,79.06,18.)); +#656=CARTESIAN_POINT('',(75.89,79.06,18.)); +#657=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,18.)); +#658=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,18.)); +#659=CARTESIAN_POINT('',(28.2191491175385,69.06,18.)); +#660=CARTESIAN_POINT('',(37.7761134846859,69.0397502888038,18.)); +#661=CARTESIAN_POINT('',(94.52,69.06,18.)); +#662=CARTESIAN_POINT('',(94.52,69.06,18.)); +#663=CARTESIAN_POINT('',(94.52,0.,18.)); +#664=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,18.)); +#665=CARTESIAN_POINT('',(0.,0.,18.)); +#666=CARTESIAN_POINT('',(0.,0.,18.)); +#667=CARTESIAN_POINT('',(0.,69.06,18.)); +#668=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,18.)); +#669=CARTESIAN_POINT('',(4.21914911753852,69.06,18.)); +#670=CARTESIAN_POINT('',(94.52,69.06,18.)); +#671=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#672=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,18.)); +#673=CARTESIAN_POINT('',(75.89,79.06,18.)); +#674=CARTESIAN_POINT('',(98.17,-5.1,18.)); +#675=CARTESIAN_POINT('Origin',(99.62,-5.1,18.)); +#676=CARTESIAN_POINT('',(-6.54999999999999,-5.1,18.)); +#677=CARTESIAN_POINT('Origin',(-5.1,-5.1,18.)); +#678=CARTESIAN_POINT('',(98.17,74.16,18.)); +#679=CARTESIAN_POINT('Origin',(99.62,74.16,18.)); +#680=CARTESIAN_POINT('',(-6.4500000745058,74.16,18.)); +#681=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,18.)); +#682=CARTESIAN_POINT('Origin',(-10.,79.06,0.)); +#683=CARTESIAN_POINT('',(-10.,-5.,0.)); +#684=CARTESIAN_POINT('',(-10.,79.06,0.)); +#685=CARTESIAN_POINT('',(-10.,-5.,0.)); +#686=CARTESIAN_POINT('Origin',(-5.,-5.,0.)); +#687=CARTESIAN_POINT('',(-5.,-10.,0.)); +#688=CARTESIAN_POINT('Origin',(-5.,-5.,0.)); +#689=CARTESIAN_POINT('',(-5.,-10.,0.)); +#690=CARTESIAN_POINT('Origin',(99.52,-5.,0.)); +#691=CARTESIAN_POINT('',(99.52,-10.,0.)); +#692=CARTESIAN_POINT('',(99.52,-10.,0.)); +#693=CARTESIAN_POINT('',(104.52,-5.,0.)); +#694=CARTESIAN_POINT('Origin',(99.52,-5.,0.)); +#695=CARTESIAN_POINT('',(104.52,-5.,0.)); +#696=CARTESIAN_POINT('Origin',(104.52,-10.,0.)); +#697=CARTESIAN_POINT('',(104.52,74.06,0.)); +#698=CARTESIAN_POINT('',(104.52,-10.,0.)); +#699=CARTESIAN_POINT('',(104.52,74.06,0.)); +#700=CARTESIAN_POINT('Origin',(99.52,74.06,0.)); +#701=CARTESIAN_POINT('',(99.52,79.06,0.)); +#702=CARTESIAN_POINT('Origin',(99.52,74.06,0.)); +#703=CARTESIAN_POINT('',(99.52,79.06,0.)); +#704=CARTESIAN_POINT('Origin',(104.52,79.06,0.)); +#705=CARTESIAN_POINT('',(4.24033755187632,79.06,14.)); +#706=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#707=CARTESIAN_POINT('',(23.4403267770944,79.06,14.)); +#708=CARTESIAN_POINT('',(66.3801687759382,79.06,14.)); +#709=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#710=CARTESIAN_POINT('',(104.52,79.06,0.)); +#711=CARTESIAN_POINT('Origin',(4.16350149405484,42.7967931030271,36.)); +#712=CARTESIAN_POINT('',(4.21914911753851,69.06,14.)); +#713=CARTESIAN_POINT('',(4.21914911753851,69.06,18.)); +#714=CARTESIAN_POINT('',(4.24431242958124,80.9359657469501,14.)); +#715=CARTESIAN_POINT('Origin',(23.4443232043387,80.9461361726022,36.)); +#716=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,14.)); +#717=CARTESIAN_POINT('',(23.4240665968502,71.3859170616409,14.)); +#718=CARTESIAN_POINT('',(23.4191598922962,69.0701704256521,18.)); +#719=CARTESIAN_POINT('Origin',(-10.,-10.,0.)); +#720=CARTESIAN_POINT('',(-10.,-10.,0.)); +#721=CARTESIAN_POINT('Origin',(28.2191491175385,69.06,14.)); +#722=CARTESIAN_POINT('',(28.2191491175385,69.06,14.)); +#723=CARTESIAN_POINT('',(28.2191491175385,69.06,18.)); +#724=CARTESIAN_POINT('',(22.2192029911457,69.072712946453,14.)); +#725=CARTESIAN_POINT('Origin',(16.203906961818,61.8409534179332,14.)); +#726=CARTESIAN_POINT('',(8.10195348090902,69.06,14.)); +#727=CARTESIAN_POINT('Origin',(94.52,69.06,0.)); +#728=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,4.)); +#729=CARTESIAN_POINT('',(94.52,69.06,4.)); +#730=CARTESIAN_POINT('',(94.52,51.795,4.)); +#731=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,0.)); +#732=CARTESIAN_POINT('',(94.52,69.06,0.)); +#733=CARTESIAN_POINT('Origin',(94.52,2.73482052102987E-31,0.)); +#734=CARTESIAN_POINT('',(0.,0.,4.)); +#735=CARTESIAN_POINT('',(70.89,0.,4.)); +#736=CARTESIAN_POINT('',(0.,0.,0.)); +#737=CARTESIAN_POINT('Origin',(0.,69.06,0.)); +#738=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,4.)); +#739=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,0.)); +#740=CARTESIAN_POINT('',(23.63,69.06,4.)); +#741=CARTESIAN_POINT('Origin',(0.,0.,0.)); +#742=CARTESIAN_POINT('',(0.,17.265,4.)); +#743=CARTESIAN_POINT('Origin',(99.62,-5.1,0.)); +#744=CARTESIAN_POINT('',(98.17,-5.1,0.)); +#745=CARTESIAN_POINT('',(98.17,-5.1,0.)); +#746=CARTESIAN_POINT('Origin',(99.62,-5.1,0.)); +#747=CARTESIAN_POINT('Origin',(-5.1,-5.1,0.)); +#748=CARTESIAN_POINT('',(-6.55,-5.1,0.)); +#749=CARTESIAN_POINT('',(-6.55,-5.1,0.)); +#750=CARTESIAN_POINT('Origin',(-5.1,-5.1,0.)); +#751=CARTESIAN_POINT('Origin',(99.62,74.16,0.)); +#752=CARTESIAN_POINT('',(98.17,74.16,0.)); +#753=CARTESIAN_POINT('',(98.17,74.16,0.)); +#754=CARTESIAN_POINT('Origin',(99.62,74.16,0.)); +#755=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,0.)); +#756=CARTESIAN_POINT('',(-6.45000007450581,74.16,0.)); +#757=CARTESIAN_POINT('',(-6.45000007450581,74.16,0.)); +#758=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,0.)); +#759=CARTESIAN_POINT('Origin',(47.26,34.53,4.)); +#760=CARTESIAN_POINT('Origin',(47.26,34.53,0.)); +#761=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#765, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#762=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#765, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#763=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#761)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#765,#766,#767)) +REPRESENTATION_CONTEXT('','3D') +); +#764=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#762)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#765,#766,#767)) +REPRESENTATION_CONTEXT('','3D') +); +#765=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#766=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#767=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#768=SHAPE_DEFINITION_REPRESENTATION(#769,#770); +#769=PRODUCT_DEFINITION_SHAPE('',$,#772); +#770=SHAPE_REPRESENTATION('',(#465),#763); +#771=PRODUCT_DEFINITION_CONTEXT('part definition',#776,'design'); +#772=PRODUCT_DEFINITION('hackpad','hackpad v5',#773,#771); +#773=PRODUCT_DEFINITION_FORMATION('',$,#778); +#774=PRODUCT_RELATED_PRODUCT_CATEGORY('hackpad v5','hackpad v5',(#778)); +#775=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2009,#776); +#776=APPLICATION_CONTEXT( +'Core Data for Automotive Mechanical Design Process'); +#777=PRODUCT_CONTEXT('part definition',#776,'mechanical'); +#778=PRODUCT('hackpad','hackpad v5',$,(#777)); +#779=PRESENTATION_STYLE_ASSIGNMENT((#780)); +#780=SURFACE_STYLE_USAGE(.BOTH.,#781); +#781=SURFACE_SIDE_STYLE('',(#782)); +#782=SURFACE_STYLE_FILL_AREA(#783); +#783=FILL_AREA_STYLE('Steel - Satin',(#784)); +#784=FILL_AREA_STYLE_COLOUR('Steel - Satin',#785); +#785=COLOUR_RGB('Steel - Satin',0.627450980392157,0.627450980392157,0.627450980392157); +ENDSEC; +END-ISO-10303-21; diff --git a/hackpads/blipyboard/cad/plate.step b/hackpads/blipyboard/cad/plate.step new file mode 100644 index 0000000000..3a561e98ce --- /dev/null +++ b/hackpads/blipyboard/cad/plate.step @@ -0,0 +1,3298 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'plate.step', +/* time_stamp */ '2025-06-27T19:17:16-07:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v20.1', +/* originating_system */ 'Autodesk Translation Framework v14.10.0.0', +/* authorisation */ ''); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); +ENDSEC; + +DATA; +#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#13),#3219); +#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#3225,#12); +#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#14),#3218); +#13=STYLED_ITEM('',(#3234),#14); +#14=MANIFOLD_SOLID_BREP('plate',#1923); +#15=FACE_BOUND('',#190,.T.); +#16=FACE_BOUND('',#191,.T.); +#17=FACE_BOUND('',#192,.T.); +#18=FACE_BOUND('',#193,.T.); +#19=FACE_BOUND('',#194,.T.); +#20=FACE_BOUND('',#195,.T.); +#21=FACE_BOUND('',#196,.T.); +#22=FACE_BOUND('',#197,.T.); +#23=FACE_BOUND('',#198,.T.); +#24=FACE_BOUND('',#199,.T.); +#25=FACE_BOUND('',#200,.T.); +#26=FACE_BOUND('',#201,.T.); +#27=FACE_BOUND('',#202,.T.); +#28=FACE_BOUND('',#203,.T.); +#29=FACE_BOUND('',#295,.T.); +#30=FACE_BOUND('',#296,.T.); +#31=FACE_BOUND('',#297,.T.); +#32=FACE_BOUND('',#298,.T.); +#33=FACE_BOUND('',#299,.T.); +#34=FACE_BOUND('',#300,.T.); +#35=FACE_BOUND('',#301,.T.); +#36=FACE_BOUND('',#302,.T.); +#37=FACE_BOUND('',#303,.T.); +#38=FACE_BOUND('',#304,.T.); +#39=FACE_BOUND('',#305,.T.); +#40=FACE_BOUND('',#306,.T.); +#41=FACE_BOUND('',#307,.T.); +#42=FACE_BOUND('',#308,.T.); +#43=PLANE('',#1928); +#44=PLANE('',#1929); +#45=PLANE('',#1975); +#46=PLANE('',#1980); +#47=PLANE('',#1991); +#48=PLANE('',#1994); +#49=PLANE('',#1997); +#50=PLANE('',#2000); +#51=PLANE('',#2003); +#52=PLANE('',#2006); +#53=PLANE('',#2009); +#54=PLANE('',#2012); +#55=PLANE('',#2015); +#56=PLANE('',#2018); +#57=PLANE('',#2021); +#58=PLANE('',#2024); +#59=PLANE('',#2027); +#60=PLANE('',#2030); +#61=PLANE('',#2033); +#62=PLANE('',#2036); +#63=PLANE('',#2039); +#64=PLANE('',#2042); +#65=PLANE('',#2045); +#66=PLANE('',#2048); +#67=PLANE('',#2051); +#68=PLANE('',#2054); +#69=PLANE('',#2057); +#70=PLANE('',#2060); +#71=PLANE('',#2063); +#72=PLANE('',#2066); +#73=PLANE('',#2069); +#74=PLANE('',#2072); +#75=PLANE('',#2075); +#76=PLANE('',#2078); +#77=PLANE('',#2081); +#78=PLANE('',#2084); +#79=PLANE('',#2087); +#80=PLANE('',#2090); +#81=PLANE('',#2093); +#82=PLANE('',#2096); +#83=PLANE('',#2097); +#84=PLANE('',#2098); +#85=PLANE('',#2099); +#86=PLANE('',#2100); +#87=PLANE('',#2101); +#88=PLANE('',#2102); +#89=PLANE('',#2103); +#90=PLANE('',#2104); +#91=PLANE('',#2105); +#92=PLANE('',#2106); +#93=FACE_OUTER_BOUND('',#187,.T.); +#94=FACE_OUTER_BOUND('',#188,.T.); +#95=FACE_OUTER_BOUND('',#189,.T.); +#96=FACE_OUTER_BOUND('',#204,.T.); +#97=FACE_OUTER_BOUND('',#205,.T.); +#98=FACE_OUTER_BOUND('',#206,.T.); +#99=FACE_OUTER_BOUND('',#207,.T.); +#100=FACE_OUTER_BOUND('',#208,.T.); +#101=FACE_OUTER_BOUND('',#209,.T.); +#102=FACE_OUTER_BOUND('',#210,.T.); +#103=FACE_OUTER_BOUND('',#211,.T.); +#104=FACE_OUTER_BOUND('',#212,.T.); +#105=FACE_OUTER_BOUND('',#213,.T.); +#106=FACE_OUTER_BOUND('',#214,.T.); +#107=FACE_OUTER_BOUND('',#215,.T.); +#108=FACE_OUTER_BOUND('',#216,.T.); +#109=FACE_OUTER_BOUND('',#217,.T.); +#110=FACE_OUTER_BOUND('',#218,.T.); +#111=FACE_OUTER_BOUND('',#219,.T.); +#112=FACE_OUTER_BOUND('',#220,.T.); +#113=FACE_OUTER_BOUND('',#221,.T.); +#114=FACE_OUTER_BOUND('',#222,.T.); +#115=FACE_OUTER_BOUND('',#223,.T.); +#116=FACE_OUTER_BOUND('',#224,.T.); +#117=FACE_OUTER_BOUND('',#225,.T.); +#118=FACE_OUTER_BOUND('',#226,.T.); +#119=FACE_OUTER_BOUND('',#227,.T.); +#120=FACE_OUTER_BOUND('',#228,.T.); +#121=FACE_OUTER_BOUND('',#229,.T.); +#122=FACE_OUTER_BOUND('',#230,.T.); +#123=FACE_OUTER_BOUND('',#231,.T.); +#124=FACE_OUTER_BOUND('',#232,.T.); +#125=FACE_OUTER_BOUND('',#233,.T.); +#126=FACE_OUTER_BOUND('',#234,.T.); +#127=FACE_OUTER_BOUND('',#235,.T.); +#128=FACE_OUTER_BOUND('',#236,.T.); +#129=FACE_OUTER_BOUND('',#237,.T.); +#130=FACE_OUTER_BOUND('',#238,.T.); +#131=FACE_OUTER_BOUND('',#239,.T.); +#132=FACE_OUTER_BOUND('',#240,.T.); +#133=FACE_OUTER_BOUND('',#241,.T.); +#134=FACE_OUTER_BOUND('',#242,.T.); +#135=FACE_OUTER_BOUND('',#243,.T.); +#136=FACE_OUTER_BOUND('',#244,.T.); +#137=FACE_OUTER_BOUND('',#245,.T.); +#138=FACE_OUTER_BOUND('',#246,.T.); +#139=FACE_OUTER_BOUND('',#247,.T.); +#140=FACE_OUTER_BOUND('',#248,.T.); +#141=FACE_OUTER_BOUND('',#249,.T.); +#142=FACE_OUTER_BOUND('',#250,.T.); +#143=FACE_OUTER_BOUND('',#251,.T.); +#144=FACE_OUTER_BOUND('',#252,.T.); +#145=FACE_OUTER_BOUND('',#253,.T.); +#146=FACE_OUTER_BOUND('',#254,.T.); +#147=FACE_OUTER_BOUND('',#255,.T.); +#148=FACE_OUTER_BOUND('',#256,.T.); +#149=FACE_OUTER_BOUND('',#257,.T.); +#150=FACE_OUTER_BOUND('',#258,.T.); +#151=FACE_OUTER_BOUND('',#259,.T.); +#152=FACE_OUTER_BOUND('',#260,.T.); +#153=FACE_OUTER_BOUND('',#261,.T.); +#154=FACE_OUTER_BOUND('',#262,.T.); +#155=FACE_OUTER_BOUND('',#263,.T.); +#156=FACE_OUTER_BOUND('',#264,.T.); +#157=FACE_OUTER_BOUND('',#265,.T.); +#158=FACE_OUTER_BOUND('',#266,.T.); +#159=FACE_OUTER_BOUND('',#267,.T.); +#160=FACE_OUTER_BOUND('',#268,.T.); +#161=FACE_OUTER_BOUND('',#269,.T.); +#162=FACE_OUTER_BOUND('',#270,.T.); +#163=FACE_OUTER_BOUND('',#271,.T.); +#164=FACE_OUTER_BOUND('',#272,.T.); +#165=FACE_OUTER_BOUND('',#273,.T.); +#166=FACE_OUTER_BOUND('',#274,.T.); +#167=FACE_OUTER_BOUND('',#275,.T.); +#168=FACE_OUTER_BOUND('',#276,.T.); +#169=FACE_OUTER_BOUND('',#277,.T.); +#170=FACE_OUTER_BOUND('',#278,.T.); +#171=FACE_OUTER_BOUND('',#279,.T.); +#172=FACE_OUTER_BOUND('',#280,.T.); +#173=FACE_OUTER_BOUND('',#281,.T.); +#174=FACE_OUTER_BOUND('',#282,.T.); +#175=FACE_OUTER_BOUND('',#283,.T.); +#176=FACE_OUTER_BOUND('',#284,.T.); +#177=FACE_OUTER_BOUND('',#285,.T.); +#178=FACE_OUTER_BOUND('',#286,.T.); +#179=FACE_OUTER_BOUND('',#287,.T.); +#180=FACE_OUTER_BOUND('',#288,.T.); +#181=FACE_OUTER_BOUND('',#289,.T.); +#182=FACE_OUTER_BOUND('',#290,.T.); +#183=FACE_OUTER_BOUND('',#291,.T.); +#184=FACE_OUTER_BOUND('',#292,.T.); +#185=FACE_OUTER_BOUND('',#293,.T.); +#186=FACE_OUTER_BOUND('',#294,.T.); +#187=EDGE_LOOP('',(#1233,#1234,#1235,#1236)); +#188=EDGE_LOOP('',(#1237,#1238,#1239,#1240)); +#189=EDGE_LOOP('',(#1241,#1242,#1243,#1244,#1245,#1246,#1247,#1248,#1249, +#1250,#1251,#1252)); +#190=EDGE_LOOP('',(#1253,#1254,#1255,#1256)); +#191=EDGE_LOOP('',(#1257,#1258,#1259,#1260,#1261,#1262,#1263,#1264)); +#192=EDGE_LOOP('',(#1265,#1266,#1267,#1268,#1269,#1270,#1271,#1272)); +#193=EDGE_LOOP('',(#1273,#1274,#1275,#1276,#1277,#1278,#1279,#1280)); +#194=EDGE_LOOP('',(#1281,#1282,#1283,#1284,#1285,#1286,#1287,#1288)); +#195=EDGE_LOOP('',(#1289,#1290,#1291,#1292,#1293,#1294,#1295,#1296)); +#196=EDGE_LOOP('',(#1297,#1298,#1299,#1300,#1301,#1302,#1303,#1304)); +#197=EDGE_LOOP('',(#1305,#1306,#1307,#1308,#1309,#1310,#1311,#1312)); +#198=EDGE_LOOP('',(#1313,#1314,#1315,#1316,#1317,#1318,#1319,#1320)); +#199=EDGE_LOOP('',(#1321,#1322,#1323,#1324,#1325,#1326,#1327,#1328)); +#200=EDGE_LOOP('',(#1329)); +#201=EDGE_LOOP('',(#1330)); +#202=EDGE_LOOP('',(#1331)); +#203=EDGE_LOOP('',(#1332)); +#204=EDGE_LOOP('',(#1333,#1334,#1335,#1336)); +#205=EDGE_LOOP('',(#1337,#1338,#1339,#1340)); +#206=EDGE_LOOP('',(#1341,#1342,#1343,#1344)); +#207=EDGE_LOOP('',(#1345,#1346,#1347,#1348)); +#208=EDGE_LOOP('',(#1349,#1350,#1351,#1352)); +#209=EDGE_LOOP('',(#1353,#1354,#1355,#1356)); +#210=EDGE_LOOP('',(#1357,#1358,#1359,#1360)); +#211=EDGE_LOOP('',(#1361,#1362,#1363,#1364)); +#212=EDGE_LOOP('',(#1365,#1366,#1367,#1368)); +#213=EDGE_LOOP('',(#1369,#1370,#1371,#1372)); +#214=EDGE_LOOP('',(#1373,#1374,#1375,#1376)); +#215=EDGE_LOOP('',(#1377,#1378,#1379,#1380)); +#216=EDGE_LOOP('',(#1381,#1382,#1383,#1384)); +#217=EDGE_LOOP('',(#1385,#1386,#1387,#1388)); +#218=EDGE_LOOP('',(#1389,#1390,#1391,#1392)); +#219=EDGE_LOOP('',(#1393,#1394,#1395,#1396)); +#220=EDGE_LOOP('',(#1397,#1398,#1399,#1400)); +#221=EDGE_LOOP('',(#1401,#1402,#1403,#1404)); +#222=EDGE_LOOP('',(#1405,#1406,#1407,#1408)); +#223=EDGE_LOOP('',(#1409,#1410,#1411,#1412)); +#224=EDGE_LOOP('',(#1413,#1414,#1415,#1416)); +#225=EDGE_LOOP('',(#1417,#1418,#1419,#1420)); +#226=EDGE_LOOP('',(#1421,#1422,#1423,#1424)); +#227=EDGE_LOOP('',(#1425,#1426,#1427,#1428)); +#228=EDGE_LOOP('',(#1429,#1430,#1431,#1432)); +#229=EDGE_LOOP('',(#1433,#1434,#1435,#1436)); +#230=EDGE_LOOP('',(#1437,#1438,#1439,#1440)); +#231=EDGE_LOOP('',(#1441,#1442,#1443,#1444)); +#232=EDGE_LOOP('',(#1445,#1446,#1447,#1448)); +#233=EDGE_LOOP('',(#1449,#1450,#1451,#1452)); +#234=EDGE_LOOP('',(#1453,#1454,#1455,#1456)); +#235=EDGE_LOOP('',(#1457,#1458,#1459,#1460)); +#236=EDGE_LOOP('',(#1461,#1462,#1463,#1464)); +#237=EDGE_LOOP('',(#1465,#1466,#1467,#1468)); +#238=EDGE_LOOP('',(#1469,#1470,#1471,#1472)); +#239=EDGE_LOOP('',(#1473,#1474,#1475,#1476)); +#240=EDGE_LOOP('',(#1477,#1478,#1479,#1480)); +#241=EDGE_LOOP('',(#1481,#1482,#1483,#1484)); +#242=EDGE_LOOP('',(#1485,#1486,#1487,#1488)); +#243=EDGE_LOOP('',(#1489,#1490,#1491,#1492)); +#244=EDGE_LOOP('',(#1493,#1494,#1495,#1496)); +#245=EDGE_LOOP('',(#1497,#1498,#1499,#1500)); +#246=EDGE_LOOP('',(#1501,#1502,#1503,#1504)); +#247=EDGE_LOOP('',(#1505,#1506,#1507,#1508)); +#248=EDGE_LOOP('',(#1509,#1510,#1511,#1512)); +#249=EDGE_LOOP('',(#1513,#1514,#1515,#1516)); +#250=EDGE_LOOP('',(#1517,#1518,#1519,#1520)); +#251=EDGE_LOOP('',(#1521,#1522,#1523,#1524)); +#252=EDGE_LOOP('',(#1525,#1526,#1527,#1528)); +#253=EDGE_LOOP('',(#1529,#1530,#1531,#1532)); +#254=EDGE_LOOP('',(#1533,#1534,#1535,#1536)); +#255=EDGE_LOOP('',(#1537,#1538,#1539,#1540)); +#256=EDGE_LOOP('',(#1541,#1542,#1543,#1544)); +#257=EDGE_LOOP('',(#1545,#1546,#1547,#1548)); +#258=EDGE_LOOP('',(#1549,#1550,#1551,#1552)); +#259=EDGE_LOOP('',(#1553,#1554,#1555,#1556)); +#260=EDGE_LOOP('',(#1557,#1558,#1559,#1560)); +#261=EDGE_LOOP('',(#1561,#1562,#1563,#1564)); +#262=EDGE_LOOP('',(#1565,#1566,#1567,#1568)); +#263=EDGE_LOOP('',(#1569,#1570,#1571,#1572)); +#264=EDGE_LOOP('',(#1573,#1574,#1575,#1576)); +#265=EDGE_LOOP('',(#1577,#1578,#1579,#1580)); +#266=EDGE_LOOP('',(#1581,#1582,#1583,#1584)); +#267=EDGE_LOOP('',(#1585,#1586,#1587,#1588)); +#268=EDGE_LOOP('',(#1589,#1590,#1591,#1592)); +#269=EDGE_LOOP('',(#1593,#1594,#1595,#1596)); +#270=EDGE_LOOP('',(#1597,#1598,#1599,#1600)); +#271=EDGE_LOOP('',(#1601,#1602,#1603,#1604)); +#272=EDGE_LOOP('',(#1605,#1606,#1607,#1608)); +#273=EDGE_LOOP('',(#1609,#1610,#1611,#1612)); +#274=EDGE_LOOP('',(#1613,#1614,#1615,#1616)); +#275=EDGE_LOOP('',(#1617,#1618,#1619,#1620)); +#276=EDGE_LOOP('',(#1621,#1622,#1623,#1624)); +#277=EDGE_LOOP('',(#1625,#1626,#1627,#1628)); +#278=EDGE_LOOP('',(#1629,#1630,#1631,#1632)); +#279=EDGE_LOOP('',(#1633,#1634,#1635,#1636)); +#280=EDGE_LOOP('',(#1637,#1638,#1639,#1640)); +#281=EDGE_LOOP('',(#1641,#1642,#1643,#1644)); +#282=EDGE_LOOP('',(#1645,#1646,#1647,#1648)); +#283=EDGE_LOOP('',(#1649,#1650,#1651,#1652)); +#284=EDGE_LOOP('',(#1653,#1654,#1655,#1656)); +#285=EDGE_LOOP('',(#1657,#1658,#1659,#1660)); +#286=EDGE_LOOP('',(#1661,#1662,#1663,#1664)); +#287=EDGE_LOOP('',(#1665,#1666,#1667,#1668)); +#288=EDGE_LOOP('',(#1669,#1670,#1671,#1672)); +#289=EDGE_LOOP('',(#1673,#1674,#1675,#1676)); +#290=EDGE_LOOP('',(#1677,#1678,#1679,#1680)); +#291=EDGE_LOOP('',(#1681,#1682,#1683,#1684)); +#292=EDGE_LOOP('',(#1685,#1686,#1687,#1688)); +#293=EDGE_LOOP('',(#1689,#1690,#1691,#1692)); +#294=EDGE_LOOP('',(#1693,#1694,#1695,#1696,#1697,#1698,#1699,#1700,#1701, +#1702,#1703,#1704)); +#295=EDGE_LOOP('',(#1705,#1706,#1707,#1708)); +#296=EDGE_LOOP('',(#1709,#1710,#1711,#1712,#1713,#1714,#1715,#1716)); +#297=EDGE_LOOP('',(#1717,#1718,#1719,#1720,#1721,#1722,#1723,#1724)); +#298=EDGE_LOOP('',(#1725,#1726,#1727,#1728,#1729,#1730,#1731,#1732)); +#299=EDGE_LOOP('',(#1733,#1734,#1735,#1736,#1737,#1738,#1739,#1740)); +#300=EDGE_LOOP('',(#1741,#1742,#1743,#1744,#1745,#1746,#1747,#1748)); +#301=EDGE_LOOP('',(#1749,#1750,#1751,#1752,#1753,#1754,#1755,#1756)); +#302=EDGE_LOOP('',(#1757,#1758,#1759,#1760,#1761,#1762,#1763,#1764)); +#303=EDGE_LOOP('',(#1765,#1766,#1767,#1768,#1769,#1770,#1771,#1772)); +#304=EDGE_LOOP('',(#1773,#1774,#1775,#1776,#1777,#1778,#1779,#1780)); +#305=EDGE_LOOP('',(#1781)); +#306=EDGE_LOOP('',(#1782)); +#307=EDGE_LOOP('',(#1783)); +#308=EDGE_LOOP('',(#1784)); +#309=LINE('',#2667,#497); +#310=LINE('',#2670,#498); +#311=LINE('',#2673,#499); +#312=LINE('',#2675,#500); +#313=LINE('',#2676,#501); +#314=LINE('',#2679,#502); +#315=LINE('',#2683,#503); +#316=LINE('',#2687,#504); +#317=LINE('',#2691,#505); +#318=LINE('',#2693,#506); +#319=LINE('',#2695,#507); +#320=LINE('',#2696,#508); +#321=LINE('',#2699,#509); +#322=LINE('',#2701,#510); +#323=LINE('',#2703,#511); +#324=LINE('',#2704,#512); +#325=LINE('',#2707,#513); +#326=LINE('',#2711,#514); +#327=LINE('',#2715,#515); +#328=LINE('',#2719,#516); +#329=LINE('',#2723,#517); +#330=LINE('',#2727,#518); +#331=LINE('',#2731,#519); +#332=LINE('',#2735,#520); +#333=LINE('',#2739,#521); +#334=LINE('',#2743,#522); +#335=LINE('',#2747,#523); +#336=LINE('',#2751,#524); +#337=LINE('',#2755,#525); +#338=LINE('',#2759,#526); +#339=LINE('',#2763,#527); +#340=LINE('',#2767,#528); +#341=LINE('',#2771,#529); +#342=LINE('',#2775,#530); +#343=LINE('',#2779,#531); +#344=LINE('',#2783,#532); +#345=LINE('',#2787,#533); +#346=LINE('',#2791,#534); +#347=LINE('',#2795,#535); +#348=LINE('',#2799,#536); +#349=LINE('',#2803,#537); +#350=LINE('',#2807,#538); +#351=LINE('',#2811,#539); +#352=LINE('',#2815,#540); +#353=LINE('',#2819,#541); +#354=LINE('',#2823,#542); +#355=LINE('',#2827,#543); +#356=LINE('',#2831,#544); +#357=LINE('',#2835,#545); +#358=LINE('',#2839,#546); +#359=LINE('',#2843,#547); +#360=LINE('',#2847,#548); +#361=LINE('',#2861,#549); +#362=LINE('',#2862,#550); +#363=LINE('',#2865,#551); +#364=LINE('',#2866,#552); +#365=LINE('',#2870,#553); +#366=LINE('',#2875,#554); +#367=LINE('',#2876,#555); +#368=LINE('',#2879,#556); +#369=LINE('',#2880,#557); +#370=LINE('',#2884,#558); +#371=LINE('',#2888,#559); +#372=LINE('',#2892,#560); +#373=LINE('',#2896,#561); +#374=LINE('',#2899,#562); +#375=LINE('',#2902,#563); +#376=LINE('',#2905,#564); +#377=LINE('',#2906,#565); +#378=LINE('',#2910,#566); +#379=LINE('',#2913,#567); +#380=LINE('',#2914,#568); +#381=LINE('',#2918,#569); +#382=LINE('',#2921,#570); +#383=LINE('',#2922,#571); +#384=LINE('',#2926,#572); +#385=LINE('',#2928,#573); +#386=LINE('',#2931,#574); +#387=LINE('',#2934,#575); +#388=LINE('',#2937,#576); +#389=LINE('',#2938,#577); +#390=LINE('',#2942,#578); +#391=LINE('',#2945,#579); +#392=LINE('',#2946,#580); +#393=LINE('',#2950,#581); +#394=LINE('',#2953,#582); +#395=LINE('',#2954,#583); +#396=LINE('',#2958,#584); +#397=LINE('',#2960,#585); +#398=LINE('',#2963,#586); +#399=LINE('',#2966,#587); +#400=LINE('',#2969,#588); +#401=LINE('',#2970,#589); +#402=LINE('',#2974,#590); +#403=LINE('',#2977,#591); +#404=LINE('',#2978,#592); +#405=LINE('',#2982,#593); +#406=LINE('',#2985,#594); +#407=LINE('',#2986,#595); +#408=LINE('',#2990,#596); +#409=LINE('',#2992,#597); +#410=LINE('',#2995,#598); +#411=LINE('',#2998,#599); +#412=LINE('',#3001,#600); +#413=LINE('',#3002,#601); +#414=LINE('',#3006,#602); +#415=LINE('',#3009,#603); +#416=LINE('',#3010,#604); +#417=LINE('',#3014,#605); +#418=LINE('',#3017,#606); +#419=LINE('',#3018,#607); +#420=LINE('',#3022,#608); +#421=LINE('',#3024,#609); +#422=LINE('',#3027,#610); +#423=LINE('',#3030,#611); +#424=LINE('',#3033,#612); +#425=LINE('',#3034,#613); +#426=LINE('',#3038,#614); +#427=LINE('',#3041,#615); +#428=LINE('',#3042,#616); +#429=LINE('',#3046,#617); +#430=LINE('',#3049,#618); +#431=LINE('',#3050,#619); +#432=LINE('',#3054,#620); +#433=LINE('',#3056,#621); +#434=LINE('',#3059,#622); +#435=LINE('',#3062,#623); +#436=LINE('',#3065,#624); +#437=LINE('',#3066,#625); +#438=LINE('',#3070,#626); +#439=LINE('',#3073,#627); +#440=LINE('',#3074,#628); +#441=LINE('',#3078,#629); +#442=LINE('',#3081,#630); +#443=LINE('',#3082,#631); +#444=LINE('',#3086,#632); +#445=LINE('',#3088,#633); +#446=LINE('',#3091,#634); +#447=LINE('',#3094,#635); +#448=LINE('',#3097,#636); +#449=LINE('',#3098,#637); +#450=LINE('',#3102,#638); +#451=LINE('',#3105,#639); +#452=LINE('',#3106,#640); +#453=LINE('',#3110,#641); +#454=LINE('',#3113,#642); +#455=LINE('',#3114,#643); +#456=LINE('',#3118,#644); +#457=LINE('',#3120,#645); +#458=LINE('',#3123,#646); +#459=LINE('',#3126,#647); +#460=LINE('',#3129,#648); +#461=LINE('',#3130,#649); +#462=LINE('',#3134,#650); +#463=LINE('',#3137,#651); +#464=LINE('',#3138,#652); +#465=LINE('',#3142,#653); +#466=LINE('',#3145,#654); +#467=LINE('',#3146,#655); +#468=LINE('',#3150,#656); +#469=LINE('',#3152,#657); +#470=LINE('',#3155,#658); +#471=LINE('',#3158,#659); +#472=LINE('',#3161,#660); +#473=LINE('',#3162,#661); +#474=LINE('',#3166,#662); +#475=LINE('',#3169,#663); +#476=LINE('',#3170,#664); +#477=LINE('',#3174,#665); +#478=LINE('',#3177,#666); +#479=LINE('',#3178,#667); +#480=LINE('',#3182,#668); +#481=LINE('',#3184,#669); +#482=LINE('',#3187,#670); +#483=LINE('',#3189,#671); +#484=LINE('',#3190,#672); +#485=LINE('',#3193,#673); +#486=LINE('',#3194,#674); +#487=LINE('',#3197,#675); +#488=LINE('',#3198,#676); +#489=LINE('',#3200,#677); +#490=LINE('',#3203,#678); +#491=LINE('',#3205,#679); +#492=LINE('',#3206,#680); +#493=LINE('',#3208,#681); +#494=LINE('',#3210,#682); +#495=LINE('',#3212,#683); +#496=LINE('',#3214,#684); +#497=VECTOR('',#2113,10.); +#498=VECTOR('',#2116,10.); +#499=VECTOR('',#2119,10.); +#500=VECTOR('',#2120,10.); +#501=VECTOR('',#2121,10.); +#502=VECTOR('',#2124,10.); +#503=VECTOR('',#2127,10.); +#504=VECTOR('',#2130,10.); +#505=VECTOR('',#2133,10.); +#506=VECTOR('',#2134,10.); +#507=VECTOR('',#2135,10.); +#508=VECTOR('',#2136,10.); +#509=VECTOR('',#2137,10.); +#510=VECTOR('',#2138,10.); +#511=VECTOR('',#2139,10.); +#512=VECTOR('',#2140,10.); +#513=VECTOR('',#2141,10.); +#514=VECTOR('',#2144,10.); +#515=VECTOR('',#2147,10.); +#516=VECTOR('',#2150,10.); +#517=VECTOR('',#2153,10.); +#518=VECTOR('',#2156,10.); +#519=VECTOR('',#2159,10.); +#520=VECTOR('',#2162,10.); +#521=VECTOR('',#2165,10.); +#522=VECTOR('',#2168,10.); +#523=VECTOR('',#2171,10.); +#524=VECTOR('',#2174,10.); +#525=VECTOR('',#2177,10.); +#526=VECTOR('',#2180,10.); +#527=VECTOR('',#2183,10.); +#528=VECTOR('',#2186,10.); +#529=VECTOR('',#2189,10.); +#530=VECTOR('',#2192,10.); +#531=VECTOR('',#2195,10.); +#532=VECTOR('',#2198,10.); +#533=VECTOR('',#2201,10.); +#534=VECTOR('',#2204,10.); +#535=VECTOR('',#2207,10.); +#536=VECTOR('',#2210,10.); +#537=VECTOR('',#2213,10.); +#538=VECTOR('',#2216,10.); +#539=VECTOR('',#2219,10.); +#540=VECTOR('',#2222,10.); +#541=VECTOR('',#2225,10.); +#542=VECTOR('',#2228,10.); +#543=VECTOR('',#2231,10.); +#544=VECTOR('',#2234,10.); +#545=VECTOR('',#2237,10.); +#546=VECTOR('',#2240,10.); +#547=VECTOR('',#2243,10.); +#548=VECTOR('',#2246,10.); +#549=VECTOR('',#2261,10.); +#550=VECTOR('',#2262,10.); +#551=VECTOR('',#2265,10.); +#552=VECTOR('',#2266,10.); +#553=VECTOR('',#2271,10.); +#554=VECTOR('',#2276,10.); +#555=VECTOR('',#2277,10.); +#556=VECTOR('',#2280,10.); +#557=VECTOR('',#2281,10.); +#558=VECTOR('',#2286,1.45); +#559=VECTOR('',#2291,1.45); +#560=VECTOR('',#2296,1.45); +#561=VECTOR('',#2301,1.45); +#562=VECTOR('',#2304,10.); +#563=VECTOR('',#2307,10.); +#564=VECTOR('',#2310,10.); +#565=VECTOR('',#2311,10.); +#566=VECTOR('',#2316,10.); +#567=VECTOR('',#2319,10.); +#568=VECTOR('',#2320,10.); +#569=VECTOR('',#2325,10.); +#570=VECTOR('',#2328,10.); +#571=VECTOR('',#2329,10.); +#572=VECTOR('',#2334,10.); +#573=VECTOR('',#2337,10.); +#574=VECTOR('',#2340,10.); +#575=VECTOR('',#2343,10.); +#576=VECTOR('',#2346,10.); +#577=VECTOR('',#2347,10.); +#578=VECTOR('',#2352,10.); +#579=VECTOR('',#2355,10.); +#580=VECTOR('',#2356,10.); +#581=VECTOR('',#2361,10.); +#582=VECTOR('',#2364,10.); +#583=VECTOR('',#2365,10.); +#584=VECTOR('',#2370,10.); +#585=VECTOR('',#2373,10.); +#586=VECTOR('',#2376,10.); +#587=VECTOR('',#2379,10.); +#588=VECTOR('',#2382,10.); +#589=VECTOR('',#2383,10.); +#590=VECTOR('',#2388,10.); +#591=VECTOR('',#2391,10.); +#592=VECTOR('',#2392,10.); +#593=VECTOR('',#2397,10.); +#594=VECTOR('',#2400,10.); +#595=VECTOR('',#2401,10.); +#596=VECTOR('',#2406,10.); +#597=VECTOR('',#2409,10.); +#598=VECTOR('',#2412,10.); +#599=VECTOR('',#2415,10.); +#600=VECTOR('',#2418,10.); +#601=VECTOR('',#2419,10.); +#602=VECTOR('',#2424,10.); +#603=VECTOR('',#2427,10.); +#604=VECTOR('',#2428,10.); +#605=VECTOR('',#2433,10.); +#606=VECTOR('',#2436,10.); +#607=VECTOR('',#2437,10.); +#608=VECTOR('',#2442,10.); +#609=VECTOR('',#2445,10.); +#610=VECTOR('',#2448,10.); +#611=VECTOR('',#2451,10.); +#612=VECTOR('',#2454,10.); +#613=VECTOR('',#2455,10.); +#614=VECTOR('',#2460,10.); +#615=VECTOR('',#2463,10.); +#616=VECTOR('',#2464,10.); +#617=VECTOR('',#2469,10.); +#618=VECTOR('',#2472,10.); +#619=VECTOR('',#2473,10.); +#620=VECTOR('',#2478,10.); +#621=VECTOR('',#2481,10.); +#622=VECTOR('',#2484,10.); +#623=VECTOR('',#2487,10.); +#624=VECTOR('',#2490,10.); +#625=VECTOR('',#2491,10.); +#626=VECTOR('',#2496,10.); +#627=VECTOR('',#2499,10.); +#628=VECTOR('',#2500,10.); +#629=VECTOR('',#2505,10.); +#630=VECTOR('',#2508,10.); +#631=VECTOR('',#2509,10.); +#632=VECTOR('',#2514,10.); +#633=VECTOR('',#2517,10.); +#634=VECTOR('',#2520,10.); +#635=VECTOR('',#2523,10.); +#636=VECTOR('',#2526,10.); +#637=VECTOR('',#2527,10.); +#638=VECTOR('',#2532,10.); +#639=VECTOR('',#2535,10.); +#640=VECTOR('',#2536,10.); +#641=VECTOR('',#2541,10.); +#642=VECTOR('',#2544,10.); +#643=VECTOR('',#2545,10.); +#644=VECTOR('',#2550,10.); +#645=VECTOR('',#2553,10.); +#646=VECTOR('',#2556,10.); +#647=VECTOR('',#2559,10.); +#648=VECTOR('',#2562,10.); +#649=VECTOR('',#2563,10.); +#650=VECTOR('',#2568,10.); +#651=VECTOR('',#2571,10.); +#652=VECTOR('',#2572,10.); +#653=VECTOR('',#2577,10.); +#654=VECTOR('',#2580,10.); +#655=VECTOR('',#2581,10.); +#656=VECTOR('',#2586,10.); +#657=VECTOR('',#2589,10.); +#658=VECTOR('',#2592,10.); +#659=VECTOR('',#2595,10.); +#660=VECTOR('',#2598,10.); +#661=VECTOR('',#2599,10.); +#662=VECTOR('',#2604,10.); +#663=VECTOR('',#2607,10.); +#664=VECTOR('',#2608,10.); +#665=VECTOR('',#2613,10.); +#666=VECTOR('',#2616,10.); +#667=VECTOR('',#2617,10.); +#668=VECTOR('',#2622,10.); +#669=VECTOR('',#2625,10.); +#670=VECTOR('',#2628,10.); +#671=VECTOR('',#2629,10.); +#672=VECTOR('',#2630,10.); +#673=VECTOR('',#2633,10.); +#674=VECTOR('',#2634,10.); +#675=VECTOR('',#2637,10.); +#676=VECTOR('',#2638,10.); +#677=VECTOR('',#2641,10.); +#678=VECTOR('',#2644,10.); +#679=VECTOR('',#2645,10.); +#680=VECTOR('',#2646,10.); +#681=VECTOR('',#2649,10.); +#682=VECTOR('',#2652,10.); +#683=VECTOR('',#2655,10.); +#684=VECTOR('',#2658,10.); +#685=CIRCLE('',#1926,5.); +#686=CIRCLE('',#1927,5.); +#687=CIRCLE('',#1930,5.); +#688=CIRCLE('',#1931,5.); +#689=CIRCLE('',#1932,5.); +#690=CIRCLE('',#1933,0.499999999999998); +#691=CIRCLE('',#1934,0.499999999999998); +#692=CIRCLE('',#1935,0.499999999999998); +#693=CIRCLE('',#1936,0.499999999999989); +#694=CIRCLE('',#1937,0.499999999999998); +#695=CIRCLE('',#1938,0.499999999999998); +#696=CIRCLE('',#1939,0.499999999999998); +#697=CIRCLE('',#1940,0.499999999999998); +#698=CIRCLE('',#1941,0.499999999999998); +#699=CIRCLE('',#1942,0.499999999999998); +#700=CIRCLE('',#1943,0.499999999999998); +#701=CIRCLE('',#1944,0.499999999999998); +#702=CIRCLE('',#1945,0.500000000000003); +#703=CIRCLE('',#1946,0.5); +#704=CIRCLE('',#1947,0.499999999999998); +#705=CIRCLE('',#1948,0.499999999999998); +#706=CIRCLE('',#1949,0.500000000000003); +#707=CIRCLE('',#1950,0.499999999999998); +#708=CIRCLE('',#1951,0.499999999999998); +#709=CIRCLE('',#1952,0.499999999999989); +#710=CIRCLE('',#1953,0.500000000000003); +#711=CIRCLE('',#1954,0.499999999999998); +#712=CIRCLE('',#1955,0.499999999999998); +#713=CIRCLE('',#1956,0.499999999999998); +#714=CIRCLE('',#1957,0.499999999999998); +#715=CIRCLE('',#1958,0.5); +#716=CIRCLE('',#1959,0.499999999999998); +#717=CIRCLE('',#1960,0.499999999999998); +#718=CIRCLE('',#1961,0.500000000000003); +#719=CIRCLE('',#1962,0.499999999999998); +#720=CIRCLE('',#1963,0.499999999999998); +#721=CIRCLE('',#1964,0.499999999999998); +#722=CIRCLE('',#1965,0.499999999999998); +#723=CIRCLE('',#1966,0.499999999999998); +#724=CIRCLE('',#1967,0.499999999999998); +#725=CIRCLE('',#1968,0.499999999999989); +#726=CIRCLE('',#1969,1.45); +#727=CIRCLE('',#1970,1.45); +#728=CIRCLE('',#1971,1.45); +#729=CIRCLE('',#1972,1.45); +#730=CIRCLE('',#1974,5.); +#731=CIRCLE('',#1977,5.); +#732=CIRCLE('',#1979,5.); +#733=CIRCLE('',#1982,1.45); +#734=CIRCLE('',#1984,1.45); +#735=CIRCLE('',#1986,1.45); +#736=CIRCLE('',#1988,1.45); +#737=CIRCLE('',#1990,0.499999999999998); +#738=CIRCLE('',#1993,0.499999999999998); +#739=CIRCLE('',#1996,0.499999999999998); +#740=CIRCLE('',#1999,0.499999999999989); +#741=CIRCLE('',#2002,0.500000000000003); +#742=CIRCLE('',#2005,0.499999999999998); +#743=CIRCLE('',#2008,0.499999999999998); +#744=CIRCLE('',#2011,0.499999999999998); +#745=CIRCLE('',#2014,0.499999999999998); +#746=CIRCLE('',#2017,0.5); +#747=CIRCLE('',#2020,0.499999999999998); +#748=CIRCLE('',#2023,0.499999999999998); +#749=CIRCLE('',#2026,0.500000000000003); +#750=CIRCLE('',#2029,0.499999999999998); +#751=CIRCLE('',#2032,0.499999999999998); +#752=CIRCLE('',#2035,0.499999999999998); +#753=CIRCLE('',#2038,0.500000000000003); +#754=CIRCLE('',#2041,0.499999999999998); +#755=CIRCLE('',#2044,0.499999999999998); +#756=CIRCLE('',#2047,0.499999999999989); +#757=CIRCLE('',#2050,0.500000000000003); +#758=CIRCLE('',#2053,0.5); +#759=CIRCLE('',#2056,0.499999999999998); +#760=CIRCLE('',#2059,0.499999999999998); +#761=CIRCLE('',#2062,0.499999999999998); +#762=CIRCLE('',#2065,0.499999999999998); +#763=CIRCLE('',#2068,0.499999999999998); +#764=CIRCLE('',#2071,0.499999999999998); +#765=CIRCLE('',#2074,0.499999999999998); +#766=CIRCLE('',#2077,0.499999999999998); +#767=CIRCLE('',#2080,0.499999999999998); +#768=CIRCLE('',#2083,0.499999999999998); +#769=CIRCLE('',#2086,0.499999999999998); +#770=CIRCLE('',#2089,0.499999999999998); +#771=CIRCLE('',#2092,0.499999999999998); +#772=CIRCLE('',#2095,0.499999999999989); +#773=VERTEX_POINT('',#2663); +#774=VERTEX_POINT('',#2664); +#775=VERTEX_POINT('',#2666); +#776=VERTEX_POINT('',#2668); +#777=VERTEX_POINT('',#2672); +#778=VERTEX_POINT('',#2674); +#779=VERTEX_POINT('',#2678); +#780=VERTEX_POINT('',#2680); +#781=VERTEX_POINT('',#2682); +#782=VERTEX_POINT('',#2684); +#783=VERTEX_POINT('',#2686); +#784=VERTEX_POINT('',#2688); +#785=VERTEX_POINT('',#2690); +#786=VERTEX_POINT('',#2692); +#787=VERTEX_POINT('',#2694); +#788=VERTEX_POINT('',#2697); +#789=VERTEX_POINT('',#2698); +#790=VERTEX_POINT('',#2700); +#791=VERTEX_POINT('',#2702); +#792=VERTEX_POINT('',#2705); +#793=VERTEX_POINT('',#2706); +#794=VERTEX_POINT('',#2708); +#795=VERTEX_POINT('',#2710); +#796=VERTEX_POINT('',#2712); +#797=VERTEX_POINT('',#2714); +#798=VERTEX_POINT('',#2716); +#799=VERTEX_POINT('',#2718); +#800=VERTEX_POINT('',#2721); +#801=VERTEX_POINT('',#2722); +#802=VERTEX_POINT('',#2724); +#803=VERTEX_POINT('',#2726); +#804=VERTEX_POINT('',#2728); +#805=VERTEX_POINT('',#2730); +#806=VERTEX_POINT('',#2732); +#807=VERTEX_POINT('',#2734); +#808=VERTEX_POINT('',#2737); +#809=VERTEX_POINT('',#2738); +#810=VERTEX_POINT('',#2740); +#811=VERTEX_POINT('',#2742); +#812=VERTEX_POINT('',#2744); +#813=VERTEX_POINT('',#2746); +#814=VERTEX_POINT('',#2748); +#815=VERTEX_POINT('',#2750); +#816=VERTEX_POINT('',#2753); +#817=VERTEX_POINT('',#2754); +#818=VERTEX_POINT('',#2756); +#819=VERTEX_POINT('',#2758); +#820=VERTEX_POINT('',#2760); +#821=VERTEX_POINT('',#2762); +#822=VERTEX_POINT('',#2764); +#823=VERTEX_POINT('',#2766); +#824=VERTEX_POINT('',#2769); +#825=VERTEX_POINT('',#2770); +#826=VERTEX_POINT('',#2772); +#827=VERTEX_POINT('',#2774); +#828=VERTEX_POINT('',#2776); +#829=VERTEX_POINT('',#2778); +#830=VERTEX_POINT('',#2780); +#831=VERTEX_POINT('',#2782); +#832=VERTEX_POINT('',#2785); +#833=VERTEX_POINT('',#2786); +#834=VERTEX_POINT('',#2788); +#835=VERTEX_POINT('',#2790); +#836=VERTEX_POINT('',#2792); +#837=VERTEX_POINT('',#2794); +#838=VERTEX_POINT('',#2796); +#839=VERTEX_POINT('',#2798); +#840=VERTEX_POINT('',#2801); +#841=VERTEX_POINT('',#2802); +#842=VERTEX_POINT('',#2804); +#843=VERTEX_POINT('',#2806); +#844=VERTEX_POINT('',#2808); +#845=VERTEX_POINT('',#2810); +#846=VERTEX_POINT('',#2812); +#847=VERTEX_POINT('',#2814); +#848=VERTEX_POINT('',#2817); +#849=VERTEX_POINT('',#2818); +#850=VERTEX_POINT('',#2820); +#851=VERTEX_POINT('',#2822); +#852=VERTEX_POINT('',#2824); +#853=VERTEX_POINT('',#2826); +#854=VERTEX_POINT('',#2828); +#855=VERTEX_POINT('',#2830); +#856=VERTEX_POINT('',#2833); +#857=VERTEX_POINT('',#2834); +#858=VERTEX_POINT('',#2836); +#859=VERTEX_POINT('',#2838); +#860=VERTEX_POINT('',#2840); +#861=VERTEX_POINT('',#2842); +#862=VERTEX_POINT('',#2844); +#863=VERTEX_POINT('',#2846); +#864=VERTEX_POINT('',#2849); +#865=VERTEX_POINT('',#2851); +#866=VERTEX_POINT('',#2853); +#867=VERTEX_POINT('',#2855); +#868=VERTEX_POINT('',#2858); +#869=VERTEX_POINT('',#2859); +#870=VERTEX_POINT('',#2864); +#871=VERTEX_POINT('',#2868); +#872=VERTEX_POINT('',#2872); +#873=VERTEX_POINT('',#2873); +#874=VERTEX_POINT('',#2878); +#875=VERTEX_POINT('',#2882); +#876=VERTEX_POINT('',#2886); +#877=VERTEX_POINT('',#2890); +#878=VERTEX_POINT('',#2894); +#879=VERTEX_POINT('',#2898); +#880=VERTEX_POINT('',#2900); +#881=VERTEX_POINT('',#2904); +#882=VERTEX_POINT('',#2908); +#883=VERTEX_POINT('',#2912); +#884=VERTEX_POINT('',#2916); +#885=VERTEX_POINT('',#2920); +#886=VERTEX_POINT('',#2924); +#887=VERTEX_POINT('',#2930); +#888=VERTEX_POINT('',#2932); +#889=VERTEX_POINT('',#2936); +#890=VERTEX_POINT('',#2940); +#891=VERTEX_POINT('',#2944); +#892=VERTEX_POINT('',#2948); +#893=VERTEX_POINT('',#2952); +#894=VERTEX_POINT('',#2956); +#895=VERTEX_POINT('',#2962); +#896=VERTEX_POINT('',#2964); +#897=VERTEX_POINT('',#2968); +#898=VERTEX_POINT('',#2972); +#899=VERTEX_POINT('',#2976); +#900=VERTEX_POINT('',#2980); +#901=VERTEX_POINT('',#2984); +#902=VERTEX_POINT('',#2988); +#903=VERTEX_POINT('',#2994); +#904=VERTEX_POINT('',#2996); +#905=VERTEX_POINT('',#3000); +#906=VERTEX_POINT('',#3004); +#907=VERTEX_POINT('',#3008); +#908=VERTEX_POINT('',#3012); +#909=VERTEX_POINT('',#3016); +#910=VERTEX_POINT('',#3020); +#911=VERTEX_POINT('',#3026); +#912=VERTEX_POINT('',#3028); +#913=VERTEX_POINT('',#3032); +#914=VERTEX_POINT('',#3036); +#915=VERTEX_POINT('',#3040); +#916=VERTEX_POINT('',#3044); +#917=VERTEX_POINT('',#3048); +#918=VERTEX_POINT('',#3052); +#919=VERTEX_POINT('',#3058); +#920=VERTEX_POINT('',#3060); +#921=VERTEX_POINT('',#3064); +#922=VERTEX_POINT('',#3068); +#923=VERTEX_POINT('',#3072); +#924=VERTEX_POINT('',#3076); +#925=VERTEX_POINT('',#3080); +#926=VERTEX_POINT('',#3084); +#927=VERTEX_POINT('',#3090); +#928=VERTEX_POINT('',#3092); +#929=VERTEX_POINT('',#3096); +#930=VERTEX_POINT('',#3100); +#931=VERTEX_POINT('',#3104); +#932=VERTEX_POINT('',#3108); +#933=VERTEX_POINT('',#3112); +#934=VERTEX_POINT('',#3116); +#935=VERTEX_POINT('',#3122); +#936=VERTEX_POINT('',#3124); +#937=VERTEX_POINT('',#3128); +#938=VERTEX_POINT('',#3132); +#939=VERTEX_POINT('',#3136); +#940=VERTEX_POINT('',#3140); +#941=VERTEX_POINT('',#3144); +#942=VERTEX_POINT('',#3148); +#943=VERTEX_POINT('',#3154); +#944=VERTEX_POINT('',#3156); +#945=VERTEX_POINT('',#3160); +#946=VERTEX_POINT('',#3164); +#947=VERTEX_POINT('',#3168); +#948=VERTEX_POINT('',#3172); +#949=VERTEX_POINT('',#3176); +#950=VERTEX_POINT('',#3180); +#951=VERTEX_POINT('',#3186); +#952=VERTEX_POINT('',#3188); +#953=VERTEX_POINT('',#3192); +#954=VERTEX_POINT('',#3196); +#955=VERTEX_POINT('',#3202); +#956=VERTEX_POINT('',#3204); +#957=EDGE_CURVE('',#773,#774,#685,.T.); +#958=EDGE_CURVE('',#774,#775,#309,.T.); +#959=EDGE_CURVE('',#775,#776,#686,.T.); +#960=EDGE_CURVE('',#776,#773,#310,.T.); +#961=EDGE_CURVE('',#777,#776,#311,.T.); +#962=EDGE_CURVE('',#777,#778,#312,.T.); +#963=EDGE_CURVE('',#773,#778,#313,.T.); +#964=EDGE_CURVE('',#775,#779,#314,.T.); +#965=EDGE_CURVE('',#780,#779,#687,.T.); +#966=EDGE_CURVE('',#780,#781,#315,.T.); +#967=EDGE_CURVE('',#782,#781,#688,.T.); +#968=EDGE_CURVE('',#782,#783,#316,.T.); +#969=EDGE_CURVE('',#784,#783,#689,.T.); +#970=EDGE_CURVE('',#784,#785,#317,.T.); +#971=EDGE_CURVE('',#785,#786,#318,.T.); +#972=EDGE_CURVE('',#786,#787,#319,.T.); +#973=EDGE_CURVE('',#787,#777,#320,.T.); +#974=EDGE_CURVE('',#788,#789,#321,.T.); +#975=EDGE_CURVE('',#789,#790,#322,.T.); +#976=EDGE_CURVE('',#790,#791,#323,.T.); +#977=EDGE_CURVE('',#791,#788,#324,.T.); +#978=EDGE_CURVE('',#792,#793,#325,.T.); +#979=EDGE_CURVE('',#793,#794,#690,.T.); +#980=EDGE_CURVE('',#794,#795,#326,.T.); +#981=EDGE_CURVE('',#795,#796,#691,.T.); +#982=EDGE_CURVE('',#796,#797,#327,.T.); +#983=EDGE_CURVE('',#797,#798,#692,.T.); +#984=EDGE_CURVE('',#798,#799,#328,.T.); +#985=EDGE_CURVE('',#799,#792,#693,.T.); +#986=EDGE_CURVE('',#800,#801,#329,.T.); +#987=EDGE_CURVE('',#801,#802,#694,.T.); +#988=EDGE_CURVE('',#802,#803,#330,.T.); +#989=EDGE_CURVE('',#803,#804,#695,.T.); +#990=EDGE_CURVE('',#804,#805,#331,.T.); +#991=EDGE_CURVE('',#805,#806,#696,.T.); +#992=EDGE_CURVE('',#806,#807,#332,.T.); +#993=EDGE_CURVE('',#807,#800,#697,.T.); +#994=EDGE_CURVE('',#808,#809,#333,.T.); +#995=EDGE_CURVE('',#809,#810,#698,.T.); +#996=EDGE_CURVE('',#810,#811,#334,.T.); +#997=EDGE_CURVE('',#811,#812,#699,.T.); +#998=EDGE_CURVE('',#812,#813,#335,.T.); +#999=EDGE_CURVE('',#813,#814,#700,.T.); +#1000=EDGE_CURVE('',#814,#815,#336,.T.); +#1001=EDGE_CURVE('',#815,#808,#701,.T.); +#1002=EDGE_CURVE('',#816,#817,#337,.T.); +#1003=EDGE_CURVE('',#817,#818,#702,.T.); +#1004=EDGE_CURVE('',#818,#819,#338,.T.); +#1005=EDGE_CURVE('',#819,#820,#703,.T.); +#1006=EDGE_CURVE('',#820,#821,#339,.T.); +#1007=EDGE_CURVE('',#821,#822,#704,.T.); +#1008=EDGE_CURVE('',#822,#823,#340,.T.); +#1009=EDGE_CURVE('',#823,#816,#705,.T.); +#1010=EDGE_CURVE('',#824,#825,#341,.T.); +#1011=EDGE_CURVE('',#825,#826,#706,.T.); +#1012=EDGE_CURVE('',#826,#827,#342,.T.); +#1013=EDGE_CURVE('',#827,#828,#707,.T.); +#1014=EDGE_CURVE('',#828,#829,#343,.T.); +#1015=EDGE_CURVE('',#829,#830,#708,.T.); +#1016=EDGE_CURVE('',#830,#831,#344,.T.); +#1017=EDGE_CURVE('',#831,#824,#709,.T.); +#1018=EDGE_CURVE('',#832,#833,#345,.T.); +#1019=EDGE_CURVE('',#833,#834,#710,.T.); +#1020=EDGE_CURVE('',#834,#835,#346,.T.); +#1021=EDGE_CURVE('',#835,#836,#711,.T.); +#1022=EDGE_CURVE('',#836,#837,#347,.T.); +#1023=EDGE_CURVE('',#837,#838,#712,.T.); +#1024=EDGE_CURVE('',#838,#839,#348,.T.); +#1025=EDGE_CURVE('',#839,#832,#713,.T.); +#1026=EDGE_CURVE('',#840,#841,#349,.T.); +#1027=EDGE_CURVE('',#841,#842,#714,.T.); +#1028=EDGE_CURVE('',#842,#843,#350,.T.); +#1029=EDGE_CURVE('',#843,#844,#715,.T.); +#1030=EDGE_CURVE('',#844,#845,#351,.T.); +#1031=EDGE_CURVE('',#845,#846,#716,.T.); +#1032=EDGE_CURVE('',#846,#847,#352,.T.); +#1033=EDGE_CURVE('',#847,#840,#717,.T.); +#1034=EDGE_CURVE('',#848,#849,#353,.T.); +#1035=EDGE_CURVE('',#849,#850,#718,.T.); +#1036=EDGE_CURVE('',#850,#851,#354,.T.); +#1037=EDGE_CURVE('',#851,#852,#719,.T.); +#1038=EDGE_CURVE('',#852,#853,#355,.T.); +#1039=EDGE_CURVE('',#853,#854,#720,.T.); +#1040=EDGE_CURVE('',#854,#855,#356,.T.); +#1041=EDGE_CURVE('',#855,#848,#721,.T.); +#1042=EDGE_CURVE('',#856,#857,#357,.T.); +#1043=EDGE_CURVE('',#857,#858,#722,.T.); +#1044=EDGE_CURVE('',#858,#859,#358,.T.); +#1045=EDGE_CURVE('',#859,#860,#723,.T.); +#1046=EDGE_CURVE('',#860,#861,#359,.T.); +#1047=EDGE_CURVE('',#861,#862,#724,.T.); +#1048=EDGE_CURVE('',#862,#863,#360,.T.); +#1049=EDGE_CURVE('',#863,#856,#725,.T.); +#1050=EDGE_CURVE('',#864,#864,#726,.T.); +#1051=EDGE_CURVE('',#865,#865,#727,.T.); +#1052=EDGE_CURVE('',#866,#866,#728,.T.); +#1053=EDGE_CURVE('',#867,#867,#729,.T.); +#1054=EDGE_CURVE('',#868,#869,#730,.T.); +#1055=EDGE_CURVE('',#869,#780,#361,.T.); +#1056=EDGE_CURVE('',#779,#868,#362,.T.); +#1057=EDGE_CURVE('',#870,#869,#363,.T.); +#1058=EDGE_CURVE('',#781,#870,#364,.T.); +#1059=EDGE_CURVE('',#870,#871,#731,.T.); +#1060=EDGE_CURVE('',#871,#782,#365,.T.); +#1061=EDGE_CURVE('',#872,#873,#732,.T.); +#1062=EDGE_CURVE('',#873,#784,#366,.T.); +#1063=EDGE_CURVE('',#783,#872,#367,.T.); +#1064=EDGE_CURVE('',#874,#873,#368,.T.); +#1065=EDGE_CURVE('',#785,#874,#369,.T.); +#1066=EDGE_CURVE('',#875,#875,#733,.T.); +#1067=EDGE_CURVE('',#875,#867,#370,.T.); +#1068=EDGE_CURVE('',#876,#876,#734,.T.); +#1069=EDGE_CURVE('',#876,#866,#371,.T.); +#1070=EDGE_CURVE('',#877,#877,#735,.T.); +#1071=EDGE_CURVE('',#877,#865,#372,.T.); +#1072=EDGE_CURVE('',#878,#878,#736,.T.); +#1073=EDGE_CURVE('',#878,#864,#373,.T.); +#1074=EDGE_CURVE('',#857,#879,#374,.T.); +#1075=EDGE_CURVE('',#880,#879,#737,.T.); +#1076=EDGE_CURVE('',#858,#880,#375,.T.); +#1077=EDGE_CURVE('',#881,#880,#376,.T.); +#1078=EDGE_CURVE('',#859,#881,#377,.T.); +#1079=EDGE_CURVE('',#882,#881,#738,.T.); +#1080=EDGE_CURVE('',#860,#882,#378,.T.); +#1081=EDGE_CURVE('',#883,#882,#379,.T.); +#1082=EDGE_CURVE('',#861,#883,#380,.T.); +#1083=EDGE_CURVE('',#884,#883,#739,.T.); +#1084=EDGE_CURVE('',#862,#884,#381,.T.); +#1085=EDGE_CURVE('',#885,#884,#382,.T.); +#1086=EDGE_CURVE('',#863,#885,#383,.T.); +#1087=EDGE_CURVE('',#886,#885,#740,.T.); +#1088=EDGE_CURVE('',#856,#886,#384,.T.); +#1089=EDGE_CURVE('',#879,#886,#385,.T.); +#1090=EDGE_CURVE('',#849,#887,#386,.T.); +#1091=EDGE_CURVE('',#888,#887,#741,.T.); +#1092=EDGE_CURVE('',#850,#888,#387,.T.); +#1093=EDGE_CURVE('',#889,#888,#388,.T.); +#1094=EDGE_CURVE('',#851,#889,#389,.T.); +#1095=EDGE_CURVE('',#890,#889,#742,.T.); +#1096=EDGE_CURVE('',#852,#890,#390,.T.); +#1097=EDGE_CURVE('',#891,#890,#391,.T.); +#1098=EDGE_CURVE('',#853,#891,#392,.T.); +#1099=EDGE_CURVE('',#892,#891,#743,.T.); +#1100=EDGE_CURVE('',#854,#892,#393,.T.); +#1101=EDGE_CURVE('',#893,#892,#394,.T.); +#1102=EDGE_CURVE('',#855,#893,#395,.T.); +#1103=EDGE_CURVE('',#894,#893,#744,.T.); +#1104=EDGE_CURVE('',#848,#894,#396,.T.); +#1105=EDGE_CURVE('',#887,#894,#397,.T.); +#1106=EDGE_CURVE('',#841,#895,#398,.T.); +#1107=EDGE_CURVE('',#896,#895,#745,.T.); +#1108=EDGE_CURVE('',#842,#896,#399,.T.); +#1109=EDGE_CURVE('',#897,#896,#400,.T.); +#1110=EDGE_CURVE('',#843,#897,#401,.T.); +#1111=EDGE_CURVE('',#898,#897,#746,.T.); +#1112=EDGE_CURVE('',#844,#898,#402,.T.); +#1113=EDGE_CURVE('',#899,#898,#403,.T.); +#1114=EDGE_CURVE('',#845,#899,#404,.T.); +#1115=EDGE_CURVE('',#900,#899,#747,.T.); +#1116=EDGE_CURVE('',#846,#900,#405,.T.); +#1117=EDGE_CURVE('',#901,#900,#406,.T.); +#1118=EDGE_CURVE('',#847,#901,#407,.T.); +#1119=EDGE_CURVE('',#902,#901,#748,.T.); +#1120=EDGE_CURVE('',#840,#902,#408,.T.); +#1121=EDGE_CURVE('',#895,#902,#409,.T.); +#1122=EDGE_CURVE('',#833,#903,#410,.T.); +#1123=EDGE_CURVE('',#904,#903,#749,.T.); +#1124=EDGE_CURVE('',#834,#904,#411,.T.); +#1125=EDGE_CURVE('',#905,#904,#412,.T.); +#1126=EDGE_CURVE('',#835,#905,#413,.T.); +#1127=EDGE_CURVE('',#906,#905,#750,.T.); +#1128=EDGE_CURVE('',#836,#906,#414,.T.); +#1129=EDGE_CURVE('',#907,#906,#415,.T.); +#1130=EDGE_CURVE('',#837,#907,#416,.T.); +#1131=EDGE_CURVE('',#908,#907,#751,.T.); +#1132=EDGE_CURVE('',#838,#908,#417,.T.); +#1133=EDGE_CURVE('',#909,#908,#418,.T.); +#1134=EDGE_CURVE('',#839,#909,#419,.T.); +#1135=EDGE_CURVE('',#910,#909,#752,.T.); +#1136=EDGE_CURVE('',#832,#910,#420,.T.); +#1137=EDGE_CURVE('',#903,#910,#421,.T.); +#1138=EDGE_CURVE('',#825,#911,#422,.T.); +#1139=EDGE_CURVE('',#912,#911,#753,.T.); +#1140=EDGE_CURVE('',#826,#912,#423,.T.); +#1141=EDGE_CURVE('',#913,#912,#424,.T.); +#1142=EDGE_CURVE('',#827,#913,#425,.T.); +#1143=EDGE_CURVE('',#914,#913,#754,.T.); +#1144=EDGE_CURVE('',#828,#914,#426,.T.); +#1145=EDGE_CURVE('',#915,#914,#427,.T.); +#1146=EDGE_CURVE('',#829,#915,#428,.T.); +#1147=EDGE_CURVE('',#916,#915,#755,.T.); +#1148=EDGE_CURVE('',#830,#916,#429,.T.); +#1149=EDGE_CURVE('',#917,#916,#430,.T.); +#1150=EDGE_CURVE('',#831,#917,#431,.T.); +#1151=EDGE_CURVE('',#918,#917,#756,.T.); +#1152=EDGE_CURVE('',#824,#918,#432,.T.); +#1153=EDGE_CURVE('',#911,#918,#433,.T.); +#1154=EDGE_CURVE('',#817,#919,#434,.T.); +#1155=EDGE_CURVE('',#920,#919,#757,.T.); +#1156=EDGE_CURVE('',#818,#920,#435,.T.); +#1157=EDGE_CURVE('',#921,#920,#436,.T.); +#1158=EDGE_CURVE('',#819,#921,#437,.T.); +#1159=EDGE_CURVE('',#922,#921,#758,.T.); +#1160=EDGE_CURVE('',#820,#922,#438,.T.); +#1161=EDGE_CURVE('',#923,#922,#439,.T.); +#1162=EDGE_CURVE('',#821,#923,#440,.T.); +#1163=EDGE_CURVE('',#924,#923,#759,.T.); +#1164=EDGE_CURVE('',#822,#924,#441,.T.); +#1165=EDGE_CURVE('',#925,#924,#442,.T.); +#1166=EDGE_CURVE('',#823,#925,#443,.T.); +#1167=EDGE_CURVE('',#926,#925,#760,.T.); +#1168=EDGE_CURVE('',#816,#926,#444,.T.); +#1169=EDGE_CURVE('',#919,#926,#445,.T.); +#1170=EDGE_CURVE('',#809,#927,#446,.T.); +#1171=EDGE_CURVE('',#928,#927,#761,.T.); +#1172=EDGE_CURVE('',#810,#928,#447,.T.); +#1173=EDGE_CURVE('',#929,#928,#448,.T.); +#1174=EDGE_CURVE('',#811,#929,#449,.T.); +#1175=EDGE_CURVE('',#930,#929,#762,.T.); +#1176=EDGE_CURVE('',#812,#930,#450,.T.); +#1177=EDGE_CURVE('',#931,#930,#451,.T.); +#1178=EDGE_CURVE('',#813,#931,#452,.T.); +#1179=EDGE_CURVE('',#932,#931,#763,.T.); +#1180=EDGE_CURVE('',#814,#932,#453,.T.); +#1181=EDGE_CURVE('',#933,#932,#454,.T.); +#1182=EDGE_CURVE('',#815,#933,#455,.T.); +#1183=EDGE_CURVE('',#934,#933,#764,.T.); +#1184=EDGE_CURVE('',#808,#934,#456,.T.); +#1185=EDGE_CURVE('',#927,#934,#457,.T.); +#1186=EDGE_CURVE('',#801,#935,#458,.T.); +#1187=EDGE_CURVE('',#936,#935,#765,.T.); +#1188=EDGE_CURVE('',#802,#936,#459,.T.); +#1189=EDGE_CURVE('',#937,#936,#460,.T.); +#1190=EDGE_CURVE('',#803,#937,#461,.T.); +#1191=EDGE_CURVE('',#938,#937,#766,.T.); +#1192=EDGE_CURVE('',#804,#938,#462,.T.); +#1193=EDGE_CURVE('',#939,#938,#463,.T.); +#1194=EDGE_CURVE('',#805,#939,#464,.T.); +#1195=EDGE_CURVE('',#940,#939,#767,.T.); +#1196=EDGE_CURVE('',#806,#940,#465,.T.); +#1197=EDGE_CURVE('',#941,#940,#466,.T.); +#1198=EDGE_CURVE('',#807,#941,#467,.T.); +#1199=EDGE_CURVE('',#942,#941,#768,.T.); +#1200=EDGE_CURVE('',#800,#942,#468,.T.); +#1201=EDGE_CURVE('',#935,#942,#469,.T.); +#1202=EDGE_CURVE('',#793,#943,#470,.T.); +#1203=EDGE_CURVE('',#944,#943,#769,.T.); +#1204=EDGE_CURVE('',#794,#944,#471,.T.); +#1205=EDGE_CURVE('',#945,#944,#472,.T.); +#1206=EDGE_CURVE('',#795,#945,#473,.T.); +#1207=EDGE_CURVE('',#946,#945,#770,.T.); +#1208=EDGE_CURVE('',#796,#946,#474,.T.); +#1209=EDGE_CURVE('',#947,#946,#475,.T.); +#1210=EDGE_CURVE('',#797,#947,#476,.T.); +#1211=EDGE_CURVE('',#948,#947,#771,.T.); +#1212=EDGE_CURVE('',#798,#948,#477,.T.); +#1213=EDGE_CURVE('',#949,#948,#478,.T.); +#1214=EDGE_CURVE('',#799,#949,#479,.T.); +#1215=EDGE_CURVE('',#950,#949,#772,.T.); +#1216=EDGE_CURVE('',#792,#950,#480,.T.); +#1217=EDGE_CURVE('',#943,#950,#481,.T.); +#1218=EDGE_CURVE('',#789,#951,#482,.T.); +#1219=EDGE_CURVE('',#952,#951,#483,.T.); +#1220=EDGE_CURVE('',#790,#952,#484,.T.); +#1221=EDGE_CURVE('',#953,#952,#485,.T.); +#1222=EDGE_CURVE('',#791,#953,#486,.T.); +#1223=EDGE_CURVE('',#954,#953,#487,.T.); +#1224=EDGE_CURVE('',#788,#954,#488,.T.); +#1225=EDGE_CURVE('',#951,#954,#489,.T.); +#1226=EDGE_CURVE('',#786,#955,#490,.T.); +#1227=EDGE_CURVE('',#956,#955,#491,.T.); +#1228=EDGE_CURVE('',#787,#956,#492,.T.); +#1229=EDGE_CURVE('',#778,#956,#493,.T.); +#1230=EDGE_CURVE('',#868,#774,#494,.T.); +#1231=EDGE_CURVE('',#872,#871,#495,.T.); +#1232=EDGE_CURVE('',#955,#874,#496,.T.); +#1233=ORIENTED_EDGE('',*,*,#957,.T.); +#1234=ORIENTED_EDGE('',*,*,#958,.T.); +#1235=ORIENTED_EDGE('',*,*,#959,.T.); +#1236=ORIENTED_EDGE('',*,*,#960,.T.); +#1237=ORIENTED_EDGE('',*,*,#960,.F.); +#1238=ORIENTED_EDGE('',*,*,#961,.F.); +#1239=ORIENTED_EDGE('',*,*,#962,.T.); +#1240=ORIENTED_EDGE('',*,*,#963,.F.); +#1241=ORIENTED_EDGE('',*,*,#959,.F.); +#1242=ORIENTED_EDGE('',*,*,#964,.T.); +#1243=ORIENTED_EDGE('',*,*,#965,.F.); +#1244=ORIENTED_EDGE('',*,*,#966,.T.); +#1245=ORIENTED_EDGE('',*,*,#967,.F.); +#1246=ORIENTED_EDGE('',*,*,#968,.T.); +#1247=ORIENTED_EDGE('',*,*,#969,.F.); +#1248=ORIENTED_EDGE('',*,*,#970,.T.); +#1249=ORIENTED_EDGE('',*,*,#971,.T.); +#1250=ORIENTED_EDGE('',*,*,#972,.T.); +#1251=ORIENTED_EDGE('',*,*,#973,.T.); +#1252=ORIENTED_EDGE('',*,*,#961,.T.); +#1253=ORIENTED_EDGE('',*,*,#974,.T.); +#1254=ORIENTED_EDGE('',*,*,#975,.T.); +#1255=ORIENTED_EDGE('',*,*,#976,.T.); +#1256=ORIENTED_EDGE('',*,*,#977,.T.); +#1257=ORIENTED_EDGE('',*,*,#978,.T.); +#1258=ORIENTED_EDGE('',*,*,#979,.T.); +#1259=ORIENTED_EDGE('',*,*,#980,.T.); +#1260=ORIENTED_EDGE('',*,*,#981,.T.); +#1261=ORIENTED_EDGE('',*,*,#982,.T.); +#1262=ORIENTED_EDGE('',*,*,#983,.T.); +#1263=ORIENTED_EDGE('',*,*,#984,.T.); +#1264=ORIENTED_EDGE('',*,*,#985,.T.); +#1265=ORIENTED_EDGE('',*,*,#986,.T.); +#1266=ORIENTED_EDGE('',*,*,#987,.T.); +#1267=ORIENTED_EDGE('',*,*,#988,.T.); +#1268=ORIENTED_EDGE('',*,*,#989,.T.); +#1269=ORIENTED_EDGE('',*,*,#990,.T.); +#1270=ORIENTED_EDGE('',*,*,#991,.T.); +#1271=ORIENTED_EDGE('',*,*,#992,.T.); +#1272=ORIENTED_EDGE('',*,*,#993,.T.); +#1273=ORIENTED_EDGE('',*,*,#994,.T.); +#1274=ORIENTED_EDGE('',*,*,#995,.T.); +#1275=ORIENTED_EDGE('',*,*,#996,.T.); +#1276=ORIENTED_EDGE('',*,*,#997,.T.); +#1277=ORIENTED_EDGE('',*,*,#998,.T.); +#1278=ORIENTED_EDGE('',*,*,#999,.T.); +#1279=ORIENTED_EDGE('',*,*,#1000,.T.); +#1280=ORIENTED_EDGE('',*,*,#1001,.T.); +#1281=ORIENTED_EDGE('',*,*,#1002,.T.); +#1282=ORIENTED_EDGE('',*,*,#1003,.T.); +#1283=ORIENTED_EDGE('',*,*,#1004,.T.); +#1284=ORIENTED_EDGE('',*,*,#1005,.T.); +#1285=ORIENTED_EDGE('',*,*,#1006,.T.); +#1286=ORIENTED_EDGE('',*,*,#1007,.T.); +#1287=ORIENTED_EDGE('',*,*,#1008,.T.); +#1288=ORIENTED_EDGE('',*,*,#1009,.T.); +#1289=ORIENTED_EDGE('',*,*,#1010,.T.); +#1290=ORIENTED_EDGE('',*,*,#1011,.T.); +#1291=ORIENTED_EDGE('',*,*,#1012,.T.); +#1292=ORIENTED_EDGE('',*,*,#1013,.T.); +#1293=ORIENTED_EDGE('',*,*,#1014,.T.); +#1294=ORIENTED_EDGE('',*,*,#1015,.T.); +#1295=ORIENTED_EDGE('',*,*,#1016,.T.); +#1296=ORIENTED_EDGE('',*,*,#1017,.T.); +#1297=ORIENTED_EDGE('',*,*,#1018,.T.); +#1298=ORIENTED_EDGE('',*,*,#1019,.T.); +#1299=ORIENTED_EDGE('',*,*,#1020,.T.); +#1300=ORIENTED_EDGE('',*,*,#1021,.T.); +#1301=ORIENTED_EDGE('',*,*,#1022,.T.); +#1302=ORIENTED_EDGE('',*,*,#1023,.T.); +#1303=ORIENTED_EDGE('',*,*,#1024,.T.); +#1304=ORIENTED_EDGE('',*,*,#1025,.T.); +#1305=ORIENTED_EDGE('',*,*,#1026,.T.); +#1306=ORIENTED_EDGE('',*,*,#1027,.T.); +#1307=ORIENTED_EDGE('',*,*,#1028,.T.); +#1308=ORIENTED_EDGE('',*,*,#1029,.T.); +#1309=ORIENTED_EDGE('',*,*,#1030,.T.); +#1310=ORIENTED_EDGE('',*,*,#1031,.T.); +#1311=ORIENTED_EDGE('',*,*,#1032,.T.); +#1312=ORIENTED_EDGE('',*,*,#1033,.T.); +#1313=ORIENTED_EDGE('',*,*,#1034,.T.); +#1314=ORIENTED_EDGE('',*,*,#1035,.T.); +#1315=ORIENTED_EDGE('',*,*,#1036,.T.); +#1316=ORIENTED_EDGE('',*,*,#1037,.T.); +#1317=ORIENTED_EDGE('',*,*,#1038,.T.); +#1318=ORIENTED_EDGE('',*,*,#1039,.T.); +#1319=ORIENTED_EDGE('',*,*,#1040,.T.); +#1320=ORIENTED_EDGE('',*,*,#1041,.T.); +#1321=ORIENTED_EDGE('',*,*,#1042,.T.); +#1322=ORIENTED_EDGE('',*,*,#1043,.T.); +#1323=ORIENTED_EDGE('',*,*,#1044,.T.); +#1324=ORIENTED_EDGE('',*,*,#1045,.T.); +#1325=ORIENTED_EDGE('',*,*,#1046,.T.); +#1326=ORIENTED_EDGE('',*,*,#1047,.T.); +#1327=ORIENTED_EDGE('',*,*,#1048,.T.); +#1328=ORIENTED_EDGE('',*,*,#1049,.T.); +#1329=ORIENTED_EDGE('',*,*,#1050,.T.); +#1330=ORIENTED_EDGE('',*,*,#1051,.T.); +#1331=ORIENTED_EDGE('',*,*,#1052,.T.); +#1332=ORIENTED_EDGE('',*,*,#1053,.T.); +#1333=ORIENTED_EDGE('',*,*,#1054,.T.); +#1334=ORIENTED_EDGE('',*,*,#1055,.T.); +#1335=ORIENTED_EDGE('',*,*,#965,.T.); +#1336=ORIENTED_EDGE('',*,*,#1056,.T.); +#1337=ORIENTED_EDGE('',*,*,#1055,.F.); +#1338=ORIENTED_EDGE('',*,*,#1057,.F.); +#1339=ORIENTED_EDGE('',*,*,#1058,.F.); +#1340=ORIENTED_EDGE('',*,*,#966,.F.); +#1341=ORIENTED_EDGE('',*,*,#1059,.T.); +#1342=ORIENTED_EDGE('',*,*,#1060,.T.); +#1343=ORIENTED_EDGE('',*,*,#967,.T.); +#1344=ORIENTED_EDGE('',*,*,#1058,.T.); +#1345=ORIENTED_EDGE('',*,*,#1061,.T.); +#1346=ORIENTED_EDGE('',*,*,#1062,.T.); +#1347=ORIENTED_EDGE('',*,*,#969,.T.); +#1348=ORIENTED_EDGE('',*,*,#1063,.T.); +#1349=ORIENTED_EDGE('',*,*,#1062,.F.); +#1350=ORIENTED_EDGE('',*,*,#1064,.F.); +#1351=ORIENTED_EDGE('',*,*,#1065,.F.); +#1352=ORIENTED_EDGE('',*,*,#970,.F.); +#1353=ORIENTED_EDGE('',*,*,#1066,.F.); +#1354=ORIENTED_EDGE('',*,*,#1067,.T.); +#1355=ORIENTED_EDGE('',*,*,#1053,.F.); +#1356=ORIENTED_EDGE('',*,*,#1067,.F.); +#1357=ORIENTED_EDGE('',*,*,#1068,.F.); +#1358=ORIENTED_EDGE('',*,*,#1069,.T.); +#1359=ORIENTED_EDGE('',*,*,#1052,.F.); +#1360=ORIENTED_EDGE('',*,*,#1069,.F.); +#1361=ORIENTED_EDGE('',*,*,#1070,.F.); +#1362=ORIENTED_EDGE('',*,*,#1071,.T.); +#1363=ORIENTED_EDGE('',*,*,#1051,.F.); +#1364=ORIENTED_EDGE('',*,*,#1071,.F.); +#1365=ORIENTED_EDGE('',*,*,#1072,.F.); +#1366=ORIENTED_EDGE('',*,*,#1073,.T.); +#1367=ORIENTED_EDGE('',*,*,#1050,.F.); +#1368=ORIENTED_EDGE('',*,*,#1073,.F.); +#1369=ORIENTED_EDGE('',*,*,#1043,.F.); +#1370=ORIENTED_EDGE('',*,*,#1074,.T.); +#1371=ORIENTED_EDGE('',*,*,#1075,.F.); +#1372=ORIENTED_EDGE('',*,*,#1076,.F.); +#1373=ORIENTED_EDGE('',*,*,#1044,.F.); +#1374=ORIENTED_EDGE('',*,*,#1076,.T.); +#1375=ORIENTED_EDGE('',*,*,#1077,.F.); +#1376=ORIENTED_EDGE('',*,*,#1078,.F.); +#1377=ORIENTED_EDGE('',*,*,#1045,.F.); +#1378=ORIENTED_EDGE('',*,*,#1078,.T.); +#1379=ORIENTED_EDGE('',*,*,#1079,.F.); +#1380=ORIENTED_EDGE('',*,*,#1080,.F.); +#1381=ORIENTED_EDGE('',*,*,#1046,.F.); +#1382=ORIENTED_EDGE('',*,*,#1080,.T.); +#1383=ORIENTED_EDGE('',*,*,#1081,.F.); +#1384=ORIENTED_EDGE('',*,*,#1082,.F.); +#1385=ORIENTED_EDGE('',*,*,#1047,.F.); +#1386=ORIENTED_EDGE('',*,*,#1082,.T.); +#1387=ORIENTED_EDGE('',*,*,#1083,.F.); +#1388=ORIENTED_EDGE('',*,*,#1084,.F.); +#1389=ORIENTED_EDGE('',*,*,#1048,.F.); +#1390=ORIENTED_EDGE('',*,*,#1084,.T.); +#1391=ORIENTED_EDGE('',*,*,#1085,.F.); +#1392=ORIENTED_EDGE('',*,*,#1086,.F.); +#1393=ORIENTED_EDGE('',*,*,#1049,.F.); +#1394=ORIENTED_EDGE('',*,*,#1086,.T.); +#1395=ORIENTED_EDGE('',*,*,#1087,.F.); +#1396=ORIENTED_EDGE('',*,*,#1088,.F.); +#1397=ORIENTED_EDGE('',*,*,#1042,.F.); +#1398=ORIENTED_EDGE('',*,*,#1088,.T.); +#1399=ORIENTED_EDGE('',*,*,#1089,.F.); +#1400=ORIENTED_EDGE('',*,*,#1074,.F.); +#1401=ORIENTED_EDGE('',*,*,#1035,.F.); +#1402=ORIENTED_EDGE('',*,*,#1090,.T.); +#1403=ORIENTED_EDGE('',*,*,#1091,.F.); +#1404=ORIENTED_EDGE('',*,*,#1092,.F.); +#1405=ORIENTED_EDGE('',*,*,#1036,.F.); +#1406=ORIENTED_EDGE('',*,*,#1092,.T.); +#1407=ORIENTED_EDGE('',*,*,#1093,.F.); +#1408=ORIENTED_EDGE('',*,*,#1094,.F.); +#1409=ORIENTED_EDGE('',*,*,#1037,.F.); +#1410=ORIENTED_EDGE('',*,*,#1094,.T.); +#1411=ORIENTED_EDGE('',*,*,#1095,.F.); +#1412=ORIENTED_EDGE('',*,*,#1096,.F.); +#1413=ORIENTED_EDGE('',*,*,#1038,.F.); +#1414=ORIENTED_EDGE('',*,*,#1096,.T.); +#1415=ORIENTED_EDGE('',*,*,#1097,.F.); +#1416=ORIENTED_EDGE('',*,*,#1098,.F.); +#1417=ORIENTED_EDGE('',*,*,#1039,.F.); +#1418=ORIENTED_EDGE('',*,*,#1098,.T.); +#1419=ORIENTED_EDGE('',*,*,#1099,.F.); +#1420=ORIENTED_EDGE('',*,*,#1100,.F.); +#1421=ORIENTED_EDGE('',*,*,#1040,.F.); +#1422=ORIENTED_EDGE('',*,*,#1100,.T.); +#1423=ORIENTED_EDGE('',*,*,#1101,.F.); +#1424=ORIENTED_EDGE('',*,*,#1102,.F.); +#1425=ORIENTED_EDGE('',*,*,#1041,.F.); +#1426=ORIENTED_EDGE('',*,*,#1102,.T.); +#1427=ORIENTED_EDGE('',*,*,#1103,.F.); +#1428=ORIENTED_EDGE('',*,*,#1104,.F.); +#1429=ORIENTED_EDGE('',*,*,#1034,.F.); +#1430=ORIENTED_EDGE('',*,*,#1104,.T.); +#1431=ORIENTED_EDGE('',*,*,#1105,.F.); +#1432=ORIENTED_EDGE('',*,*,#1090,.F.); +#1433=ORIENTED_EDGE('',*,*,#1027,.F.); +#1434=ORIENTED_EDGE('',*,*,#1106,.T.); +#1435=ORIENTED_EDGE('',*,*,#1107,.F.); +#1436=ORIENTED_EDGE('',*,*,#1108,.F.); +#1437=ORIENTED_EDGE('',*,*,#1028,.F.); +#1438=ORIENTED_EDGE('',*,*,#1108,.T.); +#1439=ORIENTED_EDGE('',*,*,#1109,.F.); +#1440=ORIENTED_EDGE('',*,*,#1110,.F.); +#1441=ORIENTED_EDGE('',*,*,#1029,.F.); +#1442=ORIENTED_EDGE('',*,*,#1110,.T.); +#1443=ORIENTED_EDGE('',*,*,#1111,.F.); +#1444=ORIENTED_EDGE('',*,*,#1112,.F.); +#1445=ORIENTED_EDGE('',*,*,#1030,.F.); +#1446=ORIENTED_EDGE('',*,*,#1112,.T.); +#1447=ORIENTED_EDGE('',*,*,#1113,.F.); +#1448=ORIENTED_EDGE('',*,*,#1114,.F.); +#1449=ORIENTED_EDGE('',*,*,#1031,.F.); +#1450=ORIENTED_EDGE('',*,*,#1114,.T.); +#1451=ORIENTED_EDGE('',*,*,#1115,.F.); +#1452=ORIENTED_EDGE('',*,*,#1116,.F.); +#1453=ORIENTED_EDGE('',*,*,#1032,.F.); +#1454=ORIENTED_EDGE('',*,*,#1116,.T.); +#1455=ORIENTED_EDGE('',*,*,#1117,.F.); +#1456=ORIENTED_EDGE('',*,*,#1118,.F.); +#1457=ORIENTED_EDGE('',*,*,#1033,.F.); +#1458=ORIENTED_EDGE('',*,*,#1118,.T.); +#1459=ORIENTED_EDGE('',*,*,#1119,.F.); +#1460=ORIENTED_EDGE('',*,*,#1120,.F.); +#1461=ORIENTED_EDGE('',*,*,#1026,.F.); +#1462=ORIENTED_EDGE('',*,*,#1120,.T.); +#1463=ORIENTED_EDGE('',*,*,#1121,.F.); +#1464=ORIENTED_EDGE('',*,*,#1106,.F.); +#1465=ORIENTED_EDGE('',*,*,#1019,.F.); +#1466=ORIENTED_EDGE('',*,*,#1122,.T.); +#1467=ORIENTED_EDGE('',*,*,#1123,.F.); +#1468=ORIENTED_EDGE('',*,*,#1124,.F.); +#1469=ORIENTED_EDGE('',*,*,#1020,.F.); +#1470=ORIENTED_EDGE('',*,*,#1124,.T.); +#1471=ORIENTED_EDGE('',*,*,#1125,.F.); +#1472=ORIENTED_EDGE('',*,*,#1126,.F.); +#1473=ORIENTED_EDGE('',*,*,#1021,.F.); +#1474=ORIENTED_EDGE('',*,*,#1126,.T.); +#1475=ORIENTED_EDGE('',*,*,#1127,.F.); +#1476=ORIENTED_EDGE('',*,*,#1128,.F.); +#1477=ORIENTED_EDGE('',*,*,#1022,.F.); +#1478=ORIENTED_EDGE('',*,*,#1128,.T.); +#1479=ORIENTED_EDGE('',*,*,#1129,.F.); +#1480=ORIENTED_EDGE('',*,*,#1130,.F.); +#1481=ORIENTED_EDGE('',*,*,#1023,.F.); +#1482=ORIENTED_EDGE('',*,*,#1130,.T.); +#1483=ORIENTED_EDGE('',*,*,#1131,.F.); +#1484=ORIENTED_EDGE('',*,*,#1132,.F.); +#1485=ORIENTED_EDGE('',*,*,#1024,.F.); +#1486=ORIENTED_EDGE('',*,*,#1132,.T.); +#1487=ORIENTED_EDGE('',*,*,#1133,.F.); +#1488=ORIENTED_EDGE('',*,*,#1134,.F.); +#1489=ORIENTED_EDGE('',*,*,#1025,.F.); +#1490=ORIENTED_EDGE('',*,*,#1134,.T.); +#1491=ORIENTED_EDGE('',*,*,#1135,.F.); +#1492=ORIENTED_EDGE('',*,*,#1136,.F.); +#1493=ORIENTED_EDGE('',*,*,#1018,.F.); +#1494=ORIENTED_EDGE('',*,*,#1136,.T.); +#1495=ORIENTED_EDGE('',*,*,#1137,.F.); +#1496=ORIENTED_EDGE('',*,*,#1122,.F.); +#1497=ORIENTED_EDGE('',*,*,#1011,.F.); +#1498=ORIENTED_EDGE('',*,*,#1138,.T.); +#1499=ORIENTED_EDGE('',*,*,#1139,.F.); +#1500=ORIENTED_EDGE('',*,*,#1140,.F.); +#1501=ORIENTED_EDGE('',*,*,#1012,.F.); +#1502=ORIENTED_EDGE('',*,*,#1140,.T.); +#1503=ORIENTED_EDGE('',*,*,#1141,.F.); +#1504=ORIENTED_EDGE('',*,*,#1142,.F.); +#1505=ORIENTED_EDGE('',*,*,#1013,.F.); +#1506=ORIENTED_EDGE('',*,*,#1142,.T.); +#1507=ORIENTED_EDGE('',*,*,#1143,.F.); +#1508=ORIENTED_EDGE('',*,*,#1144,.F.); +#1509=ORIENTED_EDGE('',*,*,#1014,.F.); +#1510=ORIENTED_EDGE('',*,*,#1144,.T.); +#1511=ORIENTED_EDGE('',*,*,#1145,.F.); +#1512=ORIENTED_EDGE('',*,*,#1146,.F.); +#1513=ORIENTED_EDGE('',*,*,#1015,.F.); +#1514=ORIENTED_EDGE('',*,*,#1146,.T.); +#1515=ORIENTED_EDGE('',*,*,#1147,.F.); +#1516=ORIENTED_EDGE('',*,*,#1148,.F.); +#1517=ORIENTED_EDGE('',*,*,#1016,.F.); +#1518=ORIENTED_EDGE('',*,*,#1148,.T.); +#1519=ORIENTED_EDGE('',*,*,#1149,.F.); +#1520=ORIENTED_EDGE('',*,*,#1150,.F.); +#1521=ORIENTED_EDGE('',*,*,#1017,.F.); +#1522=ORIENTED_EDGE('',*,*,#1150,.T.); +#1523=ORIENTED_EDGE('',*,*,#1151,.F.); +#1524=ORIENTED_EDGE('',*,*,#1152,.F.); +#1525=ORIENTED_EDGE('',*,*,#1010,.F.); +#1526=ORIENTED_EDGE('',*,*,#1152,.T.); +#1527=ORIENTED_EDGE('',*,*,#1153,.F.); +#1528=ORIENTED_EDGE('',*,*,#1138,.F.); +#1529=ORIENTED_EDGE('',*,*,#1003,.F.); +#1530=ORIENTED_EDGE('',*,*,#1154,.T.); +#1531=ORIENTED_EDGE('',*,*,#1155,.F.); +#1532=ORIENTED_EDGE('',*,*,#1156,.F.); +#1533=ORIENTED_EDGE('',*,*,#1004,.F.); +#1534=ORIENTED_EDGE('',*,*,#1156,.T.); +#1535=ORIENTED_EDGE('',*,*,#1157,.F.); +#1536=ORIENTED_EDGE('',*,*,#1158,.F.); +#1537=ORIENTED_EDGE('',*,*,#1005,.F.); +#1538=ORIENTED_EDGE('',*,*,#1158,.T.); +#1539=ORIENTED_EDGE('',*,*,#1159,.F.); +#1540=ORIENTED_EDGE('',*,*,#1160,.F.); +#1541=ORIENTED_EDGE('',*,*,#1006,.F.); +#1542=ORIENTED_EDGE('',*,*,#1160,.T.); +#1543=ORIENTED_EDGE('',*,*,#1161,.F.); +#1544=ORIENTED_EDGE('',*,*,#1162,.F.); +#1545=ORIENTED_EDGE('',*,*,#1007,.F.); +#1546=ORIENTED_EDGE('',*,*,#1162,.T.); +#1547=ORIENTED_EDGE('',*,*,#1163,.F.); +#1548=ORIENTED_EDGE('',*,*,#1164,.F.); +#1549=ORIENTED_EDGE('',*,*,#1008,.F.); +#1550=ORIENTED_EDGE('',*,*,#1164,.T.); +#1551=ORIENTED_EDGE('',*,*,#1165,.F.); +#1552=ORIENTED_EDGE('',*,*,#1166,.F.); +#1553=ORIENTED_EDGE('',*,*,#1009,.F.); +#1554=ORIENTED_EDGE('',*,*,#1166,.T.); +#1555=ORIENTED_EDGE('',*,*,#1167,.F.); +#1556=ORIENTED_EDGE('',*,*,#1168,.F.); +#1557=ORIENTED_EDGE('',*,*,#1002,.F.); +#1558=ORIENTED_EDGE('',*,*,#1168,.T.); +#1559=ORIENTED_EDGE('',*,*,#1169,.F.); +#1560=ORIENTED_EDGE('',*,*,#1154,.F.); +#1561=ORIENTED_EDGE('',*,*,#995,.F.); +#1562=ORIENTED_EDGE('',*,*,#1170,.T.); +#1563=ORIENTED_EDGE('',*,*,#1171,.F.); +#1564=ORIENTED_EDGE('',*,*,#1172,.F.); +#1565=ORIENTED_EDGE('',*,*,#996,.F.); +#1566=ORIENTED_EDGE('',*,*,#1172,.T.); +#1567=ORIENTED_EDGE('',*,*,#1173,.F.); +#1568=ORIENTED_EDGE('',*,*,#1174,.F.); +#1569=ORIENTED_EDGE('',*,*,#997,.F.); +#1570=ORIENTED_EDGE('',*,*,#1174,.T.); +#1571=ORIENTED_EDGE('',*,*,#1175,.F.); +#1572=ORIENTED_EDGE('',*,*,#1176,.F.); +#1573=ORIENTED_EDGE('',*,*,#998,.F.); +#1574=ORIENTED_EDGE('',*,*,#1176,.T.); +#1575=ORIENTED_EDGE('',*,*,#1177,.F.); +#1576=ORIENTED_EDGE('',*,*,#1178,.F.); +#1577=ORIENTED_EDGE('',*,*,#999,.F.); +#1578=ORIENTED_EDGE('',*,*,#1178,.T.); +#1579=ORIENTED_EDGE('',*,*,#1179,.F.); +#1580=ORIENTED_EDGE('',*,*,#1180,.F.); +#1581=ORIENTED_EDGE('',*,*,#1000,.F.); +#1582=ORIENTED_EDGE('',*,*,#1180,.T.); +#1583=ORIENTED_EDGE('',*,*,#1181,.F.); +#1584=ORIENTED_EDGE('',*,*,#1182,.F.); +#1585=ORIENTED_EDGE('',*,*,#1001,.F.); +#1586=ORIENTED_EDGE('',*,*,#1182,.T.); +#1587=ORIENTED_EDGE('',*,*,#1183,.F.); +#1588=ORIENTED_EDGE('',*,*,#1184,.F.); +#1589=ORIENTED_EDGE('',*,*,#994,.F.); +#1590=ORIENTED_EDGE('',*,*,#1184,.T.); +#1591=ORIENTED_EDGE('',*,*,#1185,.F.); +#1592=ORIENTED_EDGE('',*,*,#1170,.F.); +#1593=ORIENTED_EDGE('',*,*,#987,.F.); +#1594=ORIENTED_EDGE('',*,*,#1186,.T.); +#1595=ORIENTED_EDGE('',*,*,#1187,.F.); +#1596=ORIENTED_EDGE('',*,*,#1188,.F.); +#1597=ORIENTED_EDGE('',*,*,#988,.F.); +#1598=ORIENTED_EDGE('',*,*,#1188,.T.); +#1599=ORIENTED_EDGE('',*,*,#1189,.F.); +#1600=ORIENTED_EDGE('',*,*,#1190,.F.); +#1601=ORIENTED_EDGE('',*,*,#989,.F.); +#1602=ORIENTED_EDGE('',*,*,#1190,.T.); +#1603=ORIENTED_EDGE('',*,*,#1191,.F.); +#1604=ORIENTED_EDGE('',*,*,#1192,.F.); +#1605=ORIENTED_EDGE('',*,*,#990,.F.); +#1606=ORIENTED_EDGE('',*,*,#1192,.T.); +#1607=ORIENTED_EDGE('',*,*,#1193,.F.); +#1608=ORIENTED_EDGE('',*,*,#1194,.F.); +#1609=ORIENTED_EDGE('',*,*,#991,.F.); +#1610=ORIENTED_EDGE('',*,*,#1194,.T.); +#1611=ORIENTED_EDGE('',*,*,#1195,.F.); +#1612=ORIENTED_EDGE('',*,*,#1196,.F.); +#1613=ORIENTED_EDGE('',*,*,#992,.F.); +#1614=ORIENTED_EDGE('',*,*,#1196,.T.); +#1615=ORIENTED_EDGE('',*,*,#1197,.F.); +#1616=ORIENTED_EDGE('',*,*,#1198,.F.); +#1617=ORIENTED_EDGE('',*,*,#993,.F.); +#1618=ORIENTED_EDGE('',*,*,#1198,.T.); +#1619=ORIENTED_EDGE('',*,*,#1199,.F.); +#1620=ORIENTED_EDGE('',*,*,#1200,.F.); +#1621=ORIENTED_EDGE('',*,*,#986,.F.); +#1622=ORIENTED_EDGE('',*,*,#1200,.T.); +#1623=ORIENTED_EDGE('',*,*,#1201,.F.); +#1624=ORIENTED_EDGE('',*,*,#1186,.F.); +#1625=ORIENTED_EDGE('',*,*,#979,.F.); +#1626=ORIENTED_EDGE('',*,*,#1202,.T.); +#1627=ORIENTED_EDGE('',*,*,#1203,.F.); +#1628=ORIENTED_EDGE('',*,*,#1204,.F.); +#1629=ORIENTED_EDGE('',*,*,#980,.F.); +#1630=ORIENTED_EDGE('',*,*,#1204,.T.); +#1631=ORIENTED_EDGE('',*,*,#1205,.F.); +#1632=ORIENTED_EDGE('',*,*,#1206,.F.); +#1633=ORIENTED_EDGE('',*,*,#981,.F.); +#1634=ORIENTED_EDGE('',*,*,#1206,.T.); +#1635=ORIENTED_EDGE('',*,*,#1207,.F.); +#1636=ORIENTED_EDGE('',*,*,#1208,.F.); +#1637=ORIENTED_EDGE('',*,*,#982,.F.); +#1638=ORIENTED_EDGE('',*,*,#1208,.T.); +#1639=ORIENTED_EDGE('',*,*,#1209,.F.); +#1640=ORIENTED_EDGE('',*,*,#1210,.F.); +#1641=ORIENTED_EDGE('',*,*,#983,.F.); +#1642=ORIENTED_EDGE('',*,*,#1210,.T.); +#1643=ORIENTED_EDGE('',*,*,#1211,.F.); +#1644=ORIENTED_EDGE('',*,*,#1212,.F.); +#1645=ORIENTED_EDGE('',*,*,#984,.F.); +#1646=ORIENTED_EDGE('',*,*,#1212,.T.); +#1647=ORIENTED_EDGE('',*,*,#1213,.F.); +#1648=ORIENTED_EDGE('',*,*,#1214,.F.); +#1649=ORIENTED_EDGE('',*,*,#985,.F.); +#1650=ORIENTED_EDGE('',*,*,#1214,.T.); +#1651=ORIENTED_EDGE('',*,*,#1215,.F.); +#1652=ORIENTED_EDGE('',*,*,#1216,.F.); +#1653=ORIENTED_EDGE('',*,*,#978,.F.); +#1654=ORIENTED_EDGE('',*,*,#1216,.T.); +#1655=ORIENTED_EDGE('',*,*,#1217,.F.); +#1656=ORIENTED_EDGE('',*,*,#1202,.F.); +#1657=ORIENTED_EDGE('',*,*,#975,.F.); +#1658=ORIENTED_EDGE('',*,*,#1218,.T.); +#1659=ORIENTED_EDGE('',*,*,#1219,.F.); +#1660=ORIENTED_EDGE('',*,*,#1220,.F.); +#1661=ORIENTED_EDGE('',*,*,#976,.F.); +#1662=ORIENTED_EDGE('',*,*,#1220,.T.); +#1663=ORIENTED_EDGE('',*,*,#1221,.F.); +#1664=ORIENTED_EDGE('',*,*,#1222,.F.); +#1665=ORIENTED_EDGE('',*,*,#977,.F.); +#1666=ORIENTED_EDGE('',*,*,#1222,.T.); +#1667=ORIENTED_EDGE('',*,*,#1223,.F.); +#1668=ORIENTED_EDGE('',*,*,#1224,.F.); +#1669=ORIENTED_EDGE('',*,*,#974,.F.); +#1670=ORIENTED_EDGE('',*,*,#1224,.T.); +#1671=ORIENTED_EDGE('',*,*,#1225,.F.); +#1672=ORIENTED_EDGE('',*,*,#1218,.F.); +#1673=ORIENTED_EDGE('',*,*,#972,.F.); +#1674=ORIENTED_EDGE('',*,*,#1226,.T.); +#1675=ORIENTED_EDGE('',*,*,#1227,.F.); +#1676=ORIENTED_EDGE('',*,*,#1228,.F.); +#1677=ORIENTED_EDGE('',*,*,#973,.F.); +#1678=ORIENTED_EDGE('',*,*,#1228,.T.); +#1679=ORIENTED_EDGE('',*,*,#1229,.F.); +#1680=ORIENTED_EDGE('',*,*,#962,.F.); +#1681=ORIENTED_EDGE('',*,*,#958,.F.); +#1682=ORIENTED_EDGE('',*,*,#1230,.F.); +#1683=ORIENTED_EDGE('',*,*,#1056,.F.); +#1684=ORIENTED_EDGE('',*,*,#964,.F.); +#1685=ORIENTED_EDGE('',*,*,#1060,.F.); +#1686=ORIENTED_EDGE('',*,*,#1231,.F.); +#1687=ORIENTED_EDGE('',*,*,#1063,.F.); +#1688=ORIENTED_EDGE('',*,*,#968,.F.); +#1689=ORIENTED_EDGE('',*,*,#971,.F.); +#1690=ORIENTED_EDGE('',*,*,#1065,.T.); +#1691=ORIENTED_EDGE('',*,*,#1232,.F.); +#1692=ORIENTED_EDGE('',*,*,#1226,.F.); +#1693=ORIENTED_EDGE('',*,*,#957,.F.); +#1694=ORIENTED_EDGE('',*,*,#963,.T.); +#1695=ORIENTED_EDGE('',*,*,#1229,.T.); +#1696=ORIENTED_EDGE('',*,*,#1227,.T.); +#1697=ORIENTED_EDGE('',*,*,#1232,.T.); +#1698=ORIENTED_EDGE('',*,*,#1064,.T.); +#1699=ORIENTED_EDGE('',*,*,#1061,.F.); +#1700=ORIENTED_EDGE('',*,*,#1231,.T.); +#1701=ORIENTED_EDGE('',*,*,#1059,.F.); +#1702=ORIENTED_EDGE('',*,*,#1057,.T.); +#1703=ORIENTED_EDGE('',*,*,#1054,.F.); +#1704=ORIENTED_EDGE('',*,*,#1230,.T.); +#1705=ORIENTED_EDGE('',*,*,#1225,.T.); +#1706=ORIENTED_EDGE('',*,*,#1223,.T.); +#1707=ORIENTED_EDGE('',*,*,#1221,.T.); +#1708=ORIENTED_EDGE('',*,*,#1219,.T.); +#1709=ORIENTED_EDGE('',*,*,#1217,.T.); +#1710=ORIENTED_EDGE('',*,*,#1215,.T.); +#1711=ORIENTED_EDGE('',*,*,#1213,.T.); +#1712=ORIENTED_EDGE('',*,*,#1211,.T.); +#1713=ORIENTED_EDGE('',*,*,#1209,.T.); +#1714=ORIENTED_EDGE('',*,*,#1207,.T.); +#1715=ORIENTED_EDGE('',*,*,#1205,.T.); +#1716=ORIENTED_EDGE('',*,*,#1203,.T.); +#1717=ORIENTED_EDGE('',*,*,#1201,.T.); +#1718=ORIENTED_EDGE('',*,*,#1199,.T.); +#1719=ORIENTED_EDGE('',*,*,#1197,.T.); +#1720=ORIENTED_EDGE('',*,*,#1195,.T.); +#1721=ORIENTED_EDGE('',*,*,#1193,.T.); +#1722=ORIENTED_EDGE('',*,*,#1191,.T.); +#1723=ORIENTED_EDGE('',*,*,#1189,.T.); +#1724=ORIENTED_EDGE('',*,*,#1187,.T.); +#1725=ORIENTED_EDGE('',*,*,#1185,.T.); +#1726=ORIENTED_EDGE('',*,*,#1183,.T.); +#1727=ORIENTED_EDGE('',*,*,#1181,.T.); +#1728=ORIENTED_EDGE('',*,*,#1179,.T.); +#1729=ORIENTED_EDGE('',*,*,#1177,.T.); +#1730=ORIENTED_EDGE('',*,*,#1175,.T.); +#1731=ORIENTED_EDGE('',*,*,#1173,.T.); +#1732=ORIENTED_EDGE('',*,*,#1171,.T.); +#1733=ORIENTED_EDGE('',*,*,#1169,.T.); +#1734=ORIENTED_EDGE('',*,*,#1167,.T.); +#1735=ORIENTED_EDGE('',*,*,#1165,.T.); +#1736=ORIENTED_EDGE('',*,*,#1163,.T.); +#1737=ORIENTED_EDGE('',*,*,#1161,.T.); +#1738=ORIENTED_EDGE('',*,*,#1159,.T.); +#1739=ORIENTED_EDGE('',*,*,#1157,.T.); +#1740=ORIENTED_EDGE('',*,*,#1155,.T.); +#1741=ORIENTED_EDGE('',*,*,#1153,.T.); +#1742=ORIENTED_EDGE('',*,*,#1151,.T.); +#1743=ORIENTED_EDGE('',*,*,#1149,.T.); +#1744=ORIENTED_EDGE('',*,*,#1147,.T.); +#1745=ORIENTED_EDGE('',*,*,#1145,.T.); +#1746=ORIENTED_EDGE('',*,*,#1143,.T.); +#1747=ORIENTED_EDGE('',*,*,#1141,.T.); +#1748=ORIENTED_EDGE('',*,*,#1139,.T.); +#1749=ORIENTED_EDGE('',*,*,#1137,.T.); +#1750=ORIENTED_EDGE('',*,*,#1135,.T.); +#1751=ORIENTED_EDGE('',*,*,#1133,.T.); +#1752=ORIENTED_EDGE('',*,*,#1131,.T.); +#1753=ORIENTED_EDGE('',*,*,#1129,.T.); +#1754=ORIENTED_EDGE('',*,*,#1127,.T.); +#1755=ORIENTED_EDGE('',*,*,#1125,.T.); +#1756=ORIENTED_EDGE('',*,*,#1123,.T.); +#1757=ORIENTED_EDGE('',*,*,#1121,.T.); +#1758=ORIENTED_EDGE('',*,*,#1119,.T.); +#1759=ORIENTED_EDGE('',*,*,#1117,.T.); +#1760=ORIENTED_EDGE('',*,*,#1115,.T.); +#1761=ORIENTED_EDGE('',*,*,#1113,.T.); +#1762=ORIENTED_EDGE('',*,*,#1111,.T.); +#1763=ORIENTED_EDGE('',*,*,#1109,.T.); +#1764=ORIENTED_EDGE('',*,*,#1107,.T.); +#1765=ORIENTED_EDGE('',*,*,#1105,.T.); +#1766=ORIENTED_EDGE('',*,*,#1103,.T.); +#1767=ORIENTED_EDGE('',*,*,#1101,.T.); +#1768=ORIENTED_EDGE('',*,*,#1099,.T.); +#1769=ORIENTED_EDGE('',*,*,#1097,.T.); +#1770=ORIENTED_EDGE('',*,*,#1095,.T.); +#1771=ORIENTED_EDGE('',*,*,#1093,.T.); +#1772=ORIENTED_EDGE('',*,*,#1091,.T.); +#1773=ORIENTED_EDGE('',*,*,#1089,.T.); +#1774=ORIENTED_EDGE('',*,*,#1087,.T.); +#1775=ORIENTED_EDGE('',*,*,#1085,.T.); +#1776=ORIENTED_EDGE('',*,*,#1083,.T.); +#1777=ORIENTED_EDGE('',*,*,#1081,.T.); +#1778=ORIENTED_EDGE('',*,*,#1079,.T.); +#1779=ORIENTED_EDGE('',*,*,#1077,.T.); +#1780=ORIENTED_EDGE('',*,*,#1075,.T.); +#1781=ORIENTED_EDGE('',*,*,#1072,.T.); +#1782=ORIENTED_EDGE('',*,*,#1070,.T.); +#1783=ORIENTED_EDGE('',*,*,#1068,.T.); +#1784=ORIENTED_EDGE('',*,*,#1066,.T.); +#1785=CYLINDRICAL_SURFACE('',#1925,5.); +#1786=CYLINDRICAL_SURFACE('',#1973,5.); +#1787=CYLINDRICAL_SURFACE('',#1976,5.); +#1788=CYLINDRICAL_SURFACE('',#1978,5.); +#1789=CYLINDRICAL_SURFACE('',#1981,1.45); +#1790=CYLINDRICAL_SURFACE('',#1983,1.45); +#1791=CYLINDRICAL_SURFACE('',#1985,1.45); +#1792=CYLINDRICAL_SURFACE('',#1987,1.45); +#1793=CYLINDRICAL_SURFACE('',#1989,0.499999999999998); +#1794=CYLINDRICAL_SURFACE('',#1992,0.499999999999998); +#1795=CYLINDRICAL_SURFACE('',#1995,0.499999999999998); +#1796=CYLINDRICAL_SURFACE('',#1998,0.499999999999989); +#1797=CYLINDRICAL_SURFACE('',#2001,0.500000000000003); +#1798=CYLINDRICAL_SURFACE('',#2004,0.499999999999998); +#1799=CYLINDRICAL_SURFACE('',#2007,0.499999999999998); +#1800=CYLINDRICAL_SURFACE('',#2010,0.499999999999998); +#1801=CYLINDRICAL_SURFACE('',#2013,0.499999999999998); +#1802=CYLINDRICAL_SURFACE('',#2016,0.5); +#1803=CYLINDRICAL_SURFACE('',#2019,0.499999999999998); +#1804=CYLINDRICAL_SURFACE('',#2022,0.499999999999998); +#1805=CYLINDRICAL_SURFACE('',#2025,0.500000000000003); +#1806=CYLINDRICAL_SURFACE('',#2028,0.499999999999998); +#1807=CYLINDRICAL_SURFACE('',#2031,0.499999999999998); +#1808=CYLINDRICAL_SURFACE('',#2034,0.499999999999998); +#1809=CYLINDRICAL_SURFACE('',#2037,0.500000000000003); +#1810=CYLINDRICAL_SURFACE('',#2040,0.499999999999998); +#1811=CYLINDRICAL_SURFACE('',#2043,0.499999999999998); +#1812=CYLINDRICAL_SURFACE('',#2046,0.499999999999989); +#1813=CYLINDRICAL_SURFACE('',#2049,0.500000000000003); +#1814=CYLINDRICAL_SURFACE('',#2052,0.5); +#1815=CYLINDRICAL_SURFACE('',#2055,0.499999999999998); +#1816=CYLINDRICAL_SURFACE('',#2058,0.499999999999998); +#1817=CYLINDRICAL_SURFACE('',#2061,0.499999999999998); +#1818=CYLINDRICAL_SURFACE('',#2064,0.499999999999998); +#1819=CYLINDRICAL_SURFACE('',#2067,0.499999999999998); +#1820=CYLINDRICAL_SURFACE('',#2070,0.499999999999998); +#1821=CYLINDRICAL_SURFACE('',#2073,0.499999999999998); +#1822=CYLINDRICAL_SURFACE('',#2076,0.499999999999998); +#1823=CYLINDRICAL_SURFACE('',#2079,0.499999999999998); +#1824=CYLINDRICAL_SURFACE('',#2082,0.499999999999998); +#1825=CYLINDRICAL_SURFACE('',#2085,0.499999999999998); +#1826=CYLINDRICAL_SURFACE('',#2088,0.499999999999998); +#1827=CYLINDRICAL_SURFACE('',#2091,0.499999999999998); +#1828=CYLINDRICAL_SURFACE('',#2094,0.499999999999989); +#1829=ADVANCED_FACE('',(#93),#1785,.T.); +#1830=ADVANCED_FACE('',(#94),#43,.T.); +#1831=ADVANCED_FACE('',(#95,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25, +#26,#27,#28),#44,.T.); +#1832=ADVANCED_FACE('',(#96),#1786,.T.); +#1833=ADVANCED_FACE('',(#97),#45,.T.); +#1834=ADVANCED_FACE('',(#98),#1787,.T.); +#1835=ADVANCED_FACE('',(#99),#1788,.T.); +#1836=ADVANCED_FACE('',(#100),#46,.T.); +#1837=ADVANCED_FACE('',(#101),#1789,.F.); +#1838=ADVANCED_FACE('',(#102),#1790,.F.); +#1839=ADVANCED_FACE('',(#103),#1791,.F.); +#1840=ADVANCED_FACE('',(#104),#1792,.F.); +#1841=ADVANCED_FACE('',(#105),#1793,.F.); +#1842=ADVANCED_FACE('',(#106),#47,.T.); +#1843=ADVANCED_FACE('',(#107),#1794,.F.); +#1844=ADVANCED_FACE('',(#108),#48,.T.); +#1845=ADVANCED_FACE('',(#109),#1795,.F.); +#1846=ADVANCED_FACE('',(#110),#49,.T.); +#1847=ADVANCED_FACE('',(#111),#1796,.F.); +#1848=ADVANCED_FACE('',(#112),#50,.T.); +#1849=ADVANCED_FACE('',(#113),#1797,.F.); +#1850=ADVANCED_FACE('',(#114),#51,.T.); +#1851=ADVANCED_FACE('',(#115),#1798,.F.); +#1852=ADVANCED_FACE('',(#116),#52,.T.); +#1853=ADVANCED_FACE('',(#117),#1799,.F.); +#1854=ADVANCED_FACE('',(#118),#53,.T.); +#1855=ADVANCED_FACE('',(#119),#1800,.F.); +#1856=ADVANCED_FACE('',(#120),#54,.T.); +#1857=ADVANCED_FACE('',(#121),#1801,.F.); +#1858=ADVANCED_FACE('',(#122),#55,.T.); +#1859=ADVANCED_FACE('',(#123),#1802,.F.); +#1860=ADVANCED_FACE('',(#124),#56,.T.); +#1861=ADVANCED_FACE('',(#125),#1803,.F.); +#1862=ADVANCED_FACE('',(#126),#57,.T.); +#1863=ADVANCED_FACE('',(#127),#1804,.F.); +#1864=ADVANCED_FACE('',(#128),#58,.T.); +#1865=ADVANCED_FACE('',(#129),#1805,.F.); +#1866=ADVANCED_FACE('',(#130),#59,.T.); +#1867=ADVANCED_FACE('',(#131),#1806,.F.); +#1868=ADVANCED_FACE('',(#132),#60,.T.); +#1869=ADVANCED_FACE('',(#133),#1807,.F.); +#1870=ADVANCED_FACE('',(#134),#61,.T.); +#1871=ADVANCED_FACE('',(#135),#1808,.F.); +#1872=ADVANCED_FACE('',(#136),#62,.T.); +#1873=ADVANCED_FACE('',(#137),#1809,.F.); +#1874=ADVANCED_FACE('',(#138),#63,.T.); +#1875=ADVANCED_FACE('',(#139),#1810,.F.); +#1876=ADVANCED_FACE('',(#140),#64,.T.); +#1877=ADVANCED_FACE('',(#141),#1811,.F.); +#1878=ADVANCED_FACE('',(#142),#65,.T.); +#1879=ADVANCED_FACE('',(#143),#1812,.F.); +#1880=ADVANCED_FACE('',(#144),#66,.T.); +#1881=ADVANCED_FACE('',(#145),#1813,.F.); +#1882=ADVANCED_FACE('',(#146),#67,.T.); +#1883=ADVANCED_FACE('',(#147),#1814,.F.); +#1884=ADVANCED_FACE('',(#148),#68,.T.); +#1885=ADVANCED_FACE('',(#149),#1815,.F.); +#1886=ADVANCED_FACE('',(#150),#69,.T.); +#1887=ADVANCED_FACE('',(#151),#1816,.F.); +#1888=ADVANCED_FACE('',(#152),#70,.T.); +#1889=ADVANCED_FACE('',(#153),#1817,.F.); +#1890=ADVANCED_FACE('',(#154),#71,.T.); +#1891=ADVANCED_FACE('',(#155),#1818,.F.); +#1892=ADVANCED_FACE('',(#156),#72,.T.); +#1893=ADVANCED_FACE('',(#157),#1819,.F.); +#1894=ADVANCED_FACE('',(#158),#73,.T.); +#1895=ADVANCED_FACE('',(#159),#1820,.F.); +#1896=ADVANCED_FACE('',(#160),#74,.T.); +#1897=ADVANCED_FACE('',(#161),#1821,.F.); +#1898=ADVANCED_FACE('',(#162),#75,.T.); +#1899=ADVANCED_FACE('',(#163),#1822,.F.); +#1900=ADVANCED_FACE('',(#164),#76,.T.); +#1901=ADVANCED_FACE('',(#165),#1823,.F.); +#1902=ADVANCED_FACE('',(#166),#77,.T.); +#1903=ADVANCED_FACE('',(#167),#1824,.F.); +#1904=ADVANCED_FACE('',(#168),#78,.T.); +#1905=ADVANCED_FACE('',(#169),#1825,.F.); +#1906=ADVANCED_FACE('',(#170),#79,.T.); +#1907=ADVANCED_FACE('',(#171),#1826,.F.); +#1908=ADVANCED_FACE('',(#172),#80,.T.); +#1909=ADVANCED_FACE('',(#173),#1827,.F.); +#1910=ADVANCED_FACE('',(#174),#81,.T.); +#1911=ADVANCED_FACE('',(#175),#1828,.F.); +#1912=ADVANCED_FACE('',(#176),#82,.T.); +#1913=ADVANCED_FACE('',(#177),#83,.T.); +#1914=ADVANCED_FACE('',(#178),#84,.T.); +#1915=ADVANCED_FACE('',(#179),#85,.T.); +#1916=ADVANCED_FACE('',(#180),#86,.T.); +#1917=ADVANCED_FACE('',(#181),#87,.T.); +#1918=ADVANCED_FACE('',(#182),#88,.T.); +#1919=ADVANCED_FACE('',(#183),#89,.T.); +#1920=ADVANCED_FACE('',(#184),#90,.T.); +#1921=ADVANCED_FACE('',(#185),#91,.T.); +#1922=ADVANCED_FACE('',(#186,#29,#30,#31,#32,#33,#34,#35,#36,#37,#38,#39, +#40,#41,#42),#92,.F.); +#1923=CLOSED_SHELL('',(#1829,#1830,#1831,#1832,#1833,#1834,#1835,#1836, +#1837,#1838,#1839,#1840,#1841,#1842,#1843,#1844,#1845,#1846,#1847,#1848, +#1849,#1850,#1851,#1852,#1853,#1854,#1855,#1856,#1857,#1858,#1859,#1860, +#1861,#1862,#1863,#1864,#1865,#1866,#1867,#1868,#1869,#1870,#1871,#1872, +#1873,#1874,#1875,#1876,#1877,#1878,#1879,#1880,#1881,#1882,#1883,#1884, +#1885,#1886,#1887,#1888,#1889,#1890,#1891,#1892,#1893,#1894,#1895,#1896, +#1897,#1898,#1899,#1900,#1901,#1902,#1903,#1904,#1905,#1906,#1907,#1908, +#1909,#1910,#1911,#1912,#1913,#1914,#1915,#1916,#1917,#1918,#1919,#1920, +#1921,#1922)); +#1924=AXIS2_PLACEMENT_3D('',#2661,#2107,#2108); +#1925=AXIS2_PLACEMENT_3D('',#2662,#2109,#2110); +#1926=AXIS2_PLACEMENT_3D('',#2665,#2111,#2112); +#1927=AXIS2_PLACEMENT_3D('',#2669,#2114,#2115); +#1928=AXIS2_PLACEMENT_3D('',#2671,#2117,#2118); +#1929=AXIS2_PLACEMENT_3D('',#2677,#2122,#2123); +#1930=AXIS2_PLACEMENT_3D('',#2681,#2125,#2126); +#1931=AXIS2_PLACEMENT_3D('',#2685,#2128,#2129); +#1932=AXIS2_PLACEMENT_3D('',#2689,#2131,#2132); +#1933=AXIS2_PLACEMENT_3D('',#2709,#2142,#2143); +#1934=AXIS2_PLACEMENT_3D('',#2713,#2145,#2146); +#1935=AXIS2_PLACEMENT_3D('',#2717,#2148,#2149); +#1936=AXIS2_PLACEMENT_3D('',#2720,#2151,#2152); +#1937=AXIS2_PLACEMENT_3D('',#2725,#2154,#2155); +#1938=AXIS2_PLACEMENT_3D('',#2729,#2157,#2158); +#1939=AXIS2_PLACEMENT_3D('',#2733,#2160,#2161); +#1940=AXIS2_PLACEMENT_3D('',#2736,#2163,#2164); +#1941=AXIS2_PLACEMENT_3D('',#2741,#2166,#2167); +#1942=AXIS2_PLACEMENT_3D('',#2745,#2169,#2170); +#1943=AXIS2_PLACEMENT_3D('',#2749,#2172,#2173); +#1944=AXIS2_PLACEMENT_3D('',#2752,#2175,#2176); +#1945=AXIS2_PLACEMENT_3D('',#2757,#2178,#2179); +#1946=AXIS2_PLACEMENT_3D('',#2761,#2181,#2182); +#1947=AXIS2_PLACEMENT_3D('',#2765,#2184,#2185); +#1948=AXIS2_PLACEMENT_3D('',#2768,#2187,#2188); +#1949=AXIS2_PLACEMENT_3D('',#2773,#2190,#2191); +#1950=AXIS2_PLACEMENT_3D('',#2777,#2193,#2194); +#1951=AXIS2_PLACEMENT_3D('',#2781,#2196,#2197); +#1952=AXIS2_PLACEMENT_3D('',#2784,#2199,#2200); +#1953=AXIS2_PLACEMENT_3D('',#2789,#2202,#2203); +#1954=AXIS2_PLACEMENT_3D('',#2793,#2205,#2206); +#1955=AXIS2_PLACEMENT_3D('',#2797,#2208,#2209); +#1956=AXIS2_PLACEMENT_3D('',#2800,#2211,#2212); +#1957=AXIS2_PLACEMENT_3D('',#2805,#2214,#2215); +#1958=AXIS2_PLACEMENT_3D('',#2809,#2217,#2218); +#1959=AXIS2_PLACEMENT_3D('',#2813,#2220,#2221); +#1960=AXIS2_PLACEMENT_3D('',#2816,#2223,#2224); +#1961=AXIS2_PLACEMENT_3D('',#2821,#2226,#2227); +#1962=AXIS2_PLACEMENT_3D('',#2825,#2229,#2230); +#1963=AXIS2_PLACEMENT_3D('',#2829,#2232,#2233); +#1964=AXIS2_PLACEMENT_3D('',#2832,#2235,#2236); +#1965=AXIS2_PLACEMENT_3D('',#2837,#2238,#2239); +#1966=AXIS2_PLACEMENT_3D('',#2841,#2241,#2242); +#1967=AXIS2_PLACEMENT_3D('',#2845,#2244,#2245); +#1968=AXIS2_PLACEMENT_3D('',#2848,#2247,#2248); +#1969=AXIS2_PLACEMENT_3D('',#2850,#2249,#2250); +#1970=AXIS2_PLACEMENT_3D('',#2852,#2251,#2252); +#1971=AXIS2_PLACEMENT_3D('',#2854,#2253,#2254); +#1972=AXIS2_PLACEMENT_3D('',#2856,#2255,#2256); +#1973=AXIS2_PLACEMENT_3D('',#2857,#2257,#2258); +#1974=AXIS2_PLACEMENT_3D('',#2860,#2259,#2260); +#1975=AXIS2_PLACEMENT_3D('',#2863,#2263,#2264); +#1976=AXIS2_PLACEMENT_3D('',#2867,#2267,#2268); +#1977=AXIS2_PLACEMENT_3D('',#2869,#2269,#2270); +#1978=AXIS2_PLACEMENT_3D('',#2871,#2272,#2273); +#1979=AXIS2_PLACEMENT_3D('',#2874,#2274,#2275); +#1980=AXIS2_PLACEMENT_3D('',#2877,#2278,#2279); +#1981=AXIS2_PLACEMENT_3D('',#2881,#2282,#2283); +#1982=AXIS2_PLACEMENT_3D('',#2883,#2284,#2285); +#1983=AXIS2_PLACEMENT_3D('',#2885,#2287,#2288); +#1984=AXIS2_PLACEMENT_3D('',#2887,#2289,#2290); +#1985=AXIS2_PLACEMENT_3D('',#2889,#2292,#2293); +#1986=AXIS2_PLACEMENT_3D('',#2891,#2294,#2295); +#1987=AXIS2_PLACEMENT_3D('',#2893,#2297,#2298); +#1988=AXIS2_PLACEMENT_3D('',#2895,#2299,#2300); +#1989=AXIS2_PLACEMENT_3D('',#2897,#2302,#2303); +#1990=AXIS2_PLACEMENT_3D('',#2901,#2305,#2306); +#1991=AXIS2_PLACEMENT_3D('',#2903,#2308,#2309); +#1992=AXIS2_PLACEMENT_3D('',#2907,#2312,#2313); +#1993=AXIS2_PLACEMENT_3D('',#2909,#2314,#2315); +#1994=AXIS2_PLACEMENT_3D('',#2911,#2317,#2318); +#1995=AXIS2_PLACEMENT_3D('',#2915,#2321,#2322); +#1996=AXIS2_PLACEMENT_3D('',#2917,#2323,#2324); +#1997=AXIS2_PLACEMENT_3D('',#2919,#2326,#2327); +#1998=AXIS2_PLACEMENT_3D('',#2923,#2330,#2331); +#1999=AXIS2_PLACEMENT_3D('',#2925,#2332,#2333); +#2000=AXIS2_PLACEMENT_3D('',#2927,#2335,#2336); +#2001=AXIS2_PLACEMENT_3D('',#2929,#2338,#2339); +#2002=AXIS2_PLACEMENT_3D('',#2933,#2341,#2342); +#2003=AXIS2_PLACEMENT_3D('',#2935,#2344,#2345); +#2004=AXIS2_PLACEMENT_3D('',#2939,#2348,#2349); +#2005=AXIS2_PLACEMENT_3D('',#2941,#2350,#2351); +#2006=AXIS2_PLACEMENT_3D('',#2943,#2353,#2354); +#2007=AXIS2_PLACEMENT_3D('',#2947,#2357,#2358); +#2008=AXIS2_PLACEMENT_3D('',#2949,#2359,#2360); +#2009=AXIS2_PLACEMENT_3D('',#2951,#2362,#2363); +#2010=AXIS2_PLACEMENT_3D('',#2955,#2366,#2367); +#2011=AXIS2_PLACEMENT_3D('',#2957,#2368,#2369); +#2012=AXIS2_PLACEMENT_3D('',#2959,#2371,#2372); +#2013=AXIS2_PLACEMENT_3D('',#2961,#2374,#2375); +#2014=AXIS2_PLACEMENT_3D('',#2965,#2377,#2378); +#2015=AXIS2_PLACEMENT_3D('',#2967,#2380,#2381); +#2016=AXIS2_PLACEMENT_3D('',#2971,#2384,#2385); +#2017=AXIS2_PLACEMENT_3D('',#2973,#2386,#2387); +#2018=AXIS2_PLACEMENT_3D('',#2975,#2389,#2390); +#2019=AXIS2_PLACEMENT_3D('',#2979,#2393,#2394); +#2020=AXIS2_PLACEMENT_3D('',#2981,#2395,#2396); +#2021=AXIS2_PLACEMENT_3D('',#2983,#2398,#2399); +#2022=AXIS2_PLACEMENT_3D('',#2987,#2402,#2403); +#2023=AXIS2_PLACEMENT_3D('',#2989,#2404,#2405); +#2024=AXIS2_PLACEMENT_3D('',#2991,#2407,#2408); +#2025=AXIS2_PLACEMENT_3D('',#2993,#2410,#2411); +#2026=AXIS2_PLACEMENT_3D('',#2997,#2413,#2414); +#2027=AXIS2_PLACEMENT_3D('',#2999,#2416,#2417); +#2028=AXIS2_PLACEMENT_3D('',#3003,#2420,#2421); +#2029=AXIS2_PLACEMENT_3D('',#3005,#2422,#2423); +#2030=AXIS2_PLACEMENT_3D('',#3007,#2425,#2426); +#2031=AXIS2_PLACEMENT_3D('',#3011,#2429,#2430); +#2032=AXIS2_PLACEMENT_3D('',#3013,#2431,#2432); +#2033=AXIS2_PLACEMENT_3D('',#3015,#2434,#2435); +#2034=AXIS2_PLACEMENT_3D('',#3019,#2438,#2439); +#2035=AXIS2_PLACEMENT_3D('',#3021,#2440,#2441); +#2036=AXIS2_PLACEMENT_3D('',#3023,#2443,#2444); +#2037=AXIS2_PLACEMENT_3D('',#3025,#2446,#2447); +#2038=AXIS2_PLACEMENT_3D('',#3029,#2449,#2450); +#2039=AXIS2_PLACEMENT_3D('',#3031,#2452,#2453); +#2040=AXIS2_PLACEMENT_3D('',#3035,#2456,#2457); +#2041=AXIS2_PLACEMENT_3D('',#3037,#2458,#2459); +#2042=AXIS2_PLACEMENT_3D('',#3039,#2461,#2462); +#2043=AXIS2_PLACEMENT_3D('',#3043,#2465,#2466); +#2044=AXIS2_PLACEMENT_3D('',#3045,#2467,#2468); +#2045=AXIS2_PLACEMENT_3D('',#3047,#2470,#2471); +#2046=AXIS2_PLACEMENT_3D('',#3051,#2474,#2475); +#2047=AXIS2_PLACEMENT_3D('',#3053,#2476,#2477); +#2048=AXIS2_PLACEMENT_3D('',#3055,#2479,#2480); +#2049=AXIS2_PLACEMENT_3D('',#3057,#2482,#2483); +#2050=AXIS2_PLACEMENT_3D('',#3061,#2485,#2486); +#2051=AXIS2_PLACEMENT_3D('',#3063,#2488,#2489); +#2052=AXIS2_PLACEMENT_3D('',#3067,#2492,#2493); +#2053=AXIS2_PLACEMENT_3D('',#3069,#2494,#2495); +#2054=AXIS2_PLACEMENT_3D('',#3071,#2497,#2498); +#2055=AXIS2_PLACEMENT_3D('',#3075,#2501,#2502); +#2056=AXIS2_PLACEMENT_3D('',#3077,#2503,#2504); +#2057=AXIS2_PLACEMENT_3D('',#3079,#2506,#2507); +#2058=AXIS2_PLACEMENT_3D('',#3083,#2510,#2511); +#2059=AXIS2_PLACEMENT_3D('',#3085,#2512,#2513); +#2060=AXIS2_PLACEMENT_3D('',#3087,#2515,#2516); +#2061=AXIS2_PLACEMENT_3D('',#3089,#2518,#2519); +#2062=AXIS2_PLACEMENT_3D('',#3093,#2521,#2522); +#2063=AXIS2_PLACEMENT_3D('',#3095,#2524,#2525); +#2064=AXIS2_PLACEMENT_3D('',#3099,#2528,#2529); +#2065=AXIS2_PLACEMENT_3D('',#3101,#2530,#2531); +#2066=AXIS2_PLACEMENT_3D('',#3103,#2533,#2534); +#2067=AXIS2_PLACEMENT_3D('',#3107,#2537,#2538); +#2068=AXIS2_PLACEMENT_3D('',#3109,#2539,#2540); +#2069=AXIS2_PLACEMENT_3D('',#3111,#2542,#2543); +#2070=AXIS2_PLACEMENT_3D('',#3115,#2546,#2547); +#2071=AXIS2_PLACEMENT_3D('',#3117,#2548,#2549); +#2072=AXIS2_PLACEMENT_3D('',#3119,#2551,#2552); +#2073=AXIS2_PLACEMENT_3D('',#3121,#2554,#2555); +#2074=AXIS2_PLACEMENT_3D('',#3125,#2557,#2558); +#2075=AXIS2_PLACEMENT_3D('',#3127,#2560,#2561); +#2076=AXIS2_PLACEMENT_3D('',#3131,#2564,#2565); +#2077=AXIS2_PLACEMENT_3D('',#3133,#2566,#2567); +#2078=AXIS2_PLACEMENT_3D('',#3135,#2569,#2570); +#2079=AXIS2_PLACEMENT_3D('',#3139,#2573,#2574); +#2080=AXIS2_PLACEMENT_3D('',#3141,#2575,#2576); +#2081=AXIS2_PLACEMENT_3D('',#3143,#2578,#2579); +#2082=AXIS2_PLACEMENT_3D('',#3147,#2582,#2583); +#2083=AXIS2_PLACEMENT_3D('',#3149,#2584,#2585); +#2084=AXIS2_PLACEMENT_3D('',#3151,#2587,#2588); +#2085=AXIS2_PLACEMENT_3D('',#3153,#2590,#2591); +#2086=AXIS2_PLACEMENT_3D('',#3157,#2593,#2594); +#2087=AXIS2_PLACEMENT_3D('',#3159,#2596,#2597); +#2088=AXIS2_PLACEMENT_3D('',#3163,#2600,#2601); +#2089=AXIS2_PLACEMENT_3D('',#3165,#2602,#2603); +#2090=AXIS2_PLACEMENT_3D('',#3167,#2605,#2606); +#2091=AXIS2_PLACEMENT_3D('',#3171,#2609,#2610); +#2092=AXIS2_PLACEMENT_3D('',#3173,#2611,#2612); +#2093=AXIS2_PLACEMENT_3D('',#3175,#2614,#2615); +#2094=AXIS2_PLACEMENT_3D('',#3179,#2618,#2619); +#2095=AXIS2_PLACEMENT_3D('',#3181,#2620,#2621); +#2096=AXIS2_PLACEMENT_3D('',#3183,#2623,#2624); +#2097=AXIS2_PLACEMENT_3D('',#3185,#2626,#2627); +#2098=AXIS2_PLACEMENT_3D('',#3191,#2631,#2632); +#2099=AXIS2_PLACEMENT_3D('',#3195,#2635,#2636); +#2100=AXIS2_PLACEMENT_3D('',#3199,#2639,#2640); +#2101=AXIS2_PLACEMENT_3D('',#3201,#2642,#2643); +#2102=AXIS2_PLACEMENT_3D('',#3207,#2647,#2648); +#2103=AXIS2_PLACEMENT_3D('',#3209,#2650,#2651); +#2104=AXIS2_PLACEMENT_3D('',#3211,#2653,#2654); +#2105=AXIS2_PLACEMENT_3D('',#3213,#2656,#2657); +#2106=AXIS2_PLACEMENT_3D('',#3215,#2659,#2660); +#2107=DIRECTION('axis',(0.,0.,1.)); +#2108=DIRECTION('refdir',(1.,0.,0.)); +#2109=DIRECTION('center_axis',(0.,0.,-1.)); +#2110=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2111=DIRECTION('center_axis',(0.,0.,1.)); +#2112=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2113=DIRECTION('',(0.,0.,1.)); +#2114=DIRECTION('center_axis',(0.,0.,-1.)); +#2115=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#2116=DIRECTION('',(0.,0.,-1.)); +#2117=DIRECTION('center_axis',(0.,1.,0.)); +#2118=DIRECTION('ref_axis',(1.,0.,0.)); +#2119=DIRECTION('',(-1.,0.,0.)); +#2120=DIRECTION('',(0.,0.,-1.)); +#2121=DIRECTION('',(1.,0.,0.)); +#2122=DIRECTION('center_axis',(0.,0.,1.)); +#2123=DIRECTION('ref_axis',(1.,0.,0.)); +#2124=DIRECTION('',(0.,-1.,0.)); +#2125=DIRECTION('center_axis',(0.,0.,-1.)); +#2126=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#2127=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#2128=DIRECTION('center_axis',(0.,0.,-1.)); +#2129=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#2130=DIRECTION('',(0.,1.,0.)); +#2131=DIRECTION('center_axis',(0.,0.,-1.)); +#2132=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#2133=DIRECTION('',(-1.,0.,0.)); +#2134=DIRECTION('',(-0.00211883867751913,-0.99999775525881,0.)); +#2135=DIRECTION('',(-0.99999775525881,0.00211883867752521,0.)); +#2136=DIRECTION('',(0.00211883867752538,0.99999775525881,0.)); +#2137=DIRECTION('',(0.,-1.,0.)); +#2138=DIRECTION('',(-1.,0.,0.)); +#2139=DIRECTION('',(0.,1.,0.)); +#2140=DIRECTION('',(1.,0.,0.)); +#2141=DIRECTION('',(0.,-1.,0.)); +#2142=DIRECTION('center_axis',(0.,0.,-1.)); +#2143=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2144=DIRECTION('',(-1.,0.,0.)); +#2145=DIRECTION('center_axis',(0.,0.,-1.)); +#2146=DIRECTION('ref_axis',(-1.,0.,0.)); +#2147=DIRECTION('',(0.,1.,0.)); +#2148=DIRECTION('center_axis',(0.,0.,-1.)); +#2149=DIRECTION('ref_axis',(0.,1.,0.)); +#2150=DIRECTION('',(1.,0.,0.)); +#2151=DIRECTION('center_axis',(0.,0.,-1.)); +#2152=DIRECTION('ref_axis',(1.,0.,0.)); +#2153=DIRECTION('',(0.,-1.,0.)); +#2154=DIRECTION('center_axis',(0.,0.,-1.)); +#2155=DIRECTION('ref_axis',(0.,-1.,0.)); +#2156=DIRECTION('',(-1.,0.,0.)); +#2157=DIRECTION('center_axis',(0.,0.,-1.)); +#2158=DIRECTION('ref_axis',(-1.,0.,0.)); +#2159=DIRECTION('',(0.,1.,0.)); +#2160=DIRECTION('center_axis',(0.,0.,-1.)); +#2161=DIRECTION('ref_axis',(0.,1.,0.)); +#2162=DIRECTION('',(1.,0.,0.)); +#2163=DIRECTION('center_axis',(0.,0.,-1.)); +#2164=DIRECTION('ref_axis',(1.,0.,0.)); +#2165=DIRECTION('',(0.,-1.,0.)); +#2166=DIRECTION('center_axis',(0.,0.,-1.)); +#2167=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#2168=DIRECTION('',(-1.,0.,0.)); +#2169=DIRECTION('center_axis',(0.,0.,-1.)); +#2170=DIRECTION('ref_axis',(-1.,0.,0.)); +#2171=DIRECTION('',(0.,1.,0.)); +#2172=DIRECTION('center_axis',(0.,0.,-1.)); +#2173=DIRECTION('ref_axis',(0.,1.,0.)); +#2174=DIRECTION('',(1.,0.,0.)); +#2175=DIRECTION('center_axis',(0.,0.,-1.)); +#2176=DIRECTION('ref_axis',(1.,0.,0.)); +#2177=DIRECTION('',(0.,-1.,0.)); +#2178=DIRECTION('center_axis',(0.,0.,-1.)); +#2179=DIRECTION('ref_axis',(0.,-1.,0.)); +#2180=DIRECTION('',(-1.,0.,0.)); +#2181=DIRECTION('center_axis',(0.,0.,-1.)); +#2182=DIRECTION('ref_axis',(-1.,0.,0.)); +#2183=DIRECTION('',(0.,1.,0.)); +#2184=DIRECTION('center_axis',(0.,0.,-1.)); +#2185=DIRECTION('ref_axis',(0.,1.,0.)); +#2186=DIRECTION('',(1.,0.,0.)); +#2187=DIRECTION('center_axis',(0.,0.,-1.)); +#2188=DIRECTION('ref_axis',(1.,0.,0.)); +#2189=DIRECTION('',(0.,-1.,0.)); +#2190=DIRECTION('center_axis',(0.,0.,-1.)); +#2191=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#2192=DIRECTION('',(-1.,0.,0.)); +#2193=DIRECTION('center_axis',(0.,0.,-1.)); +#2194=DIRECTION('ref_axis',(-1.,0.,0.)); +#2195=DIRECTION('',(0.,1.,0.)); +#2196=DIRECTION('center_axis',(0.,0.,-1.)); +#2197=DIRECTION('ref_axis',(0.,1.,0.)); +#2198=DIRECTION('',(1.,0.,0.)); +#2199=DIRECTION('center_axis',(0.,0.,-1.)); +#2200=DIRECTION('ref_axis',(1.,0.,0.)); +#2201=DIRECTION('',(0.,-1.,0.)); +#2202=DIRECTION('center_axis',(0.,0.,-1.)); +#2203=DIRECTION('ref_axis',(0.,-1.,0.)); +#2204=DIRECTION('',(-1.,0.,0.)); +#2205=DIRECTION('center_axis',(0.,0.,-1.)); +#2206=DIRECTION('ref_axis',(-1.,0.,0.)); +#2207=DIRECTION('',(0.,1.,0.)); +#2208=DIRECTION('center_axis',(0.,0.,-1.)); +#2209=DIRECTION('ref_axis',(0.,1.,0.)); +#2210=DIRECTION('',(1.,0.,0.)); +#2211=DIRECTION('center_axis',(0.,0.,-1.)); +#2212=DIRECTION('ref_axis',(1.,0.,0.)); +#2213=DIRECTION('',(0.,-1.,0.)); +#2214=DIRECTION('center_axis',(0.,0.,-1.)); +#2215=DIRECTION('ref_axis',(0.,-1.,0.)); +#2216=DIRECTION('',(-1.,0.,0.)); +#2217=DIRECTION('center_axis',(0.,0.,-1.)); +#2218=DIRECTION('ref_axis',(-1.,0.,0.)); +#2219=DIRECTION('',(0.,1.,0.)); +#2220=DIRECTION('center_axis',(0.,0.,-1.)); +#2221=DIRECTION('ref_axis',(0.,1.,0.)); +#2222=DIRECTION('',(1.,0.,0.)); +#2223=DIRECTION('center_axis',(0.,0.,-1.)); +#2224=DIRECTION('ref_axis',(1.,0.,0.)); +#2225=DIRECTION('',(0.,-1.,0.)); +#2226=DIRECTION('center_axis',(0.,0.,-1.)); +#2227=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#2228=DIRECTION('',(-1.,0.,0.)); +#2229=DIRECTION('center_axis',(0.,0.,-1.)); +#2230=DIRECTION('ref_axis',(-1.,0.,0.)); +#2231=DIRECTION('',(0.,1.,0.)); +#2232=DIRECTION('center_axis',(0.,0.,-1.)); +#2233=DIRECTION('ref_axis',(0.,1.,0.)); +#2234=DIRECTION('',(1.,0.,0.)); +#2235=DIRECTION('center_axis',(0.,0.,-1.)); +#2236=DIRECTION('ref_axis',(1.,0.,0.)); +#2237=DIRECTION('',(0.,-1.,0.)); +#2238=DIRECTION('center_axis',(0.,0.,-1.)); +#2239=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2240=DIRECTION('',(-1.,0.,0.)); +#2241=DIRECTION('center_axis',(0.,0.,-1.)); +#2242=DIRECTION('ref_axis',(-1.,0.,0.)); +#2243=DIRECTION('',(0.,1.,0.)); +#2244=DIRECTION('center_axis',(0.,0.,-1.)); +#2245=DIRECTION('ref_axis',(0.,1.,0.)); +#2246=DIRECTION('',(1.,0.,0.)); +#2247=DIRECTION('center_axis',(0.,0.,-1.)); +#2248=DIRECTION('ref_axis',(1.,0.,0.)); +#2249=DIRECTION('center_axis',(0.,0.,-1.)); +#2250=DIRECTION('ref_axis',(1.,0.,0.)); +#2251=DIRECTION('center_axis',(0.,0.,-1.)); +#2252=DIRECTION('ref_axis',(1.,0.,0.)); +#2253=DIRECTION('center_axis',(0.,0.,-1.)); +#2254=DIRECTION('ref_axis',(1.,0.,0.)); +#2255=DIRECTION('center_axis',(0.,0.,-1.)); +#2256=DIRECTION('ref_axis',(1.,0.,0.)); +#2257=DIRECTION('center_axis',(0.,0.,-1.)); +#2258=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#2259=DIRECTION('center_axis',(0.,0.,1.)); +#2260=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186547,0.)); +#2261=DIRECTION('',(0.,0.,1.)); +#2262=DIRECTION('',(0.,0.,-1.)); +#2263=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#2264=DIRECTION('ref_axis',(-1.,-4.8472887907141E-17,0.)); +#2265=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#2266=DIRECTION('',(0.,0.,-1.)); +#2267=DIRECTION('center_axis',(0.,0.,-1.)); +#2268=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#2269=DIRECTION('center_axis',(0.,0.,1.)); +#2270=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#2271=DIRECTION('',(0.,0.,1.)); +#2272=DIRECTION('center_axis',(0.,0.,-1.)); +#2273=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#2274=DIRECTION('center_axis',(0.,0.,1.)); +#2275=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#2276=DIRECTION('',(0.,0.,1.)); +#2277=DIRECTION('',(0.,0.,-1.)); +#2278=DIRECTION('center_axis',(0.,1.,0.)); +#2279=DIRECTION('ref_axis',(1.,0.,0.)); +#2280=DIRECTION('',(1.,0.,0.)); +#2281=DIRECTION('',(0.,0.,-1.)); +#2282=DIRECTION('center_axis',(0.,0.,-1.)); +#2283=DIRECTION('ref_axis',(1.,0.,0.)); +#2284=DIRECTION('center_axis',(0.,0.,1.)); +#2285=DIRECTION('ref_axis',(1.,0.,0.)); +#2286=DIRECTION('',(0.,0.,1.)); +#2287=DIRECTION('center_axis',(0.,0.,-1.)); +#2288=DIRECTION('ref_axis',(1.,0.,0.)); +#2289=DIRECTION('center_axis',(0.,0.,1.)); +#2290=DIRECTION('ref_axis',(1.,0.,0.)); +#2291=DIRECTION('',(0.,0.,1.)); +#2292=DIRECTION('center_axis',(0.,0.,-1.)); +#2293=DIRECTION('ref_axis',(1.,0.,0.)); +#2294=DIRECTION('center_axis',(0.,0.,1.)); +#2295=DIRECTION('ref_axis',(1.,0.,0.)); +#2296=DIRECTION('',(0.,0.,1.)); +#2297=DIRECTION('center_axis',(0.,0.,-1.)); +#2298=DIRECTION('ref_axis',(1.,0.,0.)); +#2299=DIRECTION('center_axis',(0.,0.,1.)); +#2300=DIRECTION('ref_axis',(1.,0.,0.)); +#2301=DIRECTION('',(0.,0.,1.)); +#2302=DIRECTION('center_axis',(0.,0.,-1.)); +#2303=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2304=DIRECTION('',(0.,0.,-1.)); +#2305=DIRECTION('center_axis',(0.,0.,1.)); +#2306=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2307=DIRECTION('',(0.,0.,-1.)); +#2308=DIRECTION('center_axis',(0.,1.,0.)); +#2309=DIRECTION('ref_axis',(1.,0.,0.)); +#2310=DIRECTION('',(1.,0.,0.)); +#2311=DIRECTION('',(0.,0.,-1.)); +#2312=DIRECTION('center_axis',(0.,0.,-1.)); +#2313=DIRECTION('ref_axis',(-1.,0.,0.)); +#2314=DIRECTION('center_axis',(0.,0.,1.)); +#2315=DIRECTION('ref_axis',(-1.,0.,0.)); +#2316=DIRECTION('',(0.,0.,-1.)); +#2317=DIRECTION('center_axis',(1.,0.,0.)); +#2318=DIRECTION('ref_axis',(0.,-1.,0.)); +#2319=DIRECTION('',(0.,-1.,0.)); +#2320=DIRECTION('',(0.,0.,-1.)); +#2321=DIRECTION('center_axis',(0.,0.,-1.)); +#2322=DIRECTION('ref_axis',(0.,1.,0.)); +#2323=DIRECTION('center_axis',(0.,0.,1.)); +#2324=DIRECTION('ref_axis',(0.,1.,0.)); +#2325=DIRECTION('',(0.,0.,-1.)); +#2326=DIRECTION('center_axis',(0.,-1.,0.)); +#2327=DIRECTION('ref_axis',(-1.,0.,0.)); +#2328=DIRECTION('',(-1.,0.,0.)); +#2329=DIRECTION('',(0.,0.,-1.)); +#2330=DIRECTION('center_axis',(0.,0.,-1.)); +#2331=DIRECTION('ref_axis',(1.,0.,0.)); +#2332=DIRECTION('center_axis',(0.,0.,1.)); +#2333=DIRECTION('ref_axis',(1.,0.,0.)); +#2334=DIRECTION('',(0.,0.,-1.)); +#2335=DIRECTION('center_axis',(-1.,0.,0.)); +#2336=DIRECTION('ref_axis',(0.,1.,0.)); +#2337=DIRECTION('',(0.,1.,0.)); +#2338=DIRECTION('center_axis',(0.,0.,-1.)); +#2339=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#2340=DIRECTION('',(0.,0.,-1.)); +#2341=DIRECTION('center_axis',(0.,0.,1.)); +#2342=DIRECTION('ref_axis',(-8.8817841970012E-15,-1.,0.)); +#2343=DIRECTION('',(0.,0.,-1.)); +#2344=DIRECTION('center_axis',(0.,1.,0.)); +#2345=DIRECTION('ref_axis',(1.,0.,0.)); +#2346=DIRECTION('',(1.,0.,0.)); +#2347=DIRECTION('',(0.,0.,-1.)); +#2348=DIRECTION('center_axis',(0.,0.,-1.)); +#2349=DIRECTION('ref_axis',(-1.,0.,0.)); +#2350=DIRECTION('center_axis',(0.,0.,1.)); +#2351=DIRECTION('ref_axis',(-1.,0.,0.)); +#2352=DIRECTION('',(0.,0.,-1.)); +#2353=DIRECTION('center_axis',(1.,0.,0.)); +#2354=DIRECTION('ref_axis',(0.,-1.,0.)); +#2355=DIRECTION('',(0.,-1.,0.)); +#2356=DIRECTION('',(0.,0.,-1.)); +#2357=DIRECTION('center_axis',(0.,0.,-1.)); +#2358=DIRECTION('ref_axis',(0.,1.,0.)); +#2359=DIRECTION('center_axis',(0.,0.,1.)); +#2360=DIRECTION('ref_axis',(0.,1.,0.)); +#2361=DIRECTION('',(0.,0.,-1.)); +#2362=DIRECTION('center_axis',(0.,-1.,0.)); +#2363=DIRECTION('ref_axis',(-1.,0.,0.)); +#2364=DIRECTION('',(-1.,0.,0.)); +#2365=DIRECTION('',(0.,0.,-1.)); +#2366=DIRECTION('center_axis',(0.,0.,-1.)); +#2367=DIRECTION('ref_axis',(1.,0.,0.)); +#2368=DIRECTION('center_axis',(0.,0.,1.)); +#2369=DIRECTION('ref_axis',(1.,0.,0.)); +#2370=DIRECTION('',(0.,0.,-1.)); +#2371=DIRECTION('center_axis',(-1.,0.,0.)); +#2372=DIRECTION('ref_axis',(0.,1.,0.)); +#2373=DIRECTION('',(0.,1.,0.)); +#2374=DIRECTION('center_axis',(0.,0.,-1.)); +#2375=DIRECTION('ref_axis',(0.,-1.,0.)); +#2376=DIRECTION('',(0.,0.,-1.)); +#2377=DIRECTION('center_axis',(0.,0.,1.)); +#2378=DIRECTION('ref_axis',(0.,-1.,0.)); +#2379=DIRECTION('',(0.,0.,-1.)); +#2380=DIRECTION('center_axis',(0.,1.,0.)); +#2381=DIRECTION('ref_axis',(1.,0.,0.)); +#2382=DIRECTION('',(1.,0.,0.)); +#2383=DIRECTION('',(0.,0.,-1.)); +#2384=DIRECTION('center_axis',(0.,0.,-1.)); +#2385=DIRECTION('ref_axis',(-1.,0.,0.)); +#2386=DIRECTION('center_axis',(0.,0.,1.)); +#2387=DIRECTION('ref_axis',(-1.,0.,0.)); +#2388=DIRECTION('',(0.,0.,-1.)); +#2389=DIRECTION('center_axis',(1.,0.,0.)); +#2390=DIRECTION('ref_axis',(0.,-1.,0.)); +#2391=DIRECTION('',(0.,-1.,0.)); +#2392=DIRECTION('',(0.,0.,-1.)); +#2393=DIRECTION('center_axis',(0.,0.,-1.)); +#2394=DIRECTION('ref_axis',(0.,1.,0.)); +#2395=DIRECTION('center_axis',(0.,0.,1.)); +#2396=DIRECTION('ref_axis',(0.,1.,0.)); +#2397=DIRECTION('',(0.,0.,-1.)); +#2398=DIRECTION('center_axis',(0.,-1.,0.)); +#2399=DIRECTION('ref_axis',(-1.,0.,0.)); +#2400=DIRECTION('',(-1.,0.,0.)); +#2401=DIRECTION('',(0.,0.,-1.)); +#2402=DIRECTION('center_axis',(0.,0.,-1.)); +#2403=DIRECTION('ref_axis',(1.,0.,0.)); +#2404=DIRECTION('center_axis',(0.,0.,1.)); +#2405=DIRECTION('ref_axis',(1.,0.,0.)); +#2406=DIRECTION('',(0.,0.,-1.)); +#2407=DIRECTION('center_axis',(-1.,0.,0.)); +#2408=DIRECTION('ref_axis',(0.,1.,0.)); +#2409=DIRECTION('',(0.,1.,0.)); +#2410=DIRECTION('center_axis',(0.,0.,-1.)); +#2411=DIRECTION('ref_axis',(0.,-1.,0.)); +#2412=DIRECTION('',(0.,0.,-1.)); +#2413=DIRECTION('center_axis',(0.,0.,1.)); +#2414=DIRECTION('ref_axis',(0.,-1.,0.)); +#2415=DIRECTION('',(0.,0.,-1.)); +#2416=DIRECTION('center_axis',(0.,1.,0.)); +#2417=DIRECTION('ref_axis',(1.,0.,0.)); +#2418=DIRECTION('',(1.,0.,0.)); +#2419=DIRECTION('',(0.,0.,-1.)); +#2420=DIRECTION('center_axis',(0.,0.,-1.)); +#2421=DIRECTION('ref_axis',(-1.,0.,0.)); +#2422=DIRECTION('center_axis',(0.,0.,1.)); +#2423=DIRECTION('ref_axis',(-1.,0.,0.)); +#2424=DIRECTION('',(0.,0.,-1.)); +#2425=DIRECTION('center_axis',(1.,0.,0.)); +#2426=DIRECTION('ref_axis',(0.,-1.,0.)); +#2427=DIRECTION('',(0.,-1.,0.)); +#2428=DIRECTION('',(0.,0.,-1.)); +#2429=DIRECTION('center_axis',(0.,0.,-1.)); +#2430=DIRECTION('ref_axis',(0.,1.,0.)); +#2431=DIRECTION('center_axis',(0.,0.,1.)); +#2432=DIRECTION('ref_axis',(0.,1.,0.)); +#2433=DIRECTION('',(0.,0.,-1.)); +#2434=DIRECTION('center_axis',(0.,-1.,0.)); +#2435=DIRECTION('ref_axis',(-1.,0.,0.)); +#2436=DIRECTION('',(-1.,0.,0.)); +#2437=DIRECTION('',(0.,0.,-1.)); +#2438=DIRECTION('center_axis',(0.,0.,-1.)); +#2439=DIRECTION('ref_axis',(1.,0.,0.)); +#2440=DIRECTION('center_axis',(0.,0.,1.)); +#2441=DIRECTION('ref_axis',(1.,0.,0.)); +#2442=DIRECTION('',(0.,0.,-1.)); +#2443=DIRECTION('center_axis',(-1.,0.,0.)); +#2444=DIRECTION('ref_axis',(0.,1.,0.)); +#2445=DIRECTION('',(0.,1.,0.)); +#2446=DIRECTION('center_axis',(0.,0.,-1.)); +#2447=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#2448=DIRECTION('',(0.,0.,-1.)); +#2449=DIRECTION('center_axis',(0.,0.,1.)); +#2450=DIRECTION('ref_axis',(3.55271367880048E-14,-1.,0.)); +#2451=DIRECTION('',(0.,0.,-1.)); +#2452=DIRECTION('center_axis',(0.,1.,0.)); +#2453=DIRECTION('ref_axis',(1.,0.,0.)); +#2454=DIRECTION('',(1.,0.,0.)); +#2455=DIRECTION('',(0.,0.,-1.)); +#2456=DIRECTION('center_axis',(0.,0.,-1.)); +#2457=DIRECTION('ref_axis',(-1.,0.,0.)); +#2458=DIRECTION('center_axis',(0.,0.,1.)); +#2459=DIRECTION('ref_axis',(-1.,0.,0.)); +#2460=DIRECTION('',(0.,0.,-1.)); +#2461=DIRECTION('center_axis',(1.,0.,0.)); +#2462=DIRECTION('ref_axis',(0.,-1.,0.)); +#2463=DIRECTION('',(0.,-1.,0.)); +#2464=DIRECTION('',(0.,0.,-1.)); +#2465=DIRECTION('center_axis',(0.,0.,-1.)); +#2466=DIRECTION('ref_axis',(0.,1.,0.)); +#2467=DIRECTION('center_axis',(0.,0.,1.)); +#2468=DIRECTION('ref_axis',(0.,1.,0.)); +#2469=DIRECTION('',(0.,0.,-1.)); +#2470=DIRECTION('center_axis',(0.,-1.,0.)); +#2471=DIRECTION('ref_axis',(-1.,0.,0.)); +#2472=DIRECTION('',(-1.,0.,0.)); +#2473=DIRECTION('',(0.,0.,-1.)); +#2474=DIRECTION('center_axis',(0.,0.,-1.)); +#2475=DIRECTION('ref_axis',(1.,0.,0.)); +#2476=DIRECTION('center_axis',(0.,0.,1.)); +#2477=DIRECTION('ref_axis',(1.,0.,0.)); +#2478=DIRECTION('',(0.,0.,-1.)); +#2479=DIRECTION('center_axis',(-1.,0.,0.)); +#2480=DIRECTION('ref_axis',(0.,1.,0.)); +#2481=DIRECTION('',(0.,1.,0.)); +#2482=DIRECTION('center_axis',(0.,0.,-1.)); +#2483=DIRECTION('ref_axis',(0.,-1.,0.)); +#2484=DIRECTION('',(0.,0.,-1.)); +#2485=DIRECTION('center_axis',(0.,0.,1.)); +#2486=DIRECTION('ref_axis',(0.,-1.,0.)); +#2487=DIRECTION('',(0.,0.,-1.)); +#2488=DIRECTION('center_axis',(0.,1.,0.)); +#2489=DIRECTION('ref_axis',(1.,0.,0.)); +#2490=DIRECTION('',(1.,0.,0.)); +#2491=DIRECTION('',(0.,0.,-1.)); +#2492=DIRECTION('center_axis',(0.,0.,-1.)); +#2493=DIRECTION('ref_axis',(-1.,0.,0.)); +#2494=DIRECTION('center_axis',(0.,0.,1.)); +#2495=DIRECTION('ref_axis',(-1.,0.,0.)); +#2496=DIRECTION('',(0.,0.,-1.)); +#2497=DIRECTION('center_axis',(1.,0.,0.)); +#2498=DIRECTION('ref_axis',(0.,-1.,0.)); +#2499=DIRECTION('',(0.,-1.,0.)); +#2500=DIRECTION('',(0.,0.,-1.)); +#2501=DIRECTION('center_axis',(0.,0.,-1.)); +#2502=DIRECTION('ref_axis',(0.,1.,0.)); +#2503=DIRECTION('center_axis',(0.,0.,1.)); +#2504=DIRECTION('ref_axis',(0.,1.,0.)); +#2505=DIRECTION('',(0.,0.,-1.)); +#2506=DIRECTION('center_axis',(0.,-1.,0.)); +#2507=DIRECTION('ref_axis',(-1.,0.,0.)); +#2508=DIRECTION('',(-1.,0.,0.)); +#2509=DIRECTION('',(0.,0.,-1.)); +#2510=DIRECTION('center_axis',(0.,0.,-1.)); +#2511=DIRECTION('ref_axis',(1.,0.,0.)); +#2512=DIRECTION('center_axis',(0.,0.,1.)); +#2513=DIRECTION('ref_axis',(1.,0.,0.)); +#2514=DIRECTION('',(0.,0.,-1.)); +#2515=DIRECTION('center_axis',(-1.,0.,0.)); +#2516=DIRECTION('ref_axis',(0.,1.,0.)); +#2517=DIRECTION('',(0.,1.,0.)); +#2518=DIRECTION('center_axis',(0.,0.,-1.)); +#2519=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#2520=DIRECTION('',(0.,0.,-1.)); +#2521=DIRECTION('center_axis',(0.,0.,1.)); +#2522=DIRECTION('ref_axis',(-8.88178419700128E-15,-1.,0.)); +#2523=DIRECTION('',(0.,0.,-1.)); +#2524=DIRECTION('center_axis',(0.,1.,0.)); +#2525=DIRECTION('ref_axis',(1.,0.,0.)); +#2526=DIRECTION('',(1.,0.,0.)); +#2527=DIRECTION('',(0.,0.,-1.)); +#2528=DIRECTION('center_axis',(0.,0.,-1.)); +#2529=DIRECTION('ref_axis',(-1.,0.,0.)); +#2530=DIRECTION('center_axis',(0.,0.,1.)); +#2531=DIRECTION('ref_axis',(-1.,0.,0.)); +#2532=DIRECTION('',(0.,0.,-1.)); +#2533=DIRECTION('center_axis',(1.,0.,0.)); +#2534=DIRECTION('ref_axis',(0.,-1.,0.)); +#2535=DIRECTION('',(0.,-1.,0.)); +#2536=DIRECTION('',(0.,0.,-1.)); +#2537=DIRECTION('center_axis',(0.,0.,-1.)); +#2538=DIRECTION('ref_axis',(0.,1.,0.)); +#2539=DIRECTION('center_axis',(0.,0.,1.)); +#2540=DIRECTION('ref_axis',(0.,1.,0.)); +#2541=DIRECTION('',(0.,0.,-1.)); +#2542=DIRECTION('center_axis',(0.,-1.,0.)); +#2543=DIRECTION('ref_axis',(-1.,0.,0.)); +#2544=DIRECTION('',(-1.,0.,0.)); +#2545=DIRECTION('',(0.,0.,-1.)); +#2546=DIRECTION('center_axis',(0.,0.,-1.)); +#2547=DIRECTION('ref_axis',(1.,0.,0.)); +#2548=DIRECTION('center_axis',(0.,0.,1.)); +#2549=DIRECTION('ref_axis',(1.,0.,0.)); +#2550=DIRECTION('',(0.,0.,-1.)); +#2551=DIRECTION('center_axis',(-1.,0.,0.)); +#2552=DIRECTION('ref_axis',(0.,1.,0.)); +#2553=DIRECTION('',(0.,1.,0.)); +#2554=DIRECTION('center_axis',(0.,0.,-1.)); +#2555=DIRECTION('ref_axis',(0.,-1.,0.)); +#2556=DIRECTION('',(0.,0.,-1.)); +#2557=DIRECTION('center_axis',(0.,0.,1.)); +#2558=DIRECTION('ref_axis',(0.,-1.,0.)); +#2559=DIRECTION('',(0.,0.,-1.)); +#2560=DIRECTION('center_axis',(0.,1.,0.)); +#2561=DIRECTION('ref_axis',(1.,0.,0.)); +#2562=DIRECTION('',(1.,0.,0.)); +#2563=DIRECTION('',(0.,0.,-1.)); +#2564=DIRECTION('center_axis',(0.,0.,-1.)); +#2565=DIRECTION('ref_axis',(-1.,0.,0.)); +#2566=DIRECTION('center_axis',(0.,0.,1.)); +#2567=DIRECTION('ref_axis',(-1.,0.,0.)); +#2568=DIRECTION('',(0.,0.,-1.)); +#2569=DIRECTION('center_axis',(1.,0.,0.)); +#2570=DIRECTION('ref_axis',(0.,-1.,0.)); +#2571=DIRECTION('',(0.,-1.,0.)); +#2572=DIRECTION('',(0.,0.,-1.)); +#2573=DIRECTION('center_axis',(0.,0.,-1.)); +#2574=DIRECTION('ref_axis',(0.,1.,0.)); +#2575=DIRECTION('center_axis',(0.,0.,1.)); +#2576=DIRECTION('ref_axis',(0.,1.,0.)); +#2577=DIRECTION('',(0.,0.,-1.)); +#2578=DIRECTION('center_axis',(0.,-1.,0.)); +#2579=DIRECTION('ref_axis',(-1.,0.,0.)); +#2580=DIRECTION('',(-1.,0.,0.)); +#2581=DIRECTION('',(0.,0.,-1.)); +#2582=DIRECTION('center_axis',(0.,0.,-1.)); +#2583=DIRECTION('ref_axis',(1.,0.,0.)); +#2584=DIRECTION('center_axis',(0.,0.,1.)); +#2585=DIRECTION('ref_axis',(1.,0.,0.)); +#2586=DIRECTION('',(0.,0.,-1.)); +#2587=DIRECTION('center_axis',(-1.,0.,0.)); +#2588=DIRECTION('ref_axis',(0.,1.,0.)); +#2589=DIRECTION('',(0.,1.,0.)); +#2590=DIRECTION('center_axis',(0.,0.,-1.)); +#2591=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2592=DIRECTION('',(0.,0.,-1.)); +#2593=DIRECTION('center_axis',(0.,0.,1.)); +#2594=DIRECTION('ref_axis',(3.55271367880051E-14,-1.,0.)); +#2595=DIRECTION('',(0.,0.,-1.)); +#2596=DIRECTION('center_axis',(0.,1.,0.)); +#2597=DIRECTION('ref_axis',(1.,0.,0.)); +#2598=DIRECTION('',(1.,0.,0.)); +#2599=DIRECTION('',(0.,0.,-1.)); +#2600=DIRECTION('center_axis',(0.,0.,-1.)); +#2601=DIRECTION('ref_axis',(-1.,0.,0.)); +#2602=DIRECTION('center_axis',(0.,0.,1.)); +#2603=DIRECTION('ref_axis',(-1.,0.,0.)); +#2604=DIRECTION('',(0.,0.,-1.)); +#2605=DIRECTION('center_axis',(1.,0.,0.)); +#2606=DIRECTION('ref_axis',(0.,-1.,0.)); +#2607=DIRECTION('',(0.,-1.,0.)); +#2608=DIRECTION('',(0.,0.,-1.)); +#2609=DIRECTION('center_axis',(0.,0.,-1.)); +#2610=DIRECTION('ref_axis',(0.,1.,0.)); +#2611=DIRECTION('center_axis',(0.,0.,1.)); +#2612=DIRECTION('ref_axis',(0.,1.,0.)); +#2613=DIRECTION('',(0.,0.,-1.)); +#2614=DIRECTION('center_axis',(0.,-1.,0.)); +#2615=DIRECTION('ref_axis',(-1.,0.,0.)); +#2616=DIRECTION('',(-1.,0.,0.)); +#2617=DIRECTION('',(0.,0.,-1.)); +#2618=DIRECTION('center_axis',(0.,0.,-1.)); +#2619=DIRECTION('ref_axis',(1.,0.,0.)); +#2620=DIRECTION('center_axis',(0.,0.,1.)); +#2621=DIRECTION('ref_axis',(1.,0.,0.)); +#2622=DIRECTION('',(0.,0.,-1.)); +#2623=DIRECTION('center_axis',(-1.,0.,0.)); +#2624=DIRECTION('ref_axis',(0.,1.,0.)); +#2625=DIRECTION('',(0.,1.,0.)); +#2626=DIRECTION('center_axis',(0.,1.,0.)); +#2627=DIRECTION('ref_axis',(1.,0.,0.)); +#2628=DIRECTION('',(0.,0.,-1.)); +#2629=DIRECTION('',(1.,0.,0.)); +#2630=DIRECTION('',(0.,0.,-1.)); +#2631=DIRECTION('center_axis',(1.,0.,0.)); +#2632=DIRECTION('ref_axis',(0.,-1.,0.)); +#2633=DIRECTION('',(0.,-1.,0.)); +#2634=DIRECTION('',(0.,0.,-1.)); +#2635=DIRECTION('center_axis',(0.,-1.,0.)); +#2636=DIRECTION('ref_axis',(-1.,0.,0.)); +#2637=DIRECTION('',(-1.,0.,0.)); +#2638=DIRECTION('',(0.,0.,-1.)); +#2639=DIRECTION('center_axis',(-1.,0.,0.)); +#2640=DIRECTION('ref_axis',(0.,1.,0.)); +#2641=DIRECTION('',(0.,1.,0.)); +#2642=DIRECTION('center_axis',(0.00211883867752521,0.99999775525881,0.)); +#2643=DIRECTION('ref_axis',(0.99999775525881,-0.00211883867752521,0.)); +#2644=DIRECTION('',(0.,0.,-1.)); +#2645=DIRECTION('',(0.99999775525881,-0.00211883867752521,0.)); +#2646=DIRECTION('',(0.,0.,-1.)); +#2647=DIRECTION('center_axis',(0.99999775525881,-0.00211883867752538,0.)); +#2648=DIRECTION('ref_axis',(-0.00211883867752538,-0.99999775525881,0.)); +#2649=DIRECTION('',(-0.00211883867752538,-0.99999775525881,0.)); +#2650=DIRECTION('center_axis',(-1.,0.,0.)); +#2651=DIRECTION('ref_axis',(0.,1.,0.)); +#2652=DIRECTION('',(0.,1.,0.)); +#2653=DIRECTION('center_axis',(1.,0.,0.)); +#2654=DIRECTION('ref_axis',(0.,-1.,0.)); +#2655=DIRECTION('',(0.,-1.,0.)); +#2656=DIRECTION('center_axis',(-0.99999775525881,0.00211883867751913,0.)); +#2657=DIRECTION('ref_axis',(0.00211883867751913,0.99999775525881,0.)); +#2658=DIRECTION('',(0.00211883867751913,0.99999775525881,0.)); +#2659=DIRECTION('center_axis',(0.,0.,1.)); +#2660=DIRECTION('ref_axis',(1.,0.,0.)); +#2661=CARTESIAN_POINT('',(0.,0.,0.)); +#2662=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#2663=CARTESIAN_POINT('',(-5.,79.06,18.)); +#2664=CARTESIAN_POINT('',(-10.,74.06,18.)); +#2665=CARTESIAN_POINT('Origin',(-5.,74.06,18.)); +#2666=CARTESIAN_POINT('',(-10.,74.06,21.)); +#2667=CARTESIAN_POINT('',(-10.,74.06,21.)); +#2668=CARTESIAN_POINT('',(-5.,79.06,21.)); +#2669=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#2670=CARTESIAN_POINT('',(-5.,79.06,21.)); +#2671=CARTESIAN_POINT('Origin',(-10.,79.06,21.)); +#2672=CARTESIAN_POINT('',(4.24033755187631,79.06,21.)); +#2673=CARTESIAN_POINT('',(75.89,79.06,21.)); +#2674=CARTESIAN_POINT('',(4.24033755187631,79.06,18.)); +#2675=CARTESIAN_POINT('',(4.24033755187631,79.06,21.)); +#2676=CARTESIAN_POINT('',(75.89,79.06,18.)); +#2677=CARTESIAN_POINT('Origin',(47.26,34.53,21.)); +#2678=CARTESIAN_POINT('',(-10.,-5.,21.)); +#2679=CARTESIAN_POINT('',(-10.,56.795,21.)); +#2680=CARTESIAN_POINT('',(-5.,-10.,21.)); +#2681=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#2682=CARTESIAN_POINT('',(99.52,-10.,21.)); +#2683=CARTESIAN_POINT('',(18.63,-10.,21.)); +#2684=CARTESIAN_POINT('',(104.52,-5.,21.)); +#2685=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#2686=CARTESIAN_POINT('',(104.52,74.06,21.)); +#2687=CARTESIAN_POINT('',(104.52,12.265,21.)); +#2688=CARTESIAN_POINT('',(99.52,79.06,21.)); +#2689=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#2690=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#2691=CARTESIAN_POINT('',(75.89,79.06,21.)); +#2692=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,21.)); +#2693=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,21.)); +#2694=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,21.)); +#2695=CARTESIAN_POINT('',(37.720358113746,42.7256913777202,21.)); +#2696=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,21.)); +#2697=CARTESIAN_POINT('',(65.245,59.545,21.)); +#2698=CARTESIAN_POINT('',(65.245,47.045,21.)); +#2699=CARTESIAN_POINT('',(65.245,46.9375,21.)); +#2700=CARTESIAN_POINT('',(26.545,47.045,21.)); +#2701=CARTESIAN_POINT('',(56.1525,47.045,21.)); +#2702=CARTESIAN_POINT('',(26.545,59.545,21.)); +#2703=CARTESIAN_POINT('',(26.545,40.8875,21.)); +#2704=CARTESIAN_POINT('',(37.0025,59.545,21.)); +#2705=CARTESIAN_POINT('',(87.61,59.79,21.)); +#2706=CARTESIAN_POINT('',(87.61,46.79,21.)); +#2707=CARTESIAN_POINT('',(87.61,47.16,21.)); +#2708=CARTESIAN_POINT('',(87.11,46.29,21.)); +#2709=CARTESIAN_POINT('Origin',(87.11,46.79,21.)); +#2710=CARTESIAN_POINT('',(74.11,46.29,21.)); +#2711=CARTESIAN_POINT('',(67.185,46.29,21.)); +#2712=CARTESIAN_POINT('',(73.61,46.79,21.)); +#2713=CARTESIAN_POINT('Origin',(74.11,46.79,21.)); +#2714=CARTESIAN_POINT('',(73.61,59.79,21.)); +#2715=CARTESIAN_POINT('',(73.61,40.66,21.)); +#2716=CARTESIAN_POINT('',(74.11,60.29,21.)); +#2717=CARTESIAN_POINT('Origin',(74.11,59.79,21.)); +#2718=CARTESIAN_POINT('',(87.11,60.29,21.)); +#2719=CARTESIAN_POINT('',(60.685,60.29,21.)); +#2720=CARTESIAN_POINT('Origin',(87.11,59.79,21.)); +#2721=CARTESIAN_POINT('',(58.835,39.59,21.)); +#2722=CARTESIAN_POINT('',(58.835,26.59,21.)); +#2723=CARTESIAN_POINT('',(58.835,37.06,21.)); +#2724=CARTESIAN_POINT('',(58.335,26.09,21.)); +#2725=CARTESIAN_POINT('Origin',(58.335,26.59,21.)); +#2726=CARTESIAN_POINT('',(45.335,26.09,21.)); +#2727=CARTESIAN_POINT('',(52.7975,26.09,21.)); +#2728=CARTESIAN_POINT('',(44.835,26.59,21.)); +#2729=CARTESIAN_POINT('Origin',(45.335,26.59,21.)); +#2730=CARTESIAN_POINT('',(44.835,39.59,21.)); +#2731=CARTESIAN_POINT('',(44.835,30.56,21.)); +#2732=CARTESIAN_POINT('',(45.335,40.09,21.)); +#2733=CARTESIAN_POINT('Origin',(45.335,39.59,21.)); +#2734=CARTESIAN_POINT('',(58.335,40.09,21.)); +#2735=CARTESIAN_POINT('',(46.2975,40.09,21.)); +#2736=CARTESIAN_POINT('Origin',(58.335,39.59,21.)); +#2737=CARTESIAN_POINT('',(39.785,39.59,21.)); +#2738=CARTESIAN_POINT('',(39.785,26.59,21.)); +#2739=CARTESIAN_POINT('',(39.785,37.06,21.)); +#2740=CARTESIAN_POINT('',(39.285,26.09,21.)); +#2741=CARTESIAN_POINT('Origin',(39.285,26.59,21.)); +#2742=CARTESIAN_POINT('',(26.285,26.09,21.)); +#2743=CARTESIAN_POINT('',(43.2725,26.09,21.)); +#2744=CARTESIAN_POINT('',(25.785,26.59,21.)); +#2745=CARTESIAN_POINT('Origin',(26.285,26.59,21.)); +#2746=CARTESIAN_POINT('',(25.785,39.59,21.)); +#2747=CARTESIAN_POINT('',(25.785,30.56,21.)); +#2748=CARTESIAN_POINT('',(26.285,40.09,21.)); +#2749=CARTESIAN_POINT('Origin',(26.285,39.59,21.)); +#2750=CARTESIAN_POINT('',(39.285,40.09,21.)); +#2751=CARTESIAN_POINT('',(36.7725,40.09,21.)); +#2752=CARTESIAN_POINT('Origin',(39.285,39.59,21.)); +#2753=CARTESIAN_POINT('',(20.735,20.54,21.)); +#2754=CARTESIAN_POINT('',(20.735,7.54,21.)); +#2755=CARTESIAN_POINT('',(20.735,27.535,21.)); +#2756=CARTESIAN_POINT('',(20.235,7.04,21.)); +#2757=CARTESIAN_POINT('Origin',(20.235,7.54,21.)); +#2758=CARTESIAN_POINT('',(7.235,7.04000000000001,21.)); +#2759=CARTESIAN_POINT('',(33.7475,7.04,21.)); +#2760=CARTESIAN_POINT('',(6.735,7.54,21.)); +#2761=CARTESIAN_POINT('Origin',(7.235,7.54,21.)); +#2762=CARTESIAN_POINT('',(6.735,20.54,21.)); +#2763=CARTESIAN_POINT('',(6.735,21.035,21.)); +#2764=CARTESIAN_POINT('',(7.235,21.04,21.)); +#2765=CARTESIAN_POINT('Origin',(7.235,20.54,21.)); +#2766=CARTESIAN_POINT('',(20.235,21.04,21.)); +#2767=CARTESIAN_POINT('',(27.2475,21.04,21.)); +#2768=CARTESIAN_POINT('Origin',(20.235,20.54,21.)); +#2769=CARTESIAN_POINT('',(87.41,20.54,21.)); +#2770=CARTESIAN_POINT('',(87.41,7.54,21.)); +#2771=CARTESIAN_POINT('',(87.41,27.535,21.)); +#2772=CARTESIAN_POINT('',(86.91,7.04,21.)); +#2773=CARTESIAN_POINT('Origin',(86.91,7.54,21.)); +#2774=CARTESIAN_POINT('',(73.91,7.04000000000001,21.)); +#2775=CARTESIAN_POINT('',(67.085,7.04,21.)); +#2776=CARTESIAN_POINT('',(73.41,7.54,21.)); +#2777=CARTESIAN_POINT('Origin',(73.91,7.54,21.)); +#2778=CARTESIAN_POINT('',(73.41,20.54,21.)); +#2779=CARTESIAN_POINT('',(73.41,21.035,21.)); +#2780=CARTESIAN_POINT('',(73.91,21.04,21.)); +#2781=CARTESIAN_POINT('Origin',(73.91,20.54,21.)); +#2782=CARTESIAN_POINT('',(86.91,21.04,21.)); +#2783=CARTESIAN_POINT('',(60.585,21.04,21.)); +#2784=CARTESIAN_POINT('Origin',(86.91,20.54,21.)); +#2785=CARTESIAN_POINT('',(58.835,20.54,21.)); +#2786=CARTESIAN_POINT('',(58.835,7.54,21.)); +#2787=CARTESIAN_POINT('',(58.835,27.535,21.)); +#2788=CARTESIAN_POINT('',(58.335,7.04,21.)); +#2789=CARTESIAN_POINT('Origin',(58.335,7.54,21.)); +#2790=CARTESIAN_POINT('',(45.335,7.04000000000001,21.)); +#2791=CARTESIAN_POINT('',(52.7975,7.04,21.)); +#2792=CARTESIAN_POINT('',(44.835,7.54,21.)); +#2793=CARTESIAN_POINT('Origin',(45.335,7.54,21.)); +#2794=CARTESIAN_POINT('',(44.835,20.54,21.)); +#2795=CARTESIAN_POINT('',(44.835,21.035,21.)); +#2796=CARTESIAN_POINT('',(45.335,21.04,21.)); +#2797=CARTESIAN_POINT('Origin',(45.335,20.54,21.)); +#2798=CARTESIAN_POINT('',(58.335,21.04,21.)); +#2799=CARTESIAN_POINT('',(46.2975,21.04,21.)); +#2800=CARTESIAN_POINT('Origin',(58.335,20.54,21.)); +#2801=CARTESIAN_POINT('',(20.735,39.59,21.)); +#2802=CARTESIAN_POINT('',(20.735,26.59,21.)); +#2803=CARTESIAN_POINT('',(20.735,37.06,21.)); +#2804=CARTESIAN_POINT('',(20.235,26.09,21.)); +#2805=CARTESIAN_POINT('Origin',(20.235,26.59,21.)); +#2806=CARTESIAN_POINT('',(7.235,26.09,21.)); +#2807=CARTESIAN_POINT('',(33.7475,26.09,21.)); +#2808=CARTESIAN_POINT('',(6.735,26.59,21.)); +#2809=CARTESIAN_POINT('Origin',(7.235,26.59,21.)); +#2810=CARTESIAN_POINT('',(6.735,39.59,21.)); +#2811=CARTESIAN_POINT('',(6.735,30.56,21.)); +#2812=CARTESIAN_POINT('',(7.235,40.09,21.)); +#2813=CARTESIAN_POINT('Origin',(7.235,39.59,21.)); +#2814=CARTESIAN_POINT('',(20.235,40.09,21.)); +#2815=CARTESIAN_POINT('',(27.2475,40.09,21.)); +#2816=CARTESIAN_POINT('Origin',(20.235,39.59,21.)); +#2817=CARTESIAN_POINT('',(39.785,20.54,21.)); +#2818=CARTESIAN_POINT('',(39.785,7.54,21.)); +#2819=CARTESIAN_POINT('',(39.785,27.535,21.)); +#2820=CARTESIAN_POINT('',(39.285,7.04,21.)); +#2821=CARTESIAN_POINT('Origin',(39.285,7.54,21.)); +#2822=CARTESIAN_POINT('',(26.285,7.04000000000001,21.)); +#2823=CARTESIAN_POINT('',(43.2725,7.04,21.)); +#2824=CARTESIAN_POINT('',(25.785,7.54,21.)); +#2825=CARTESIAN_POINT('Origin',(26.285,7.54,21.)); +#2826=CARTESIAN_POINT('',(25.785,20.54,21.)); +#2827=CARTESIAN_POINT('',(25.785,21.035,21.)); +#2828=CARTESIAN_POINT('',(26.285,21.04,21.)); +#2829=CARTESIAN_POINT('Origin',(26.285,20.54,21.)); +#2830=CARTESIAN_POINT('',(39.285,21.04,21.)); +#2831=CARTESIAN_POINT('',(36.7725,21.04,21.)); +#2832=CARTESIAN_POINT('Origin',(39.285,20.54,21.)); +#2833=CARTESIAN_POINT('',(87.41,39.59,21.)); +#2834=CARTESIAN_POINT('',(87.41,26.59,21.)); +#2835=CARTESIAN_POINT('',(87.41,37.06,21.)); +#2836=CARTESIAN_POINT('',(86.91,26.09,21.)); +#2837=CARTESIAN_POINT('Origin',(86.91,26.59,21.)); +#2838=CARTESIAN_POINT('',(73.91,26.09,21.)); +#2839=CARTESIAN_POINT('',(67.085,26.09,21.)); +#2840=CARTESIAN_POINT('',(73.41,26.59,21.)); +#2841=CARTESIAN_POINT('Origin',(73.91,26.59,21.)); +#2842=CARTESIAN_POINT('',(73.41,39.59,21.)); +#2843=CARTESIAN_POINT('',(73.41,30.56,21.)); +#2844=CARTESIAN_POINT('',(73.91,40.09,21.)); +#2845=CARTESIAN_POINT('Origin',(73.91,39.59,21.)); +#2846=CARTESIAN_POINT('',(86.91,40.09,21.)); +#2847=CARTESIAN_POINT('',(60.585,40.09,21.)); +#2848=CARTESIAN_POINT('Origin',(86.91,39.59,21.)); +#2849=CARTESIAN_POINT('',(-6.4500000745058,74.16,21.)); +#2850=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#2851=CARTESIAN_POINT('',(98.17,74.16,21.)); +#2852=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#2853=CARTESIAN_POINT('',(-6.54999999999999,-5.10000000000001,21.)); +#2854=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#2855=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#2856=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#2857=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#2858=CARTESIAN_POINT('',(-10.,-5.,18.)); +#2859=CARTESIAN_POINT('',(-5.,-10.,18.)); +#2860=CARTESIAN_POINT('Origin',(-5.,-5.,18.)); +#2861=CARTESIAN_POINT('',(-5.,-10.,21.)); +#2862=CARTESIAN_POINT('',(-10.,-5.,21.)); +#2863=CARTESIAN_POINT('Origin',(104.52,-10.,21.)); +#2864=CARTESIAN_POINT('',(99.52,-10.,18.)); +#2865=CARTESIAN_POINT('',(18.63,-10.,18.)); +#2866=CARTESIAN_POINT('',(99.52,-10.,21.)); +#2867=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#2868=CARTESIAN_POINT('',(104.52,-5.,18.)); +#2869=CARTESIAN_POINT('Origin',(99.52,-5.,18.)); +#2870=CARTESIAN_POINT('',(104.52,-5.,21.)); +#2871=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#2872=CARTESIAN_POINT('',(104.52,74.06,18.)); +#2873=CARTESIAN_POINT('',(99.52,79.06,18.)); +#2874=CARTESIAN_POINT('Origin',(99.52,74.06,18.)); +#2875=CARTESIAN_POINT('',(99.52,79.06,21.)); +#2876=CARTESIAN_POINT('',(104.52,74.06,21.)); +#2877=CARTESIAN_POINT('Origin',(23.4403267770942,79.06,21.)); +#2878=CARTESIAN_POINT('',(23.4403267770942,79.06,18.)); +#2879=CARTESIAN_POINT('',(75.89,79.06,18.)); +#2880=CARTESIAN_POINT('',(23.4403267770942,79.06,21.)); +#2881=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#2882=CARTESIAN_POINT('',(98.17,-5.1,18.)); +#2883=CARTESIAN_POINT('Origin',(99.62,-5.1,18.)); +#2884=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#2885=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#2886=CARTESIAN_POINT('',(-6.54999999999999,-5.1,18.)); +#2887=CARTESIAN_POINT('Origin',(-5.1,-5.1,18.)); +#2888=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#2889=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#2890=CARTESIAN_POINT('',(98.17,74.16,18.)); +#2891=CARTESIAN_POINT('Origin',(99.62,74.16,18.)); +#2892=CARTESIAN_POINT('',(98.17,74.16,21.)); +#2893=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#2894=CARTESIAN_POINT('',(-6.4500000745058,74.16,18.)); +#2895=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,18.)); +#2896=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#2897=CARTESIAN_POINT('Origin',(86.91,26.59,21.)); +#2898=CARTESIAN_POINT('',(87.41,26.59,18.)); +#2899=CARTESIAN_POINT('',(87.41,26.59,21.)); +#2900=CARTESIAN_POINT('',(86.91,26.09,18.)); +#2901=CARTESIAN_POINT('Origin',(86.91,26.59,18.)); +#2902=CARTESIAN_POINT('',(86.91,26.09,21.)); +#2903=CARTESIAN_POINT('Origin',(73.91,26.09,21.)); +#2904=CARTESIAN_POINT('',(73.91,26.09,18.)); +#2905=CARTESIAN_POINT('',(67.085,26.09,18.)); +#2906=CARTESIAN_POINT('',(73.91,26.09,21.)); +#2907=CARTESIAN_POINT('Origin',(73.91,26.59,21.)); +#2908=CARTESIAN_POINT('',(73.41,26.59,18.)); +#2909=CARTESIAN_POINT('Origin',(73.91,26.59,18.)); +#2910=CARTESIAN_POINT('',(73.41,26.59,21.)); +#2911=CARTESIAN_POINT('Origin',(73.41,39.59,21.)); +#2912=CARTESIAN_POINT('',(73.41,39.59,18.)); +#2913=CARTESIAN_POINT('',(73.41,30.56,18.)); +#2914=CARTESIAN_POINT('',(73.41,39.59,21.)); +#2915=CARTESIAN_POINT('Origin',(73.91,39.59,21.)); +#2916=CARTESIAN_POINT('',(73.91,40.09,18.)); +#2917=CARTESIAN_POINT('Origin',(73.91,39.59,18.)); +#2918=CARTESIAN_POINT('',(73.91,40.09,21.)); +#2919=CARTESIAN_POINT('Origin',(86.91,40.09,21.)); +#2920=CARTESIAN_POINT('',(86.91,40.09,18.)); +#2921=CARTESIAN_POINT('',(60.585,40.09,18.)); +#2922=CARTESIAN_POINT('',(86.91,40.09,21.)); +#2923=CARTESIAN_POINT('Origin',(86.91,39.59,21.)); +#2924=CARTESIAN_POINT('',(87.41,39.59,18.)); +#2925=CARTESIAN_POINT('Origin',(86.91,39.59,18.)); +#2926=CARTESIAN_POINT('',(87.41,39.59,21.)); +#2927=CARTESIAN_POINT('Origin',(87.41,26.59,21.)); +#2928=CARTESIAN_POINT('',(87.41,37.06,18.)); +#2929=CARTESIAN_POINT('Origin',(39.285,7.54,21.)); +#2930=CARTESIAN_POINT('',(39.785,7.54,18.)); +#2931=CARTESIAN_POINT('',(39.785,7.54,21.)); +#2932=CARTESIAN_POINT('',(39.285,7.04000000000001,18.)); +#2933=CARTESIAN_POINT('Origin',(39.285,7.54,18.)); +#2934=CARTESIAN_POINT('',(39.285,7.04,21.)); +#2935=CARTESIAN_POINT('Origin',(26.285,7.04,21.)); +#2936=CARTESIAN_POINT('',(26.285,7.04000000000001,18.)); +#2937=CARTESIAN_POINT('',(43.2725,7.04,18.)); +#2938=CARTESIAN_POINT('',(26.285,7.04000000000001,21.)); +#2939=CARTESIAN_POINT('Origin',(26.285,7.54,21.)); +#2940=CARTESIAN_POINT('',(25.785,7.54,18.)); +#2941=CARTESIAN_POINT('Origin',(26.285,7.54,18.)); +#2942=CARTESIAN_POINT('',(25.785,7.54,21.)); +#2943=CARTESIAN_POINT('Origin',(25.785,20.54,21.)); +#2944=CARTESIAN_POINT('',(25.785,20.54,18.)); +#2945=CARTESIAN_POINT('',(25.785,21.035,18.)); +#2946=CARTESIAN_POINT('',(25.785,20.54,21.)); +#2947=CARTESIAN_POINT('Origin',(26.285,20.54,21.)); +#2948=CARTESIAN_POINT('',(26.285,21.04,18.)); +#2949=CARTESIAN_POINT('Origin',(26.285,20.54,18.)); +#2950=CARTESIAN_POINT('',(26.285,21.04,21.)); +#2951=CARTESIAN_POINT('Origin',(39.285,21.04,21.)); +#2952=CARTESIAN_POINT('',(39.285,21.04,18.)); +#2953=CARTESIAN_POINT('',(36.7725,21.04,18.)); +#2954=CARTESIAN_POINT('',(39.285,21.04,21.)); +#2955=CARTESIAN_POINT('Origin',(39.285,20.54,21.)); +#2956=CARTESIAN_POINT('',(39.785,20.54,18.)); +#2957=CARTESIAN_POINT('Origin',(39.285,20.54,18.)); +#2958=CARTESIAN_POINT('',(39.785,20.54,21.)); +#2959=CARTESIAN_POINT('Origin',(39.785,7.54,21.)); +#2960=CARTESIAN_POINT('',(39.785,27.535,18.)); +#2961=CARTESIAN_POINT('Origin',(20.235,26.59,21.)); +#2962=CARTESIAN_POINT('',(20.735,26.59,18.)); +#2963=CARTESIAN_POINT('',(20.735,26.59,21.)); +#2964=CARTESIAN_POINT('',(20.235,26.09,18.)); +#2965=CARTESIAN_POINT('Origin',(20.235,26.59,18.)); +#2966=CARTESIAN_POINT('',(20.235,26.09,21.)); +#2967=CARTESIAN_POINT('Origin',(7.235,26.09,21.)); +#2968=CARTESIAN_POINT('',(7.235,26.09,18.)); +#2969=CARTESIAN_POINT('',(33.7475,26.09,18.)); +#2970=CARTESIAN_POINT('',(7.235,26.09,21.)); +#2971=CARTESIAN_POINT('Origin',(7.235,26.59,21.)); +#2972=CARTESIAN_POINT('',(6.735,26.59,18.)); +#2973=CARTESIAN_POINT('Origin',(7.235,26.59,18.)); +#2974=CARTESIAN_POINT('',(6.735,26.59,21.)); +#2975=CARTESIAN_POINT('Origin',(6.735,39.59,21.)); +#2976=CARTESIAN_POINT('',(6.735,39.59,18.)); +#2977=CARTESIAN_POINT('',(6.735,30.56,18.)); +#2978=CARTESIAN_POINT('',(6.735,39.59,21.)); +#2979=CARTESIAN_POINT('Origin',(7.235,39.59,21.)); +#2980=CARTESIAN_POINT('',(7.235,40.09,18.)); +#2981=CARTESIAN_POINT('Origin',(7.235,39.59,18.)); +#2982=CARTESIAN_POINT('',(7.235,40.09,21.)); +#2983=CARTESIAN_POINT('Origin',(20.235,40.09,21.)); +#2984=CARTESIAN_POINT('',(20.235,40.09,18.)); +#2985=CARTESIAN_POINT('',(27.2475,40.09,18.)); +#2986=CARTESIAN_POINT('',(20.235,40.09,21.)); +#2987=CARTESIAN_POINT('Origin',(20.235,39.59,21.)); +#2988=CARTESIAN_POINT('',(20.735,39.59,18.)); +#2989=CARTESIAN_POINT('Origin',(20.235,39.59,18.)); +#2990=CARTESIAN_POINT('',(20.735,39.59,21.)); +#2991=CARTESIAN_POINT('Origin',(20.735,26.59,21.)); +#2992=CARTESIAN_POINT('',(20.735,37.06,18.)); +#2993=CARTESIAN_POINT('Origin',(58.335,7.54,21.)); +#2994=CARTESIAN_POINT('',(58.835,7.54,18.)); +#2995=CARTESIAN_POINT('',(58.835,7.54,21.)); +#2996=CARTESIAN_POINT('',(58.335,7.04000000000001,18.)); +#2997=CARTESIAN_POINT('Origin',(58.335,7.54,18.)); +#2998=CARTESIAN_POINT('',(58.335,7.04,21.)); +#2999=CARTESIAN_POINT('Origin',(45.335,7.04,21.)); +#3000=CARTESIAN_POINT('',(45.335,7.04000000000001,18.)); +#3001=CARTESIAN_POINT('',(52.7975,7.04,18.)); +#3002=CARTESIAN_POINT('',(45.335,7.04000000000001,21.)); +#3003=CARTESIAN_POINT('Origin',(45.335,7.54,21.)); +#3004=CARTESIAN_POINT('',(44.835,7.54,18.)); +#3005=CARTESIAN_POINT('Origin',(45.335,7.54,18.)); +#3006=CARTESIAN_POINT('',(44.835,7.54,21.)); +#3007=CARTESIAN_POINT('Origin',(44.835,20.54,21.)); +#3008=CARTESIAN_POINT('',(44.835,20.54,18.)); +#3009=CARTESIAN_POINT('',(44.835,21.035,18.)); +#3010=CARTESIAN_POINT('',(44.835,20.54,21.)); +#3011=CARTESIAN_POINT('Origin',(45.335,20.54,21.)); +#3012=CARTESIAN_POINT('',(45.335,21.04,18.)); +#3013=CARTESIAN_POINT('Origin',(45.335,20.54,18.)); +#3014=CARTESIAN_POINT('',(45.335,21.04,21.)); +#3015=CARTESIAN_POINT('Origin',(58.335,21.04,21.)); +#3016=CARTESIAN_POINT('',(58.335,21.04,18.)); +#3017=CARTESIAN_POINT('',(46.2975,21.04,18.)); +#3018=CARTESIAN_POINT('',(58.335,21.04,21.)); +#3019=CARTESIAN_POINT('Origin',(58.335,20.54,21.)); +#3020=CARTESIAN_POINT('',(58.835,20.54,18.)); +#3021=CARTESIAN_POINT('Origin',(58.335,20.54,18.)); +#3022=CARTESIAN_POINT('',(58.835,20.54,21.)); +#3023=CARTESIAN_POINT('Origin',(58.835,7.54,21.)); +#3024=CARTESIAN_POINT('',(58.835,27.535,18.)); +#3025=CARTESIAN_POINT('Origin',(86.91,7.54,21.)); +#3026=CARTESIAN_POINT('',(87.41,7.54,18.)); +#3027=CARTESIAN_POINT('',(87.41,7.54,21.)); +#3028=CARTESIAN_POINT('',(86.91,7.04000000000001,18.)); +#3029=CARTESIAN_POINT('Origin',(86.91,7.54,18.)); +#3030=CARTESIAN_POINT('',(86.91,7.04,21.)); +#3031=CARTESIAN_POINT('Origin',(73.91,7.04,21.)); +#3032=CARTESIAN_POINT('',(73.91,7.04000000000001,18.)); +#3033=CARTESIAN_POINT('',(67.085,7.04,18.)); +#3034=CARTESIAN_POINT('',(73.91,7.04000000000001,21.)); +#3035=CARTESIAN_POINT('Origin',(73.91,7.54,21.)); +#3036=CARTESIAN_POINT('',(73.41,7.54,18.)); +#3037=CARTESIAN_POINT('Origin',(73.91,7.54,18.)); +#3038=CARTESIAN_POINT('',(73.41,7.54,21.)); +#3039=CARTESIAN_POINT('Origin',(73.41,20.54,21.)); +#3040=CARTESIAN_POINT('',(73.41,20.54,18.)); +#3041=CARTESIAN_POINT('',(73.41,21.035,18.)); +#3042=CARTESIAN_POINT('',(73.41,20.54,21.)); +#3043=CARTESIAN_POINT('Origin',(73.91,20.54,21.)); +#3044=CARTESIAN_POINT('',(73.91,21.04,18.)); +#3045=CARTESIAN_POINT('Origin',(73.91,20.54,18.)); +#3046=CARTESIAN_POINT('',(73.91,21.04,21.)); +#3047=CARTESIAN_POINT('Origin',(86.91,21.04,21.)); +#3048=CARTESIAN_POINT('',(86.91,21.04,18.)); +#3049=CARTESIAN_POINT('',(60.585,21.04,18.)); +#3050=CARTESIAN_POINT('',(86.91,21.04,21.)); +#3051=CARTESIAN_POINT('Origin',(86.91,20.54,21.)); +#3052=CARTESIAN_POINT('',(87.41,20.54,18.)); +#3053=CARTESIAN_POINT('Origin',(86.91,20.54,18.)); +#3054=CARTESIAN_POINT('',(87.41,20.54,21.)); +#3055=CARTESIAN_POINT('Origin',(87.41,7.54,21.)); +#3056=CARTESIAN_POINT('',(87.41,27.535,18.)); +#3057=CARTESIAN_POINT('Origin',(20.235,7.54,21.)); +#3058=CARTESIAN_POINT('',(20.735,7.54,18.)); +#3059=CARTESIAN_POINT('',(20.735,7.54,21.)); +#3060=CARTESIAN_POINT('',(20.235,7.04000000000001,18.)); +#3061=CARTESIAN_POINT('Origin',(20.235,7.54,18.)); +#3062=CARTESIAN_POINT('',(20.235,7.04,21.)); +#3063=CARTESIAN_POINT('Origin',(7.235,7.04,21.)); +#3064=CARTESIAN_POINT('',(7.235,7.04000000000001,18.)); +#3065=CARTESIAN_POINT('',(33.7475,7.04,18.)); +#3066=CARTESIAN_POINT('',(7.235,7.04000000000001,21.)); +#3067=CARTESIAN_POINT('Origin',(7.235,7.54,21.)); +#3068=CARTESIAN_POINT('',(6.735,7.54,18.)); +#3069=CARTESIAN_POINT('Origin',(7.235,7.54,18.)); +#3070=CARTESIAN_POINT('',(6.735,7.54,21.)); +#3071=CARTESIAN_POINT('Origin',(6.735,20.54,21.)); +#3072=CARTESIAN_POINT('',(6.735,20.54,18.)); +#3073=CARTESIAN_POINT('',(6.735,21.035,18.)); +#3074=CARTESIAN_POINT('',(6.735,20.54,21.)); +#3075=CARTESIAN_POINT('Origin',(7.235,20.54,21.)); +#3076=CARTESIAN_POINT('',(7.235,21.04,18.)); +#3077=CARTESIAN_POINT('Origin',(7.235,20.54,18.)); +#3078=CARTESIAN_POINT('',(7.235,21.04,21.)); +#3079=CARTESIAN_POINT('Origin',(20.235,21.04,21.)); +#3080=CARTESIAN_POINT('',(20.235,21.04,18.)); +#3081=CARTESIAN_POINT('',(27.2475,21.04,18.)); +#3082=CARTESIAN_POINT('',(20.235,21.04,21.)); +#3083=CARTESIAN_POINT('Origin',(20.235,20.54,21.)); +#3084=CARTESIAN_POINT('',(20.735,20.54,18.)); +#3085=CARTESIAN_POINT('Origin',(20.235,20.54,18.)); +#3086=CARTESIAN_POINT('',(20.735,20.54,21.)); +#3087=CARTESIAN_POINT('Origin',(20.735,7.54,21.)); +#3088=CARTESIAN_POINT('',(20.735,27.535,18.)); +#3089=CARTESIAN_POINT('Origin',(39.285,26.59,21.)); +#3090=CARTESIAN_POINT('',(39.785,26.59,18.)); +#3091=CARTESIAN_POINT('',(39.785,26.59,21.)); +#3092=CARTESIAN_POINT('',(39.285,26.09,18.)); +#3093=CARTESIAN_POINT('Origin',(39.285,26.59,18.)); +#3094=CARTESIAN_POINT('',(39.285,26.09,21.)); +#3095=CARTESIAN_POINT('Origin',(26.285,26.09,21.)); +#3096=CARTESIAN_POINT('',(26.285,26.09,18.)); +#3097=CARTESIAN_POINT('',(43.2725,26.09,18.)); +#3098=CARTESIAN_POINT('',(26.285,26.09,21.)); +#3099=CARTESIAN_POINT('Origin',(26.285,26.59,21.)); +#3100=CARTESIAN_POINT('',(25.785,26.59,18.)); +#3101=CARTESIAN_POINT('Origin',(26.285,26.59,18.)); +#3102=CARTESIAN_POINT('',(25.785,26.59,21.)); +#3103=CARTESIAN_POINT('Origin',(25.785,39.59,21.)); +#3104=CARTESIAN_POINT('',(25.785,39.59,18.)); +#3105=CARTESIAN_POINT('',(25.785,30.56,18.)); +#3106=CARTESIAN_POINT('',(25.785,39.59,21.)); +#3107=CARTESIAN_POINT('Origin',(26.285,39.59,21.)); +#3108=CARTESIAN_POINT('',(26.285,40.09,18.)); +#3109=CARTESIAN_POINT('Origin',(26.285,39.59,18.)); +#3110=CARTESIAN_POINT('',(26.285,40.09,21.)); +#3111=CARTESIAN_POINT('Origin',(39.285,40.09,21.)); +#3112=CARTESIAN_POINT('',(39.285,40.09,18.)); +#3113=CARTESIAN_POINT('',(36.7725,40.09,18.)); +#3114=CARTESIAN_POINT('',(39.285,40.09,21.)); +#3115=CARTESIAN_POINT('Origin',(39.285,39.59,21.)); +#3116=CARTESIAN_POINT('',(39.785,39.59,18.)); +#3117=CARTESIAN_POINT('Origin',(39.285,39.59,18.)); +#3118=CARTESIAN_POINT('',(39.785,39.59,21.)); +#3119=CARTESIAN_POINT('Origin',(39.785,26.59,21.)); +#3120=CARTESIAN_POINT('',(39.785,37.06,18.)); +#3121=CARTESIAN_POINT('Origin',(58.335,26.59,21.)); +#3122=CARTESIAN_POINT('',(58.835,26.59,18.)); +#3123=CARTESIAN_POINT('',(58.835,26.59,21.)); +#3124=CARTESIAN_POINT('',(58.335,26.09,18.)); +#3125=CARTESIAN_POINT('Origin',(58.335,26.59,18.)); +#3126=CARTESIAN_POINT('',(58.335,26.09,21.)); +#3127=CARTESIAN_POINT('Origin',(45.335,26.09,21.)); +#3128=CARTESIAN_POINT('',(45.335,26.09,18.)); +#3129=CARTESIAN_POINT('',(52.7975,26.09,18.)); +#3130=CARTESIAN_POINT('',(45.335,26.09,21.)); +#3131=CARTESIAN_POINT('Origin',(45.335,26.59,21.)); +#3132=CARTESIAN_POINT('',(44.835,26.59,18.)); +#3133=CARTESIAN_POINT('Origin',(45.335,26.59,18.)); +#3134=CARTESIAN_POINT('',(44.835,26.59,21.)); +#3135=CARTESIAN_POINT('Origin',(44.835,39.59,21.)); +#3136=CARTESIAN_POINT('',(44.835,39.59,18.)); +#3137=CARTESIAN_POINT('',(44.835,30.56,18.)); +#3138=CARTESIAN_POINT('',(44.835,39.59,21.)); +#3139=CARTESIAN_POINT('Origin',(45.335,39.59,21.)); +#3140=CARTESIAN_POINT('',(45.335,40.09,18.)); +#3141=CARTESIAN_POINT('Origin',(45.335,39.59,18.)); +#3142=CARTESIAN_POINT('',(45.335,40.09,21.)); +#3143=CARTESIAN_POINT('Origin',(58.335,40.09,21.)); +#3144=CARTESIAN_POINT('',(58.335,40.09,18.)); +#3145=CARTESIAN_POINT('',(46.2975,40.09,18.)); +#3146=CARTESIAN_POINT('',(58.335,40.09,21.)); +#3147=CARTESIAN_POINT('Origin',(58.335,39.59,21.)); +#3148=CARTESIAN_POINT('',(58.835,39.59,18.)); +#3149=CARTESIAN_POINT('Origin',(58.335,39.59,18.)); +#3150=CARTESIAN_POINT('',(58.835,39.59,21.)); +#3151=CARTESIAN_POINT('Origin',(58.835,26.59,21.)); +#3152=CARTESIAN_POINT('',(58.835,37.06,18.)); +#3153=CARTESIAN_POINT('Origin',(87.11,46.79,21.)); +#3154=CARTESIAN_POINT('',(87.61,46.79,18.)); +#3155=CARTESIAN_POINT('',(87.61,46.79,21.)); +#3156=CARTESIAN_POINT('',(87.11,46.29,18.)); +#3157=CARTESIAN_POINT('Origin',(87.11,46.79,18.)); +#3158=CARTESIAN_POINT('',(87.11,46.29,21.)); +#3159=CARTESIAN_POINT('Origin',(74.11,46.29,21.)); +#3160=CARTESIAN_POINT('',(74.11,46.29,18.)); +#3161=CARTESIAN_POINT('',(67.185,46.29,18.)); +#3162=CARTESIAN_POINT('',(74.11,46.29,21.)); +#3163=CARTESIAN_POINT('Origin',(74.11,46.79,21.)); +#3164=CARTESIAN_POINT('',(73.61,46.79,18.)); +#3165=CARTESIAN_POINT('Origin',(74.11,46.79,18.)); +#3166=CARTESIAN_POINT('',(73.61,46.79,21.)); +#3167=CARTESIAN_POINT('Origin',(73.61,59.79,21.)); +#3168=CARTESIAN_POINT('',(73.61,59.79,18.)); +#3169=CARTESIAN_POINT('',(73.61,40.66,18.)); +#3170=CARTESIAN_POINT('',(73.61,59.79,21.)); +#3171=CARTESIAN_POINT('Origin',(74.11,59.79,21.)); +#3172=CARTESIAN_POINT('',(74.11,60.29,18.)); +#3173=CARTESIAN_POINT('Origin',(74.11,59.79,18.)); +#3174=CARTESIAN_POINT('',(74.11,60.29,21.)); +#3175=CARTESIAN_POINT('Origin',(87.11,60.29,21.)); +#3176=CARTESIAN_POINT('',(87.11,60.29,18.)); +#3177=CARTESIAN_POINT('',(60.685,60.29,18.)); +#3178=CARTESIAN_POINT('',(87.11,60.29,21.)); +#3179=CARTESIAN_POINT('Origin',(87.11,59.79,21.)); +#3180=CARTESIAN_POINT('',(87.61,59.79,18.)); +#3181=CARTESIAN_POINT('Origin',(87.11,59.79,18.)); +#3182=CARTESIAN_POINT('',(87.61,59.79,21.)); +#3183=CARTESIAN_POINT('Origin',(87.61,46.79,21.)); +#3184=CARTESIAN_POINT('',(87.61,47.16,18.)); +#3185=CARTESIAN_POINT('Origin',(26.545,47.045,21.)); +#3186=CARTESIAN_POINT('',(65.245,47.045,18.)); +#3187=CARTESIAN_POINT('',(65.245,47.045,21.)); +#3188=CARTESIAN_POINT('',(26.545,47.045,18.)); +#3189=CARTESIAN_POINT('',(56.1525,47.045,18.)); +#3190=CARTESIAN_POINT('',(26.545,47.045,21.)); +#3191=CARTESIAN_POINT('Origin',(26.545,59.545,21.)); +#3192=CARTESIAN_POINT('',(26.545,59.545,18.)); +#3193=CARTESIAN_POINT('',(26.545,40.8875,18.)); +#3194=CARTESIAN_POINT('',(26.545,59.545,21.)); +#3195=CARTESIAN_POINT('Origin',(65.245,59.545,21.)); +#3196=CARTESIAN_POINT('',(65.245,59.545,18.)); +#3197=CARTESIAN_POINT('',(37.0025,59.545,18.)); +#3198=CARTESIAN_POINT('',(65.245,59.545,21.)); +#3199=CARTESIAN_POINT('Origin',(65.245,47.045,21.)); +#3200=CARTESIAN_POINT('',(65.245,46.9375,18.)); +#3201=CARTESIAN_POINT('Origin',(4.16350149405484,42.7967931030271,21.)); +#3202=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,18.)); +#3203=CARTESIAN_POINT('',(23.3634045213564,42.7561115145685,21.)); +#3204=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,18.)); +#3205=CARTESIAN_POINT('',(37.720358113746,42.7256913777202,18.)); +#3206=CARTESIAN_POINT('',(4.16350149405484,42.7967931030271,21.)); +#3207=CARTESIAN_POINT('Origin',(4.24033755187632,79.06,21.)); +#3208=CARTESIAN_POINT('',(4.15484025360816,38.7090722697651,18.)); +#3209=CARTESIAN_POINT('Origin',(-10.,-10.,21.)); +#3210=CARTESIAN_POINT('',(-10.,56.795,18.)); +#3211=CARTESIAN_POINT('Origin',(104.52,79.06,21.)); +#3212=CARTESIAN_POINT('',(104.52,12.265,18.)); +#3213=CARTESIAN_POINT('Origin',(23.3634045213564,42.7561115145685,21.)); +#3214=CARTESIAN_POINT('',(23.3952026224009,57.7634030103233,18.)); +#3215=CARTESIAN_POINT('Origin',(47.26,34.53,18.)); +#3216=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#3220, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#3217=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#3220, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#3218=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#3216)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#3220,#3221,#3222)) +REPRESENTATION_CONTEXT('','3D') +); +#3219=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#3217)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#3220,#3221,#3222)) +REPRESENTATION_CONTEXT('','3D') +); +#3220=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#3221=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#3222=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#3223=SHAPE_DEFINITION_REPRESENTATION(#3224,#3225); +#3224=PRODUCT_DEFINITION_SHAPE('',$,#3227); +#3225=SHAPE_REPRESENTATION('',(#1924),#3218); +#3226=PRODUCT_DEFINITION_CONTEXT('part definition',#3231,'design'); +#3227=PRODUCT_DEFINITION('hackpad','hackpad v5',#3228,#3226); +#3228=PRODUCT_DEFINITION_FORMATION('',$,#3233); +#3229=PRODUCT_RELATED_PRODUCT_CATEGORY('hackpad v5','hackpad v5',(#3233)); +#3230=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2009,#3231); +#3231=APPLICATION_CONTEXT( +'Core Data for Automotive Mechanical Design Process'); +#3232=PRODUCT_CONTEXT('part definition',#3231,'mechanical'); +#3233=PRODUCT('hackpad','hackpad v5',$,(#3232)); +#3234=PRESENTATION_STYLE_ASSIGNMENT((#3235)); +#3235=SURFACE_STYLE_USAGE(.BOTH.,#3236); +#3236=SURFACE_SIDE_STYLE('',(#3237)); +#3237=SURFACE_STYLE_FILL_AREA(#3238); +#3238=FILL_AREA_STYLE('Steel - Satin',(#3239)); +#3239=FILL_AREA_STYLE_COLOUR('Steel - Satin',#3240); +#3240=COLOUR_RGB('Steel - Satin',0.627450980392157,0.627450980392157,0.627450980392157); +ENDSEC; +END-ISO-10303-21; diff --git a/hackpads/blipyboard/cad/top.step b/hackpads/blipyboard/cad/top.step new file mode 100644 index 0000000000..29a5aed66c --- /dev/null +++ b/hackpads/blipyboard/cad/top.step @@ -0,0 +1,671 @@ +ISO-10303-21; +HEADER; +/* Generated by software containing ST-Developer + * from STEP Tools, Inc. (www.steptools.com) + */ + +FILE_DESCRIPTION( +/* description */ (''), +/* implementation_level */ '2;1'); + +FILE_NAME( +/* name */ 'top.step', +/* time_stamp */ '2025-06-27T19:17:30-07:00', +/* author */ (''), +/* organization */ (''), +/* preprocessor_version */ 'ST-DEVELOPER v20.1', +/* originating_system */ 'Autodesk Translation Framework v14.10.0.0', +/* authorisation */ ''); + +FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 3 1 1 }')); +ENDSEC; + +DATA; +#10=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#13),#603); +#11=SHAPE_REPRESENTATION_RELATIONSHIP('SRR','None',#609,#12); +#12=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#14),#602); +#13=STYLED_ITEM('',(#618),#14); +#14=MANIFOLD_SOLID_BREP('top',#363); +#15=FACE_BOUND('',#56,.T.); +#16=FACE_BOUND('',#57,.T.); +#17=FACE_BOUND('',#58,.T.); +#18=FACE_BOUND('',#59,.T.); +#19=FACE_BOUND('',#60,.T.); +#20=FACE_BOUND('',#76,.T.); +#21=FACE_BOUND('',#77,.T.); +#22=FACE_BOUND('',#78,.T.); +#23=FACE_BOUND('',#79,.T.); +#24=FACE_BOUND('',#80,.T.); +#25=PLANE('',#368); +#26=PLANE('',#369); +#27=PLANE('',#379); +#28=PLANE('',#382); +#29=PLANE('',#391); +#30=PLANE('',#392); +#31=PLANE('',#393); +#32=PLANE('',#394); +#33=PLANE('',#397); +#34=PLANE('',#398); +#35=FACE_OUTER_BOUND('',#53,.T.); +#36=FACE_OUTER_BOUND('',#54,.T.); +#37=FACE_OUTER_BOUND('',#55,.T.); +#38=FACE_OUTER_BOUND('',#61,.T.); +#39=FACE_OUTER_BOUND('',#62,.T.); +#40=FACE_OUTER_BOUND('',#63,.T.); +#41=FACE_OUTER_BOUND('',#64,.T.); +#42=FACE_OUTER_BOUND('',#65,.T.); +#43=FACE_OUTER_BOUND('',#66,.T.); +#44=FACE_OUTER_BOUND('',#67,.T.); +#45=FACE_OUTER_BOUND('',#68,.T.); +#46=FACE_OUTER_BOUND('',#69,.T.); +#47=FACE_OUTER_BOUND('',#70,.T.); +#48=FACE_OUTER_BOUND('',#71,.T.); +#49=FACE_OUTER_BOUND('',#72,.T.); +#50=FACE_OUTER_BOUND('',#73,.T.); +#51=FACE_OUTER_BOUND('',#74,.T.); +#52=FACE_OUTER_BOUND('',#75,.T.); +#53=EDGE_LOOP('',(#241,#242,#243,#244)); +#54=EDGE_LOOP('',(#245,#246,#247,#248)); +#55=EDGE_LOOP('',(#249,#250,#251,#252,#253,#254,#255,#256)); +#56=EDGE_LOOP('',(#257)); +#57=EDGE_LOOP('',(#258,#259,#260,#261)); +#58=EDGE_LOOP('',(#262)); +#59=EDGE_LOOP('',(#263)); +#60=EDGE_LOOP('',(#264)); +#61=EDGE_LOOP('',(#265,#266,#267,#268)); +#62=EDGE_LOOP('',(#269,#270,#271,#272)); +#63=EDGE_LOOP('',(#273,#274,#275,#276)); +#64=EDGE_LOOP('',(#277,#278,#279,#280)); +#65=EDGE_LOOP('',(#281,#282,#283,#284)); +#66=EDGE_LOOP('',(#285,#286,#287,#288)); +#67=EDGE_LOOP('',(#289,#290,#291,#292)); +#68=EDGE_LOOP('',(#293,#294,#295,#296)); +#69=EDGE_LOOP('',(#297,#298,#299,#300)); +#70=EDGE_LOOP('',(#301,#302,#303,#304)); +#71=EDGE_LOOP('',(#305,#306,#307,#308)); +#72=EDGE_LOOP('',(#309,#310,#311,#312)); +#73=EDGE_LOOP('',(#313,#314,#315,#316)); +#74=EDGE_LOOP('',(#317,#318,#319,#320)); +#75=EDGE_LOOP('',(#321,#322,#323,#324,#325,#326,#327,#328)); +#76=EDGE_LOOP('',(#329)); +#77=EDGE_LOOP('',(#330,#331,#332,#333)); +#78=EDGE_LOOP('',(#334)); +#79=EDGE_LOOP('',(#335)); +#80=EDGE_LOOP('',(#336)); +#81=LINE('',#507,#113); +#82=LINE('',#510,#114); +#83=LINE('',#513,#115); +#84=LINE('',#515,#116); +#85=LINE('',#516,#117); +#86=LINE('',#519,#118); +#87=LINE('',#523,#119); +#88=LINE('',#527,#120); +#89=LINE('',#533,#121); +#90=LINE('',#535,#122); +#91=LINE('',#537,#123); +#92=LINE('',#538,#124); +#93=LINE('',#548,#125); +#94=LINE('',#551,#126); +#95=LINE('',#552,#127); +#96=LINE('',#556,#128); +#97=LINE('',#559,#129); +#98=LINE('',#560,#130); +#99=LINE('',#564,#131); +#100=LINE('',#568,#132); +#101=LINE('',#572,#133); +#102=LINE('',#576,#134); +#103=LINE('',#579,#135); +#104=LINE('',#581,#136); +#105=LINE('',#582,#137); +#106=LINE('',#585,#138); +#107=LINE('',#586,#139); +#108=LINE('',#589,#140); +#109=LINE('',#590,#141); +#110=LINE('',#592,#142); +#111=LINE('',#596,#143); +#112=LINE('',#598,#144); +#113=VECTOR('',#405,10.); +#114=VECTOR('',#408,10.); +#115=VECTOR('',#411,10.); +#116=VECTOR('',#412,10.); +#117=VECTOR('',#413,10.); +#118=VECTOR('',#416,10.); +#119=VECTOR('',#419,10.); +#120=VECTOR('',#422,10.); +#121=VECTOR('',#427,10.); +#122=VECTOR('',#428,10.); +#123=VECTOR('',#429,10.); +#124=VECTOR('',#430,10.); +#125=VECTOR('',#441,10.); +#126=VECTOR('',#444,10.); +#127=VECTOR('',#445,10.); +#128=VECTOR('',#450,10.); +#129=VECTOR('',#453,10.); +#130=VECTOR('',#454,10.); +#131=VECTOR('',#459,10.); +#132=VECTOR('',#464,1.45); +#133=VECTOR('',#469,1.45); +#134=VECTOR('',#474,1.45); +#135=VECTOR('',#477,10.); +#136=VECTOR('',#478,10.); +#137=VECTOR('',#479,10.); +#138=VECTOR('',#482,10.); +#139=VECTOR('',#483,10.); +#140=VECTOR('',#486,10.); +#141=VECTOR('',#487,10.); +#142=VECTOR('',#490,10.); +#143=VECTOR('',#495,1.45); +#144=VECTOR('',#498,10.); +#145=CIRCLE('',#366,5.); +#146=CIRCLE('',#367,5.); +#147=CIRCLE('',#370,5.); +#148=CIRCLE('',#371,5.); +#149=CIRCLE('',#372,5.); +#150=CIRCLE('',#373,1.45); +#151=CIRCLE('',#374,1.45); +#152=CIRCLE('',#375,1.45); +#153=CIRCLE('',#376,1.45); +#154=CIRCLE('',#378,5.); +#155=CIRCLE('',#381,5.); +#156=CIRCLE('',#384,5.); +#157=CIRCLE('',#386,1.45); +#158=CIRCLE('',#388,1.45); +#159=CIRCLE('',#390,1.45); +#160=CIRCLE('',#396,1.45); +#161=VERTEX_POINT('',#503); +#162=VERTEX_POINT('',#504); +#163=VERTEX_POINT('',#506); +#164=VERTEX_POINT('',#508); +#165=VERTEX_POINT('',#512); +#166=VERTEX_POINT('',#514); +#167=VERTEX_POINT('',#518); +#168=VERTEX_POINT('',#520); +#169=VERTEX_POINT('',#522); +#170=VERTEX_POINT('',#524); +#171=VERTEX_POINT('',#526); +#172=VERTEX_POINT('',#529); +#173=VERTEX_POINT('',#531); +#174=VERTEX_POINT('',#532); +#175=VERTEX_POINT('',#534); +#176=VERTEX_POINT('',#536); +#177=VERTEX_POINT('',#539); +#178=VERTEX_POINT('',#541); +#179=VERTEX_POINT('',#543); +#180=VERTEX_POINT('',#546); +#181=VERTEX_POINT('',#550); +#182=VERTEX_POINT('',#554); +#183=VERTEX_POINT('',#558); +#184=VERTEX_POINT('',#562); +#185=VERTEX_POINT('',#566); +#186=VERTEX_POINT('',#570); +#187=VERTEX_POINT('',#574); +#188=VERTEX_POINT('',#578); +#189=VERTEX_POINT('',#580); +#190=VERTEX_POINT('',#584); +#191=VERTEX_POINT('',#588); +#192=VERTEX_POINT('',#594); +#193=EDGE_CURVE('',#161,#162,#145,.T.); +#194=EDGE_CURVE('',#162,#163,#81,.T.); +#195=EDGE_CURVE('',#163,#164,#146,.T.); +#196=EDGE_CURVE('',#164,#161,#82,.T.); +#197=EDGE_CURVE('',#165,#164,#83,.T.); +#198=EDGE_CURVE('',#166,#165,#84,.T.); +#199=EDGE_CURVE('',#161,#166,#85,.T.); +#200=EDGE_CURVE('',#163,#167,#86,.T.); +#201=EDGE_CURVE('',#168,#167,#147,.T.); +#202=EDGE_CURVE('',#168,#169,#87,.T.); +#203=EDGE_CURVE('',#170,#169,#148,.T.); +#204=EDGE_CURVE('',#170,#171,#88,.T.); +#205=EDGE_CURVE('',#165,#171,#149,.T.); +#206=EDGE_CURVE('',#172,#172,#150,.T.); +#207=EDGE_CURVE('',#173,#174,#89,.T.); +#208=EDGE_CURVE('',#174,#175,#90,.T.); +#209=EDGE_CURVE('',#175,#176,#91,.T.); +#210=EDGE_CURVE('',#176,#173,#92,.T.); +#211=EDGE_CURVE('',#177,#177,#151,.T.); +#212=EDGE_CURVE('',#178,#178,#152,.T.); +#213=EDGE_CURVE('',#179,#179,#153,.T.); +#214=EDGE_CURVE('',#180,#166,#154,.T.); +#215=EDGE_CURVE('',#171,#180,#93,.T.); +#216=EDGE_CURVE('',#181,#170,#94,.T.); +#217=EDGE_CURVE('',#180,#181,#95,.T.); +#218=EDGE_CURVE('',#182,#181,#155,.T.); +#219=EDGE_CURVE('',#169,#182,#96,.T.); +#220=EDGE_CURVE('',#183,#168,#97,.T.); +#221=EDGE_CURVE('',#182,#183,#98,.T.); +#222=EDGE_CURVE('',#184,#183,#156,.T.); +#223=EDGE_CURVE('',#167,#184,#99,.T.); +#224=EDGE_CURVE('',#185,#185,#157,.T.); +#225=EDGE_CURVE('',#185,#179,#100,.T.); +#226=EDGE_CURVE('',#186,#186,#158,.T.); +#227=EDGE_CURVE('',#186,#178,#101,.T.); +#228=EDGE_CURVE('',#187,#187,#159,.T.); +#229=EDGE_CURVE('',#187,#177,#102,.T.); +#230=EDGE_CURVE('',#174,#188,#103,.T.); +#231=EDGE_CURVE('',#189,#188,#104,.T.); +#232=EDGE_CURVE('',#175,#189,#105,.T.); +#233=EDGE_CURVE('',#190,#189,#106,.T.); +#234=EDGE_CURVE('',#176,#190,#107,.T.); +#235=EDGE_CURVE('',#191,#190,#108,.T.); +#236=EDGE_CURVE('',#173,#191,#109,.T.); +#237=EDGE_CURVE('',#188,#191,#110,.T.); +#238=EDGE_CURVE('',#192,#192,#160,.T.); +#239=EDGE_CURVE('',#192,#172,#111,.T.); +#240=EDGE_CURVE('',#184,#162,#112,.T.); +#241=ORIENTED_EDGE('',*,*,#193,.T.); +#242=ORIENTED_EDGE('',*,*,#194,.T.); +#243=ORIENTED_EDGE('',*,*,#195,.T.); +#244=ORIENTED_EDGE('',*,*,#196,.T.); +#245=ORIENTED_EDGE('',*,*,#196,.F.); +#246=ORIENTED_EDGE('',*,*,#197,.F.); +#247=ORIENTED_EDGE('',*,*,#198,.F.); +#248=ORIENTED_EDGE('',*,*,#199,.F.); +#249=ORIENTED_EDGE('',*,*,#195,.F.); +#250=ORIENTED_EDGE('',*,*,#200,.T.); +#251=ORIENTED_EDGE('',*,*,#201,.F.); +#252=ORIENTED_EDGE('',*,*,#202,.T.); +#253=ORIENTED_EDGE('',*,*,#203,.F.); +#254=ORIENTED_EDGE('',*,*,#204,.T.); +#255=ORIENTED_EDGE('',*,*,#205,.F.); +#256=ORIENTED_EDGE('',*,*,#197,.T.); +#257=ORIENTED_EDGE('',*,*,#206,.T.); +#258=ORIENTED_EDGE('',*,*,#207,.T.); +#259=ORIENTED_EDGE('',*,*,#208,.T.); +#260=ORIENTED_EDGE('',*,*,#209,.T.); +#261=ORIENTED_EDGE('',*,*,#210,.T.); +#262=ORIENTED_EDGE('',*,*,#211,.T.); +#263=ORIENTED_EDGE('',*,*,#212,.T.); +#264=ORIENTED_EDGE('',*,*,#213,.T.); +#265=ORIENTED_EDGE('',*,*,#214,.T.); +#266=ORIENTED_EDGE('',*,*,#198,.T.); +#267=ORIENTED_EDGE('',*,*,#205,.T.); +#268=ORIENTED_EDGE('',*,*,#215,.T.); +#269=ORIENTED_EDGE('',*,*,#215,.F.); +#270=ORIENTED_EDGE('',*,*,#204,.F.); +#271=ORIENTED_EDGE('',*,*,#216,.F.); +#272=ORIENTED_EDGE('',*,*,#217,.F.); +#273=ORIENTED_EDGE('',*,*,#218,.T.); +#274=ORIENTED_EDGE('',*,*,#216,.T.); +#275=ORIENTED_EDGE('',*,*,#203,.T.); +#276=ORIENTED_EDGE('',*,*,#219,.T.); +#277=ORIENTED_EDGE('',*,*,#219,.F.); +#278=ORIENTED_EDGE('',*,*,#202,.F.); +#279=ORIENTED_EDGE('',*,*,#220,.F.); +#280=ORIENTED_EDGE('',*,*,#221,.F.); +#281=ORIENTED_EDGE('',*,*,#222,.T.); +#282=ORIENTED_EDGE('',*,*,#220,.T.); +#283=ORIENTED_EDGE('',*,*,#201,.T.); +#284=ORIENTED_EDGE('',*,*,#223,.T.); +#285=ORIENTED_EDGE('',*,*,#224,.F.); +#286=ORIENTED_EDGE('',*,*,#225,.T.); +#287=ORIENTED_EDGE('',*,*,#213,.F.); +#288=ORIENTED_EDGE('',*,*,#225,.F.); +#289=ORIENTED_EDGE('',*,*,#226,.F.); +#290=ORIENTED_EDGE('',*,*,#227,.T.); +#291=ORIENTED_EDGE('',*,*,#212,.F.); +#292=ORIENTED_EDGE('',*,*,#227,.F.); +#293=ORIENTED_EDGE('',*,*,#228,.F.); +#294=ORIENTED_EDGE('',*,*,#229,.T.); +#295=ORIENTED_EDGE('',*,*,#211,.F.); +#296=ORIENTED_EDGE('',*,*,#229,.F.); +#297=ORIENTED_EDGE('',*,*,#208,.F.); +#298=ORIENTED_EDGE('',*,*,#230,.T.); +#299=ORIENTED_EDGE('',*,*,#231,.F.); +#300=ORIENTED_EDGE('',*,*,#232,.F.); +#301=ORIENTED_EDGE('',*,*,#209,.F.); +#302=ORIENTED_EDGE('',*,*,#232,.T.); +#303=ORIENTED_EDGE('',*,*,#233,.F.); +#304=ORIENTED_EDGE('',*,*,#234,.F.); +#305=ORIENTED_EDGE('',*,*,#210,.F.); +#306=ORIENTED_EDGE('',*,*,#234,.T.); +#307=ORIENTED_EDGE('',*,*,#235,.F.); +#308=ORIENTED_EDGE('',*,*,#236,.F.); +#309=ORIENTED_EDGE('',*,*,#207,.F.); +#310=ORIENTED_EDGE('',*,*,#236,.T.); +#311=ORIENTED_EDGE('',*,*,#237,.F.); +#312=ORIENTED_EDGE('',*,*,#230,.F.); +#313=ORIENTED_EDGE('',*,*,#238,.F.); +#314=ORIENTED_EDGE('',*,*,#239,.T.); +#315=ORIENTED_EDGE('',*,*,#206,.F.); +#316=ORIENTED_EDGE('',*,*,#239,.F.); +#317=ORIENTED_EDGE('',*,*,#194,.F.); +#318=ORIENTED_EDGE('',*,*,#240,.F.); +#319=ORIENTED_EDGE('',*,*,#223,.F.); +#320=ORIENTED_EDGE('',*,*,#200,.F.); +#321=ORIENTED_EDGE('',*,*,#193,.F.); +#322=ORIENTED_EDGE('',*,*,#199,.T.); +#323=ORIENTED_EDGE('',*,*,#214,.F.); +#324=ORIENTED_EDGE('',*,*,#217,.T.); +#325=ORIENTED_EDGE('',*,*,#218,.F.); +#326=ORIENTED_EDGE('',*,*,#221,.T.); +#327=ORIENTED_EDGE('',*,*,#222,.F.); +#328=ORIENTED_EDGE('',*,*,#240,.T.); +#329=ORIENTED_EDGE('',*,*,#238,.T.); +#330=ORIENTED_EDGE('',*,*,#237,.T.); +#331=ORIENTED_EDGE('',*,*,#235,.T.); +#332=ORIENTED_EDGE('',*,*,#233,.T.); +#333=ORIENTED_EDGE('',*,*,#231,.T.); +#334=ORIENTED_EDGE('',*,*,#228,.T.); +#335=ORIENTED_EDGE('',*,*,#226,.T.); +#336=ORIENTED_EDGE('',*,*,#224,.T.); +#337=CYLINDRICAL_SURFACE('',#365,5.); +#338=CYLINDRICAL_SURFACE('',#377,5.); +#339=CYLINDRICAL_SURFACE('',#380,5.); +#340=CYLINDRICAL_SURFACE('',#383,5.); +#341=CYLINDRICAL_SURFACE('',#385,1.45); +#342=CYLINDRICAL_SURFACE('',#387,1.45); +#343=CYLINDRICAL_SURFACE('',#389,1.45); +#344=CYLINDRICAL_SURFACE('',#395,1.45); +#345=ADVANCED_FACE('',(#35),#337,.T.); +#346=ADVANCED_FACE('',(#36),#25,.T.); +#347=ADVANCED_FACE('',(#37,#15,#16,#17,#18,#19),#26,.F.); +#348=ADVANCED_FACE('',(#38),#338,.T.); +#349=ADVANCED_FACE('',(#39),#27,.T.); +#350=ADVANCED_FACE('',(#40),#339,.T.); +#351=ADVANCED_FACE('',(#41),#28,.T.); +#352=ADVANCED_FACE('',(#42),#340,.T.); +#353=ADVANCED_FACE('',(#43),#341,.F.); +#354=ADVANCED_FACE('',(#44),#342,.F.); +#355=ADVANCED_FACE('',(#45),#343,.F.); +#356=ADVANCED_FACE('',(#46),#29,.T.); +#357=ADVANCED_FACE('',(#47),#30,.T.); +#358=ADVANCED_FACE('',(#48),#31,.T.); +#359=ADVANCED_FACE('',(#49),#32,.T.); +#360=ADVANCED_FACE('',(#50),#344,.F.); +#361=ADVANCED_FACE('',(#51),#33,.T.); +#362=ADVANCED_FACE('',(#52,#20,#21,#22,#23,#24),#34,.T.); +#363=CLOSED_SHELL('',(#345,#346,#347,#348,#349,#350,#351,#352,#353,#354, +#355,#356,#357,#358,#359,#360,#361,#362)); +#364=AXIS2_PLACEMENT_3D('',#501,#399,#400); +#365=AXIS2_PLACEMENT_3D('',#502,#401,#402); +#366=AXIS2_PLACEMENT_3D('',#505,#403,#404); +#367=AXIS2_PLACEMENT_3D('',#509,#406,#407); +#368=AXIS2_PLACEMENT_3D('',#511,#409,#410); +#369=AXIS2_PLACEMENT_3D('',#517,#414,#415); +#370=AXIS2_PLACEMENT_3D('',#521,#417,#418); +#371=AXIS2_PLACEMENT_3D('',#525,#420,#421); +#372=AXIS2_PLACEMENT_3D('',#528,#423,#424); +#373=AXIS2_PLACEMENT_3D('',#530,#425,#426); +#374=AXIS2_PLACEMENT_3D('',#540,#431,#432); +#375=AXIS2_PLACEMENT_3D('',#542,#433,#434); +#376=AXIS2_PLACEMENT_3D('',#544,#435,#436); +#377=AXIS2_PLACEMENT_3D('',#545,#437,#438); +#378=AXIS2_PLACEMENT_3D('',#547,#439,#440); +#379=AXIS2_PLACEMENT_3D('',#549,#442,#443); +#380=AXIS2_PLACEMENT_3D('',#553,#446,#447); +#381=AXIS2_PLACEMENT_3D('',#555,#448,#449); +#382=AXIS2_PLACEMENT_3D('',#557,#451,#452); +#383=AXIS2_PLACEMENT_3D('',#561,#455,#456); +#384=AXIS2_PLACEMENT_3D('',#563,#457,#458); +#385=AXIS2_PLACEMENT_3D('',#565,#460,#461); +#386=AXIS2_PLACEMENT_3D('',#567,#462,#463); +#387=AXIS2_PLACEMENT_3D('',#569,#465,#466); +#388=AXIS2_PLACEMENT_3D('',#571,#467,#468); +#389=AXIS2_PLACEMENT_3D('',#573,#470,#471); +#390=AXIS2_PLACEMENT_3D('',#575,#472,#473); +#391=AXIS2_PLACEMENT_3D('',#577,#475,#476); +#392=AXIS2_PLACEMENT_3D('',#583,#480,#481); +#393=AXIS2_PLACEMENT_3D('',#587,#484,#485); +#394=AXIS2_PLACEMENT_3D('',#591,#488,#489); +#395=AXIS2_PLACEMENT_3D('',#593,#491,#492); +#396=AXIS2_PLACEMENT_3D('',#595,#493,#494); +#397=AXIS2_PLACEMENT_3D('',#597,#496,#497); +#398=AXIS2_PLACEMENT_3D('',#599,#499,#500); +#399=DIRECTION('axis',(0.,0.,1.)); +#400=DIRECTION('refdir',(1.,0.,0.)); +#401=DIRECTION('center_axis',(0.,0.,1.)); +#402=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#403=DIRECTION('center_axis',(0.,0.,-1.)); +#404=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#405=DIRECTION('',(0.,0.,-1.)); +#406=DIRECTION('center_axis',(0.,0.,1.)); +#407=DIRECTION('ref_axis',(-0.707106781186547,0.707106781186547,0.)); +#408=DIRECTION('',(0.,0.,1.)); +#409=DIRECTION('center_axis',(-1.,0.,0.)); +#410=DIRECTION('ref_axis',(0.,-1.,0.)); +#411=DIRECTION('',(0.,1.,0.)); +#412=DIRECTION('',(0.,0.,-1.)); +#413=DIRECTION('',(0.,-1.,0.)); +#414=DIRECTION('center_axis',(0.,0.,1.)); +#415=DIRECTION('ref_axis',(1.,0.,0.)); +#416=DIRECTION('',(1.,0.,0.)); +#417=DIRECTION('center_axis',(0.,0.,1.)); +#418=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#419=DIRECTION('',(0.,-1.,0.)); +#420=DIRECTION('center_axis',(0.,0.,1.)); +#421=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#422=DIRECTION('',(-1.,-4.8472887907141E-17,0.)); +#423=DIRECTION('center_axis',(0.,0.,1.)); +#424=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#425=DIRECTION('center_axis',(0.,0.,1.)); +#426=DIRECTION('ref_axis',(1.,0.,0.)); +#427=DIRECTION('',(1.,2.89337761429314E-33,0.)); +#428=DIRECTION('',(0.,1.,0.)); +#429=DIRECTION('',(-1.,0.,0.)); +#430=DIRECTION('',(-1.72904223214608E-33,-1.,0.)); +#431=DIRECTION('center_axis',(0.,0.,1.)); +#432=DIRECTION('ref_axis',(1.,0.,0.)); +#433=DIRECTION('center_axis',(0.,0.,1.)); +#434=DIRECTION('ref_axis',(1.,0.,0.)); +#435=DIRECTION('center_axis',(0.,0.,1.)); +#436=DIRECTION('ref_axis',(1.,0.,0.)); +#437=DIRECTION('center_axis',(0.,0.,1.)); +#438=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#439=DIRECTION('center_axis',(0.,0.,-1.)); +#440=DIRECTION('ref_axis',(-0.707106781186547,-0.707106781186548,0.)); +#441=DIRECTION('',(0.,0.,1.)); +#442=DIRECTION('center_axis',(4.8472887907141E-17,-1.,0.)); +#443=DIRECTION('ref_axis',(1.,4.8472887907141E-17,0.)); +#444=DIRECTION('',(0.,0.,-1.)); +#445=DIRECTION('',(1.,4.8472887907141E-17,0.)); +#446=DIRECTION('center_axis',(0.,0.,1.)); +#447=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#448=DIRECTION('center_axis',(0.,0.,-1.)); +#449=DIRECTION('ref_axis',(0.707106781186547,-0.707106781186547,0.)); +#450=DIRECTION('',(0.,0.,1.)); +#451=DIRECTION('center_axis',(1.,0.,0.)); +#452=DIRECTION('ref_axis',(0.,1.,0.)); +#453=DIRECTION('',(0.,0.,-1.)); +#454=DIRECTION('',(0.,1.,0.)); +#455=DIRECTION('center_axis',(0.,0.,1.)); +#456=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#457=DIRECTION('center_axis',(0.,0.,-1.)); +#458=DIRECTION('ref_axis',(0.707106781186547,0.707106781186547,0.)); +#459=DIRECTION('',(0.,0.,1.)); +#460=DIRECTION('center_axis',(0.,0.,1.)); +#461=DIRECTION('ref_axis',(1.,0.,0.)); +#462=DIRECTION('center_axis',(0.,0.,-1.)); +#463=DIRECTION('ref_axis',(1.,0.,0.)); +#464=DIRECTION('',(0.,0.,-1.)); +#465=DIRECTION('center_axis',(0.,0.,1.)); +#466=DIRECTION('ref_axis',(1.,0.,0.)); +#467=DIRECTION('center_axis',(0.,0.,-1.)); +#468=DIRECTION('ref_axis',(1.,0.,0.)); +#469=DIRECTION('',(0.,0.,-1.)); +#470=DIRECTION('center_axis',(0.,0.,1.)); +#471=DIRECTION('ref_axis',(1.,0.,0.)); +#472=DIRECTION('center_axis',(0.,0.,-1.)); +#473=DIRECTION('ref_axis',(1.,0.,0.)); +#474=DIRECTION('',(0.,0.,-1.)); +#475=DIRECTION('center_axis',(-1.,0.,0.)); +#476=DIRECTION('ref_axis',(0.,-1.,0.)); +#477=DIRECTION('',(0.,0.,1.)); +#478=DIRECTION('',(0.,-1.,0.)); +#479=DIRECTION('',(0.,0.,1.)); +#480=DIRECTION('center_axis',(0.,-1.,0.)); +#481=DIRECTION('ref_axis',(1.,0.,0.)); +#482=DIRECTION('',(1.,0.,0.)); +#483=DIRECTION('',(0.,0.,1.)); +#484=DIRECTION('center_axis',(1.,-1.72904223214608E-33,0.)); +#485=DIRECTION('ref_axis',(1.72904223214608E-33,1.,0.)); +#486=DIRECTION('',(1.72904223214608E-33,1.,0.)); +#487=DIRECTION('',(0.,0.,1.)); +#488=DIRECTION('center_axis',(-2.89337761429314E-33,1.,0.)); +#489=DIRECTION('ref_axis',(-1.,-2.89337761429314E-33,0.)); +#490=DIRECTION('',(-1.,-2.89337761429314E-33,0.)); +#491=DIRECTION('center_axis',(0.,0.,1.)); +#492=DIRECTION('ref_axis',(1.,0.,0.)); +#493=DIRECTION('center_axis',(0.,0.,-1.)); +#494=DIRECTION('ref_axis',(1.,0.,0.)); +#495=DIRECTION('',(0.,0.,-1.)); +#496=DIRECTION('center_axis',(0.,1.,0.)); +#497=DIRECTION('ref_axis',(-1.,0.,0.)); +#498=DIRECTION('',(-1.,0.,0.)); +#499=DIRECTION('center_axis',(0.,0.,1.)); +#500=DIRECTION('ref_axis',(1.,0.,0.)); +#501=CARTESIAN_POINT('',(0.,0.,0.)); +#502=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#503=CARTESIAN_POINT('',(-10.,74.06,27.)); +#504=CARTESIAN_POINT('',(-5.,79.06,27.)); +#505=CARTESIAN_POINT('Origin',(-5.,74.06,27.)); +#506=CARTESIAN_POINT('',(-5.,79.06,21.)); +#507=CARTESIAN_POINT('',(-5.,79.06,21.)); +#508=CARTESIAN_POINT('',(-10.,74.06,21.)); +#509=CARTESIAN_POINT('Origin',(-5.,74.06,21.)); +#510=CARTESIAN_POINT('',(-10.,74.06,21.)); +#511=CARTESIAN_POINT('Origin',(-10.,79.06,21.)); +#512=CARTESIAN_POINT('',(-10.,-5.,21.)); +#513=CARTESIAN_POINT('',(-10.,56.795,21.)); +#514=CARTESIAN_POINT('',(-10.,-5.,27.)); +#515=CARTESIAN_POINT('',(-10.,-5.,21.)); +#516=CARTESIAN_POINT('',(-10.,56.795,27.)); +#517=CARTESIAN_POINT('Origin',(47.26,34.53,21.)); +#518=CARTESIAN_POINT('',(99.52,79.06,21.)); +#519=CARTESIAN_POINT('',(75.89,79.06,21.)); +#520=CARTESIAN_POINT('',(104.52,74.06,21.)); +#521=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#522=CARTESIAN_POINT('',(104.52,-5.,21.)); +#523=CARTESIAN_POINT('',(104.52,12.265,21.)); +#524=CARTESIAN_POINT('',(99.52,-10.,21.)); +#525=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#526=CARTESIAN_POINT('',(-5.,-10.,21.)); +#527=CARTESIAN_POINT('',(18.63,-10.,21.)); +#528=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#529=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#530=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#531=CARTESIAN_POINT('',(0.,0.,21.)); +#532=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,21.)); +#533=CARTESIAN_POINT('',(70.89,0.,21.)); +#534=CARTESIAN_POINT('',(94.52,69.06,21.)); +#535=CARTESIAN_POINT('',(94.52,51.795,21.)); +#536=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,21.)); +#537=CARTESIAN_POINT('',(23.63,69.06,21.)); +#538=CARTESIAN_POINT('',(0.,17.265,21.)); +#539=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#540=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#541=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#542=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#543=CARTESIAN_POINT('',(98.17,74.16,21.)); +#544=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#545=CARTESIAN_POINT('Origin',(-5.,-5.,21.)); +#546=CARTESIAN_POINT('',(-5.,-10.,27.)); +#547=CARTESIAN_POINT('Origin',(-5.,-5.,27.)); +#548=CARTESIAN_POINT('',(-5.,-10.,21.)); +#549=CARTESIAN_POINT('Origin',(-10.,-10.,21.)); +#550=CARTESIAN_POINT('',(99.52,-10.,27.)); +#551=CARTESIAN_POINT('',(99.52,-10.,21.)); +#552=CARTESIAN_POINT('',(18.63,-10.,27.)); +#553=CARTESIAN_POINT('Origin',(99.52,-5.,21.)); +#554=CARTESIAN_POINT('',(104.52,-5.,27.)); +#555=CARTESIAN_POINT('Origin',(99.52,-5.,27.)); +#556=CARTESIAN_POINT('',(104.52,-5.,21.)); +#557=CARTESIAN_POINT('Origin',(104.52,-10.,21.)); +#558=CARTESIAN_POINT('',(104.52,74.06,27.)); +#559=CARTESIAN_POINT('',(104.52,74.06,21.)); +#560=CARTESIAN_POINT('',(104.52,12.265,27.)); +#561=CARTESIAN_POINT('Origin',(99.52,74.06,21.)); +#562=CARTESIAN_POINT('',(99.52,79.06,27.)); +#563=CARTESIAN_POINT('Origin',(99.52,74.06,27.)); +#564=CARTESIAN_POINT('',(99.52,79.06,21.)); +#565=CARTESIAN_POINT('Origin',(99.62,74.16,21.)); +#566=CARTESIAN_POINT('',(98.17,74.16,27.)); +#567=CARTESIAN_POINT('Origin',(99.62,74.16,27.)); +#568=CARTESIAN_POINT('',(98.17,74.16,21.)); +#569=CARTESIAN_POINT('Origin',(-5.1,-5.1,21.)); +#570=CARTESIAN_POINT('',(-6.55,-5.1,27.)); +#571=CARTESIAN_POINT('Origin',(-5.1,-5.1,27.)); +#572=CARTESIAN_POINT('',(-6.55,-5.1,21.)); +#573=CARTESIAN_POINT('Origin',(99.62,-5.1,21.)); +#574=CARTESIAN_POINT('',(98.17,-5.1,27.)); +#575=CARTESIAN_POINT('Origin',(99.62,-5.1,27.)); +#576=CARTESIAN_POINT('',(98.17,-5.1,21.)); +#577=CARTESIAN_POINT('Origin',(94.52,69.06,21.)); +#578=CARTESIAN_POINT('',(94.52,0.,27.)); +#579=CARTESIAN_POINT('',(94.52,2.73482052102987E-31,21.)); +#580=CARTESIAN_POINT('',(94.52,69.06,27.)); +#581=CARTESIAN_POINT('',(94.52,51.795,27.)); +#582=CARTESIAN_POINT('',(94.52,69.06,21.)); +#583=CARTESIAN_POINT('Origin',(0.,69.06,21.)); +#584=CARTESIAN_POINT('',(0.,69.06,27.)); +#585=CARTESIAN_POINT('',(23.63,69.06,27.)); +#586=CARTESIAN_POINT('',(1.19407656552009E-31,69.06,21.)); +#587=CARTESIAN_POINT('Origin',(-2.98519141380022E-32,0.,21.)); +#588=CARTESIAN_POINT('',(0.,0.,27.)); +#589=CARTESIAN_POINT('',(0.,17.265,27.)); +#590=CARTESIAN_POINT('',(0.,0.,21.)); +#591=CARTESIAN_POINT('Origin',(94.52,6.83705130257469E-32,21.)); +#592=CARTESIAN_POINT('',(70.89,0.,27.)); +#593=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,21.)); +#594=CARTESIAN_POINT('',(-6.45000007450581,74.16,27.)); +#595=CARTESIAN_POINT('Origin',(-5.00000007450581,74.16,27.)); +#596=CARTESIAN_POINT('',(-6.45000007450581,74.16,21.)); +#597=CARTESIAN_POINT('Origin',(104.52,79.06,21.)); +#598=CARTESIAN_POINT('',(75.89,79.06,27.)); +#599=CARTESIAN_POINT('Origin',(47.26,34.53,27.)); +#600=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#604, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#601=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(0.01),#604, +'DISTANCE_ACCURACY_VALUE', +'Maximum model space distance between geometric entities at asserted c +onnectivities'); +#602=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#600)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#604,#605,#606)) +REPRESENTATION_CONTEXT('','3D') +); +#603=( +GEOMETRIC_REPRESENTATION_CONTEXT(3) +GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#601)) +GLOBAL_UNIT_ASSIGNED_CONTEXT((#604,#605,#606)) +REPRESENTATION_CONTEXT('','3D') +); +#604=( +LENGTH_UNIT() +NAMED_UNIT(*) +SI_UNIT(.MILLI.,.METRE.) +); +#605=( +NAMED_UNIT(*) +PLANE_ANGLE_UNIT() +SI_UNIT($,.RADIAN.) +); +#606=( +NAMED_UNIT(*) +SI_UNIT($,.STERADIAN.) +SOLID_ANGLE_UNIT() +); +#607=SHAPE_DEFINITION_REPRESENTATION(#608,#609); +#608=PRODUCT_DEFINITION_SHAPE('',$,#611); +#609=SHAPE_REPRESENTATION('',(#364),#602); +#610=PRODUCT_DEFINITION_CONTEXT('part definition',#615,'design'); +#611=PRODUCT_DEFINITION('hackpad','hackpad v5',#612,#610); +#612=PRODUCT_DEFINITION_FORMATION('',$,#617); +#613=PRODUCT_RELATED_PRODUCT_CATEGORY('hackpad v5','hackpad v5',(#617)); +#614=APPLICATION_PROTOCOL_DEFINITION('international standard', +'automotive_design',2009,#615); +#615=APPLICATION_CONTEXT( +'Core Data for Automotive Mechanical Design Process'); +#616=PRODUCT_CONTEXT('part definition',#615,'mechanical'); +#617=PRODUCT('hackpad','hackpad v5',$,(#616)); +#618=PRESENTATION_STYLE_ASSIGNMENT((#619)); +#619=SURFACE_STYLE_USAGE(.BOTH.,#620); +#620=SURFACE_SIDE_STYLE('',(#621)); +#621=SURFACE_STYLE_FILL_AREA(#622); +#622=FILL_AREA_STYLE('Steel - Satin',(#623)); +#623=FILL_AREA_STYLE_COLOUR('Steel - Satin',#624); +#624=COLOUR_RGB('Steel - Satin',0.627450980392157,0.627450980392157,0.627450980392157); +ENDSEC; +END-ISO-10303-21; diff --git a/hackpads/blipyboard/firmware/adafruit-circuitpython-seeeduino_xiao_rp2040-en_US-9.2.8.uf2 b/hackpads/blipyboard/firmware/adafruit-circuitpython-seeeduino_xiao_rp2040-en_US-9.2.8.uf2 new file mode 100644 index 0000000000000000000000000000000000000000..9ae47b2f98598ab6be30643eecbe74acb83a0dbc GIT binary patch literal 1741824 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 literal 0 HcmV?d00001 diff --git a/hackpads/blipyboard/firmware/adafruit_display_text/__init__.mpy b/hackpads/blipyboard/firmware/adafruit_display_text/__init__.mpy new file mode 100644 index 0000000000000000000000000000000000000000..0bee257687dea86806d7e161612f779d5522c645 GIT binary patch literal 4146 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 YpZ|?U>)znd9^+Z@#_L1P(Eo$~21Ly+cK`qY literal 0 HcmV?d00001 diff --git a/hackpads/blipyboard/firmware/adafruit_display_text/label.mpy b/hackpads/blipyboard/firmware/adafruit_display_text/label.mpy new file mode 100644 index 0000000000000000000000000000000000000000..d527058f327488d51b42f9ab55473e33db1da08d GIT binary patch literal 3568 zcmZ`)O;8)j6>dq0AFYCi8F{P#@hU=+h4{5B%Z`n0b{GqRu|XJ&@UAnAqyZ@_kSq;e zxQ(!0h^9v;5e2tEfF>sZ=(H#QCYcq{P;q^SUK4P)UKh zdtUeZ-uK??_qwYbz56R&hZqsZQ`0e7h{V##xHv1w(u~{|7ei9KH93n;87{P5Xmuka z7n3K&B&r?|8Xg2EK%?XVk9C(j&8|7 zY66q06;cwo6P5&745g8QxP^?uN3n<;g-?u+EEAF}gfJ#BfW-`|7NSyYA}S;5(28YJ z{18x5;#4{*rX)~f0Xq$vI8vxt2&W`bmX5N(NVUg-tw;A|Vxn3Q(_xH92@$EdvIr#b zkc*TQ#&JUB{Kz0GA08M)^}r}Xh^B~o?csM^8kfOdJT@f>z%fk1dAKVllIZN=S12LN ziAhvGG{k{41ep@Vcx+;75)&~eV>41*NJqtpltS7Wq@6`B0lRu6`jDPP3Ymp?A}q!Q zoRTEUJY-3f5=rslw1kd1TRfkwsmPqpT&0CsAu&DQWsw7b>IUm1Ssx2{C2^y8 zh%BAOGq@m*SaSAU9lT4y~GB$6TEmISwuAC+d+(rubj4C(Xe0x(augikOYLL`ili0vkU?9aX@`G< zUa!M>*6VP}^*VgF^*Vgb^*VejKe08}YQ`*z$rcIrSqF#1l$H%NAa+opbW|Cocj@ZN z>vgQIzKkua*R%Rjg{p9A>MH9i*oslVMWL!FgG*cYPJIzTt1>Ottg}a25oC@aF>yR90ITeDF(Ue9Ypo zI~>+nPjjo?($H@6JB#x~agv-4r_IXq_U`U;-A?N{r`6`P@;1(SbFx!q>XqRaD)Tdb z1eV$1br?S${z}<^IWxS;{Uf6?XI19i`&-*8W1)UdSzEM!;Zx+4$}|*I##Z44w4!aDaa1#3I^_=hFU;>JnMGjBDE(Cb_R6tctE3^oV! zj+r{5aEJ&j_jn)JeaYP`S?vWTFO}!Y7RTe2$~5xbE4xqkH#wN*3$UQaltqtr9i}CZ z7HC;0>mJ{;{Ay`8zrVwUi0^>9{3^f04V6%R`B%$3oNpmtfSJ}UE@eEr*R=ji%B3!MlCkoX^s9KF~e^!$4y$@E!jE)Qb65 znHv7K%Cwr=aP|jOa}C#zH{0=N4pwkCRP%Y2VN7o7f>&em;4xEp4#~>?2zP!ix zDkB>sn_Gcx?mm|Mf=ITpWP|f7Bby`J8_HHrxb>Uzmrtn+d;H)6EvU?yVlBLRp*-ho zDwOyYI{XyZ@T;{hj-wki?b@B!1dqCmOY4srdTeE3jkyYi>qp=0rvPbJ+?Z(##}4FaJ{g`+$eZ-+w&M84;O-0Hn<)-k_Wj*y8%aT6n3~- zdMr;%^BxUWD=iLGH;C#gQQZdBu~nkFjnSbh{+ulp!atS&V*_*VCETy>dbChv*t3oT z8Gt*m+bS|HS_Ir{2dv@D)xv9RDf=S{#SZs9^deH1{~`8zSAf_}V6;nO1a?+H2kdNt zkD%C5ir@wi0JQ7-aC9FQ*Y-U+pn?O{fdkc1z+r?y9Uj7F-v)PwE0FF5UFF{j@o4$L z@Fwx?2KEg{04P9kF$J)hp9d6@MZn%Dx?Xe>b9n1|2P7GrzCpab3T@5{vF!xHP>$a# zzy#*MDYSl#>BODIOue_pa8wr@pm^A&n!cc#zw~^j`MMMx|KKz8P540zB(3n^yL$;Y zf>w{_PrUybESBzZJ-FKa&!DL+W!{jk2lw0uyszy;DgOGl~;kl!bDL~PX zRQRxbpM2r2TResLpgagr;rU|b4Lks|C1E$di5z}kNKtj;+r=s5ae?Qd8;6!tHgWMm z_w%CB66d9FyIM*rck;W-`PKcE<$YI~YOcpp(7c^rUdqH~|CrdqHDPk$!pGWG{!bHBp}Ek!1{!IMpYRpmf%?)MGa@P7etI|MKQ literal 0 HcmV?d00001 diff --git a/hackpads/blipyboard/firmware/adafruit_display_text/outlined_label.mpy b/hackpads/blipyboard/firmware/adafruit_display_text/outlined_label.mpy new file mode 100644 index 0000000000000000000000000000000000000000..580d1339aaa06e860cff4ecd510f5b91d8c18b3e GIT binary patch literal 1734 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 eZ+-xt9R(l!Z2=tEygbxxc<}t$3qBo bool: + + if len(kwargs): + print('unknown option', kwargs) + + if isinstance(sense, microcontroller.Pin): + sense = digitalio.DigitalInOut(sense) + sense.direction = digitalio.Direction.INPUT + sense.pull = digitalio.Pull.UP + + if isinstance(source, microcontroller.Pin): + source = digitalio.DigitalInOut(source) + source.direction = digitalio.Direction.OUTPUT + source.value = False + + if not autoreload: + import supervisor + + supervisor.runtime.autoreload = False + + # Parse `usb_id` tuple for backwards compatibility. This can be removed at + # some point in the future(TM). + if type(usb_id) is tuple: + usb_id = {'manufacturer': usb_id[0], 'product': usb_id[1]} + + # configure HID devices + devices = [] + if six_axis: + from kmk.hid_reports import six_axis + + # SpaceMouse Compact + usb_id['vid'] = 0x256F + usb_id['pid'] = 0xC635 + + if keyboard: + if nkro: + devices.append(six_axis.NKRO_KEYBOARD) + else: + devices.append(six_axis.KEYBOARD) + keyboard = False + if mouse: + if pan: + devices.append(six_axis.POINTER) + else: + devices.append(six_axis.MOUSE) + mouse = False + if consumer_control: + devices.append(six_axis.CONSUMER_CONTROL) + consumer_control = False + devices.append(six_axis.SIX_AXIS) + if keyboard: + if nkro: + from kmk.hid_reports import nkro_keyboard + + devices.append(nkro_keyboard.NKRO_KEYBOARD) + else: + devices.append(usb_hid.Device.KEYBOARD) + if mouse: + if pan: + from kmk.hid_reports import pointer + + devices.append(pointer.POINTER) + else: + devices.append(usb_hid.Device.MOUSE) + if consumer_control: + devices.append(usb_hid.Device.CONSUMER_CONTROL) + if devices: + usb_hid.enable(devices, boot_device) + else: + usb_hid.disable() + + # configure midi over usb + if not midi: + import usb_midi + + usb_midi.disable() + + # configure usb vendor and product id + if usb_id: + import supervisor + + try: + supervisor.set_usb_identification(**usb_id) + except Exception as e: + print('supervisor.set_usb_identification: ', e, type(e)) + + # configure data serial + if cdc_data: + import usb_cdc + + usb_cdc.enable(data=True) + + # sense not provided or pulled low -> Skip boot configuration that may + # disable debug or rescue facilities. + if sense is None or not sense.value: + return False + + # Entries for serial console (REPL) and storage are intentionally evaluated + # last to ensure the board is debuggable, mountable and rescueable, in case + # any of the previous code throws an exception. + if not cdc_console: + import usb_cdc + + usb_cdc.enable(console=False) + + if not storage: + import storage + + storage.disable_usb_drive() + + return True diff --git a/hackpads/blipyboard/firmware/kmk/extensions/__init__.py b/hackpads/blipyboard/firmware/kmk/extensions/__init__.py new file mode 100644 index 0000000000..33eea68616 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/__init__.py @@ -0,0 +1,54 @@ +class InvalidExtensionEnvironment(Exception): + pass + + +class Extension: + _enabled = True + + def enable(self, keyboard): + self._enabled = True + + self.on_runtime_enable(keyboard) + + def disable(self, keyboard): + self._enabled = False + + self.on_runtime_disable(keyboard) + + # The below methods should be implemented by subclasses + + def on_runtime_enable(self, keyboard): + raise NotImplementedError + + def on_runtime_disable(self, keyboard): + raise NotImplementedError + + def during_bootup(self, keyboard): + raise NotImplementedError + + def before_matrix_scan(self, keyboard): + ''' + Return value will be injected as an extra matrix update + ''' + raise NotImplementedError + + def after_matrix_scan(self, keyboard): + ''' + Return value will be replace matrix update if supplied + ''' + raise NotImplementedError + + def before_hid_send(self, keyboard): + raise NotImplementedError + + def after_hid_send(self, keyboard): + raise NotImplementedError + + def on_powersave_enable(self, keyboard): + raise NotImplementedError + + def on_powersave_disable(self, keyboard): + raise NotImplementedError + + def deinit(self, keyboard): + pass diff --git a/hackpads/blipyboard/firmware/kmk/extensions/display/__init__.py b/hackpads/blipyboard/firmware/kmk/extensions/display/__init__.py new file mode 100644 index 0000000000..518baa5bee --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/display/__init__.py @@ -0,0 +1,279 @@ +from supervisor import ticks_ms + +import displayio +import terminalio +from adafruit_display_text import label + +from kmk.extensions import Extension +from kmk.keys import make_key +from kmk.kmktime import PeriodicTimer, ticks_diff +from kmk.modules.split import Split, SplitSide +from kmk.utils import clamp + + +class TextEntry: + def __init__( + self, + text='', + x=0, + y=0, + x_anchor='L', + y_anchor='T', + direction='LTR', + line_spacing=0.75, + inverted=False, + layer=None, + side=None, + ): + self.text = text + self.direction = direction + self.line_spacing = line_spacing + self.inverted = inverted + self.layer = layer + self.color = 0xFFFFFF + self.background_color = 0x000000 + self.x_anchor = 0.0 + self.y_anchor = 0.0 + if x_anchor == 'L': + self.x_anchor = 0.0 + x = x + 1 + if x_anchor == 'M': + self.x_anchor = 0.5 + if x_anchor == 'R': + self.x_anchor = 1.0 + if y_anchor == 'T': + self.y_anchor = 0.0 + if y_anchor == 'M': + self.y_anchor = 0.5 + if y_anchor == 'B': + self.y_anchor = 1.0 + self.anchor_point = (self.x_anchor, self.y_anchor) + self.anchored_position = (x, y) + if inverted: + self.color = 0x000000 + self.background_color = 0xFFFFFF + self.side = side + if side == 'L': + self.side = SplitSide.LEFT + if side == 'R': + self.side = SplitSide.RIGHT + + +class ImageEntry: + def __init__(self, x=0, y=0, image='', layer=None, side=None): + self.x = x + self.y = y + self.image = displayio.OnDiskBitmap(image) + self.layer = layer + self.side = side + if side == 'L': + self.side = SplitSide.LEFT + if side == 'R': + self.side = SplitSide.RIGHT + + +class DisplayBase: + def __init__(self): + raise NotImplementedError + + def during_bootup(self, width, height, rotation): + raise NotImplementedError + + def deinit(self): + raise NotImplementedError + + def sleep(self): + self.display.sleep() + + def wake(self): + self.display.wake() + + @property + def brightness(self): + return self.display.brightness + + @brightness.setter + def brightness(self, new_brightness): + self.display.brightness = new_brightness + + # display.show() is deprecated, so use root_group instead + @property + def root_group(self): + return self.display.root_group + + @root_group.setter + def root_group(self, group): + self.display.root_group = group + + +class Display(Extension): + def __init__( + self, + display=None, + entries=[], + width=128, + height=32, + flip: bool = False, + flip_left: bool = False, + flip_right: bool = False, + brightness=0.8, + brightness_step=0.1, + dim_time=20, + dim_target=0.1, + off_time=60, + powersave_dim_time=10, + powersave_dim_target=0.1, + powersave_off_time=30, + ): + self.display = display + self.flip = flip + self.flip_left = flip_left + self.flip_right = flip_right + self.entries = entries + self.width = width + self.height = height + self.prev_layer = None + self.brightness = brightness + self.brightness_step = brightness_step + self.timer_start = ticks_ms() + self.powersave = False + self.dim_time_ms = dim_time * 1000 + self.dim_target = dim_target + self.off_time_ms = off_time * 1000 + self.powersavedim_time_ms = powersave_dim_time * 1000 + self.powersave_dim_target = powersave_dim_target + self.powersave_off_time_ms = powersave_off_time * 1000 + self.dim_period = PeriodicTimer(50) + self.split_side = None + + make_key(names=('DIS_BRI',), on_press=self.display_brightness_increase) + make_key(names=('DIS_BRD',), on_press=self.display_brightness_decrease) + + def render(self, layer): + splash = displayio.Group() + + for entry in self.entries: + if entry.layer != layer and entry.layer is not None: + continue + if isinstance(entry, TextEntry): + splash.append( + label.Label( + terminalio.FONT, + text=entry.text, + color=entry.color, + background_color=entry.background_color, + anchor_point=entry.anchor_point, + anchored_position=entry.anchored_position, + label_direction=entry.direction, + line_spacing=entry.line_spacing, + padding_left=1, + ) + ) + elif isinstance(entry, ImageEntry): + splash.append( + displayio.TileGrid( + entry.image, + pixel_shader=entry.image.pixel_shader, + x=entry.x, + y=entry.y, + ) + ) + self.display.root_group = splash + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, keyboard): + for module in keyboard.modules: + if isinstance(module, Split): + self.split_side = module.split_side + + if self.split_side == SplitSide.LEFT: + self.flip = self.flip_left + elif self.split_side == SplitSide.RIGHT: + self.flip = self.flip_right + + for idx, entry in enumerate(self.entries): + if entry.side != self.split_side and entry.side is not None: + del self.entries[idx] + + self.display.during_bootup(self.width, self.height, 180 if self.flip else 0) + self.display.brightness = self.brightness + + def before_matrix_scan(self, sandbox): + if self.dim_period.tick(): + self.dim() + if sandbox.active_layers[0] != self.prev_layer: + self.prev_layer = sandbox.active_layers[0] + self.render(sandbox.active_layers[0]) + + def after_matrix_scan(self, sandbox): + if sandbox.matrix_update or sandbox.secondary_matrix_update: + self.timer_start = ticks_ms() + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + return + + def on_powersave_enable(self, sandbox): + self.powersave = True + + def on_powersave_disable(self, sandbox): + self.powersave = False + + def deinit(self, sandbox): + displayio.release_displays() + self.display.deinit() + + def display_brightness_increase(self, *args): + self.display.brightness = clamp( + self.display.brightness + self.brightness_step, 0, 1 + ) + self.brightness = self.display.brightness # Save current brightness + + def display_brightness_decrease(self, *args): + self.display.brightness = clamp( + self.display.brightness - self.brightness_step, 0, 1 + ) + self.brightness = self.display.brightness # Save current brightness + + def dim(self): + if self.powersave: + if ( + self.powersave_off_time_ms + and ticks_diff(ticks_ms(), self.timer_start) + > self.powersave_off_time_ms + ): + self.display.sleep() + + elif ( + self.powersave_dim_time_ms + and ticks_diff(ticks_ms(), self.timer_start) + > self.powersave_dim_time_ms + ): + self.display.brightness = self.powersave_dim_target + + else: + self.display.brightness = self.brightness + self.display.wake() + + elif ( + self.off_time_ms + and ticks_diff(ticks_ms(), self.timer_start) > self.off_time_ms + ): + self.display.sleep() + + elif ( + self.dim_time_ms + and ticks_diff(ticks_ms(), self.timer_start) > self.dim_time_ms + ): + self.display.brightness = self.dim_target + + else: + self.display.brightness = self.brightness + self.display.wake() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/display/builtin.py b/hackpads/blipyboard/firmware/kmk/extensions/display/builtin.py new file mode 100644 index 0000000000..9820f561df --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/display/builtin.py @@ -0,0 +1,24 @@ +from . import DisplayBase + + +# Intended for displays with drivers built into CircuitPython +# that can be used directly without manual initialization +class BuiltInDisplay(DisplayBase): + def __init__(self, display=None, sleep_command=None, wake_command=None): + self.display = display + self.sleep_command = sleep_command + self.wake_command = wake_command + self.is_awake = True + + def during_bootup(self, width, height, rotation): + self.display.rotation = rotation + return self.display + + def deinit(self): + return + + def sleep(self): + self.display.bus.send(self.sleep_command, b'') + + def wake(self): + self.display.bus.send(self.wake_command, b'') diff --git a/hackpads/blipyboard/firmware/kmk/extensions/display/sh1106.py b/hackpads/blipyboard/firmware/kmk/extensions/display/sh1106.py new file mode 100644 index 0000000000..cf93a457ca --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/display/sh1106.py @@ -0,0 +1,49 @@ +import busio + +import adafruit_displayio_sh1106 # Display-specific library +import displayio + +from . import DisplayBase + +# Required to initialize this display +displayio.release_displays() + + +class SH1106(DisplayBase): + def __init__( + self, + spi=None, + sck=None, + mosi=None, + command=None, + chip_select=None, + reset=None, + baudrate=1000000, + ): + self.command = command + self.chip_select = chip_select + self.reset = reset + self.baudrate = baudrate + # spi initialization + self.spi = spi + if self.spi is None: + self.spi = busio.SPI(sck, mosi) + + def during_bootup(self, width, height, rotation): + self.display = adafruit_displayio_sh1106.SH1106( + displayio.FourWire( + self.spi, + command=self.command, + chip_select=self.chip_select, + reset=self.reset, + baudrate=self.baudrate, + ), + width=width, + height=height, + rotation=rotation, + ) + + return self.display + + def deinit(self): + self.spi.deinit() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/display/ssd1306.py b/hackpads/blipyboard/firmware/kmk/extensions/display/ssd1306.py new file mode 100644 index 0000000000..a6b2a0152c --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/display/ssd1306.py @@ -0,0 +1,31 @@ +import busio + +import adafruit_displayio_ssd1306 # Display-specific library +import displayio + +from . import DisplayBase + +# Required to initialize this display +displayio.release_displays() + + +class SSD1306(DisplayBase): + def __init__(self, i2c=None, sda=None, scl=None, device_address=0x3C): + self.device_address = device_address + # i2c initialization + self.i2c = i2c + if self.i2c is None: + self.i2c = busio.I2C(scl, sda) + + def during_bootup(self, width, height, rotation): + self.display = adafruit_displayio_ssd1306.SSD1306( + displayio.I2CDisplay(self.i2c, device_address=self.device_address), + width=width, + height=height, + rotation=rotation, + ) + + return self.display + + def deinit(self): + self.i2c.deinit() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/international.py b/hackpads/blipyboard/firmware/kmk/extensions/international.py new file mode 100644 index 0000000000..8d53e01ea2 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/international.py @@ -0,0 +1,63 @@ +'''Adds international keys''' + +from kmk.extensions import Extension +from kmk.keys import KeyboardKey, make_key + + +class International(Extension): + '''Adds international keys''' + + def __init__(self): + # International + codes = ( + (50, ('NONUS_HASH', 'NUHS')), + (100, ('NONUS_BSLASH', 'NUBS')), + (101, ('APP', 'APPLICATION', 'SEL', 'WINMENU')), + (135, ('INT1', 'RO')), + (136, ('INT2', 'KANA')), + (137, ('INT3', 'JYEN')), + (138, ('INT4', 'HENK')), + (139, ('INT5', 'MHEN')), + (140, ('INT6',)), + (141, ('INT7',)), + (142, ('INT8',)), + (143, ('INT9',)), + (144, ('LANG1', 'HAEN')), + (145, ('LANG2', 'HAEJ')), + (146, ('LANG3',)), + (147, ('LANG4',)), + (148, ('LANG5',)), + (149, ('LANG6',)), + (150, ('LANG7',)), + (151, ('LANG8',)), + (152, ('LANG9',)), + ) + for code, names in codes: + make_key(names=names, constructor=KeyboardKey, code=code) + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, sandbox): + return + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + return + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + return diff --git a/hackpads/blipyboard/firmware/kmk/extensions/keymap_extras/keymap_jp.py b/hackpads/blipyboard/firmware/kmk/extensions/keymap_extras/keymap_jp.py new file mode 100644 index 0000000000..f4355dbf8e --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/keymap_extras/keymap_jp.py @@ -0,0 +1,34 @@ +# What's this? +# This is a keycode conversion script. With this, KMK will work as a JIS keyboard. + +# Usage +# ```python +# import kmk.extensions.keymap_extras.keymap_jp +# ``` + +from kmk.keys import KC + +KC.CIRC = KC.EQL # ^ +KC.AT = KC.LBRC # @ +KC.LBRC = KC.RBRC # [ +KC.EISU = KC.CAPS # Eisū (英数) +KC.COLN = KC.QUOT # : +KC.LCBR = KC.LSFT(KC.RBRC) # { +KC.RBRC = KC.NUHS # ] +KC.BSLS = KC.INT1 # (backslash) +KC.PLUS = KC.LSFT(KC.SCLN) +KC.TILD = KC.LSFT(KC.EQL) # ~ +KC.GRV = KC.LSFT(KC.AT) # ` +KC.DQUO = KC.LSFT(KC.N2) # " +KC.AMPR = KC.LSFT(KC.N6) # & +KC.ASTR = KC.LSFT(KC.QUOT) # * +KC.QUOT = KC.LSFT(KC.N7) # ' +KC.LPRN = KC.LSFT(KC.N8) # ( +KC.RPRN = KC.LSFT(KC.N9) # ) +KC.EQL = KC.LSFT(KC.MINS) # = +KC.PIPE = KC.LSFT(KC.INT3) # | +KC.RCBR = KC.LSFT(KC.NUHS) # } +KC.LABK = KC.LSFT(KC.COMM) # < +KC.RABK = KC.LSFT(KC.DOT) # > +KC.QUES = KC.LSFT(KC.SLSH) # ? +KC.UNDS = KC.LSFT(KC.INT1) # _ diff --git a/hackpads/blipyboard/firmware/kmk/extensions/led.py b/hackpads/blipyboard/firmware/kmk/extensions/led.py new file mode 100644 index 0000000000..cd155efb7a --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/led.py @@ -0,0 +1,256 @@ +import pwmio +from math import e, exp, pi, sin + +from kmk.extensions import Extension, InvalidExtensionEnvironment +from kmk.keys import Key, make_argumented_key, make_key +from kmk.utils import Debug, clamp + +debug = Debug(__name__) + + +class LEDKey(Key): + def __init__(self, *leds, brightness=None, **kwargs): + super().__init__(**kwargs) + self.leds = leds + self.brightness = None + + +def led_set_key(brightness, *leds): + return LEDKey(*leds, brightness=brightness) + + +class AnimationModes: + OFF = 0 + STATIC = 1 + STATIC_STANDBY = 2 + BREATHING = 3 + USER = 4 + + +class LED(Extension): + def __init__( + self, + led_pin, + brightness=50, + brightness_step=5, + brightness_limit=100, + breathe_center=1.5, + animation_mode=AnimationModes.STATIC, + animation_speed=1, + user_animation=None, + val=100, + ): + try: + pins_iter = iter(led_pin) + except TypeError: + pins_iter = [led_pin] + + try: + self._leds = [pwmio.PWMOut(pin) for pin in pins_iter] + except Exception as e: + if debug.enabled: + debug(e) + raise InvalidExtensionEnvironment( + 'Unable to create pwmio.PWMOut() instance with provided led_pin' + ) + + self._brightness = brightness + self._pos = 0 + self._effect_init = False + self._enabled = True + + self.brightness_step = brightness_step + self.brightness_limit = brightness_limit + self.animation_mode = animation_mode + self.animation_speed = animation_speed + self.breathe_center = breathe_center + self.val = val + + if user_animation is not None: + self.user_animation = user_animation + + make_argumented_key( + names=('LED_TOG',), + constructor=LEDKey, + on_press=self._key_led_tog, + ) + make_argumented_key( + names=('LED_INC',), + constructor=LEDKey, + on_press=self._key_led_inc, + ) + make_argumented_key( + names=('LED_DEC',), + constructor=LEDKey, + on_press=self._key_led_dec, + ) + make_argumented_key( + names=('LED_SET',), + constructor=led_set_key, + on_press=self._key_led_set, + ) + make_key(names=('LED_ANI',), on_press=self._key_led_ani) + make_key(names=('LED_AND',), on_press=self._key_led_and) + make_key( + names=('LED_MODE_PLAIN', 'LED_M_P'), on_press=self._key_led_mode_static + ) + make_key( + names=('LED_MODE_BREATHE', 'LED_M_B'), on_press=self._key_led_mode_breathe + ) + + def __repr__(self): + return f'LED({self._to_dict()})' + + def _to_dict(self): + return { + '_brightness': self._brightness, + '_pos': self._pos, + 'brightness_step': self.brightness_step, + 'brightness_limit': self.brightness_limit, + 'animation_mode': self.animation_mode, + 'animation_speed': self.animation_speed, + 'breathe_center': self.breathe_center, + 'val': self.val, + } + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, sandbox): + return + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + self.animate() + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + return + + def _init_effect(self): + self._pos = 0 + self._effect_init = False + return self + + def set_brightness(self, percent, leds=None): + leds = leds or range(0, len(self._leds)) + for i in leds: + self._leds[i].duty_cycle = int(percent / 100 * 65535) + + def step_brightness(self, step, leds=None): + leds = leds or range(0, len(self._leds)) + for i in leds: + brightness = int(self._leds[i].duty_cycle / 65535 * 100) + step + self.set_brightness(clamp(brightness), [i]) + + def increase_brightness(self, step=None, leds=None): + if step is None: + step = self.brightness_step + self.step_brightness(step, leds) + + def decrease_brightness(self, step=None, leds=None): + if step is None: + step = self.brightness_step + self.step_brightness(-step, leds) + + def off(self): + self.set_brightness(0) + + def increase_ani(self): + ''' + Increases animation speed by 1 amount stopping at 10 + :param step: + ''' + if (self.animation_speed + 1) >= 10: + self.animation_speed = 10 + else: + self.val += 1 + + def decrease_ani(self): + ''' + Decreases animation speed by 1 amount stopping at 0 + :param step: + ''' + if (self.val - 1) <= 0: + self.val = 0 + else: + self.val -= 1 + + def effect_breathing(self): + # http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/ + # https://github.com/qmk/qmk_firmware/blob/9f1d781fcb7129a07e671a46461e501e3f1ae59d/quantum/rgblight.c#L806 + sined = sin((self._pos / 255.0) * pi) + multip_1 = exp(sined) - self.breathe_center / e + multip_2 = self.brightness_limit / (e - 1 / e) + + self._brightness = int(multip_1 * multip_2) + self._pos = (self._pos + self.animation_speed) % 256 + self.set_brightness(self._brightness) + + def effect_static(self): + self.set_brightness(self._brightness) + # Set animation mode to standby to prevent cycles from being wasted + self.animation_mode = AnimationModes.STATIC_STANDBY + + def animate(self): + ''' + Activates a "step" in the animation based on the active mode + :return: Returns the new state in animation + ''' + if self._effect_init: + self._init_effect() + if self._enabled: + if self.animation_mode == AnimationModes.BREATHING: + return self.effect_breathing() + elif self.animation_mode == AnimationModes.STATIC: + return self.effect_static() + elif self.animation_mode == AnimationModes.STATIC_STANDBY: + pass + elif self.animation_mode == AnimationModes.USER: + return self.user_animation(self) + else: + self.off() + + def _key_led_tog(self, *args, **kwargs): + if self.animation_mode == AnimationModes.STATIC_STANDBY: + self.animation_mode = AnimationModes.STATIC + + if self._enabled: + self.off() + self._enabled = not self._enabled + + def _key_led_inc(self, key, *args, **kwargs): + self.increase_brightness(leds=key.leds) + + def _key_led_dec(self, key, *args, **kwargs): + self.decrease_brightness(leds=key.leds) + + def _key_led_set(self, key, *args, **kwargs): + self.set_brightness(percent=key.brightness, leds=key.leds) + + def _key_led_ani(self, *args, **kwargs): + self.increase_ani() + + def _key_led_and(self, *args, **kwargs): + self.decrease_ani() + + def _key_led_mode_static(self, *args, **kwargs): + self._effect_init = True + self.animation_mode = AnimationModes.STATIC + + def _key_led_mode_breathe(self, *args, **kwargs): + self._effect_init = True + self.animation_mode = AnimationModes.BREATHING diff --git a/hackpads/blipyboard/firmware/kmk/extensions/lock_status.py b/hackpads/blipyboard/firmware/kmk/extensions/lock_status.py new file mode 100644 index 0000000000..85b890d3bb --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/lock_status.py @@ -0,0 +1,69 @@ +import usb_hid +from micropython import const + +from kmk.extensions import Extension + +_NUMLOCK = const(0x01) +_CAPSLOCK = const(0x02) +_SCROLLLOCK = const(0x04) +_COMPOSE = const(0x08) +_KANA = const(0x10) + + +class LockStatus(Extension): + def __init__(self): + self.report = 0 + self.hid = None + self._report_updated = False + + def __repr__(self): + return f'LockStatus(report={self.report})' + + def during_bootup(self, sandbox): + for device in usb_hid.devices: + if device.usage == usb_hid.Device.KEYBOARD.usage: + self.hid = device + if self.hid is None: + raise RuntimeError + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + report = self.hid.get_last_received_report() + if report is None: + self._report_updated = False + else: + self.report = report[0] + self._report_updated = True + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + return + + @property + def report_updated(self): + return self._report_updated + + def get_num_lock(self): + return bool(self.report & _NUMLOCK) + + def get_caps_lock(self): + return bool(self.report & _CAPSLOCK) + + def get_scroll_lock(self): + return bool(self.report & _SCROLLLOCK) + + def get_compose(self): + return bool(self.report & _COMPOSE) + + def get_kana(self): + return bool(self.report & _KANA) diff --git a/hackpads/blipyboard/firmware/kmk/extensions/media_keys.py b/hackpads/blipyboard/firmware/kmk/extensions/media_keys.py new file mode 100644 index 0000000000..19edda23cc --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/media_keys.py @@ -0,0 +1,61 @@ +from kmk.extensions import Extension +from kmk.keys import ConsumerKey, make_key + + +class MediaKeys(Extension): + def __init__(self): + # Consumer ("media") keys. Most known keys aren't supported here. A much + # longer list used to exist in this file, but the codes were almost certainly + # incorrect, conflicting with each other, or otherwise 'weird'. We'll add them + # back in piecemeal as needed. PRs welcome. + # + # A super useful reference for these is http://www.freebsddiary.org/APC/usb_hid_usages.php + # Note that currently we only have the PC codes. Recent MacOS versions seem to + # support PC media keys, so I don't know how much value we would get out of + # adding the old Apple-specific consumer codes, but again, PRs welcome if the + # lack of them impacts you. + + codes = ( + (0xE2, ('AUDIO_MUTE', 'MUTE')), + (0xE9, ('AUDIO_VOL_UP', 'VOLU')), + (0xEA, ('AUDIO_VOL_DOWN', 'VOLD')), + (0x6F, ('BRIGHTNESS_UP', 'BRIU')), + (0x70, ('BRIGHTNESS_DOWN', 'BRID')), + (0xB5, ('MEDIA_NEXT_TRACK', 'MNXT')), + (0xB6, ('MEDIA_PREV_TRACK', 'MPRV')), + (0xB7, ('MEDIA_STOP', 'MSTP')), + (0xCD, ('MEDIA_PLAY_PAUSE', 'MPLY')), + (0xB8, ('MEDIA_EJECT', 'EJCT')), + (0xB3, ('MEDIA_FAST_FORWARD', 'MFFD')), + (0xB4, ('MEDIA_REWIND', 'MRWD')), + ) + + for code, names in codes: + make_key(names=names, constructor=ConsumerKey, code=code) + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, sandbox): + return + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + return + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + return diff --git a/hackpads/blipyboard/firmware/kmk/extensions/peg_rgb_matrix.py b/hackpads/blipyboard/firmware/kmk/extensions/peg_rgb_matrix.py new file mode 100644 index 0000000000..816dc57836 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/peg_rgb_matrix.py @@ -0,0 +1,200 @@ +import neopixel + +from storage import getmount + +from kmk.extensions import Extension +from kmk.keys import make_key +from kmk.utils import Debug + +debug = Debug(__name__) + + +class Color: + OFF = [0, 0, 0] + BLACK = OFF + WHITE = [249, 249, 249] + RED = [255, 0, 0] + AZURE = [153, 245, 255] + BLUE = [0, 0, 255] + CYAN = [0, 255, 255] + GREEN = [0, 255, 0] + YELLOW = [255, 247, 0] + MAGENTA = [255, 0, 255] + ORANGE = [255, 77, 0] + PURPLE = [255, 0, 242] + TEAL = [0, 128, 128] + PINK = [255, 0, 255] + + +class Rgb_matrix_data: + def __init__(self, keys=[], underglow=[]): + if len(keys) == 0: + if debug.enabled: + debug('No colors passed for your keys') + return + if len(underglow) == 0: + if debug.enabled: + debug('No colors passed for your underglow') + return + self.data = keys + underglow + + @staticmethod + def generate_led_map( + number_of_keys, number_of_underglow, key_color, underglow_color + ): + keys = [key_color] * number_of_keys + underglow = [underglow_color] * number_of_underglow + if debug.enabled: + debug('Rgb_matrix_data(keys=', keys, ', nunderglow=', underglow, ')') + + +class Rgb_matrix(Extension): + def __init__( + self, + rgb_order=(1, 0, 2), # GRB WS2812 + disable_auto_write=False, + ledDisplay=[], + split=False, + rightSide=False, + ): + name = str(getmount('/').label) + self.rgb_order = rgb_order + self.disable_auto_write = disable_auto_write + self.split = split + self.rightSide = rightSide + self.brightness_step = 0.1 + self.brightness = 0 + + if name.endswith('L'): + self.rightSide = False + elif name.endswith('R'): + self.rightSide = True + if type(ledDisplay) is Rgb_matrix_data: + self.ledDisplay = ledDisplay.data + else: + self.ledDisplay = ledDisplay + + make_key(names=('RGB_TOG',), on_press=self._rgb_tog) + make_key(names=('RGB_BRI',), on_press=self._rgb_bri) + make_key(names=('RGB_BRD',), on_press=self._rgb_brd) + + def _rgb_tog(self, *args, **kwargs): + if self.enable: + self.off() + else: + self.on() + self.enable = not self.enable + + def _rgb_bri(self, *args, **kwargs): + self.increase_brightness() + + def _rgb_brd(self, *args, **kwargs): + self.decrease_brightness() + + def on(self): + if self.neopixel: + self.setBasedOffDisplay() + self.neopixel.show() + + def off(self): + if self.neopixel: + self.set_rgb_fill((0, 0, 0)) + + def set_rgb_fill(self, rgb): + if self.neopixel: + self.neopixel.fill(rgb) + if self.disable_auto_write: + self.neopixel.show() + + def set_brightness(self, brightness=None): + if brightness is None: + brightness = self.brightness + + if self.neopixel: + self.neopixel.brightness = brightness + if self.disable_auto_write: + self.neopixel.show() + + def increase_brightness(self, step=None): + if step is None: + step = self.brightness_step + + self.brightness = ( + self.brightness + step if self.brightness + step <= 1.0 else 1.0 + ) + + self.set_brightness(self.brightness) + + def decrease_brightness(self, step=None): + if step is None: + step = self.brightness_step + + self.brightness = ( + self.brightness - step if self.brightness - step >= 0.0 else 0.0 + ) + self.set_brightness(self.brightness) + + def setBasedOffDisplay(self): + if self.split: + for i, val in enumerate(self.ledDisplay): + if self.rightSide: + if self.keyPos[i] >= (self.num_pixels / 2): + self.neopixel[int(self.keyPos[i] - (self.num_pixels / 2))] = ( + val[0], + val[1], + val[2], + ) + else: + if self.keyPos[i] <= (self.num_pixels / 2): + self.neopixel[self.keyPos[i]] = (val[0], val[1], val[2]) + else: + for i, val in enumerate(self.ledDisplay): + self.neopixel[self.keyPos[i]] = (val[0], val[1], val[2]) + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, board): + self.neopixel = neopixel.NeoPixel( + board.rgb_pixel_pin, + board.num_pixels, + brightness=board.brightness_limit, + pixel_order=self.rgb_order, + auto_write=not self.disable_auto_write, + ) + self.num_pixels = board.num_pixels + self.keyPos = board.led_key_pos + self.brightness = board.brightness_limit + self.on() + return + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + return + + def on_powersave_enable(self, sandbox): + if self.neopixel: + self.neopixel.brightness = ( + self.neopixel.brightness / 2 + if self.neopixel.brightness / 2 > 0 + else 0.1 + ) + if self.disable_auto_write: + self.neopixel.show() + + def on_powersave_disable(self, sandbox): + if self.neopixel: + self.neopixel.brightness = self.brightness + if self.disable_auto_write: + self.neopixel.show() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/rgb.py b/hackpads/blipyboard/firmware/kmk/extensions/rgb.py new file mode 100644 index 0000000000..e54e939b92 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/rgb.py @@ -0,0 +1,551 @@ +from adafruit_pixelbuf import PixelBuf +from math import e, exp, pi, sin + +from kmk.extensions import Extension +from kmk.keys import make_key +from kmk.scheduler import create_task +from kmk.utils import Debug, clamp + +debug = Debug(__name__) + +rgb_config = {} + + +def hsv_to_rgb(hue, sat, val): + ''' + Converts HSV values, and returns a tuple of RGB values + :param hue: + :param sat: + :param val: + :return: (r, g, b) + ''' + if sat == 0: + return (val, val, val) + + hue = 6 * (hue & 0xFF) + frac = hue & 0xFF + sxt = hue >> 8 + + base = (0xFF - sat) * val + color = (val * sat * frac) >> 8 + val <<= 8 + + if sxt == 0: + r = val + g = base + color + b = base + elif sxt == 1: + r = val - color + g = val + b = base + elif sxt == 2: + r = base + g = val + b = base + color + elif sxt == 3: + r = base + g = val - color + b = val + elif sxt == 4: + r = base + color + g = base + b = val + elif sxt == 5: + r = val + g = base + b = val - color + + return (r >> 8), (g >> 8), (b >> 8) + + +def hsv_to_rgbw(hue, sat, val): + ''' + Converts HSV values, and returns a tuple of RGBW values + :param hue: + :param sat: + :param val: + :return: (r, g, b, w) + ''' + rgb = hsv_to_rgb(hue, sat, val) + return rgb[0], rgb[1], rgb[2], min(rgb) + + +class AnimationModes: + OFF = 0 + STATIC = 1 + STATIC_STANDBY = 2 + BREATHING = 3 + RAINBOW = 4 + BREATHING_RAINBOW = 5 + KNIGHT = 6 + SWIRL = 7 + USER = 8 + + +class RGB(Extension): + pos = 0 + + def __init__( + self, + pixel_pin, + num_pixels=0, + rgb_order=(1, 0, 2), # GRB WS2812 + val_limit=255, + hue_default=0, + sat_default=255, + val_default=255, + hue_step=4, + sat_step=13, + val_step=13, + animation_speed=1, + breathe_center=1, # 1.0-2.7 + knight_effect_length=3, + animation_mode=AnimationModes.STATIC, + effect_init=False, + reverse_animation=False, + user_animation=None, + pixels=None, + refresh_rate=60, + ): + self.pixel_pin = pixel_pin + self.num_pixels = num_pixels + self.rgb_order = rgb_order + self.hue_step = hue_step + self.sat_step = sat_step + self.val_step = val_step + self.hue = hue_default + self.hue_default = hue_default + self.sat = sat_default + self.sat_default = sat_default + self.val = val_default + self.val_default = val_default + self.breathe_center = breathe_center + self.knight_effect_length = knight_effect_length + self.val_limit = val_limit + self.animation_mode = animation_mode + self.animation_speed = animation_speed + self.effect_init = effect_init + self.reverse_animation = reverse_animation + self.user_animation = user_animation + self.pixels = pixels + self.refresh_rate = refresh_rate + + self.rgbw = bool(len(rgb_order) == 4) + + self._substep = 0 + + make_key(names=('RGB_TOG',), on_press=self._rgb_tog) + make_key(names=('RGB_HUI',), on_press=self._rgb_hui) + make_key(names=('RGB_HUD',), on_press=self._rgb_hud) + make_key(names=('RGB_SAI',), on_press=self._rgb_sai) + make_key(names=('RGB_SAD',), on_press=self._rgb_sad) + make_key(names=('RGB_VAI',), on_press=self._rgb_vai) + make_key(names=('RGB_VAD',), on_press=self._rgb_vad) + make_key(names=('RGB_ANI',), on_press=self._rgb_ani) + make_key(names=('RGB_AND',), on_press=self._rgb_and) + make_key(names=('RGB_MODE_PLAIN', 'RGB_M_P'), on_press=self._rgb_mode_static) + make_key(names=('RGB_MODE_BREATHE', 'RGB_M_B'), on_press=self._rgb_mode_breathe) + make_key(names=('RGB_MODE_RAINBOW', 'RGB_M_R'), on_press=self._rgb_mode_rainbow) + make_key( + names=('RGB_MODE_BREATHE_RAINBOW', 'RGB_M_BR'), + on_press=self._rgb_mode_breathe_rainbow, + ) + make_key(names=('RGB_MODE_SWIRL', 'RGB_M_S'), on_press=self._rgb_mode_swirl) + make_key(names=('RGB_MODE_KNIGHT', 'RGB_M_K'), on_press=self._rgb_mode_knight) + make_key(names=('RGB_RESET', 'RGB_RST'), on_press=self._rgb_reset) + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, sandbox): + if self.pixels is None: + import neopixel + + self.pixels = neopixel.NeoPixel( + self.pixel_pin, + self.num_pixels, + pixel_order=self.rgb_order, + ) + + # PixelBuffer are already iterable, can't do the usual `try: iter(...)` + if issubclass(self.pixels.__class__, PixelBuf): + self.pixels = (self.pixels,) + + # Turn off auto_write on the backend. We handle the propagation of auto_write + # behaviour. + for pixel in self.pixels: + pixel.auto_write = False + + if self.num_pixels == 0: + for pixels in self.pixels: + self.num_pixels += len(pixels) + + if debug.enabled: + for n, pixels in enumerate(self.pixels): + debug(f'pixels[{n}] = {pixels.__class__}[{len(pixels)}]') + + self._task = create_task(self.animate, period_ms=(1000 // self.refresh_rate)) + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + pass + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + self._do_update() + + def deinit(self, sandbox): + for pixel in self.pixels: + pixel.deinit() + + def set_hsv(self, hue, sat, val, index): + ''' + Takes HSV values and displays it on a single LED/Neopixel + :param hue: + :param sat: + :param val: + :param index: Index of LED/Pixel + ''' + + val = clamp(val, 0, self.val_limit) + + if self.rgbw: + self.set_rgb(hsv_to_rgbw(hue, sat, val), index) + else: + self.set_rgb(hsv_to_rgb(hue, sat, val), index) + + def set_hsv_fill(self, hue, sat, val): + ''' + Takes HSV values and displays it on all LEDs/Neopixels + :param hue: + :param sat: + :param val: + ''' + + val = clamp(val, 0, self.val_limit) + + if self.rgbw: + self.set_rgb_fill(hsv_to_rgbw(hue, sat, val)) + else: + self.set_rgb_fill(hsv_to_rgb(hue, sat, val)) + + def set_rgb(self, rgb, index): + ''' + Takes an RGB or RGBW and displays it on a single LED/Neopixel + :param rgb: RGB or RGBW + :param index: Index of LED/Pixel + ''' + if 0 <= index <= self.num_pixels - 1: + for pixels in self.pixels: + if index <= (len(pixels) - 1): + pixels[index] = rgb + break + index -= len(pixels) + + def set_rgb_fill(self, rgb): + ''' + Takes an RGB or RGBW and displays it on all LEDs/Neopixels + :param rgb: RGB or RGBW + ''' + for pixels in self.pixels: + pixels.fill(rgb) + + def increase_hue(self, step=None): + ''' + Increases hue by step amount rolling at 256 and returning to 0 + :param step: + ''' + if step is None: + step = self.hue_step + + self.hue = (self.hue + step) % 256 + + if self._check_update(): + self._do_update() + + def decrease_hue(self, step=None): + ''' + Decreases hue by step amount rolling at 0 and returning to 256 + :param step: + ''' + if step is None: + step = self.hue_step + + if (self.hue - step) <= 0: + self.hue = (self.hue + 256 - step) % 256 + else: + self.hue = (self.hue - step) % 256 + + if self._check_update(): + self._do_update() + + def increase_sat(self, step=None): + ''' + Increases saturation by step amount stopping at 255 + :param step: + ''' + if step is None: + step = self.sat_step + + self.sat = clamp(self.sat + step, 0, 255) + + if self._check_update(): + self._do_update() + + def decrease_sat(self, step=None): + ''' + Decreases saturation by step amount stopping at 0 + :param step: + ''' + if step is None: + step = self.sat_step + + self.sat = clamp(self.sat - step, 0, 255) + + if self._check_update(): + self._do_update() + + def increase_val(self, step=None): + ''' + Increases value by step amount stopping at 100 + :param step: + ''' + if step is None: + step = self.val_step + + self.val = clamp(self.val + step, 0, 255) + + if self._check_update(): + self._do_update() + + def decrease_val(self, step=None): + ''' + Decreases value by step amount stopping at 0 + :param step: + ''' + if step is None: + step = self.val_step + + self.val = clamp(self.val - step, 0, 255) + + if self._check_update(): + self._do_update() + + def increase_ani(self): + ''' + Increases animation speed by 1 amount stopping at 10 + :param step: + ''' + self.animation_speed = clamp(self.animation_speed + 1, 0, 10) + + if self._check_update(): + self._do_update() + + def decrease_ani(self): + ''' + Decreases animation speed by 1 amount stopping at 0 + :param step: + ''' + self.animation_speed = clamp(self.animation_speed - 1, 0, 10) + + if self._check_update(): + self._do_update() + + def off(self): + ''' + Turns off all LEDs/Neopixels without changing stored values + ''' + self.set_hsv_fill(0, 0, 0) + + self.show() + + def show(self): + ''' + Turns on all LEDs/Neopixels without changing stored values + ''' + for pixels in self.pixels: + pixels.show() + + def animate(self): + ''' + Activates a "step" in the animation based on the active mode + :return: Returns the new state in animation + ''' + if self.effect_init: + self._init_effect() + + if self.animation_mode is AnimationModes.STATIC_STANDBY: + return + + if not self.enable: + return + + self._animation_step() + + if self.animation_mode == AnimationModes.STATIC_STANDBY: + return + elif self.animation_mode == AnimationModes.BREATHING: + self.effect_breathing() + elif self.animation_mode == AnimationModes.BREATHING_RAINBOW: + self.effect_breathing_rainbow() + elif self.animation_mode == AnimationModes.KNIGHT: + self.effect_knight() + elif self.animation_mode == AnimationModes.RAINBOW: + self.effect_rainbow() + elif self.animation_mode == AnimationModes.STATIC: + self.effect_static() + elif self.animation_mode == AnimationModes.SWIRL: + self.effect_swirl() + elif self.animation_mode == AnimationModes.USER: + self.user_animation(self) + else: + self.off() + + self.show() + + def _animation_step(self): + self._substep += self.animation_speed / 4 + self._step = int(self._substep) + self._substep -= self._step + + def _init_effect(self): + self.pos = 0 + self.reverse_animation = False + self.effect_init = False + + def _check_update(self): + return bool(self.animation_mode == AnimationModes.STATIC_STANDBY) + + def _do_update(self): + if self.animation_mode == AnimationModes.STATIC_STANDBY: + self.animation_mode = AnimationModes.STATIC + + def effect_static(self): + self.set_hsv_fill(self.hue, self.sat, self.val) + self.animation_mode = AnimationModes.STATIC_STANDBY + + def effect_breathing(self): + # http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/ + # https://github.com/qmk/qmk_firmware/blob/9f1d781fcb7129a07e671a46461e501e3f1ae59d/quantum/rgblight.c#L806 + sined = sin((self.pos / 255.0) * pi) + multip_1 = exp(sined) - self.breathe_center / e + multip_2 = clamp(self.val, 0, self.val_limit) / (e - 1 / e) + + val = int(multip_1 * multip_2) + self.pos = (self.pos + self._step) % 256 + self.set_hsv_fill(self.hue, self.sat, val) + + def effect_breathing_rainbow(self): + self.increase_hue(self._step) + self.effect_breathing() + + def effect_rainbow(self): + self.increase_hue(self._step) + self.set_hsv_fill(self.hue, self.sat, self.val) + + def effect_swirl(self): + self.increase_hue(self._step) + for i in range(0, self.num_pixels): + self.set_hsv( + (self.hue - (i * self.num_pixels)) % 256, self.sat, self.val, i + ) + + def effect_knight(self): + # Determine which LEDs should be lit up + self.off() # Fill all off + pos = int(self.pos) + + # Set all pixels on in range of animation length offset by position + for i in range(pos, (pos + self.knight_effect_length)): + self.set_hsv(self.hue, self.sat, self.val, i) + + # Reverse animation when a boundary is hit + if pos >= self.num_pixels: + self.reverse_animation = True + elif 1 - pos > self.knight_effect_length: + self.reverse_animation = False + + if self.reverse_animation: + self.pos -= self._step / 2 + else: + self.pos += self._step / 2 + + def _rgb_tog(self, *args, **kwargs): + if self.animation_mode == AnimationModes.STATIC: + self.animation_mode = AnimationModes.STATIC_STANDBY + self._do_update() + if self.animation_mode == AnimationModes.STATIC_STANDBY: + self.animation_mode = AnimationModes.STATIC + self._do_update() + if self.enable: + self.off() + self.enable = not self.enable + + def _rgb_hui(self, *args, **kwargs): + self.increase_hue() + + def _rgb_hud(self, *args, **kwargs): + self.decrease_hue() + + def _rgb_sai(self, *args, **kwargs): + self.increase_sat() + + def _rgb_sad(self, *args, **kwargs): + self.decrease_sat() + + def _rgb_vai(self, *args, **kwargs): + self.increase_val() + + def _rgb_vad(self, *args, **kwargs): + self.decrease_val() + + def _rgb_ani(self, *args, **kwargs): + self.increase_ani() + + def _rgb_and(self, *args, **kwargs): + self.decrease_ani() + + def _rgb_mode_static(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.STATIC + + def _rgb_mode_breathe(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.BREATHING + + def _rgb_mode_breathe_rainbow(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.BREATHING_RAINBOW + + def _rgb_mode_rainbow(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.RAINBOW + + def _rgb_mode_swirl(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.SWIRL + + def _rgb_mode_knight(self, *args, **kwargs): + self.effect_init = True + self.animation_mode = AnimationModes.KNIGHT + + def _rgb_reset(self, *args, **kwargs): + self.hue = self.hue_default + self.sat = self.sat_default + self.val = self.val_default + if self.animation_mode == AnimationModes.STATIC_STANDBY: + self.animation_mode = AnimationModes.STATIC + self._do_update() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/spacemouse_status.py b/hackpads/blipyboard/firmware/kmk/extensions/spacemouse_status.py new file mode 100644 index 0000000000..64d566493d --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/spacemouse_status.py @@ -0,0 +1,54 @@ +import usb_hid +from micropython import const + +from kmk.extensions import Extension + +_SIX_AXIS_USAGE = const(0x08) +_LED = const(0x01) + + +class SpacemouseStatus(Extension): + def __init__(self): + self.report = 0 + self.hid = None + self._report_updated = False + + def __repr__(self): + return f'SpacemouseStatus(report={self.report})' + + def during_bootup(self, sandbox): + for device in usb_hid.devices: + if device.usage == _SIX_AXIS_USAGE: + self.hid = device + if self.hid is None: + raise RuntimeError + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + report = self.hid.get_last_received_report(4) + if report is None: + self._report_updated = False + else: + self.report = report[0] + self._report_updated = True + + def on_powersave_enable(self, sandbox): + return + + def on_powersave_disable(self, sandbox): + return + + @property + def report_updated(self): + return self._report_updated + + def get_led(self): + return bool(self.report & _LED) diff --git a/hackpads/blipyboard/firmware/kmk/extensions/statusled.py b/hackpads/blipyboard/firmware/kmk/extensions/statusled.py new file mode 100644 index 0000000000..7610ca121d --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/statusled.py @@ -0,0 +1,149 @@ +# Use this extension for showing layer status with three leds + +import pwmio +import time + +from kmk.extensions import Extension, InvalidExtensionEnvironment +from kmk.keys import make_key +from kmk.utils import Debug + +debug = Debug(__name__) + + +class statusLED(Extension): + def __init__( + self, + led_pins, + brightness=30, + brightness_step=5, + brightness_limit=100, + ): + self._leds = [] + for led in led_pins: + try: + self._leds.append(pwmio.PWMOut(led)) + except Exception as e: + if debug.enabled: + debug(e) + raise InvalidExtensionEnvironment( + 'Unable to create pulseio.PWMOut() instance with provided led_pin' + ) + self._led_count = len(self._leds) + + self.brightness = brightness + self._layer_last = -1 + + self.brightness_step = brightness_step + self.brightness_limit = brightness_limit + + make_key(names=('SLED_INC',), on_press=self._key_led_inc) + make_key(names=('SLED_DEC',), on_press=self._key_led_dec) + + def _layer_indicator(self, layer_active, *args, **kwargs): + ''' + Indicates layer with leds + + For the time being just a simple consecutive single led + indicator. And when there are more layers than leds it + wraps around to the first led again. + (Also works for a single led, which just lights when any + layer is active) + ''' + + if self._layer_last != layer_active: + led_last = 0 if self._layer_last == 0 else 1 + (self._layer_last - 1) % 3 + if layer_active > 0: + led_active = 0 if layer_active == 0 else 1 + (layer_active - 1) % 3 + self.set_brightness(self.brightness, led_active) + self.set_brightness(0, led_last) + else: + self.set_brightness(0, led_last) + self._layer_last = layer_active + + def __repr__(self): + return f'SLED({self._to_dict()})' + + def _to_dict(self): + return { + 'brightness': self.brightness, + 'brightness_step': self.brightness_step, + 'brightness_limit': self.brightness_limit, + } + + def on_runtime_enable(self, sandbox): + return + + def on_runtime_disable(self, sandbox): + return + + def during_bootup(self, sandbox): + '''Light up every single led once for 200 ms''' + for i in range(self._led_count + 2): + if i < self._led_count: + self._leds[i].duty_cycle = int(self.brightness / 100 * 65535) + i_off = i - 2 + if i_off >= 0 and i_off < self._led_count: + self._leds[i_off].duty_cycle = int(0) + time.sleep(0.1) + for led in self._leds: + led.duty_cycle = int(0) + return + + def before_matrix_scan(self, sandbox): + return + + def after_matrix_scan(self, sandbox): + self._layer_indicator(sandbox.active_layers[0]) + return + + def before_hid_send(self, sandbox): + return + + def after_hid_send(self, sandbox): + return + + def on_powersave_enable(self, sandbox): + self.set_brightness(0) + return + + def on_powersave_disable(self, sandbox): + self.set_brightness(self.brightness) + self._leds[2].duty_cycle = int(50 / 100 * 65535) + time.sleep(0.2) + self._leds[2].duty_cycle = int(0) + return + + def set_brightness(self, percent, layer_id=-1): + if layer_id < 0: + for led in self._leds: + led.duty_cycle = int(percent / 100 * 65535) + else: + self._leds[layer_id - 1].duty_cycle = int(percent / 100 * 65535) + + def increase_brightness(self, step=None): + if not step: + self.brightness += self.brightness_step + else: + self.brightness += step + + if self.brightness > 100: + self.brightness = 100 + + self.set_brightness(self.brightness, self._layer_last) + + def decrease_brightness(self, step=None): + if not step: + self.brightness -= self.brightness_step + else: + self.brightness -= step + + if self.brightness < 0: + self.brightness = 0 + + self.set_brightness(self.brightness, self._layer_last) + + def _key_led_inc(self, *args, **kwargs): + self.increase_brightness() + + def _key_led_dec(self, *args, **kwargs): + self.decrease_brightness() diff --git a/hackpads/blipyboard/firmware/kmk/extensions/stringy_keymaps.py b/hackpads/blipyboard/firmware/kmk/extensions/stringy_keymaps.py new file mode 100644 index 0000000000..ea8e490a3f --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/extensions/stringy_keymaps.py @@ -0,0 +1,44 @@ +from kmk.extensions import Extension +from kmk.keys import KC +from kmk.utils import Debug + +debug = Debug(__name__) + + +class StringyKeymaps(Extension): + def on_runtime_enable(self, keyboard): + return + + def on_runtime_disable(self, keyboard): + return + + def during_bootup(self, keyboard): + for _, layer in enumerate(keyboard.keymap): + for key_idx, key in enumerate(layer): + if isinstance(key, str): + replacement = KC.get(key) + if replacement is None: + replacement = KC.NO + if debug.enabled: + debug('Failed replacing ', key, '. Using KC.NO') + elif debug.enabled: + debug('Replacing ', key, ' with ', replacement) + layer[key_idx] = replacement + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/handlers/__init__.py b/hackpads/blipyboard/firmware/kmk/handlers/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hackpads/blipyboard/firmware/kmk/handlers/stock.py b/hackpads/blipyboard/firmware/kmk/handlers/stock.py new file mode 100644 index 0000000000..437f70480e --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/handlers/stock.py @@ -0,0 +1,121 @@ +from time import sleep + + +def passthrough(key, keyboard, *args, **kwargs): + return keyboard + + +def reset(*args, **kwargs): + import microcontroller + + microcontroller.reset() + + +def reload(*args, **kwargs): + import supervisor + + supervisor.reload() + + +def bootloader(*args, **kwargs): + import microcontroller + + microcontroller.on_next_reset(microcontroller.RunMode.BOOTLOADER) + microcontroller.reset() + + +def gesc_pressed(key, keyboard, KC, *args, **kwargs): + GESC_TRIGGERS = {KC.LSHIFT, KC.RSHIFT, KC.LGUI, KC.RGUI} + + if GESC_TRIGGERS.intersection(keyboard.keys_pressed): + # First, release GUI if already pressed + keyboard._send_hid() + # if Shift is held, KC_GRAVE will become KC_TILDE on OS level + keyboard.keys_pressed.add(KC.GRAVE) + keyboard.hid_pending = True + return keyboard + + # else return KC_ESC + keyboard.keys_pressed.add(KC.ESCAPE) + keyboard.hid_pending = True + + return keyboard + + +def gesc_released(key, keyboard, KC, *args, **kwargs): + keyboard.keys_pressed.discard(KC.ESCAPE) + keyboard.keys_pressed.discard(KC.GRAVE) + keyboard.hid_pending = True + return keyboard + + +def bkdl_pressed(key, keyboard, KC, *args, **kwargs): + BKDL_TRIGGERS = {KC.LGUI, KC.RGUI} + + if BKDL_TRIGGERS.intersection(keyboard.keys_pressed): + keyboard._send_hid() + keyboard.keys_pressed.add(KC.DEL) + keyboard.hid_pending = True + return keyboard + + # else return KC_ESC + keyboard.keys_pressed.add(KC.BKSP) + keyboard.hid_pending = True + + return keyboard + + +def bkdl_released(key, keyboard, KC, *args, **kwargs): + keyboard.keys_pressed.discard(KC.BKSP) + keyboard.keys_pressed.discard(KC.DEL) + keyboard.hid_pending = True + return keyboard + + +def sleep_pressed(key, keyboard, KC, *args, **kwargs): + sleep(key.meta.ms / 1000) + return keyboard + + +def uc_mode_pressed(key, keyboard, *args, **kwargs): + keyboard.unicode_mode = key.meta.mode + + return keyboard + + +def hid_switch(key, keyboard, *args, **kwargs): + keyboard.hid_type, keyboard.secondary_hid_type = ( + keyboard.secondary_hid_type, + keyboard.hid_type, + ) + keyboard._init_hid() + return keyboard + + +def ble_refresh(key, keyboard, *args, **kwargs): + from kmk.hid import HIDModes + + if keyboard.hid_type != HIDModes.BLE: + return keyboard + + keyboard._hid_helper.stop_advertising() + keyboard._hid_helper.start_advertising() + return keyboard + + +def ble_disconnect(key, keyboard, *args, **kwargs): + from kmk.hid import HIDModes + + if keyboard.hid_type != HIDModes.BLE: + return keyboard + + keyboard._hid_helper.clear_bonds() + return keyboard + + +def any_pressed(key, keyboard, *args, **kwargs): + from random import randint + + key.code = randint(4, 56) + keyboard.keys_pressed.add(key) + keyboard.hid_pending = True diff --git a/hackpads/blipyboard/firmware/kmk/hid.py b/hackpads/blipyboard/firmware/kmk/hid.py new file mode 100644 index 0000000000..567fd83ffb --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/hid.py @@ -0,0 +1,379 @@ +import supervisor +import usb_hid +from micropython import const + +from struct import pack, pack_into + +from kmk.keys import ( + Axis, + ConsumerKey, + KeyboardKey, + ModifierKey, + MouseKey, + SixAxis, + SpacemouseKey, +) +from kmk.scheduler import cancel_task, create_task +from kmk.utils import Debug, clamp + +try: + from adafruit_ble import BLERadio + from adafruit_ble.advertising.standard import ProvideServicesAdvertisement + from adafruit_ble.services.standard.hid import HIDService + from storage import getmount + + _BLE_APPEARANCE_HID_KEYBOARD = const(961) +except ImportError: + # BLE not supported on this platform + pass + + +debug = Debug(__name__) + + +class HIDModes: + NOOP = 0 # currently unused; for testing? + USB = 1 + BLE = 2 + + +_USAGE_PAGE_CONSUMER = const(0x0C) +_USAGE_PAGE_KEYBOARD = const(0x01) +_USAGE_PAGE_MOUSE = const(0x01) +_USAGE_PAGE_SIXAXIS = const(0x01) +_USAGE_PAGE_SYSCONTROL = const(0x01) + +_USAGE_CONSUMER = const(0x01) +_USAGE_KEYBOARD = const(0x06) +_USAGE_MOUSE = const(0x02) +_USAGE_SIXAXIS = const(0x08) +_USAGE_SYSCONTROL = const(0x80) + +_REPORT_SIZE_CONSUMER = const(2) +_REPORT_SIZE_KEYBOARD = const(8) +_REPORT_SIZE_KEYBOARD_NKRO = const(16) +_REPORT_SIZE_MOUSE = const(4) +_REPORT_SIZE_MOUSE_HSCROLL = const(5) +_REPORT_SIZE_SIXAXIS = const(12) +_REPORT_SIZE_SIXAXIS_BUTTON = const(2) +_REPORT_SIZE_SYSCONTROL = const(8) + + +def find_device(devices, usage_page, usage): + for device in devices: + if ( + device.usage_page == usage_page + and device.usage == usage + and hasattr(device, 'send_report') + ): + return device + + +class Report: + def __init__(self, size): + self.buffer = bytearray(size) + self.pending = False + + def clear(self): + for k, v in enumerate(self.buffer): + if v: + self.buffer[k] = 0x00 + self.pending = True + + def get_action_map(self): + return {} + + +class KeyboardReport(Report): + def __init__(self, size=_REPORT_SIZE_KEYBOARD): + self.buffer = bytearray(size) + self.prev_buffer = bytearray(size) + + @property + def pending(self): + return self.buffer != self.prev_buffer + + @pending.setter + def pending(self, v): + if v is False: + self.prev_buffer[:] = self.buffer[:] + + def clear(self): + for idx in range(len(self.buffer)): + self.buffer[idx] = 0x00 + + def add_key(self, key): + # Find the first empty slot in the key report, and fill it; drop key if + # report is full. + idx = self.buffer.find(b'\x00', 2) + + if 0 < idx < _REPORT_SIZE_KEYBOARD: + self.buffer[idx] = key.code + + def remove_key(self, key): + idx = self.buffer.find(pack('B', key.code), 2) + if 0 < idx: + self.buffer[idx] = 0x00 + + def add_modifier(self, modifier): + self.buffer[0] |= modifier.code + + def remove_modifier(self, modifier): + self.buffer[0] &= ~modifier.code + + def get_action_map(self): + return {KeyboardKey: self.add_key, ModifierKey: self.add_modifier} + + +class NKROKeyboardReport(KeyboardReport): + def __init__(self): + super().__init__(_REPORT_SIZE_KEYBOARD_NKRO) + + def add_key(self, key): + self.buffer[(key.code >> 3) + 1] |= 1 << (key.code & 0x07) + + def remove_key(self, key): + self.buffer[(key.code >> 3) + 1] &= ~(1 << (key.code & 0x07)) + + +class ConsumerControlReport(Report): + def __init__(self): + super().__init__(_REPORT_SIZE_CONSUMER) + + def add_cc(self, cc): + pack_into('> 8) + self.pending = True + except IndexError: + if debug.enabled: + debug(axis, ' not supported') + + def get_action_map(self): + return {SixAxis: self.move_six_axis} + + +class SixAxisDeviceButtonReport(Report): + def __init__(self, size=_REPORT_SIZE_SIXAXIS_BUTTON): + super().__init__(size) + + def add_six_axis_button(self, key): + self.buffer[0] |= key.code + self.pending = True + + def remove_six_axis_button(self, key): + self.buffer[0] &= ~key.code + self.pending = True + + def get_action_map(self): + return {SpacemouseKey: self.add_six_axis_button} + + +class IdentifiedDevice: + def __init__(self, device, report_id): + self.device = device + self.report_id = report_id + + def send_report(self, buffer): + self.device.send_report(buffer, self.report_id) + + +class AbstractHID: + def __init__(self): + self.report_map = {} + self.device_map = {} + self._setup_task = create_task(self.setup, period_ms=100) + + def __repr__(self): + return self.__class__.__name__ + + def create_report(self, keys): + for report in self.device_map.keys(): + report.clear() + + for key in keys: + if action := self.report_map.get(type(key)): + action(key) + + def send(self): + for report in self.device_map.keys(): + if report.pending: + self.device_map[report].send_report(report.buffer) + report.pending = False + + def setup(self): + if not self.connected: + return + + try: + self.setup_keyboard_hid() + self.setup_consumer_control() + self.setup_mouse_hid() + self.setup_sixaxis_hid() + + cancel_task(self._setup_task) + self._setup_task = None + if debug.enabled: + self.show_debug() + + except OSError as e: + if debug.enabled: + debug(type(e), ':', e) + + def setup_keyboard_hid(self): + if device := find_device(self.devices, _USAGE_PAGE_KEYBOARD, _USAGE_KEYBOARD): + # bodgy NKRO autodetect + try: + report = KeyboardReport() + device.send_report(report.buffer) + except ValueError: + report = NKROKeyboardReport() + + self.report_map.update(report.get_action_map()) + self.device_map[report] = device + + def setup_consumer_control(self): + if device := find_device(self.devices, _USAGE_PAGE_CONSUMER, _USAGE_CONSUMER): + report = ConsumerControlReport() + self.report_map.update(report.get_action_map()) + self.device_map[report] = device + + def setup_mouse_hid(self): + if device := find_device(self.devices, _USAGE_PAGE_MOUSE, _USAGE_MOUSE): + # bodgy pointing device panning autodetect + try: + report = PointingDeviceReport() + device.send_report(report.buffer) + except ValueError: + report = HSPointingDeviceReport() + + self.report_map.update(report.get_action_map()) + self.device_map[report] = device + + def setup_sixaxis_hid(self): + if device := find_device(self.devices, _USAGE_PAGE_SIXAXIS, _USAGE_SIXAXIS): + report = SixAxisDeviceReport() + self.report_map.update(report.get_action_map()) + self.device_map[report] = IdentifiedDevice(device, 1) + report = SixAxisDeviceButtonReport() + self.report_map.update(report.get_action_map()) + self.device_map[report] = IdentifiedDevice(device, 3) + + def show_debug(self): + for report in self.device_map.keys(): + debug('use ', report.__class__.__name__) + + +class USBHID(AbstractHID): + @property + def connected(self): + return supervisor.runtime.usb_connected + + @property + def devices(self): + return usb_hid.devices + + +class BLEHID(AbstractHID): + def __init__(self, ble_name=None): + super().__init__() + + self.ble = BLERadio() + self.ble.name = ble_name if ble_name else getmount('/').label + self.ble_connected = False + + self.hid = HIDService() + self.hid.protocol_mode = 0 # Boot protocol + + create_task(self.ble_monitor, period_ms=1000) + + @property + def connected(self): + return self.ble.connected + + @property + def devices(self): + return self.hid.devices + + def ble_monitor(self): + if self.ble_connected != self.connected: + self.ble_connected = self.connected + if debug.enabled: + if self.connected: + debug('BLE connected') + else: + debug('BLE disconnected') + + if not self.connected: + # Security-wise this is not right. While you're away someone turns + # on your keyboard and they can pair with it nice and clean and then + # listen to keystrokes. + # On the other hand we don't have LESC so it's like shouting your + # keystrokes in the air + self.start_advertising() + + def clear_bonds(self): + import _bleio + + _bleio.adapter.erase_bonding() + + def start_advertising(self): + if not self.ble.advertising: + advertisement = ProvideServicesAdvertisement(self.hid) + advertisement.appearance = _BLE_APPEARANCE_HID_KEYBOARD + + self.ble.start_advertising(advertisement) + + def stop_advertising(self): + self.ble.stop_advertising() diff --git a/hackpads/blipyboard/firmware/kmk/hid_reports/nkro_keyboard.py b/hackpads/blipyboard/firmware/kmk/hid_reports/nkro_keyboard.py new file mode 100644 index 0000000000..51933775e8 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/hid_reports/nkro_keyboard.py @@ -0,0 +1,50 @@ +import usb_hid + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls), + 0x09, 0x06, # Usage (Keyboard), + 0xA1, 0x01, # Collection (Application), + 0x85, 0x01, # Report ID (1) + # modifiers + 0x05, 0x07, # Usage Page (Key Codes), + 0x19, 0xE0, # Usage Minimum (224), + 0x29, 0xE7, # Usage Maximum (231), + 0x15, 0x00, # Logical Minimum (0), + 0x25, 0x01, # Logical Maximum (1), + 0x75, 0x01, # Report Size (1), + 0x95, 0x08, # Report Count (8), + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + # LEDs + 0x05, 0x08, # Usage Page (LEDs), + 0x19, 0x01, # Usage Minimum (1), + 0x29, 0x05, # Usage Maximum (5), + 0x95, 0x05, # Report Count (5), + 0x75, 0x01, # Report Size (1), + 0x91, 0x02, # Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non- olatile) + 0x95, 0x01, # Report Count (1), + 0x75, 0x03, # Report Size (3), + 0x91, 0x01, # Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,N n-volatile) + # keys + 0x05, 0x07, # Usage Page (Kbrd/Keypad), + 0x19, 0x00, # Usage Minimum (0), + 0x29, 0x77, # Usage Maximum (119), + 0x15, 0x00, # Logical Minimum (0), + 0x25, 0x01, # Logical Maximum(1), + 0x95, 0x78, # Report Count (120), + 0x75, 0x01, # Report Size (1), + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + ) +) +# fmt:on + +NKRO_KEYBOARD = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x06, + report_ids=(0x01,), + in_report_lengths=(16,), + out_report_lengths=(1,), +) diff --git a/hackpads/blipyboard/firmware/kmk/hid_reports/pointer.py b/hackpads/blipyboard/firmware/kmk/hid_reports/pointer.py new file mode 100644 index 0000000000..9e9f1b09fd --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/hid_reports/pointer.py @@ -0,0 +1,53 @@ +import usb_hid + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x02, # Usage (Mouse) + 0xA1, 0x01, # Collection (Application) + 0x09, 0x01, # Usage (Pointer) + 0xA1, 0x00, # Collection (Physical) + 0x85, 0x02, # Report ID (2) + 0x05, 0x09, # Usage Page (Button) + 0x19, 0x01, # Usage Minimum (0x01) + 0x29, 0x05, # Usage Maximum (0x05) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x95, 0x05, # Report Count (5) + 0x75, 0x01, # Report Size (1) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x01, # Report Count (1) + 0x75, 0x03, # Report Size (3) + 0x81, 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x30, # Usage (X) + 0x09, 0x31, # Usage (Y) + 0x09, 0x38, # Usage (Wheel) + 0x15, 0x81, # Logical Minimum (-127) + 0x25, 0x7F, # Logical Maximum (127) + 0x95, 0x03, # Report Count (3) + 0x75, 0x08, # Report Size (8) + 0x81, 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0x05, 0x0C, # Usage Page (Consumer Devices) + 0x0A, 0x38, 0x02, # Usage (AC Pan) + 0x15, 0x81, # Logical Minimum (-127) + 0x25, 0x7F, # Logical Maximum (127) + 0x95, 0x01, # Report Count (1) + 0x75, 0x08, # Report Size (8) + 0x81, 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + 0xC0, # End Collection + ) +) +# fmt:on + + +POINTER = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x02, + report_ids=(0x02,), + in_report_lengths=(5,), + out_report_lengths=(0,), +) diff --git a/hackpads/blipyboard/firmware/kmk/hid_reports/six_axis.py b/hackpads/blipyboard/firmware/kmk/hid_reports/six_axis.py new file mode 100644 index 0000000000..b289a125f5 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/hid_reports/six_axis.py @@ -0,0 +1,324 @@ +import usb_hid + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x08, # Usage (Multi-axis Controller) + 0xA1, 0x01, # Collection (Application) + 0xA1, 0x00, # Collection (Physical) + 0x85, 0x01, # Report ID (1) + 0x16, 0x0C, 0xFE, # Logical Minimum (-500) + 0x26, 0xF4, 0x01, # Logical Maximum (500) + 0x36, 0x00, 0x80, # Physical Minimum (-32768) + 0x46, 0xFF, 0x7F, # Physical Maximum (32767) + 0x55, 0x0C, # Unit Exponent (-4) + 0x65, 0x11, # Unit (System: SI Linear, Length: Centimeter) + 0x09, 0x30, # Usage (X) + 0x09, 0x31, # Usage (Y) + 0x09, 0x32, # Usage (Z) + 0x09, 0x33, # Usage (Rx) + 0x09, 0x34, # Usage (Ry) + 0x09, 0x35, # Usage (Rz) + 0x75, 0x10, # Report Size (16) + 0x95, 0x06, # Report Count (6) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + + 0xA1, 0x00, # Collection (Physical) + 0x85, 0x03, # Report ID (3) + 0x05, 0x09, # Usage Page (Button) + 0x19, 0x01, # Usage Minimum (1) + 0x29, 0x02, # Usage Maximum (2) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x35, 0x00, # Physical Minimum (0) + 0x45, 0x01, # Physical Maximum (1) + 0x75, 0x01, # Report Size (1) + 0x95, 0x02, # Report Count (2) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x0E, # Report Count (14) + 0x81, 0x03, # Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + + 0xA1, 0x02, # Collection (Logical) + 0x85, 0x04, # Report ID (4) + 0x05, 0x08, # Usage Page (LEDs) + 0x09, 0x4B, # Usage (Generic Indicator) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x95, 0x01, # Report Count (1) + 0x75, 0x01, # Report Size (1) + 0x91, 0x02, # Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x95, 0x01, # Report Count (1) + 0x75, 0x07, # Report Size (7) + 0x91, 0x03, # Output (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0xC0, # End Collection + 0xC0, # End Collection + ) +) +# fmt:on + +SIX_AXIS = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x08, + report_ids=( + 0x01, + 0x03, + 0x04, + ), + in_report_lengths=( + 12, + 2, + 0, + ), + out_report_lengths=( + 0, + 0, + 1, + ), +) + + +# Keyboard descriptors using Report ID 5 + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x06, # Usage (Keyboard) + 0xA1, 0x01, # Collection (Application) + 0x85, 0x05, # Report ID (5) + + 0x05, 0x07, # Usage Page (Kbrd/Keypad) + 0x19, 0xE0, # Usage Minimum (224) + 0x29, 0xE7, # Usage Maximum (231) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x75, 0x01, # Report Size (1) + 0x95, 0x08, # Report Count (8) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x01, # Report Count (1) + 0x75, 0x08, # Report Size (8) + 0x81, 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x05, # Report Count (5) + 0x75, 0x01, # Report Size (1) + + 0x05, 0x08, # Usage Page (LEDs) + 0x19, 0x01, # Usage Minimum (Num Lock) + 0x29, 0x05, # Usage Maximum (Kana) + 0x91, 0x02, # Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x95, 0x01, # Report Count (1) + 0x75, 0x03, # Report Size (3) + 0x91, 0x01, # Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) + 0x95, 0x06, # Report Count (6) + 0x75, 0x08, # Report Size (8) + 0x15, 0x00, # Logical Minimum (0) + 0x26, 0xFF, 0x00, # Logical Maximum (255) + + 0x05, 0x07, # Usage Page (Kbrd/Keypad) + 0x19, 0x00, # Usage Minimum (0) + 0x2A, 0xFF, 0x00, # Usage Maximum (255) + 0x81, 0x00, # Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + ) +) +# fmt:on + +KEYBOARD = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x06, + report_ids=(0x05,), + in_report_lengths=(8,), + out_report_lengths=(1,), +) + + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls), + 0x09, 0x06, # Usage (Keyboard), + 0xA1, 0x01, # Collection (Application), + 0x85, 0x05, # Report ID (5) + # Modifiers + 0x05, 0x07, # Usage Page (Key Codes), + 0x19, 0xE0, # Usage Minimum (224), + 0x29, 0xE7, # Usage Maximum (231), + 0x15, 0x00, # Logical Minimum (0), + 0x25, 0x01, # Logical Maximum (1), + 0x75, 0x01, # Report Size (1), + 0x95, 0x08, # Report Count (8), + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + # LEDs + 0x05, 0x08, # Usage Page (LEDs), + 0x19, 0x01, # Usage Minimum (1), + 0x29, 0x05, # Usage Maximum (5), + 0x95, 0x05, # Report Count (5), + 0x75, 0x01, # Report Size (1), + 0x91, 0x02, # Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non- olatile) + 0x95, 0x01, # Report Count (1), + 0x75, 0x03, # Report Size (3), + 0x91, 0x01, # Output (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position,N n-volatile) + # Keys + 0x05, 0x07, # Usage Page (Kbrd/Keypad), + 0x19, 0x00, # Usage Minimum (0), + 0x29, 0x77, # Usage Maximum (119), + 0x15, 0x00, # Logical Minimum (0), + 0x25, 0x01, # Logical Maximum(1), + 0x95, 0x78, # Report Count (120), + 0x75, 0x01, # Report Size (1), + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + ) +) +# fmt:on + +NKRO_KEYBOARD = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x06, + report_ids=(0x05,), + in_report_lengths=(16,), + out_report_lengths=(1,), +) + + +# Mouse descriptors using Report ID 6 + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x02, # Usage (Mouse) + 0xA1, 0x01, # Collection (Application) + 0x09, 0x01, # Usage (Pointer) + 0xA1, 0x00, # Collection (Physical) + 0x85, 0x06, # Report ID (6) + + 0x05, 0x09, # Usage Page (Button) + 0x19, 0x01, # Usage Minimum (1) + 0x29, 0x05, # Usage Maximum (5) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x95, 0x05, # Report Count (5) + 0x75, 0x01, # Report Size (1) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x01, # Report Count (1) + 0x75, 0x03, # Report Size (3) + 0x81, 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x30, # Usage (X) + 0x09, 0x31, # Usage (Y) + 0x09, 0x38, # Usage (Wheel) + 0x15, 0x81, # Logical Minimum (-127) + 0x25, 0x7F, # Logical Maximum (127) + 0x95, 0x03, # Report Count (3) + 0x75, 0x08, # Report Size (8) + 0x81, 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + 0xC0, # End Collection + ) +) +# fmt:on + + +MOUSE = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x02, + report_ids=(0x06,), + in_report_lengths=(4,), + out_report_lengths=(0,), +) + + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x02, # Usage (Mouse) + 0xA1, 0x01, # Collection (Application) + 0x09, 0x01, # Usage (Pointer) + 0xA1, 0x00, # Collection (Physical) + 0x85, 0x06, # Report ID (6) + + 0x05, 0x09, # Usage Page (Button) + 0x19, 0x01, # Usage Minimum (1) + 0x29, 0x05, # Usage Maximum (5) + 0x15, 0x00, # Logical Minimum (0) + 0x25, 0x01, # Logical Maximum (1) + 0x95, 0x05, # Report Count (5) + 0x75, 0x01, # Report Size (1) + 0x81, 0x02, # Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0x95, 0x01, # Report Count (1) + 0x75, 0x03, # Report Size (3) + 0x81, 0x01, # Input (Const,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + + 0x05, 0x01, # Usage Page (Generic Desktop Ctrls) + 0x09, 0x30, # Usage (X) + 0x09, 0x31, # Usage (Y) + 0x09, 0x38, # Usage (Wheel) + 0x15, 0x81, # Logical Minimum (-127) + 0x25, 0x7F, # Logical Maximum (127) + 0x95, 0x03, # Report Count (3) + 0x75, 0x08, # Report Size (8) + 0x81, 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + + 0x05, 0x0C, # Usage Page (Consumer Devices) + 0x0A, 0x38, 0x02, # Usage (AC Pan) + 0x15, 0x81, # Logical Minimum (-127) + 0x25, 0x7F, # Logical Maximum (127) + 0x95, 0x01, # Report Count (1) + 0x75, 0x08, # Report Size (8) + 0x81, 0x06, # Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + 0xC0, # End Collection + ) +) +# fmt:on + + +POINTER = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x01, + usage=0x02, + report_ids=(0x06,), + in_report_lengths=(5,), + out_report_lengths=(0,), +) + + +# Consumer Control descriptor using Report ID 7 + +# fmt:off +report_descriptor = bytes( + ( + 0x05, 0x0C, # Usage Page (Consumer) + 0x09, 0x01, # Usage (Consumer Control) + 0xA1, 0x01, # Collection (Application) + 0x85, 0x07, # Report ID (7) + 0x75, 0x10, # Report Size (16) + 0x95, 0x01, # Report Count (1) + 0x15, 0x01, # Logical Minimum (1) + 0x26, 0x8C, 0x02, # Logical Maximum (652) + 0x19, 0x01, # Usage Minimum (Consumer Control) + 0x2A, 0x8C, 0x02, # Usage Maximum (AC Send) + 0x81, 0x00, # Input (Data,Array,Abs,No Wrap,Linear,Preferred State,No Null Position) + 0xC0, # End Collection + ) +) +# fmt:on + + +CONSUMER_CONTROL = usb_hid.Device( + report_descriptor=report_descriptor, + usage_page=0x0C, + usage=0x01, + report_ids=(0x07,), + in_report_lengths=(2,), + out_report_lengths=(0,), +) diff --git a/hackpads/blipyboard/firmware/kmk/keys.py b/hackpads/blipyboard/firmware/kmk/keys.py new file mode 100644 index 0000000000..af59ba9143 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/keys.py @@ -0,0 +1,593 @@ +try: + from typing import Callable, Optional, Tuple +except ImportError: + pass + +import kmk.handlers.stock as handlers +from kmk.utils import Debug + +# Type aliases / forward declaration; can't use the proper types because of circular imports. +Keyboard = object +Key = object + + +ALL_ALPHAS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' +ALL_NUMBERS = '1234567890' +# since KC.1 isn't valid Python, alias to KC.N1 +ALL_NUMBER_ALIASES = tuple(f'N{x}' for x in ALL_NUMBERS) + +debug = Debug(__name__) + + +class Axis: + def __init__(self, code: int) -> None: + self.code = code + self.delta = 0 + + def __repr__(self) -> str: + return f'Axis(code={self.code}, delta={self.delta})' + + def move(self, keyboard: Keyboard, delta: int): + self.delta += delta + if self.delta: + keyboard.keys_pressed.add(self) + keyboard.hid_pending = True + else: + keyboard.keys_pressed.discard(self) + + +class SixAxis(Axis): + def __repr__(self) -> str: + return f'SixAxis(code={self.code}, delta={self.delta})' + + +class AX: + P = Axis(3) + W = Axis(2) + X = Axis(0) + Y = Axis(1) + + +class SM: + A = SixAxis(3) + B = SixAxis(4) + C = SixAxis(5) + X = SixAxis(0) + Y = SixAxis(1) + Z = SixAxis(2) + + +def maybe_make_key( + names: Tuple[str, ...], + *args, + **kwargs, +) -> Callable[[str], Key]: + def closure(candidate): + if candidate in names: + return make_key(names=names, *args, **kwargs) + + return closure + + +def maybe_make_argumented_key( + names: Tuple[str, ...], + constructor: [Key, Callable[[...], Key]], + **kwargs, +) -> Callable[[str], Key]: + def closure(candidate): + if candidate in names: + return make_argumented_key( + names=names, + constructor=constructor, + **kwargs, + ) + + return closure + + +def maybe_make_no_key(candidate: str) -> Optional[Key]: + # NO and TRNS are functionally identical in how they (don't) mutate + # the state, but are tracked semantically separately, so create + # two keys with the exact same functionality + keys = ( + ('NO', 'XXXXXXX'), + ('TRANSPARENT', 'TRNS'), + ) + + for names in keys: + if candidate in names: + return make_key( + names=names, + on_press=handlers.passthrough, + on_release=handlers.passthrough, + ) + + +def maybe_make_alpha_key(candidate: str) -> Optional[Key]: + if len(candidate) != 1: + return + + candidate_upper = candidate.upper() + if candidate_upper in ALL_ALPHAS: + return make_key( + names=(candidate_upper, candidate.lower()), + constructor=KeyboardKey, + code=4 + ALL_ALPHAS.index(candidate_upper), + ) + + +def maybe_make_numeric_key(candidate: str) -> Optional[Key]: + if candidate in ALL_NUMBERS or candidate in ALL_NUMBER_ALIASES: + try: + offset = ALL_NUMBERS.index(candidate) + except ValueError: + offset = ALL_NUMBER_ALIASES.index(candidate) + + return make_key( + names=(ALL_NUMBERS[offset], ALL_NUMBER_ALIASES[offset]), + constructor=KeyboardKey, + code=30 + offset, + ) + + +def maybe_make_mod_key(candidate: str) -> Optional[Key]: + # MEH = LCTL | LALT | LSFT + # HYPR = LCTL | LALT | LSFT | LGUI + mods = ( + (0x01, ('LEFT_CONTROL', 'LCTRL', 'LCTL')), + (0x02, ('LEFT_SHIFT', 'LSHIFT', 'LSFT')), + (0x04, ('LEFT_ALT', 'LALT', 'LOPT')), + (0x08, ('LEFT_SUPER', 'LGUI', 'LCMD', 'LWIN')), + (0x10, ('RIGHT_CONTROL', 'RCTRL', 'RCTL')), + (0x20, ('RIGHT_SHIFT', 'RSHIFT', 'RSFT')), + (0x40, ('RIGHT_ALT', 'RALT', 'ROPT')), + (0x80, ('RIGHT_SUPER', 'RGUI', 'RCMD', 'RWIN')), + (0x07, ('MEH',)), + (0x0F, ('HYPER', 'HYPR')), + ) + + for code, names in mods: + if candidate in names: + return make_key(names=names, constructor=ModifierKey, code=code) + + +def maybe_make_more_ascii(candidate: str) -> Optional[Key]: + codes = ( + (40, ('ENTER', 'ENT', '\n')), + (41, ('ESCAPE', 'ESC')), + (42, ('BACKSPACE', 'BSPACE', 'BSPC', 'BKSP')), + (43, ('TAB', '\t')), + (44, ('SPACE', 'SPC', ' ')), + (45, ('MINUS', 'MINS', '-')), + (46, ('EQUAL', 'EQL', '=')), + (47, ('LBRACKET', 'LBRC', '[')), + (48, ('RBRACKET', 'RBRC', ']')), + (49, ('BACKSLASH', 'BSLASH', 'BSLS', '\\')), + (51, ('SEMICOLON', 'SCOLON', 'SCLN', ';')), + (52, ('QUOTE', 'QUOT', "'")), + (53, ('GRAVE', 'GRV', 'ZKHK', '`')), + (54, ('COMMA', 'COMM', ',')), + (55, ('DOT', '.')), + (56, ('SLASH', 'SLSH', '/')), + ) + + for code, names in codes: + if candidate in names: + return make_key(names=names, constructor=KeyboardKey, code=code) + + +def maybe_make_fn_key(candidate: str) -> Optional[Key]: + codes = ( + (58, ('F1',)), + (59, ('F2',)), + (60, ('F3',)), + (61, ('F4',)), + (62, ('F5',)), + (63, ('F6',)), + (64, ('F7',)), + (65, ('F8',)), + (66, ('F9',)), + (67, ('F10',)), + (68, ('F11',)), + (69, ('F12',)), + (104, ('F13',)), + (105, ('F14',)), + (106, ('F15',)), + (107, ('F16',)), + (108, ('F17',)), + (109, ('F18',)), + (110, ('F19',)), + (111, ('F20',)), + (112, ('F21',)), + (113, ('F22',)), + (114, ('F23',)), + (115, ('F24',)), + ) + + for code, names in codes: + if candidate in names: + return make_key(names=names, constructor=KeyboardKey, code=code) + + +def maybe_make_navlock_key(candidate: str) -> Optional[Key]: + codes = ( + (57, ('CAPS_LOCK', 'CAPSLOCK', 'CLCK', 'CAPS')), + # FIXME: Investigate whether this key actually works, and + # uncomment when/if it does. + # (130, ('LOCKING_CAPS', 'LCAP')), + (70, ('PRINT_SCREEN', 'PSCREEN', 'PSCR')), + (71, ('SCROLL_LOCK', 'SCROLLLOCK', 'SLCK')), + # FIXME: Investigate whether this key actually works, and + # uncomment when/if it does. + # (132, ('LOCKING_SCROLL', 'LSCRL')), + (72, ('PAUSE', 'PAUS', 'BRK')), + (73, ('INSERT', 'INS')), + (74, ('HOME',)), + (75, ('PGUP',)), + (76, ('DELETE', 'DEL')), + (77, ('END',)), + (78, ('PGDOWN', 'PGDN')), + (79, ('RIGHT', 'RGHT')), + (80, ('LEFT',)), + (81, ('DOWN',)), + (82, ('UP',)), + ) + + for code, names in codes: + if candidate in names: + return make_key(names=names, constructor=KeyboardKey, code=code) + + +def maybe_make_numpad_key(candidate: str) -> Optional[Key]: + codes = ( + (83, ('NUM_LOCK', 'NUMLOCK', 'NLCK')), + (84, ('KP_SLASH', 'NUMPAD_SLASH', 'PSLS')), + (85, ('KP_ASTERISK', 'NUMPAD_ASTERISK', 'PAST')), + (86, ('KP_MINUS', 'NUMPAD_MINUS', 'PMNS')), + (87, ('KP_PLUS', 'NUMPAD_PLUS', 'PPLS')), + (88, ('KP_ENTER', 'NUMPAD_ENTER', 'PENT')), + (89, ('KP_1', 'P1', 'NUMPAD_1')), + (90, ('KP_2', 'P2', 'NUMPAD_2')), + (91, ('KP_3', 'P3', 'NUMPAD_3')), + (92, ('KP_4', 'P4', 'NUMPAD_4')), + (93, ('KP_5', 'P5', 'NUMPAD_5')), + (94, ('KP_6', 'P6', 'NUMPAD_6')), + (95, ('KP_7', 'P7', 'NUMPAD_7')), + (96, ('KP_8', 'P8', 'NUMPAD_8')), + (97, ('KP_9', 'P9', 'NUMPAD_9')), + (98, ('KP_0', 'P0', 'NUMPAD_0')), + (99, ('KP_DOT', 'PDOT', 'NUMPAD_DOT')), + (103, ('KP_EQUAL', 'PEQL', 'NUMPAD_EQUAL')), + (133, ('KP_COMMA', 'PCMM', 'NUMPAD_COMMA')), + (134, ('KP_EQUAL_AS400', 'NUMPAD_EQUAL_AS400')), + ) + + for code, names in codes: + if candidate in names: + return make_key(names=names, constructor=KeyboardKey, code=code) + + +def maybe_make_shifted_key(candidate: str) -> Optional[Key]: + codes = ( + ('1', ('EXCLAIM', 'EXLM', '!')), + ('2', ('AT', '@')), + ('3', ('HASH', 'POUND', '#')), + ('4', ('DOLLAR', 'DLR', '$')), + ('5', ('PERCENT', 'PERC', '%')), + ('6', ('CIRCUMFLEX', 'CIRC', '^')), + ('7', ('AMPERSAND', 'AMPR', '&')), + ('8', ('ASTERISK', 'ASTR', '*')), + ('9', ('LEFT_PAREN', 'LPRN', '(')), + ('0', ('RIGHT_PAREN', 'RPRN', ')')), + ('-', ('UNDERSCORE', 'UNDS', '_')), + ('=', ('PLUS', '+')), + ('[', ('LEFT_CURLY_BRACE', 'LCBR', '{')), + (']', ('RIGHT_CURLY_BRACE', 'RCBR', '}')), + ('\\', ('PIPE', '|')), + (';', ('COLON', 'COLN', ':')), + ("'", ('DOUBLE_QUOTE', 'DQUO', 'DQT', '"')), + ('`', ('TILDE', 'TILD', '~')), + (',', ('LEFT_ANGLE_BRACKET', 'LABK', '<')), + ('.', ('RIGHT_ANGLE_BRACKET', 'RABK', '>')), + ('/', ('QUESTION', 'QUES', '?')), + ) + + for unshifted, names in codes: + if candidate in names: + return make_key( + names=names, + constructor=ModifiedKey, + code=KC[unshifted], + modifier=KC.LSFT, + ) + + +def maybe_make_firmware_key(candidate: str) -> Optional[Key]: + keys = ( + ((('BLE_REFRESH',), handlers.ble_refresh)), + ((('BLE_DISCONNECT',), handlers.ble_disconnect)), + ((('BOOTLOADER',), handlers.bootloader)), + ((('HID_SWITCH', 'HID'), handlers.hid_switch)), + ((('RELOAD', 'RLD'), handlers.reload)), + ((('RESET',), handlers.reset)), + ((('ANY',), handlers.any_pressed)), + ) + + for names, handler in keys: + if candidate in names: + return make_key(names=names, on_press=handler) + + +KEY_GENERATORS = ( + maybe_make_no_key, + maybe_make_alpha_key, + maybe_make_numeric_key, + maybe_make_firmware_key, + maybe_make_key( + ('BKDL',), + on_press=handlers.bkdl_pressed, + on_release=handlers.bkdl_released, + ), + maybe_make_key( + ('GESC', 'GRAVE_ESC'), + on_press=handlers.gesc_pressed, + on_release=handlers.gesc_released, + ), + maybe_make_mod_key, + # More ASCII standard keys + maybe_make_more_ascii, + # Function Keys + maybe_make_fn_key, + # Lock Keys, Navigation, etc. + maybe_make_navlock_key, + # Numpad + # FIXME: Investigate whether this key actually works, and + # uncomment when/if it does. + # maybe_make_key(131, ('LOCKING_NUM', 'LNUM')), + maybe_make_numpad_key, + # Making life better for folks on tiny keyboards especially: exposes + # the 'shifted' keys as raw keys. Under the hood we're still + # sending Shift+(whatever key is normally pressed) to get these, so + # for example `KC_AT` will hold shift and press 2. + maybe_make_shifted_key, +) + + +class KeyAttrDict: + # Instead of relying on the uncontrollable availability of a big chunk of + # contiguous memory for key caching, we can manually fragment the cache into + # reasonably small partitions. The partition size is chosen from the magic + # values of CPs hash allocation sizes. + # (https://github.com/adafruit/circuitpython/blob/main/py/map.c, 2023-02) + __partition_size = 37 + __cache = [{}] + + def __iter__(self): + for partition in self.__cache: + for name in partition: + yield name + + def __setitem__(self, name: str, key: Key): + # Overwrite existing reference. + for partition in self.__cache: + if name in partition: + partition[name] = key + return key + + # Insert new reference. + if len(self.__cache[-1]) >= self.__partition_size: + self.__cache.append({}) + self.__cache[-1][name] = key + return key + + def __getattr__(self, name: str): + return self.__getitem__(name) + + def get(self, name: str, default: Optional[Key] = None): + try: + return self.__getitem__(name) + except Exception: + return default + + def clear(self): + self.__cache.clear() + self.__cache.append({}) + + def __getitem__(self, name: str): + for partition in self.__cache: + if name in partition: + return partition[name] + + for func in KEY_GENERATORS: + maybe_key = func(name) + if maybe_key: + break + + if not maybe_key: + if debug.enabled: + debug('Invalid key: ', name) + return KC.NO + + return maybe_key + + +# Global state, will be filled in throughout this file, and +# anywhere the user creates custom keys +KC = KeyAttrDict() + + +class Key: + '''Generic Key class with assignable handlers.''' + + def __init__( + self, + on_press: Callable[[object, Key, Keyboard, ...], None] = handlers.passthrough, + on_release: Callable[[object, Key, Keyboard, ...], None] = handlers.passthrough, + ): + self._on_press = on_press + self._on_release = on_release + + def __repr__(self): + return self.__class__.__name__ + + def on_press(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + self._on_press(self, keyboard, KC, coord_int) + + def on_release(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + self._on_release(self, keyboard, KC, coord_int) + + +class _DefaultKey(Key): + '''Meta class implementing handlers for Keys with HID codes.''' + + def __init__(self, code: Optional[int] = None): + self.code = code + + def __repr__(self): + return super().__repr__() + '(code=' + str(self.code) + ')' + + def on_press(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + if keyboard.implicit_modifier is not None: + keyboard.keys_pressed.discard(keyboard.implicit_modifier) + keyboard.implicit_modifier = None + if self in keyboard.keys_pressed: + keyboard.keys_pressed.discard(self) + keyboard.hid_pending = True + keyboard._send_hid() + keyboard.keys_pressed.add(self) + keyboard.hid_pending = True + + def on_release(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + keyboard.keys_pressed.discard(self) + keyboard.hid_pending = True + + +class KeyboardKey(_DefaultKey): + pass + + +class ModifierKey(_DefaultKey): + def __call__(self, key: Key) -> Key: + # don't duplicate when applying the same modifier twice + if ( + isinstance(key, ModifiedKey) + and key.modifier.code & self.code == key.modifier.code + ): + return key + elif isinstance(key, ModifierKey) and key.code & self.code == key.code: + return key + + return ModifiedKey(key, self) + + +class ModifiedKey(Key): + def __init__(self, code: [Key, int], modifier: [ModifierKey]): + # generate from code by maybe_make_shifted_key + if isinstance(code, int): + key = KeyboardKey(code=code) + else: + key = code + + # stack modifier keys + if isinstance(key, ModifierKey): + modifier = ModifierKey(key.code | modifier.code) + key = None + # stack modified keys + elif isinstance(key, ModifiedKey): + modifier = ModifierKey(key.modifier.code | modifier.code) + key = key.key + # clone modifier so it doesn't override explicit mods + else: + modifier = ModifierKey(modifier.code) + + self.key = key + self.modifier = modifier + + def on_press(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + if self.key in keyboard.keys_pressed: + self.key.on_release(keyboard, coord_int) + keyboard._send_hid() + keyboard.keys_pressed.add(self.modifier) + if self.key is not None: + self.key.on_press(keyboard, coord_int) + if keyboard.implicit_modifier is not None: + keyboard.keys_pressed.discard(keyboard.implicit_modifier) + keyboard.implicit_modifier = self.modifier + keyboard.hid_pending = True + + def on_release(self, keyboard: Keyboard, coord_int: Optional[int] = None) -> None: + keyboard.keys_pressed.discard(self.modifier) + if self.key is not None: + self.key.on_release(keyboard, coord_int) + if keyboard.implicit_modifier == self.modifier: + keyboard.implicit_modifier = None + keyboard.hid_pending = True + + def __repr__(self): + return ( + super().__repr__() + + '(key=' + + str(self.key) + + ', modifier=' + + str(self.modifier) + + ')' + ) + + +class ConsumerKey(_DefaultKey): + pass + + +class MouseKey(_DefaultKey): + pass + + +class SpacemouseKey(_DefaultKey): + pass + + +def make_key( + names: Tuple[str, ...], + constructor: Key = Key, + **kwargs, +) -> Key: + ''' + Create a new key, aliased by `names` in the KC lookup table. + + Names are globally unique. If a later key is created with + the same name as an existing entry in `KC`, it will overwrite + the existing entry. + + Names are case sensitive. + + All **kwargs are passed to the Key constructor + ''' + + key = constructor(**kwargs) + + for name in names: + KC[name] = key + + return key + + +# Argumented keys are implicitly internal, so auto-gen of code +# is almost certainly the best plan here +def make_argumented_key( + names: Tuple[str, ...], + constructor: [Key, Callable[[...], Key]], + **_kwargs, +) -> Key: + + def argumented_key(*args, **kwargs) -> Key: + # This is a very ugly workaround for missing syntax in mpy-cross 8.x + # and, once EOL, can be replaced by: + # return constructor(*args, **_kwargs, **kwargs) + k = _kwargs.copy() + k.update(**kwargs) + return constructor(*args, **k) + + for name in names: + KC[name] = argumented_key + + return argumented_key diff --git a/hackpads/blipyboard/firmware/kmk/kmk_keyboard.py b/hackpads/blipyboard/firmware/kmk/kmk_keyboard.py new file mode 100644 index 0000000000..bc61d8bd14 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/kmk_keyboard.py @@ -0,0 +1,528 @@ +try: + from typing import Callable, Optional +except ImportError: + pass + +from collections import namedtuple +from keypad import Event as KeyEvent + +from kmk.hid import BLEHID, USBHID, AbstractHID, HIDModes +from kmk.keys import KC, Axis, Key +from kmk.modules import Module +from kmk.scanners.keypad import MatrixScanner +from kmk.scheduler import Task, cancel_task, create_task, get_due_task +from kmk.utils import Debug + +debug = Debug('kmk.keyboard') + +KeyBufferFrame = namedtuple( + 'KeyBufferFrame', ('key', 'is_pressed', 'int_coord', 'index') +) + + +def debug_error(module, message: str, error: Exception): + if debug.enabled: + debug( + message, ': ', error.__class__.__name__, ': ', error, name=module.__module__ + ) + + +class Sandbox: + matrix_update = None + secondary_matrix_update = None + active_layers = None + + +class KMKKeyboard: + def __init__(self) -> None: + ##### + # User-configurable + self.keymap = [] + self.coord_mapping = None + + self.row_pins = None + self.col_pins = None + self.diode_orientation = None + self.matrix = None + + self.modules = [] + self.extensions = [] + self.sandbox = Sandbox() + + ##### + # Internal State + self.keys_pressed = set() + self._coordkeys_pressed = {} + self.implicit_modifier = None + self.hid_type = HIDModes.USB + self.secondary_hid_type = None + self._hid_helper = None + self._hid_send_enabled = False + self.hid_pending = False + self.matrix_update = None + self.secondary_matrix_update = None + self.matrix_update_queue = [] + self._trigger_powersave_enable = False + self._trigger_powersave_disable = False + self._go_args = None + self._resume_buffer = [] + self._resume_buffer_x = [] + + # this should almost always be PREpended to, replaces + # former use of reversed_active_layers which had pointless + # overhead (the underlying list was never used anyway) + self.active_layers = [0] + + def __repr__(self) -> str: + return self.__class__.__name__ + + def _send_hid(self) -> None: + if not self._hid_send_enabled: + return + + if debug.enabled: + if self.keys_pressed: + debug('keys_pressed=', self.keys_pressed) + + self._hid_helper.create_report(self.keys_pressed) + try: + self._hid_helper.send() + except Exception as err: + debug_error(self._hid_helper, 'send', err) + + self.hid_pending = False + + for key in self.keys_pressed: + if isinstance(key, Axis): + key.move(self, 0) + + def _handle_matrix_report(self, kevent: KeyEvent) -> None: + if kevent is not None: + self._on_matrix_changed(kevent) + + def _find_key_in_map(self, int_coord: int) -> Key: + try: + idx = self.coord_mapping.index(int_coord) + except ValueError: + if debug.enabled: + debug('no such int_coord: ', int_coord) + return None + + key = None + for layer in self.active_layers: + try: + key = self.keymap[layer][idx] + except IndexError: + if debug.enabled: + debug('keymap IndexError: idx=', idx, ' layer=', layer) + + if key and key != KC.TRNS: + break + + return key + + def _on_matrix_changed(self, kevent: KeyEvent) -> None: + int_coord = kevent.key_number + is_pressed = kevent.pressed + key = None + + if not is_pressed: + key = self._coordkeys_pressed.pop(int_coord, None) + + if key is None: + key = self._find_key_in_map(int_coord) + + if key is None: + return + + if debug.enabled: + debug(kevent, ': ', key) + + self.pre_process_key(key, is_pressed, int_coord) + + def _process_resume_buffer(self): + ''' + Resume the processing of buffered, delayed, deferred, etc. key events + emitted by modules. + + We use a copy of the `_resume_buffer` as a working buffer. The working + buffer holds all key events in the correct order for processing. If + during processing new events are pushed to the `_resume_buffer`, they + are prepended to the working buffer (which may not be emptied), in + order to preserve key event order. + We also double-buffer `_resume_buffer` with `_resume_buffer_x`, only + copying the reference to hopefully safe some time on allocations. + ''' + + buffer, self._resume_buffer = self._resume_buffer, self._resume_buffer_x + + while buffer: + ksf = buffer.pop(0) + key = ksf.key + + # Handle any unaccounted-for layer shifts by looking up the key resolution again. + if ksf.int_coord is not None: + if ksf.is_pressed: + key = self._find_key_in_map(ksf.int_coord) + else: + key = self._coordkeys_pressed.pop(ksf.int_coord, key) + + # Resume the processing of the key event and update the HID report + # when applicable. + self.pre_process_key(key, ksf.is_pressed, ksf.int_coord, ksf.index) + + if self.hid_pending: + self._send_hid() + self.hid_pending = False + + # Any newly buffered key events must be prepended to the working + # buffer. + if self._resume_buffer: + self._resume_buffer.extend(buffer) + buffer.clear() + buffer, self._resume_buffer = self._resume_buffer, buffer + + self._resume_buffer_x = buffer + + def pre_process_key( + self, + key: Key, + is_pressed: bool, + int_coord: Optional[int] = None, + index: int = 0, + ) -> None: + for module in self.modules[index:]: + try: + key = module.process_key(self, key, is_pressed, int_coord) + if key is None: + break + except Exception as err: + debug_error(module, 'process_key', err) + + if int_coord is not None: + if is_pressed: + self._coordkeys_pressed[int_coord] = key + + if debug.enabled: + debug('coordkeys_pressed=', self._coordkeys_pressed) + + if key: + self.process_key(key, is_pressed, int_coord) + + def process_key( + self, key: Key, is_pressed: bool, int_coord: Optional[int] = None + ) -> None: + if is_pressed: + key.on_press(self, int_coord) + else: + key.on_release(self, int_coord) + + def resume_process_key( + self, + module: Module, + key: Key, + is_pressed: bool, + int_coord: Optional[int] = None, + reprocess: Optional[bool] = False, + ) -> None: + index = self.modules.index(module) + (0 if reprocess else 1) + ksf = KeyBufferFrame( + key=key, is_pressed=is_pressed, int_coord=int_coord, index=index + ) + self._resume_buffer.append(ksf) + + def remove_key(self, keycode: Key) -> None: + self.process_key(keycode, False) + + def add_key(self, keycode: Key) -> None: + self.process_key(keycode, True) + + def tap_key(self, keycode: Key) -> None: + self.add_key(keycode) + # On the next cycle, we'll remove the key. + self.set_timeout(0, lambda: self.remove_key(keycode)) + + def set_timeout(self, after_ticks: int, callback: Callable[[None], None]) -> [Task]: + return create_task(callback, after_ms=after_ticks) + + def cancel_timeout(self, timeout_key: int) -> None: + cancel_task(timeout_key) + + def _process_timeouts(self) -> None: + for task in get_due_task(): + task() + + def _init_coord_mapping(self) -> None: + ''' + Attempt to sanely guess a coord_mapping if one is not provided. No-op + if `kmk.extensions.split.Split` is used, it provides equivalent + functionality in `on_bootup` + + To save RAM on boards that don't use Split, we don't import Split + and do an isinstance check, but instead do string detection + ''' + if any(x.__class__.__module__ == 'kmk.modules.split' for x in self.modules): + return + + if not self.coord_mapping: + cm = [] + for m in self.matrix: + cm.extend(m.coord_mapping) + self.coord_mapping = tuple(cm) + + def _init_hid(self) -> None: + if self.hid_type == HIDModes.NOOP: + self._hid_helper = AbstractHID + elif self.hid_type == HIDModes.USB: + self._hid_helper = USBHID + elif self.hid_type == HIDModes.BLE: + self._hid_helper = BLEHID + else: + self._hid_helper = AbstractHID + self._hid_helper = self._hid_helper(**self._go_args) + self._hid_send_enabled = True + + if debug.enabled: + debug('hid=', self._hid_helper) + + def _deinit_hid(self) -> None: + try: + self._hid_helper.create_report({}) + self._hid_helper.send() + except Exception as e: + debug_error(self, '_deinit_hid', e) + + def _init_matrix(self) -> None: + if self.matrix is None: + self.matrix = MatrixScanner( + column_pins=self.col_pins, + row_pins=self.row_pins, + columns_to_anodes=self.diode_orientation, + ) + + try: + self.matrix = tuple(iter(self.matrix)) + offset = 0 + for matrix in self.matrix: + matrix.offset = offset + offset += matrix.key_count + except TypeError: + self.matrix = (self.matrix,) + + if debug.enabled: + debug('matrix=', [_.__class__.__name__ for _ in self.matrix]) + + def during_bootup(self) -> None: + # Modules and extensions that fail `during_bootup` get removed from + # their respective lists. This serves as a self-check mechanism; any + # modules or extensions that initialize peripherals or data structures + # should do that in `during_bootup`. + for idx, module in enumerate(self.modules): + try: + module.during_bootup(self) + except Exception as err: + debug_error(module, 'during_bootup', err) + self.modules[idx] = None + + self.modules[:] = [_ for _ in self.modules if _] + + if debug.enabled: + debug('modules=', [_.__class__.__name__ for _ in self.modules]) + + for idx, ext in enumerate(self.extensions): + try: + ext.during_bootup(self) + except Exception as err: + debug_error(ext, 'during_bootup', err) + self.extensions[idx] = None + + self.extensions[:] = [_ for _ in self.extensions if _] + + if debug.enabled: + debug('extensions=', [_.__class__.__name__ for _ in self.extensions]) + + def before_matrix_scan(self) -> None: + for module in self.modules: + try: + module.before_matrix_scan(self) + except Exception as err: + debug_error(module, 'before_matrix_scan', err) + + for ext in self.extensions: + try: + ext.before_matrix_scan(self.sandbox) + except Exception as err: + debug_error(ext, 'before_matrix_scan', err) + + def after_matrix_scan(self) -> None: + for module in self.modules: + try: + module.after_matrix_scan(self) + except Exception as err: + debug_error(module, 'after_matrix_scan', err) + + for ext in self.extensions: + try: + ext.after_matrix_scan(self.sandbox) + except Exception as err: + debug_error(ext, 'after_matrix_scan', err) + + def before_hid_send(self) -> None: + for module in self.modules: + try: + module.before_hid_send(self) + except Exception as err: + debug_error(module, 'before_hid_send', err) + + for ext in self.extensions: + try: + ext.before_hid_send(self.sandbox) + except Exception as err: + debug_error(ext, 'before_hid_send', err) + + def after_hid_send(self) -> None: + for module in self.modules: + try: + module.after_hid_send(self) + except Exception as err: + debug_error(module, 'after_hid_send', err) + + for ext in self.extensions: + try: + ext.after_hid_send(self.sandbox) + except Exception as err: + debug_error(ext, 'after_hid_send', err) + + def powersave_enable(self) -> None: + for module in self.modules: + try: + module.on_powersave_enable(self) + except Exception as err: + debug_error(module, 'powersave_enable', err) + + for ext in self.extensions: + try: + ext.on_powersave_enable(self.sandbox) + except Exception as err: + debug_error(ext, 'powersave_enable', err) + + def powersave_disable(self) -> None: + for module in self.modules: + try: + module.on_powersave_disable(self) + except Exception as err: + debug_error(module, 'powersave_disable', err) + + for ext in self.extensions: + try: + ext.on_powersave_disable(self.sandbox) + except Exception as err: + debug_error(ext, 'powersave_disable', err) + + def deinit(self) -> None: + for module in self.modules: + try: + module.deinit(self) + except Exception as err: + debug_error(module, 'deinit', err) + + for ext in self.extensions: + try: + ext.deinit(self.sandbox) + except Exception as err: + debug_error(ext, 'deinit', err) + + def go(self, hid_type=HIDModes.USB, secondary_hid_type=None, **kwargs) -> None: + try: + self._init( + hid_type=hid_type, + secondary_hid_type=secondary_hid_type, + **kwargs, + ) + while True: + self._main_loop() + except Exception as err: + import traceback + + traceback.print_exception(err) + finally: + debug('cleaning up...') + self._deinit_hid() + self.deinit() + debug('...done') + + if not debug.enabled: + import supervisor + + supervisor.reload() + + def _init( + self, + hid_type: HIDModes = HIDModes.USB, + secondary_hid_type: Optional[HIDModes] = None, + **kwargs, + ) -> None: + self._go_args = kwargs + self.hid_type = hid_type + self.secondary_hid_type = secondary_hid_type + + if debug.enabled: + debug('Initialising ', self) + + self._init_hid() + self._init_matrix() + self._init_coord_mapping() + self.during_bootup() + + if debug.enabled: + import gc + + gc.collect() + debug('mem_info used:', gc.mem_alloc(), ' free:', gc.mem_free()) + + def _main_loop(self) -> None: + self.sandbox.active_layers = self.active_layers.copy() + + self.before_matrix_scan() + + self._process_resume_buffer() + + for matrix in self.matrix: + update = matrix.scan_for_changes() + if update: + self.matrix_update = update + break + self.sandbox.matrix_update = self.matrix_update + self.sandbox.secondary_matrix_update = self.secondary_matrix_update + + self.after_matrix_scan() + + if self.secondary_matrix_update: + self.matrix_update_queue.append(self.secondary_matrix_update) + self.secondary_matrix_update = None + + if self.matrix_update: + self.matrix_update_queue.append(self.matrix_update) + self.matrix_update = None + + # only handle one key per cycle. + if self.matrix_update_queue: + self._handle_matrix_report(self.matrix_update_queue.pop(0)) + + self.before_hid_send() + + if self.hid_pending: + self._send_hid() + + self._process_timeouts() + + if self.hid_pending: + self._send_hid() + + self.after_hid_send() + + if self._trigger_powersave_enable: + self.powersave_enable() + + if self._trigger_powersave_disable: + self.powersave_disable() diff --git a/hackpads/blipyboard/firmware/kmk/kmktime.py b/hackpads/blipyboard/firmware/kmk/kmktime.py new file mode 100644 index 0000000000..7476c43cd4 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/kmktime.py @@ -0,0 +1,34 @@ +from micropython import const +from supervisor import ticks_ms + +_TICKS_PERIOD = const(1 << 29) +_TICKS_MAX = const(_TICKS_PERIOD - 1) +_TICKS_HALFPERIOD = const(_TICKS_PERIOD // 2) + + +def ticks_diff(new: int, start: int) -> int: + diff = (new - start) & _TICKS_MAX + diff = ((diff + _TICKS_HALFPERIOD) & _TICKS_MAX) - _TICKS_HALFPERIOD + return diff + + +def ticks_add(ticks: int, delta: int) -> int: + return (ticks + delta) % _TICKS_PERIOD + + +def check_deadline(new: int, start: int, ms: int) -> int: + return ticks_diff(new, start) < ms + + +class PeriodicTimer: + def __init__(self, period: int): + self.period = period + self.last_tick = ticks_ms() + + def tick(self) -> bool: + now = ticks_ms() + if ticks_diff(now, self.last_tick) >= self.period: + self.last_tick = now + return True + else: + return False diff --git a/hackpads/blipyboard/firmware/kmk/modules/__init__.py b/hackpads/blipyboard/firmware/kmk/modules/__init__.py new file mode 100644 index 0000000000..dd587c35fc --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/__init__.py @@ -0,0 +1,46 @@ +class InvalidExtensionEnvironment(Exception): + pass + + +class Module: + ''' + Modules differ from extensions in that they not only can read the state, but + are allowed to modify the state. The will be loaded on boot, and are not + allowed to be unloaded as they are required to continue functioning in a + consistant manner. + ''' + + # The below methods should be implemented by subclasses + + def during_bootup(self, keyboard): + raise NotImplementedError + + def before_matrix_scan(self, keyboard): + ''' + Return value will be injected as an extra matrix update + ''' + raise NotImplementedError + + def after_matrix_scan(self, keyboard): + ''' + Return value will be replace matrix update if supplied + ''' + raise NotImplementedError + + def process_key(self, keyboard, key, is_pressed, int_coord): + return key + + def before_hid_send(self, keyboard): + raise NotImplementedError + + def after_hid_send(self, keyboard): + raise NotImplementedError + + def on_powersave_enable(self, keyboard): + raise NotImplementedError + + def on_powersave_disable(self, keyboard): + raise NotImplementedError + + def deinit(self, keyboard): + pass diff --git a/hackpads/blipyboard/firmware/kmk/modules/adns9800.py b/hackpads/blipyboard/firmware/kmk/modules/adns9800.py new file mode 100644 index 0000000000..6b0302332a --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/adns9800.py @@ -0,0 +1,230 @@ +import busio +import digitalio +import microcontroller + +import time + +from kmk.keys import AX +from kmk.modules import Module +from kmk.modules.adns9800_firmware import firmware +from kmk.utils import Debug + +debug = Debug(__name__) + + +class REG: + Product_ID = 0x0 + Revision_ID = 0x1 + MOTION = 0x2 + DELTA_X_L = 0x3 + DELTA_X_H = 0x4 + DELTA_Y_L = 0x5 + DELTA_Y_H = 0x6 + SQUAL = 0x7 + PIXEL_SUM = 0x8 + Maximum_Pixel = 0x9 + Minimum_Pixel = 0xA + Shutter_Lower = 0xB + Shutter_Upper = 0xC + Frame_Period_Lower = 0xD + Frame_Period_Upper = 0xE + Configuration_I = 0xF + Configuration_II = 0x10 + Frame_Capture = 0x12 + SROM_Enable = 0x13 + Run_Downshift = 0x14 + Rest1_Rate = 0x15 + Rest1_Downshift = 0x16 + Rest2_Rate = 0x17 + Rest2_Downshift = 0x18 + Rest3_Rate = 0x19 + Frame_Period_Max_Bound_Lower = 0x1A + Frame_Period_Max_Bound_Upper = 0x1B + Frame_Period_Min_Bound_Lower = 0x1C + Frame_Period_Min_Bound_Upper = 0x1D + Shutter_Max_Bound_Lower = 0x1E + Shutter_Max_Bound_Upper = 0x1F + LASER_CTRL0 = 0x20 + Observation = 0x24 + Data_Out_Lower = 0x25 + Data_Out_Upper = 0x26 + SROM_ID = 0x2A + Lift_Detection_Thr = 0x2E + Configuration_V = 0x2F + Configuration_IV = 0x39 + Power_Up_Reset = 0x3A + Shutdown = 0x3B + Inverse_Product_ID = 0x3F + Snap_Angle = 0x42 + Motion_Burst = 0x50 + SROM_Load_Burst = 0x62 + Pixel_Burst = 0x64 + + +class ADNS9800(Module): + tswr = tsww = 120 + tsrw = tsrr = 20 + tsrad = 100 + tbexit = 1 + baud = 2000000 + cpol = 1 + cpha = 1 + DIR_WRITE = 0x80 + DIR_READ = 0x7F + + def __init__(self, cs, sclk, miso, mosi, invert_x=False, invert_y=False): + self.cs = digitalio.DigitalInOut(cs) + self.cs.direction = digitalio.Direction.OUTPUT + self.spi = busio.SPI(clock=sclk, MOSI=mosi, MISO=miso) + self.invert_x = invert_x + self.invert_y = invert_y + + def adns_start(self): + self.cs.value = False + + def adns_stop(self): + self.cs.value = True + + def adns_write(self, reg, data): + while not self.spi.try_lock(): + pass + try: + self.spi.configure(baudrate=self.baud, polarity=self.cpol, phase=self.cpha) + self.adns_start() + self.spi.write(bytes([reg | self.DIR_WRITE, data])) + finally: + self.spi.unlock() + self.adns_stop() + + def adns_read(self, reg): + result = bytearray(1) + while not self.spi.try_lock(): + pass + try: + self.spi.configure(baudrate=self.baud, polarity=self.cpol, phase=self.cpha) + self.adns_start() + self.spi.write(bytes([reg & self.DIR_READ])) + microcontroller.delay_us(self.tsrad) + self.spi.readinto(result) + finally: + self.spi.unlock() + self.adns_stop() + + return result[0] + + def adns_upload_srom(self): + while not self.spi.try_lock(): + pass + try: + self.spi.configure(baudrate=self.baud, polarity=self.cpol, phase=self.cpha) + self.adns_start() + self.spi.write(bytes([REG.SROM_Load_Burst | self.DIR_WRITE])) + for b in firmware: + self.spi.write(bytes([b])) + finally: + self.spi.unlock() + self.adns_stop() + + def delta_to_int(self, high, low): + comp = (high << 8) | low + if comp & 0x8000: + return (-1) * (0xFFFF + 1 - comp) + return comp + + def adns_read_motion(self): + result = bytearray(14) + while not self.spi.try_lock(): + pass + try: + self.spi.configure(baudrate=self.baud, polarity=self.cpol, phase=self.cpha) + self.adns_start() + self.spi.write(bytes([REG.Motion_Burst & self.DIR_READ])) + microcontroller.delay_us(self.tsrad) + self.spi.readinto(result) + finally: + self.spi.unlock() + self.adns_stop() + microcontroller.delay_us(self.tbexit) + self.adns_write(REG.MOTION, 0x0) + return result + + def during_bootup(self, keyboard): + + self.adns_write(REG.Power_Up_Reset, 0x5A) + time.sleep(0.1) + self.adns_read(REG.MOTION) + microcontroller.delay_us(self.tsrr) + self.adns_read(REG.DELTA_X_L) + microcontroller.delay_us(self.tsrr) + self.adns_read(REG.DELTA_X_H) + microcontroller.delay_us(self.tsrr) + self.adns_read(REG.DELTA_Y_L) + microcontroller.delay_us(self.tsrr) + self.adns_read(REG.DELTA_Y_H) + microcontroller.delay_us(self.tsrw) + + self.adns_write(REG.Configuration_IV, 0x2) + microcontroller.delay_us(self.tsww) + self.adns_write(REG.SROM_Enable, 0x1D) + microcontroller.delay_us(1000) + self.adns_write(REG.SROM_Enable, 0x18) + microcontroller.delay_us(self.tsww) + + self.adns_upload_srom() + microcontroller.delay_us(2000) + + laser_ctrl0 = self.adns_read(REG.LASER_CTRL0) + microcontroller.delay_us(self.tsrw) + self.adns_write(REG.LASER_CTRL0, laser_ctrl0 & 0xF0) + microcontroller.delay_us(self.tsww) + self.adns_write(REG.Configuration_I, 0x10) + microcontroller.delay_us(self.tsww) + + if debug.enabled: + debug('ADNS: Product ID ', hex(self.adns_read(REG.Product_ID))) + microcontroller.delay_us(self.tsrr) + debug('ADNS: Revision ID ', hex(self.adns_read(REG.Revision_ID))) + microcontroller.delay_us(self.tsrr) + debug('ADNS: SROM ID ', hex(self.adns_read(REG.SROM_ID))) + microcontroller.delay_us(self.tsrr) + if self.adns_read(REG.Observation) & 0x20: + debug('ADNS: Sensor is running SROM') + else: + debug('ADNS: Error! Sensor is not running SROM!') + + return + + def before_matrix_scan(self, keyboard): + motion = self.adns_read_motion() + if motion[0] & 0x80: + delta_x = self.delta_to_int(motion[3], motion[2]) + delta_y = self.delta_to_int(motion[5], motion[4]) + + if self.invert_x: + delta_x *= -1 + if self.invert_y: + delta_y *= -1 + + if delta_x: + AX.X.move(keyboard, delta_x) + + if delta_y: + AX.Y.move(keyboard, delta_y) + + if debug.enabled: + debug('Delta: ', delta_x, ' ', delta_y) + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/analogin/__init__.py b/hackpads/blipyboard/firmware/kmk/modules/analogin/__init__.py new file mode 100644 index 0000000000..3e3967ddbc --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/analogin/__init__.py @@ -0,0 +1,133 @@ +from kmk.keys import KC +from kmk.modules import Module +from kmk.scheduler import create_task +from kmk.utils import Debug + +debug = Debug(__name__) + + +def noop(*args): + pass + + +class AnalogEvent: + def __init__(self, on_change=noop, on_stop=noop): + self._on_change = on_change + self._on_stop = on_stop + + def on_change(self, event, keyboard): + self._on_change(self, event, keyboard) + + def on_stop(self, event, keyboard): + self._on_stop(self, event, keyboard) + + +class AnalogKey(AnalogEvent): + def __init__(self, key, threshold=127): + self.key = key + self.threshold = threshold + self.pressed = False + + def on_change(self, event, keyboard): + if event.value >= self.threshold and not self.pressed: + self.pressed = True + keyboard.pre_process_key(self.key, True) + + elif event.value < self.threshold and self.pressed: + self.pressed = False + keyboard.pre_process_key(self.key, False) + + def on_stop(self, event, keyboard): + pass + + +class AnalogInput: + def __init__(self, input, filter=lambda input: input.value >> 8): + self.input = input + self.value = 0 + self.delta = 0 + self.filter = filter + + def update(self): + ''' + Read a new value from an analogio compatible input, apply + transformation, then return either the new value if it changed or `None` + otherwise. + ''' + value = self.filter(self.input) + self.delta = value - self.value + if self.delta != 0: + self.value = value + return value + + +class AnalogInputs(Module): + def __init__(self, inputs, evtmap, update_interval=10): + self._active = {} + self.inputs = inputs + self.evtmap = evtmap + self.update_interval = update_interval + + def during_bootup(self, keyboard): + self.task = create_task( + lambda: self.update(keyboard), + period_ms=self.update_interval, + ) + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def update(self, keyboard): + for idx, input in enumerate(self.inputs): + value = input.update() + + # No change in value: stop or pass + if value is None: + if idx in self._active: + if debug.enabled: + debug('on_stop', input, self._active[idx]) + self._active[idx].on_stop(input, keyboard) + del self._active[idx] + continue + + # Resolve event handler + if idx in self._active: + key = self._active[idx] + else: + key = None + for layer in keyboard.active_layers: + try: + key = self.evtmap[layer][idx] + except IndexError: + if debug.enabled: + debug('evtmap IndexError: idx=', idx, ' layer=', layer) + if key and key != KC.TRNS: + break + + if key == KC.NO: + continue + + # Forward change to event handler + try: + self._active[idx] = key + if debug.enabled: + debug('on_change', input, key, value) + key.on_change(input, keyboard) + except Exception as e: + if debug.enabled: + debug(type(e), ': ', e, ' in ', key.on_change) diff --git a/hackpads/blipyboard/firmware/kmk/modules/analogin/keys.py b/hackpads/blipyboard/firmware/kmk/modules/analogin/keys.py new file mode 100644 index 0000000000..4f34dc15e3 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/analogin/keys.py @@ -0,0 +1,20 @@ +from . import AnalogEvent + + +class AnalogKey(AnalogEvent): + def __init__(self, key, threshold=127): + self.key = key + self.threshold = threshold + self.pressed = False + + def on_change(self, event, keyboard): + if event.value >= self.threshold and not self.pressed: + self.pressed = True + keyboard.pre_process_key(self.key, True) + + elif event.value < self.threshold and self.pressed: + self.pressed = False + keyboard.pre_process_key(self.key, False) + + def on_stop(self, event, keyboard): + pass diff --git a/hackpads/blipyboard/firmware/kmk/modules/autoshift.py b/hackpads/blipyboard/firmware/kmk/modules/autoshift.py new file mode 100644 index 0000000000..44c0695b53 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/autoshift.py @@ -0,0 +1,82 @@ +from kmk.keys import KC, KeyboardKey +from kmk.modules import Module +from kmk.scheduler import cancel_task, create_task +from kmk.utils import Debug + +debug = Debug(__name__) + + +class Autoshift(Module): + def __init__(self, tap_time=300): + self.tap_time = tap_time + + self._active = False + self._task = None + self._key = None + + def during_bootup(self, keyboard): + self._task = create_task(lambda: self._shift(keyboard), after_ms=-1) + + def before_matrix_scan(self, keyboard): + pass + + def after_matrix_scan(self, keyboard): + pass + + def process_key(self, keyboard, key, is_pressed, int_coord): + # Unshift on any key event + if self._active: + self._unshift(keyboard) + return key + + # Only shift from an unshifted state + if KC.LSFT in keyboard.keys_pressed: + return key + + # Ignore rolls from tapped to hold + if not is_pressed and key is not self._key: + return key + + # Only shift alpha keys, iff there's no pending potential shift + if ( + is_pressed + and not self._key + and isinstance(key, KeyboardKey) + and KC.A.code <= key.code <= KC.Z.code + ): + create_task(self._task, after_ms=self.tap_time) + self._key = key + else: + cancel_task(self._task) + keyboard.resume_process_key(self, self._key, True) + if key is self._key: + keyboard.resume_process_key(self, self._key, False) + else: + keyboard.resume_process_key(self, key, True) + self._key = None + + def before_hid_send(self, keyboard): + pass + + def after_hid_send(self, keyboard): + pass + + def on_powersave_enable(self, keyboard): + pass + + def on_powersave_disable(self, keyboard): + pass + + def _shift(self, keyboard): + if debug.enabled: + debug('activate') + self._active = True + keyboard.keys_pressed.add(KC.LSFT) + keyboard.resume_process_key(self, self._key, True) + + def _unshift(self, keyboard): + if debug.enabled: + debug('deactivate') + self._active = False + self._key = None + keyboard.keys_pressed.remove(KC.LSFT) diff --git a/hackpads/blipyboard/firmware/kmk/modules/capsword.py b/hackpads/blipyboard/firmware/kmk/modules/capsword.py new file mode 100644 index 0000000000..c1b44a030f --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/capsword.py @@ -0,0 +1,102 @@ +from kmk.keys import KC, KeyboardKey, ModifierKey, make_key +from kmk.modules import Module + + +class CapsWord(Module): + # default timeout is 8000 + # alphabets, numbers and few more keys will not disable capsword + def __init__(self, timeout=8000): + self._alphabets = range(KC.A.code, KC.Z.code + 1) + self._numbers = range(KC.N1.code, KC.N0.code + 1) + self.keys_ignored = [ + KC.MINS, + KC.BSPC, + KC.UNDS, + ] + self._timeout_key = False + self._cw_active = False + self.timeout = timeout + make_key( + names=( + 'CAPSWORD', + 'CW', + ), + on_press=self.cw_pressed, + ) + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def process_key(self, keyboard, key, is_pressed, int_coord): + if not self._cw_active or key == KC.CW: + return key + + continue_cw = False + + # capitalize alphabets + if isinstance(key, KeyboardKey) and key.code in self._alphabets: + keyboard.process_key(KC.LSFT, is_pressed) + continue_cw = True + elif ( + not isinstance(key, KeyboardKey) + or isinstance(key, ModifierKey) + or key.code in self._numbers + or key in self.keys_ignored + ): + continue_cw = True + + # requests and cancels existing timeouts + if is_pressed: + if continue_cw: + self.discard_timeout(keyboard) + self.request_timeout(keyboard) + else: + self.process_timeout() + + return key + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def process_timeout(self): + self._cw_active = False + self._timeout_key = False + + def request_timeout(self, keyboard): + if self._cw_active: + if self.timeout: + self._timeout_key = keyboard.set_timeout( + self.timeout, lambda: self.process_timeout() + ) + + def discard_timeout(self, keyboard): + if self._timeout_key: + if self.timeout: + keyboard.cancel_timeout(self._timeout_key) + self._timeout_key = False + + def cw_pressed(self, key, keyboard, *args, **kwargs): + # enables/disables capsword + if key == KC.CW: + if not self._cw_active: + self._cw_active = True + self.discard_timeout(keyboard) + self.request_timeout(keyboard) + else: + self.discard_timeout(keyboard) + self.process_timeout() diff --git a/hackpads/blipyboard/firmware/kmk/modules/cg_swap.py b/hackpads/blipyboard/firmware/kmk/modules/cg_swap.py new file mode 100644 index 0000000000..9dbfbc7786 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/cg_swap.py @@ -0,0 +1,70 @@ +from kmk.keys import KC, ModifierKey, make_key +from kmk.modules import Module + + +class CgSwap(Module): + # default cg swap is disabled, can be eanbled too if needed + def __init__(self, cg_swap_enable=False): + self.cg_swap_enable = cg_swap_enable + self._cg_mapping = { + KC.LCTL: KC.LGUI, + KC.RCTL: KC.RGUI, + KC.LGUI: KC.LCTL, + KC.RGUI: KC.RCTL, + } + make_key( + names=('CG_SWAP',), + ) + make_key( + names=('CG_NORM',), + ) + make_key( + names=('CG_TOGG',), + ) + + def during_bootup(self, keyboard): + return + + def matrix_detected_press(self, keyboard): + return keyboard.matrix_update is None + + def before_matrix_scan(self, keyboard): + return + + def process_key(self, keyboard, key, is_pressed, int_coord): + if is_pressed: + # enables or disables or toggles cg swap + if key == KC.CG_SWAP: + self.cg_swap_enable = True + elif key == KC.CG_NORM: + self.cg_swap_enable = False + elif key == KC.CG_TOGG: + if not self.cg_swap_enable: + self.cg_swap_enable = True + else: + self.cg_swap_enable = False + # performs cg swap + if ( + self.cg_swap_enable + and key not in (KC.CG_SWAP, KC.CG_NORM, KC.CG_TOGG) + and isinstance(key, ModifierKey) + and key in self._cg_mapping + ): + key = self._cg_mapping.get(key) + + return key + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/combos.py b/hackpads/blipyboard/firmware/kmk/modules/combos.py new file mode 100644 index 0000000000..be73c2ad91 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/combos.py @@ -0,0 +1,330 @@ +try: + from typing import Optional, Tuple, Union +except ImportError: + pass +from micropython import const + +from kmk.keys import Key, make_key +from kmk.kmk_keyboard import KMKKeyboard +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +class _ComboState: + RESET = const(0) + MATCHING = const(1) + ACTIVE = const(2) + IDLE = const(3) + + +class Combo: + fast_reset = False + per_key_timeout = False + timeout = 50 + _remaining = [] + _timeout = None + _state = _ComboState.IDLE + _match_coord = False + + def __init__( + self, + match: Tuple[Union[Key, int], ...], + result: Key, + fast_reset=None, + per_key_timeout=None, + timeout=None, + match_coord=None, + ): + ''' + match: tuple of keys (KC.A, KC.B) + result: key KC.C + ''' + self.match = match + self.result = result + if fast_reset is not None: + self.fast_reset = fast_reset + if per_key_timeout is not None: + self.per_key_timeout = per_key_timeout + if timeout is not None: + self.timeout = timeout + if match_coord is not None: + self._match_coord = match_coord + + def __repr__(self): + return f'{self.__class__.__name__}({list(self.match)})' + + def matches(self, key: Key, int_coord: int): + raise NotImplementedError + + def has_match(self, key: Key, int_coord: int): + return self._match_coord and int_coord in self.match or key in self.match + + def insert(self, key: Key, int_coord: int): + if self._match_coord: + self._remaining.insert(0, int_coord) + else: + self._remaining.insert(0, key) + + def reset(self): + self._remaining = list(self.match) + + +class Chord(Combo): + def matches(self, key: Key, int_coord: int): + if not self._match_coord and key in self._remaining: + self._remaining.remove(key) + return True + elif self._match_coord and int_coord in self._remaining: + self._remaining.remove(int_coord) + return True + else: + return False + + +class Sequence(Combo): + fast_reset = True + per_key_timeout = True + timeout = 1000 + + def matches(self, key: Key, int_coord: int): + if ( + not self._match_coord and self._remaining and self._remaining[0] == key + ) or ( + self._match_coord and self._remaining and self._remaining[0] == int_coord + ): + self._remaining.pop(0) + return True + else: + return False + + +class Combos(Module): + def __init__(self, combos=[]): + self.combos = combos + self._key_buffer = [] + + make_key(names=('LEADER', 'LDR')) + + def during_bootup(self, keyboard): + self.reset(keyboard) + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def process_key(self, keyboard, key: Key, is_pressed, int_coord): + if is_pressed: + return self.on_press(keyboard, key, int_coord) + else: + return self.on_release(keyboard, key, int_coord) + + def on_press(self, keyboard: KMKKeyboard, key: Key, int_coord: Optional[int]): + # refill potential matches from timed-out matches + if self.count_matching() == 0: + for combo in self.combos: + if combo._state == _ComboState.RESET: + combo._state = _ComboState.MATCHING + + # filter potential matches + for combo in self.combos: + if combo._state != _ComboState.MATCHING: + continue + if combo.matches(key, int_coord): + continue + combo._state = _ComboState.IDLE + if combo._timeout: + keyboard.cancel_timeout(combo._timeout) + combo._timeout = keyboard.set_timeout( + combo.timeout, lambda c=combo: self.reset_combo(keyboard, c) + ) + + match_count = self.count_matching() + + if match_count: + # At least one combo matches current key: append key to buffer. + self._key_buffer.append((int_coord, key, True)) + key = None + + for first_match in self.combos: + if first_match._state == _ComboState.MATCHING: + break + + # Single match left: don't wait on timeout to activate + if match_count == 1 and not any(first_match._remaining): + combo = first_match + self.activate(keyboard, combo) + if combo._timeout: + keyboard.cancel_timeout(combo._timeout) + combo._timeout = None + self._key_buffer = [] + self.reset(keyboard) + + # Start or reset individual combo timeouts. + for combo in self.combos: + if combo._state != _ComboState.MATCHING: + continue + if combo._timeout: + if combo.per_key_timeout: + keyboard.cancel_timeout(combo._timeout) + else: + continue + combo._timeout = keyboard.set_timeout( + combo.timeout, lambda c=combo: self.on_timeout(keyboard, c) + ) + else: + # There's no matching combo: send and reset key buffer + if self._key_buffer: + self._key_buffer.append((int_coord, key, True)) + self.send_key_buffer(keyboard) + self._key_buffer = [] + key = None + + return key + + def on_release(self, keyboard: KMKKeyboard, key: Key, int_coord: Optional[int]): + for combo in self.combos: + if combo._state != _ComboState.ACTIVE: + continue + if combo.has_match(key, int_coord): + # Deactivate combo if it matches current key. + self.deactivate(keyboard, combo) + + if combo.fast_reset: + self.reset_combo(keyboard, combo) + self._key_buffer = [] + else: + combo.insert(key, int_coord) + combo._state = _ComboState.MATCHING + + key = None + break + + else: + # Non-active but matching combos can either activate on key release + # if they're the only match, or "un-match" the released key but stay + # matching if they're a repeatable combo. + for combo in self.combos: + if combo._state != _ComboState.MATCHING: + continue + if not combo.has_match(key, int_coord): + continue + + # Combo matches, but first key released before timeout. + elif not any(combo._remaining) and self.count_matching() == 1: + keyboard.cancel_timeout(combo._timeout) + self.activate(keyboard, combo) + self._key_buffer = [] + keyboard._send_hid() + self.deactivate(keyboard, combo) + if combo.fast_reset: + self.reset_combo(keyboard, combo) + else: + combo.insert(key, int_coord) + combo._state = _ComboState.MATCHING + self.reset(keyboard) + + elif not any(combo._remaining): + continue + + # Skip combos that allow tapping. + elif combo.fast_reset: + continue + + # This was the last key released of a repeatable combo. + elif len(combo._remaining) == len(combo.match) - 1: + self.reset_combo(keyboard, combo) + if not self.count_matching(): + self._key_buffer.append((int_coord, key, False)) + self.send_key_buffer(keyboard) + self._key_buffer = [] + key = None + + # Anything between first and last key released. + else: + combo.insert(key, int_coord) + + # Don't propagate key-release events for keys that have been + # buffered. Append release events only if corresponding press is in + # buffer. + pressed = self._key_buffer.count((int_coord, key, True)) + released = self._key_buffer.count((int_coord, key, False)) + if (pressed - released) > 0: + self._key_buffer.append((int_coord, key, False)) + key = None + + # Reset on non-combo key up + if not self.count_matching(): + self.reset(keyboard) + + return key + + def on_timeout(self, keyboard, combo): + # If combo reaches timeout and has no remaining keys, activate it; + # else, drop it from the match list. + combo._timeout = None + + if not any(combo._remaining): + self.activate(keyboard, combo) + # check if the last buffered key event was a 'release' + if not self._key_buffer[-1][2]: + keyboard._send_hid() + self.deactivate(keyboard, combo) + self._key_buffer = [] + self.reset(keyboard) + else: + if self.count_matching() == 1: + # This was the last pending combo: flush key buffer. + self.send_key_buffer(keyboard) + self._key_buffer = [] + self.reset_combo(keyboard, combo) + + def send_key_buffer(self, keyboard): + for int_coord, key, is_pressed in self._key_buffer: + keyboard.resume_process_key(self, key, is_pressed, int_coord) + + def activate(self, keyboard, combo): + if debug.enabled: + debug('activate', combo) + keyboard.resume_process_key(self, combo.result, True) + combo._state = _ComboState.ACTIVE + + def deactivate(self, keyboard, combo): + if debug.enabled: + debug('deactivate', combo) + keyboard.resume_process_key(self, combo.result, False) + combo._state = _ComboState.IDLE + + def reset_combo(self, keyboard, combo): + combo.reset() + if combo._timeout is not None: + keyboard.cancel_timeout(combo._timeout) + combo._timeout = None + combo._state = _ComboState.RESET + + def reset(self, keyboard): + for combo in self.combos: + if combo._state != _ComboState.ACTIVE: + self.reset_combo(keyboard, combo) + + def count_matching(self): + match_count = 0 + for combo in self.combos: + if combo._state == _ComboState.MATCHING: + match_count += 1 + return match_count diff --git a/hackpads/blipyboard/firmware/kmk/modules/dynamic_sequences.py b/hackpads/blipyboard/firmware/kmk/modules/dynamic_sequences.py new file mode 100644 index 0000000000..7d1ce5b658 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/dynamic_sequences.py @@ -0,0 +1,261 @@ +from micropython import const +from supervisor import ticks_ms + +from collections import namedtuple + +from kmk.keys import KC, Key, make_argumented_key +from kmk.kmktime import check_deadline, ticks_diff +from kmk.modules import Module + + +class DynamicSequenceKey(Key): + def __init__(self, sequence_select=None, **kwargs): + super().__init__(**kwargs) + self.sequence_select = sequence_select + + +class SequenceStatus: + STOPPED = const(0) + RECORDING = const(1) + PLAYING = const(2) + SET_REPEPITIONS = const(3) + SET_INTERVAL = const(4) + + +# Keycodes for number keys +_numbers = range(KC.N1.code, KC.N0.code + 1) + +SequenceFrame = namedtuple('SequenceFrame', ['keys_pressed', 'timestamp']) + + +class Sequence: + def __init__(self): + self.repetitions = 1 + self.interval = 0 + self.sequence_data = [SequenceFrame(set(), 0) for i in range(3)] + + +class DynamicSequences(Module): + def __init__( + self, slots=1, timeout=60000, key_interval=0, use_recorded_speed=False + ): + self.sequences = [Sequence() for i in range(slots)] + self.current_slot = self.sequences[0] + self.status = SequenceStatus.STOPPED + + self.index = 0 + self.start_time = 0 + self.current_repetition = 0 + self.last_config_frame = set() + + self.timeout = timeout + self.key_interval = key_interval + self.use_recorded_speed = use_recorded_speed + + # Create keycodes + make_argumented_key( + names=('RECORD_SEQUENCE',), + constructor=DynamicSequenceKey, + on_press=self._record_sequence, + ) + + make_argumented_key( + names=('PLAY_SEQUENCE',), + constructor=DynamicSequenceKey, + on_press=self._play_sequence, + ) + + make_argumented_key( + names=('SET_SEQUENCE', 'STOP_SEQUENCE'), + constructor=DynamicSequenceKey, + on_press=self._stop_sequence, + ) + + make_argumented_key( + names=('SET_SEQUENCE_REPETITIONS',), + constructor=DynamicSequenceKey, + on_press=self._set_sequence_repetitions, + ) + + make_argumented_key( + names=('SET_SEQUENCE_INTERVAL',), + constructor=DynamicSequenceKey, + on_press=self._set_sequence_interval, + ) + + def _record_sequence(self, key, keyboard, *args, **kwargs): + self._stop_sequence(key, keyboard) + self.status = SequenceStatus.RECORDING + self.start_time = ticks_ms() + self.current_slot.sequence_data = [SequenceFrame(set(), 0)] + self.index = 0 + + def _play_sequence(self, key, keyboard, *args, **kwargs): + self._stop_sequence(key, keyboard) + self.status = SequenceStatus.PLAYING + self.start_time = ticks_ms() + self.index = 0 + self.current_repetition = 0 + + def _stop_sequence(self, key, keyboard, *args, **kwargs): + if self.status == SequenceStatus.RECORDING: + self.stop_recording() + elif self.status == SequenceStatus.SET_INTERVAL: + self.stop_config() + self.status = SequenceStatus.STOPPED + + # Change sequences here because stop is always called + if key.sequence_select is not None: + self.current_slot = self.sequences[key.sequence_select] + + # Configure repeat settings + def _set_sequence_repetitions(self, key, keyboard, *args, **kwargs): + self._stop_sequence(key, keyboard) + self.status = SequenceStatus.SET_REPEPITIONS + self.last_config_frame = set() + self.current_slot.repetitions = 0 + self.start_time = ticks_ms() + + def _set_sequence_interval(self, key, keyboard, *args, **kwargs): + self._stop_sequence(key, keyboard) + self.status = SequenceStatus.SET_INTERVAL + self.last_config_frame = set() + self.current_slot.interval = 0 + self.start_time = ticks_ms() + + # Add the current keypress state to the sequence + def record_frame(self, keys_pressed): + if self.current_slot.sequence_data[self.index].keys_pressed != keys_pressed: + self.index += 1 + + # Recorded speed + if self.use_recorded_speed: + self.current_slot.sequence_data.append( + SequenceFrame( + keys_pressed.copy(), ticks_diff(ticks_ms(), self.start_time) + ) + ) + + # Constant speed + else: + self.current_slot.sequence_data.append( + SequenceFrame(keys_pressed.copy(), self.index * self.key_interval) + ) + + if not check_deadline(ticks_ms(), self.start_time, self.timeout): + self.stop_recording() + + # Add the ending frames to the sequence + def stop_recording(self): + # Clear the remaining keys + self.current_slot.sequence_data.append( + SequenceFrame(set(), self.current_slot.sequence_data[-1].timestamp + 20) + ) + + # Wait for the specified interval + prev_timestamp = self.current_slot.sequence_data[-1].timestamp + self.current_slot.sequence_data.append( + SequenceFrame( + set(), + prev_timestamp + self.current_slot.interval * 1000, + ) + ) + + self.status = SequenceStatus.STOPPED + + def play_frame(self, keyboard): + # Send the keypresses at this point in the sequence + if not check_deadline( + ticks_ms(), + self.start_time, + self.current_slot.sequence_data[self.index].timestamp, + ): + if self.index: + prev = self.current_slot.sequence_data[self.index - 1].keys_pressed + cur = self.current_slot.sequence_data[self.index].keys_pressed + + for key in prev.difference(cur): + keyboard.remove_key(key) + for key in cur.difference(prev): + keyboard.add_key(key) + + self.index += 1 + if self.index >= len(self.current_slot.sequence_data): # Reached the end + self.current_repetition += 1 + if self.current_repetition == self.current_slot.repetitions: + self.status = SequenceStatus.STOPPED + else: + self.index = 0 + self.start_time = ticks_ms() + + # Configuration for repeating sequences + def config_mode(self, keyboard): + for key in keyboard.keys_pressed.difference(self.last_config_frame): + if key.code in _numbers: + digit = (key.code - KC.N1.code + 1) % 10 + if self.status == SequenceStatus.SET_REPEPITIONS: + self.current_slot.repetitions = ( + self.current_slot.repetitions * 10 + digit + ) + elif self.status == SequenceStatus.SET_INTERVAL: + self.current_slot.interval = self.current_slot.interval * 10 + digit + + elif key.code == KC.ENTER.code: + self.stop_config() + + self.last_config_frame = keyboard.keys_pressed.copy() + keyboard.hid_pending = False # Disable typing + + if not check_deadline(ticks_ms(), self.start_time, self.timeout): + self.stop_config() + + # Finish configuring repetitions + def stop_config(self): + self.current_slot.sequence_data[-1] = SequenceFrame( + self.current_slot.sequence_data[-1].keys_pressed, + self.current_slot.sequence_data[-2].timestamp + + self.current_slot.interval * 1000, + ) + self.current_slot.repetitions = max(self.current_slot.repetitions, 1) + self.status = SequenceStatus.STOPPED + + def on_runtime_enable(self, keyboard): + return + + def on_runtime_disable(self, keyboard): + return + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + + if not self.status: + return + + elif self.status == SequenceStatus.RECORDING: + self.record_frame(keyboard.keys_pressed) + + elif self.status == SequenceStatus.PLAYING: + self.play_frame(keyboard) + + elif ( + self.status == SequenceStatus.SET_REPEPITIONS + or self.status == SequenceStatus.SET_INTERVAL + ): + self.config_mode(keyboard) + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/easypoint.py b/hackpads/blipyboard/firmware/kmk/modules/easypoint.py new file mode 100644 index 0000000000..bf7023c098 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/easypoint.py @@ -0,0 +1,130 @@ +''' +Extension handles usage of AS5013 by AMS +''' + +from supervisor import ticks_ms + +from kmk.keys import AX +from kmk.modules import Module + +I2C_ADDRESS = 0x40 +I2X_ALT_ADDRESS = 0x41 + +X = 0x10 +Y_RES_INT = 0x11 + +XP = 0x12 +XN = 0x13 +YP = 0x14 +YN = 0x15 + +M_CTRL = 0x2B +T_CTRL = 0x2D + +Y_OFFSET = 17 +X_OFFSET = 7 + +DEAD_X = 5 +DEAD_Y = 5 + + +class Easypoint(Module): + '''Module handles usage of AS5013 by AMS''' + + def __init__( + self, + i2c, + address=I2C_ADDRESS, + y_offset=Y_OFFSET, + x_offset=X_OFFSET, + dead_x=DEAD_X, + dead_y=DEAD_Y, + ): + self._i2c_address = address + self._i2c_bus = i2c + + # HID parameters + self.polling_interval = 20 + self.last_tick = ticks_ms() + + # Offsets for poor soldering + self.y_offset = y_offset + self.x_offset = x_offset + + # Deadzone + self.dead_x = DEAD_X + self.dead_y = DEAD_Y + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + ''' + Return value will be injected as an extra matrix update + ''' + now = ticks_ms() + if now - self.last_tick < self.polling_interval: + return + self.last_tick = now + + x, y = self._read_raw_state() + + # I'm a shit coder, so offset is handled in software side + s_x = self.getSignedNumber(x, 8) - self.x_offset + s_y = self.getSignedNumber(y, 8) - self.y_offset + + # Evaluate Deadzone + if s_x in range(-self.dead_x, self.dead_x) and s_y in range( + -self.dead_y, self.dead_y + ): + # Within bounds, just die + return + else: + # Set the X/Y from easypoint + AX.X.move(keyboard, x) + AX.Y.move(keyboard, y) + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def _read_raw_state(self): + '''Read data from AS5013''' + x, y = self._i2c_rdwr([X], length=2) + return x, y + + def getSignedNumber(self, number, bitLength=8): + mask = (2**bitLength) - 1 + if number & (1 << (bitLength - 1)): + return number | ~mask + else: + return number & mask + + def _i2c_rdwr(self, data, length=1): + '''Write and optionally read I2C data.''' + while not self._i2c_bus.try_lock(): + pass + + try: + if length > 0: + result = bytearray(length) + self._i2c_bus.writeto_then_readfrom( + self._i2c_address, bytes(data), result + ) + return result + else: + self._i2c_bus.writeto(self._i2c_address, bytes(data)) + return [] + finally: + self._i2c_bus.unlock() diff --git a/hackpads/blipyboard/firmware/kmk/modules/encoder.py b/hackpads/blipyboard/firmware/kmk/modules/encoder.py new file mode 100644 index 0000000000..ca63610a21 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/encoder.py @@ -0,0 +1,334 @@ +# See docs/encoder.md for how to use + +import busio +import digitalio +from supervisor import ticks_ms + +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + +# NB : not using rotaryio as it requires the pins to be consecutive + + +class BaseEncoder: + + VELOCITY_MODE = True + + def __init__(self, is_inverted=False, divisor=4): + + self.is_inverted = is_inverted + self.divisor = divisor + + self._state = None + self._start_state = None + self._direction = None + self._pos = 0 + self._button_state = True + self._button_held = None + self._velocity = 0 + + self._movement = 0 + self._timestamp = ticks_ms() + + # callback functions on events. Need to be defined externally + self.on_move_do = None + self.on_button_do = None + + def get_state(self): + return { + 'direction': self.is_inverted and -self._direction or self._direction, + 'position': self.is_inverted and -self._pos or self._pos, + 'is_pressed': not self._button_state, + 'velocity': self._velocity, + } + + # Called in a loop to refresh encoder state + + def update_state(self): + # Rotation events + new_state = (self.pin_a.get_value(), self.pin_b.get_value()) + + if new_state != self._state: + # encoder moved + self._movement += 1 + # false / false and true / true are common half steps + # looking on the step just before helps determining + # the direction + if new_state[0] == new_state[1] and self._state[0] != self._state[1]: + if new_state[1] == self._state[0]: + self._direction = 1 + else: + self._direction = -1 + + # when the encoder settles on a position (every 2 steps) + if new_state[0] == new_state[1]: + # an encoder returned to the previous + # position halfway, cancel rotation + if ( + self._start_state[0] == new_state[0] + and self._start_state[1] == new_state[1] + and self._movement <= 2 + ): + self._movement = 0 + self._direction = 0 + + # when the encoder made a full loop according to its divisor + elif self._movement >= self.divisor - 1: + # 1 full step is 4 movements (2 for high-resolution encoder), + # however, when rotated quickly, some steps may be missed. + # This makes it behave more naturally + real_movement = self._movement // self.divisor + self._pos += self._direction * real_movement + if self.on_move_do is not None: + for i in range(real_movement): + self.on_move_do(self.get_state()) + + # Rotation finished, reset to identify new movement + self._movement = 0 + self._direction = 0 + self._start_state = new_state + + self._state = new_state + + # Velocity + self.velocity_event() + + # Button event + self.button_event() + + def velocity_event(self): + if self.VELOCITY_MODE: + new_timestamp = ticks_ms() + self._velocity = new_timestamp - self._timestamp + self._timestamp = new_timestamp + + def button_event(self): + raise NotImplementedError('subclasses must override button_event()!') + + # return knob velocity as milliseconds between position changes (detents) + # for backwards compatibility + def vel_report(self): + return self._velocity + + +class GPIOEncoder(BaseEncoder): + def __init__( + self, + pin_a, + pin_b, + pin_button=None, + is_inverted=False, + divisor=None, + button_pull=digitalio.Pull.UP, + ): + super().__init__(is_inverted) + + # Divisor can be 4 or 2 depending on whether the detent + # on the encoder is defined by 2 or 4 pulses + self.divisor = divisor + + self.pin_a = EncoderPin(pin_a) + self.pin_b = EncoderPin(pin_b) + if pin_button: + self.pin_button = EncoderPin(pin_button, button_type=True, pull=button_pull) + else: + self.pin_button = None + + self._state = (self.pin_a.get_value(), self.pin_b.get_value()) + self._start_state = self._state + + def button_event(self): + if self.pin_button: + new_button_state = self.pin_button.get_value() + if new_button_state != self._button_state: + self._button_state = new_button_state + if self.on_button_do is not None: + self.on_button_do(self.get_state()) + + +class EncoderPin: + def __init__(self, pin, button_type=False, pull=digitalio.Pull.UP): + self.pin = pin + self.button_type = button_type + self.pull = pull + self.prepare_pin() + + def prepare_pin(self): + if self.pin is not None: + if isinstance(self.pin, digitalio.DigitalInOut): + self.io = self.pin + else: + self.io = digitalio.DigitalInOut(self.pin) + self.io.direction = digitalio.Direction.INPUT + self.io.pull = self.pull + else: + self.io = None + + def get_value(self): + io = self.io + result = io.value + if digitalio.Pull.UP != io.pull: + result = not result + return result + + +class I2CEncoder(BaseEncoder): + def __init__(self, i2c, address, is_inverted=False): + + try: + from adafruit_seesaw import digitalio, neopixel, rotaryio, seesaw + except ImportError: + if debug.enabled: + debug('seesaw missing') + return + + super().__init__(is_inverted) + + self.seesaw = seesaw.Seesaw(i2c, address) + + # Check for correct product + + seesaw_product = (self.seesaw.get_version() >> 16) & 0xFFFF + if seesaw_product != 4991: + if debug.enabled: + debug('Wrong firmware loaded? Expected 4991') + + self.encoder = rotaryio.IncrementalEncoder(self.seesaw) + self.seesaw.pin_mode(24, self.seesaw.INPUT_PULLUP) + self.switch = digitalio.DigitalIO(self.seesaw, 24) + self.pixel = neopixel.NeoPixel(self.seesaw, 6, 1) + + self._state = self.encoder.position + + def update_state(self): + + # Rotation events + new_state = self.encoder.position + if new_state != self._state: + # it moves ! + self._movement += 1 + # false / false and true / true are common half steps + # looking on the step just before helps determining + # the direction + if self.encoder.position > self._state: + self._direction = 1 + else: + self._direction = -1 + self._state = new_state + self.on_move_do(self.get_state()) + + # Velocity + self.velocity_event() + + # Button events + self.button_event() + + def button_event(self): + if not self.switch.value and not self._button_held: + # Pressed + self._button_held = True + if self.on_button_do is not None: + self.on_button_do(self.get_state()) + + if self.switch.value and self._button_held: + # Released + self._button_held = False + + def get_state(self): + return { + 'direction': self.is_inverted and -self._direction or self._direction, + 'position': self._state, + 'is_pressed': not self.switch.value, + 'is_held': self._button_held, + 'velocity': self._velocity, + } + + +class EncoderHandler(Module): + def __init__(self): + self.encoders = [] + self.pins = None + self.map = None + self.divisor = 4 + + def on_runtime_enable(self, keyboard): + return + + def on_runtime_disable(self, keyboard): + return + + def during_bootup(self, keyboard): + if self.pins and self.map: + for idx, pins in enumerate(self.pins): + try: + # Check for busio.I2C + if isinstance(pins[0], busio.I2C): + new_encoder = I2CEncoder(*pins) + + # Else fall back to GPIO + else: + new_encoder = GPIOEncoder(*pins) + # Set default divisor if unset + if new_encoder.divisor is None: + new_encoder.divisor = self.divisor + + # In our case, we need to define keybord and encoder_id for callbacks + new_encoder.on_move_do = lambda x, bound_idx=idx: self.on_move_do( + keyboard, bound_idx, x + ) + new_encoder.on_button_do = ( + lambda x, bound_idx=idx: self.on_button_do( + keyboard, bound_idx, x + ) + ) + self.encoders.append(new_encoder) + except Exception as e: + if debug.enabled: + debug(e) + return + + def on_move_do(self, keyboard, encoder_id, state): + if self.map: + layer_id = keyboard.active_layers[0] + # if Left, key index 0 else key index 1 + if state['direction'] == -1: + key_index = 0 + else: + key_index = 1 + key = self.map[layer_id][encoder_id][key_index] + keyboard.tap_key(key) + + def on_button_do(self, keyboard, encoder_id, state): + if state['is_pressed'] is True: + layer_id = keyboard.active_layers[0] + key = self.map[layer_id][encoder_id][2] + keyboard.tap_key(key) + + def before_matrix_scan(self, keyboard): + ''' + Return value will be injected as an extra matrix update + ''' + for encoder in self.encoders: + encoder.update_state() + + return keyboard + + def after_matrix_scan(self, keyboard): + ''' + Return value will be replace matrix update if supplied + ''' + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/holdtap.py b/hackpads/blipyboard/firmware/kmk/modules/holdtap.py new file mode 100644 index 0000000000..3bd6cf49a1 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/holdtap.py @@ -0,0 +1,272 @@ +from micropython import const + +from kmk.keys import Key, make_argumented_key +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +class ActivationType: + PRESSED = const(0) + RELEASED = const(1) + HOLD_TIMEOUT = const(2) + INTERRUPTED = const(3) + REPEAT = const(4) + + +class HoldTapRepeat: + NONE = const(0) + TAP = const(1) + HOLD = const(2) + ALL = const(3) + + +class HoldTapKeyState: + def __init__(self, timeout_key, *args, **kwargs): + self.timeout_key = timeout_key + self.args = args + self.kwargs = kwargs + self.activated = ActivationType.PRESSED + + +class HoldTapKey(Key): + def __init__( + self, + tap, + hold, + prefer_hold=True, + tap_interrupted=False, + tap_time=None, + repeat=HoldTapRepeat.NONE, + **kwargs, + ): + super().__init__(**kwargs) + self.tap = tap + self.hold = hold + self.prefer_hold = prefer_hold + self.tap_interrupted = tap_interrupted + self.tap_time = tap_time + self.repeat = repeat + + +class HoldTap(Module): + tap_time = 300 + + def __init__(self, _make_key=True): + self.key_buffer = [] + self.key_states = {} + + if _make_key: + make_argumented_key( + names=('HT',), + constructor=HoldTapKey, + on_press=self.ht_pressed, + on_release=self.ht_released, + ) + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def process_key(self, keyboard, key, is_pressed, int_coord): + '''Handle holdtap being interrupted by another key press/release.''' + current_key = key + send_buffer = False + append_buffer = False + + for key, state in self.key_states.items(): + if key == current_key: + continue + if state.activated != ActivationType.PRESSED: + continue + + # holdtap isn't interruptable, resolves on ht_release or timeout. + if not key.tap_interrupted and not key.prefer_hold: + append_buffer = is_pressed or self.key_buffer + continue + + # holdtap is interrupted by another key event. + if (is_pressed and not key.tap_interrupted) or ( + not is_pressed and key.tap_interrupted and self.key_buffer + ): + + keyboard.cancel_timeout(state.timeout_key) + self.key_states[key].activated = ActivationType.INTERRUPTED + self.ht_activate_on_interrupt( + key, + keyboard, + *state.args, + **state.kwargs, + ) + append_buffer = True + send_buffer = True + + # if interrupt on release: store interrupting keys until one of them + # is released. + if key.tap_interrupted and is_pressed: + append_buffer = True + + # apply changes with 'side-effects' on key_states or the loop behaviour + # outside the loop. + if append_buffer: + self.key_buffer.append((int_coord, current_key, is_pressed)) + current_key = None + + if send_buffer: + self.send_key_buffer(keyboard) + + return current_key + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def ht_pressed(self, key, keyboard, *args, **kwargs): + '''Unless in repeat mode, do nothing yet, action resolves when key is released, timer expires or other key is pressed.''' + if key in self.key_states: + state = self.key_states[key] + keyboard.cancel_timeout(self.key_states[key].timeout_key) + + if state.activated == ActivationType.RELEASED: + state.activated = ActivationType.REPEAT + self.ht_activate_tap(key, keyboard, *args, **kwargs) + elif state.activated == ActivationType.HOLD_TIMEOUT: + self.ht_activate_hold(key, keyboard, *args, **kwargs) + elif state.activated == ActivationType.INTERRUPTED: + self.ht_activate_on_interrupt(key, keyboard, *args, **kwargs) + return + + if key.tap_time is None: + tap_time = self.tap_time + else: + tap_time = key.tap_time + timeout_key = keyboard.set_timeout( + tap_time, + lambda: self.on_tap_time_expired(key, keyboard, *args, **kwargs), + ) + self.key_states[key] = HoldTapKeyState(timeout_key, *args, **kwargs) + return keyboard + + def ht_released(self, key, keyboard, *args, **kwargs): + '''On keyup, release mod or tap key.''' + if key not in self.key_states: + return keyboard + + state = self.key_states[key] + keyboard.cancel_timeout(state.timeout_key) + repeat = key.repeat & HoldTapRepeat.TAP + + if state.activated == ActivationType.HOLD_TIMEOUT: + # release hold + self.ht_deactivate_hold(key, keyboard, *args, **kwargs) + repeat = key.repeat & HoldTapRepeat.HOLD + elif state.activated == ActivationType.INTERRUPTED: + # release tap + self.ht_deactivate_on_interrupt(key, keyboard, *args, **kwargs) + if key.prefer_hold: + repeat = key.repeat & HoldTapRepeat.HOLD + elif state.activated == ActivationType.PRESSED: + # press and release tap because key released within tap time + self.ht_activate_tap(key, keyboard, *args, **kwargs) + self.send_key_buffer(keyboard) + self.ht_deactivate_tap(key, keyboard, *args, **kwargs) + state.activated = ActivationType.RELEASED + self.send_key_buffer(keyboard) + elif state.activated == ActivationType.REPEAT: + state.activated = ActivationType.RELEASED + self.ht_deactivate_tap(key, keyboard, *args, **kwargs) + + # don't delete the key state right now in this case + if repeat: + if key.tap_time is None: + tap_time = self.tap_time + else: + tap_time = key.tap_time + state.timeout_key = keyboard.set_timeout( + tap_time, lambda: self.key_states.pop(key) + ) + else: + del self.key_states[key] + + return keyboard + + def on_tap_time_expired(self, key, keyboard, *args, **kwargs): + '''When tap time expires activate hold if key is still being pressed. + Remove key if ActivationType is RELEASED.''' + try: + state = self.key_states[key] + except KeyError: + if debug.enabled: + debug(f'on_tap_time_expired: no such key {key}') + return + + if self.key_states[key].activated == ActivationType.PRESSED: + # press hold because timer expired after tap time + self.key_states[key].activated = ActivationType.HOLD_TIMEOUT + self.ht_activate_hold(key, keyboard, *args, **kwargs) + self.send_key_buffer(keyboard) + elif state.activated == ActivationType.RELEASED: + self.ht_deactivate_tap(key, keyboard, *args, **kwargs) + del self.key_states[key] + + def send_key_buffer(self, keyboard): + if not self.key_buffer: + return + + reprocess = False + for int_coord, key, is_pressed in self.key_buffer: + keyboard.resume_process_key(self, key, is_pressed, int_coord, reprocess) + if isinstance(key, HoldTapKey): + reprocess = True + + self.key_buffer.clear() + + def ht_activate_hold(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_activate_hold') + keyboard.resume_process_key(self, key.hold, True) + + def ht_deactivate_hold(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_deactivate_hold') + keyboard.resume_process_key(self, key.hold, False) + + def ht_activate_tap(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_activate_tap') + keyboard.resume_process_key(self, key.tap, True) + + def ht_deactivate_tap(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_deactivate_tap') + keyboard.resume_process_key(self, key.tap, False) + + def ht_activate_on_interrupt(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_activate_on_interrupt') + if key.prefer_hold: + self.ht_activate_hold(key, keyboard, *args, **kwargs) + else: + self.ht_activate_tap(key, keyboard, *args, **kwargs) + + def ht_deactivate_on_interrupt(self, key, keyboard, *args, **kwargs): + if debug.enabled: + debug('ht_deactivate_on_interrupt') + if key.prefer_hold: + self.ht_deactivate_hold(key, keyboard, *args, **kwargs) + else: + self.ht_deactivate_tap(key, keyboard, *args, **kwargs) diff --git a/hackpads/blipyboard/firmware/kmk/modules/layers.py b/hackpads/blipyboard/firmware/kmk/modules/layers.py new file mode 100644 index 0000000000..17cf84a670 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/layers.py @@ -0,0 +1,193 @@ +'''One layer isn't enough. Adds keys to get to more of them''' + +from kmk.keys import KC, Key, make_argumented_key +from kmk.modules.holdtap import HoldTap, HoldTapKey +from kmk.utils import Debug + +debug = Debug(__name__) + + +def lt_key(layer, key, prefer_hold=False, **kwargs): + return HoldTapKey(tap=key, hold=KC.MO(layer), prefer_hold=prefer_hold, **kwargs) + + +def tt_key(layer, prefer_hold=True, **kwargs): + return HoldTapKey( + tap=KC.TG(layer), + hold=KC.MO(layer), + prefer_hold=prefer_hold, + **kwargs, + ) + + +class LayerKey(Key): + def __init__(self, layer, key=None, **kwargs): + super().__init__(**kwargs) + self.layer = layer + self.key = key + + +class Layers(HoldTap): + '''Gives access to the keys used to enable the layer system''' + + _active_combo = None + + def __init__(self, combo_layers=None): + # Layers + super().__init__(_make_key=False) + self.combo_layers = combo_layers + make_argumented_key( + names=('MO',), + constructor=LayerKey, + on_press=self._mo_pressed, + on_release=self._mo_released, + ) + make_argumented_key( + names=('FD',), + constructor=LayerKey, + on_press=self._fd_pressed, + ) + make_argumented_key( + names=('DF',), + constructor=LayerKey, + on_press=self._df_pressed, + ) + make_argumented_key( + names=('LM',), + constructor=LayerKey, + on_press=self._lm_pressed, + on_release=self._lm_released, + ) + make_argumented_key( + names=('TG',), + constructor=LayerKey, + on_press=self._tg_pressed, + ) + make_argumented_key( + names=('TO',), + constructor=LayerKey, + on_press=self._to_pressed, + ) + make_argumented_key( + names=('LT',), + constructor=lt_key, + on_press=self.ht_pressed, + on_release=self.ht_released, + ) + make_argumented_key( + names=('TT',), + constructor=tt_key, + on_press=self.ht_pressed, + on_release=self.ht_released, + ) + + def _fd_pressed(self, key, keyboard, *args, **kwargs): + ''' + Switches the top layer + ''' + self.activate_layer(keyboard, key.layer, idx=0) + + def _df_pressed(self, key, keyboard, *args, **kwargs): + ''' + Switches the default layer + ''' + self.activate_layer(keyboard, key.layer, idx=-1) + + def _mo_pressed(self, key, keyboard, *args, **kwargs): + ''' + Momentarily activates layer, switches off when you let go + ''' + self.activate_layer(keyboard, key.layer) + + def _mo_released(self, key, keyboard, *args, **kwargs): + self.deactivate_layer(keyboard, key.layer) + + def _lm_pressed(self, key, keyboard, *args, **kwargs): + ''' + As MO(layer) but with mod active + ''' + keyboard.hid_pending = True + keyboard.keys_pressed.add(key.key) + self.activate_layer(keyboard, key.layer) + + def _lm_released(self, key, keyboard, *args, **kwargs): + ''' + As MO(layer) but with mod active + ''' + keyboard.hid_pending = True + keyboard.keys_pressed.discard(key.key) + self.deactivate_layer(keyboard, key.layer) + + def _tg_pressed(self, key, keyboard, *args, **kwargs): + ''' + Toggles the layer (enables it if not active, and vise versa) + ''' + # See mo_released for implementation details around this + if key.layer in keyboard.active_layers: + self.deactivate_layer(keyboard, key.layer) + else: + self.activate_layer(keyboard, key.layer) + + def _to_pressed(self, key, keyboard, *args, **kwargs): + ''' + Activates layer and deactivates all other layers + ''' + self._active_combo = None + keyboard.active_layers.clear() + self.activate_layer(keyboard, key.layer) + + def _print_debug(self, keyboard): + if debug.enabled: + debug(f'active_layers={keyboard.active_layers}') + + def activate_layer(self, keyboard, layer, idx=None): + if idx is None: + keyboard.active_layers.insert(0, layer) + else: + keyboard.active_layers[idx] = layer + + if self.combo_layers: + self._activate_combo_layer(keyboard) + + self._print_debug(keyboard) + + def deactivate_layer(self, keyboard, layer): + # Remove the first instance of the target layer from the active list + # under almost all normal use cases, this will disable the layer (but + # preserve it if it was triggered as a default layer, etc.). + # This also resolves an issue where using DF() on a layer + # triggered by MO() and then defaulting to the MO()'s layer + # would result in no layers active. + if len(keyboard.active_layers) > 1: + try: + idx = keyboard.active_layers.index(layer) + del keyboard.active_layers[idx] + except ValueError: + if debug.enabled: + debug(f'_mo_released: layer {layer} not active') + + if self.combo_layers: + self._deactivate_combo_layer(keyboard, layer) + + self._print_debug(keyboard) + + def _activate_combo_layer(self, keyboard): + if self._active_combo: + return + + for combo, result in self.combo_layers.items(): + matching = True + for layer in combo: + if layer not in keyboard.active_layers: + matching = False + break + + if matching: + self._active_combo = combo + keyboard.active_layers.insert(0, result) + break + + def _deactivate_combo_layer(self, keyboard, layer): + if self._active_combo and layer in self._active_combo: + keyboard.active_layers.remove(self.combo_layers[self._active_combo]) + self._active_combo = None diff --git a/hackpads/blipyboard/firmware/kmk/modules/macros.py b/hackpads/blipyboard/firmware/kmk/modules/macros.py new file mode 100644 index 0000000000..be26e13f62 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/macros.py @@ -0,0 +1,315 @@ +from micropython import const + +from kmk.keys import KC, Key, make_argumented_key, make_key +from kmk.modules import Module +from kmk.scheduler import create_task +from kmk.utils import Debug + +debug = Debug(__name__) + +_IDLE = const(0) +_ON_PRESS = const(1) +_ON_HOLD = const(2) +_RELEASE = const(3) +_ON_RELEASE = const(4) + + +class MacroKey(Key): + def __init__( + self, + *args, + on_press=None, + on_hold=None, + on_release=None, + blocking=True, + _on_press=None, + _on_release=None, + ): + super().__init__(on_press=_on_press, on_release=_on_release) + + if on_press is not None: + self.on_press_macro = on_press + else: + self.on_press_macro = args + self.on_hold_macro = on_hold + self.on_release_macro = on_release + self.blocking = blocking + self.state = _IDLE + self._task = None + + +class UnicodeModeKey(Key): + def __init__(self, mode, **kwargs): + super().__init__(**kwargs) + self.mode = mode + + +def Delay(delay): + return lambda keyboard: delay + + +def Press(key): + return lambda keyboard: key.on_press(keyboard) + + +def Release(key): + return lambda keyboard: key.on_release(keyboard) + + +def Tap(key): + def _(keyboard): + key.on_press(keyboard) + yield + key.on_release(keyboard) + + return _ + + +class UnicodeModeIBus: + @staticmethod + def pre(keyboard): + macro = (KC.LCTL, KC.LSFT, KC.U) + for k in macro: + k.on_press(keyboard) + yield + for k in macro: + k.on_release(keyboard) + + @staticmethod + def post(keyboard): + KC.ENTER.on_press(keyboard) + yield + KC.ENTER.on_release(keyboard) + + +class UnicodeModeMacOS: + @staticmethod + def pre(keyboard): + KC.LALT.on_press(keyboard) + yield + + @staticmethod + def post(keyboard): + KC.LALT.on_release(keyboard) + yield + + +class UnicodeModeWinC: + @staticmethod + def pre(keyboard): + macro = (KC.RALT, KC.U) + for k in macro: + k.on_press(keyboard) + yield + for k in macro: + k.on_release(keyboard) + + @staticmethod + def post(keyboard): + KC.ENTER.on_press(keyboard) + yield + KC.ENTER.on_release(keyboard) + + +def MacroIter(keyboard, macro, unicode_mode): + for item in macro: + if callable(item): + item = item(keyboard) + + if item is None: + yield + + elif isinstance(item, int): + yield item + + elif isinstance(item, str): + for char in item: + if ord(char) <= 127: + # ANSII key codes + key = KC[char] + if char.isupper(): + KC.LSHIFT.on_press(keyboard) + key.on_press(keyboard) + yield + + if char.isupper(): + KC.LSHIFT.on_release(keyboard) + key.on_release(keyboard) + yield + + else: + # unicode code points + yield from unicode_mode.pre(keyboard) + yield + + for digit in hex(ord(char))[2:]: + key = KC[digit] + key.on_press(keyboard) + yield + key.on_release(keyboard) + yield + + yield from unicode_mode.post(keyboard) + yield + + elif item.__class__.__name__ == 'generator': + yield from MacroIter(keyboard, item, unicode_mode) + yield + + elif debug.enabled: + debug('unsupported macro type ', item.__class__.__name__) + + +class Macros(Module): + def __init__(self, unicode_mode=UnicodeModeIBus, delay=10): + self._active = [] + self.key_buffer = [] + self.unicode_mode = unicode_mode + self.delay = delay + + make_argumented_key( + names=('MACRO',), + constructor=MacroKey, + _on_press=self.on_press_macro, + _on_release=self.on_release_macro, + ) + make_key( + names=('UC_MODE_IBUS',), + constructor=UnicodeModeKey, + mode=UnicodeModeIBus, + on_press=self.on_press_unicode_mode, + ) + make_key( + names=('UC_MODE_MACOS',), + constructor=UnicodeModeKey, + mode=UnicodeModeMacOS, + on_press=self.on_press_unicode_mode, + ) + make_key( + names=('UC_MODE_WINC',), + constructor=UnicodeModeKey, + mode=UnicodeModeWinC, + on_press=self.on_press_unicode_mode, + ) + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def process_key(self, keyboard, key, is_pressed, int_coord): + # Passthrough if there are no active macros, or the key belongs to an + # active macro, or all active macros or non-blocking. + if not self._active or key in self._active or not self._active[-1].blocking: + return key + + self.key_buffer.append((int_coord, key, is_pressed)) + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def on_press_unicode_mode(self, key, keyboard, *args, **kwargs): + self.unicode_mode = key.mode + + def on_press_macro(self, key, keyboard, *args, **kwargs): + if key.state == _IDLE: + key.state = _ON_PRESS + self.process_macro_async(keyboard, key) + else: + self.key_buffer.append((args[1], key, True)) + + def on_release_macro(self, key, keyboard, *args, **kwargs): + if key.state == _ON_PRESS or key.state == _ON_HOLD: + key.state = _RELEASE + if key._task is None: + self.process_macro_async(keyboard, key) + else: + self.key_buffer.append((args[1], key, False)) + + def process_macro_async(self, keyboard, key, _iter=None): + # There's no active macro iterator: select the next one. + if _iter is None: + key._task = None + + if key.state == _ON_PRESS: + self._active.append(key) + if (macro := key.on_press_macro) is None: + key.state = _ON_HOLD + elif debug.enabled: + debug('on_press') + + if key.state == _ON_HOLD: + if (macro := key.on_hold_macro) is None: + return + elif debug.enabled: + debug('on_hold') + + if key.state == _RELEASE: + key.state = _ON_RELEASE + + if key.state == _ON_RELEASE: + if (macro := key.on_release_macro) is None: + macro = () + elif debug.enabled: + debug('on_release') + + _iter = MacroIter(keyboard, macro, self.unicode_mode) + + # Run one step in the macro sequence. + delay = self.delay + try: + # any not None value the iterator yields is a delay value in ms. + ret = next(_iter) + if ret is not None: + delay = ret + keyboard._send_hid() + + # The sequence has reached its end: advance the macro state. + except StopIteration: + _iter = None + delay = 0 + key._task = None + + if key.state == _ON_PRESS: + key.state = _ON_HOLD + + elif key.state == _ON_RELEASE: + if debug.enabled: + debug('deactivate') + key.state = _IDLE + self._active.remove(key) + self.send_key_buffer(keyboard) + return + + # Schedule the next step. + # Reuse existing task objects and save a couple of bytes and cycles for the gc. + if key._task: + task = key._task + else: + + def task(): + self.process_macro_async(keyboard, key, _iter) + + key._task = create_task(task, after_ms=delay) + + def send_key_buffer(self, keyboard): + if not self.key_buffer or self._active: + return + + for int_coord, key, is_pressed in self.key_buffer: + keyboard.resume_process_key(self, key, is_pressed, int_coord, False) + + self.key_buffer.clear() diff --git a/hackpads/blipyboard/firmware/kmk/modules/midi.py b/hackpads/blipyboard/firmware/kmk/modules/midi.py new file mode 100644 index 0000000000..ca339f983f --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/midi.py @@ -0,0 +1,114 @@ +import adafruit_midi +import usb_midi +from adafruit_midi.control_change import ControlChange +from adafruit_midi.note_off import NoteOff +from adafruit_midi.note_on import NoteOn +from adafruit_midi.pitch_bend import PitchBend +from adafruit_midi.program_change import ProgramChange +from adafruit_midi.start import Start +from adafruit_midi.stop import Stop + +from kmk.keys import Key, make_argumented_key +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +class MidiKey(Key): + def __init__(self, *args, command, channel=None, **kwargs): + super().__init__(**kwargs) + self.on_press_msg = command(*args, channel=channel) + self.on_release_msg = None + + +def midi_note_key(note=69, velocity=127, channel=None, **kwargs): + key = MidiKey(note, velocity, command=NoteOn, channel=channel, **kwargs) + key.on_release_msg = NoteOff(note, velocity, channel=channel) + return key + + +class MidiKeys(Module): + def __init__(self): + make_argumented_key( + names=('MIDI_CC',), + constructor=MidiKey, + command=ControlChange, + on_press=self.on_press, + ) + + make_argumented_key( + names=('MIDI_NOTE',), + constructor=midi_note_key, + on_press=self.on_press, + on_release=self.on_release, + ) + + make_argumented_key( + names=('MIDI_PB',), + constructor=MidiKey, + command=PitchBend, + on_press=self.on_press, + ) + + make_argumented_key( + names=('MIDI_PC',), + constructor=MidiKey, + command=ProgramChange, + on_press=self.on_press, + ) + + make_argumented_key( + names=('MIDI_START',), + constructor=MidiKey, + command=Start, + on_press=self.on_press, + ) + + make_argumented_key( + names=('MIDI_STOP',), + constructor=MidiKey, + command=Stop, + on_press=self.on_press, + ) + + try: + self.midi = adafruit_midi.MIDI(midi_out=usb_midi.ports[1], out_channel=0) + except IndexError: + self.midi = None + if debug.enabled: + debug('No midi device found.') + + def during_bootup(self, keyboard): + return None + + def before_matrix_scan(self, keyboard): + return None + + def after_matrix_scan(self, keyboard): + return None + + def process_key(self, keyboard, key, is_pressed, int_coord): + return key + + def before_hid_send(self, keyboard): + return None + + def after_hid_send(self, keyboard): + return None + + def on_powersave_enable(self, keyboard): + return None + + def on_powersave_disable(self, keyboard): + return None + + def send(self, message): + if self.midi: + self.midi.send(message) + + def on_press(self, key, keyboard, *args, **kwargs): + self.send(key.on_press_msg) + + def on_release(self, key, keyboard, *args, **kwargs): + self.send(key.on_release_msg) diff --git a/hackpads/blipyboard/firmware/kmk/modules/mouse_jiggler.py b/hackpads/blipyboard/firmware/kmk/modules/mouse_jiggler.py new file mode 100644 index 0000000000..d51ed73ddf --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/mouse_jiggler.py @@ -0,0 +1,74 @@ +import random + +from kmk.keys import AX, make_key +from kmk.modules import Module +from kmk.scheduler import cancel_task, create_task +from kmk.utils import Debug + +debug = Debug(__name__) + + +class MouseJiggler(Module): + def __init__(self, period_ms=5000, move_step=1): + self.move_step = move_step + self.period_ms = period_ms + self._is_jiggling = False + + make_key(names=('MJ_TOGGLE',), on_press=self.toggle) + make_key(names=('MJ_START',), on_press=self.start) + make_key(names=('MJ_STOP',), on_press=self.stop) + + def during_bootup(self, keyboard): + self._task = create_task( + lambda: self._jiggle(keyboard), + after_ms=-1, # Don't start jiggling yet. + period_ms=self.period_ms, + ) + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def start(self, *args, **kwargs): + if not self._is_jiggling: + self._task.restart() + self._is_jiggling = True + if debug.enabled: + debug('MouseJiggler started.') + + def stop(self, *args, **kwargs): + if self._is_jiggling: + cancel_task(self._task) + self._is_jiggling = False + if debug.enabled: + debug('MouseJiggler stopped.') + + def toggle(self, *args, **kwargs): + if self._is_jiggling: + self.stop(*args, **kwargs) + else: + self.start(*args, **kwargs) + + @property + def is_jiggling(self): + return self._is_jiggling + + def _jiggle(self, keyboard): + if debug.enabled: + debug('MouseJiggler jiggling.') + AX.X.move(keyboard, random.choice([-1, 1]) * self.move_step) + AX.Y.move(keyboard, random.choice([-1, 1]) * self.move_step) diff --git a/hackpads/blipyboard/firmware/kmk/modules/mouse_keys.py b/hackpads/blipyboard/firmware/kmk/modules/mouse_keys.py new file mode 100644 index 0000000000..7ee98dc69b --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/mouse_keys.py @@ -0,0 +1,152 @@ +from micropython import const + +from kmk.keys import AX, MouseKey, make_key +from kmk.modules import Module +from kmk.scheduler import cancel_task, create_task + +_MU = const(0x01) +_MD = const(0x02) +_ML = const(0x04) +_MR = const(0x08) +_WU = const(0x10) +_WD = const(0x20) +_WL = const(0x40) +_WR = const(0x80) + + +class MouseKeys(Module): + def __init__(self, max_speed=10, acc_interval=20, move_step=1): + self._movement = 0 + self.max_speed = max_speed + self.acc_interval = acc_interval + self.move_step = move_step + + codes = ( + (0x01, ('MB_LMB',)), + (0x02, ('MB_RMB',)), + (0x04, ('MB_MMB',)), + (0x08, ('MB_BTN4',)), + (0x10, ('MB_BTN5',)), + ) + for code, names in codes: + make_key(names=names, constructor=MouseKey, code=code) + + keys = ( + (('MW_UP',), self._mw_up_press, self._mw_up_release), + (('MW_DOWN', 'MW_DN'), self._mw_down_press, self._mw_down_release), + (('MW_LEFT', 'MW_LT'), self._mw_left_press, self._mw_left_release), + (('MW_RIGHT', 'MW_RT'), self._mw_right_press, self._mw_right_release), + (('MS_UP',), self._ms_up_press, self._ms_up_release), + (('MS_DOWN', 'MS_DN'), self._ms_down_press, self._ms_down_release), + (('MS_LEFT', 'MS_LT'), self._ms_left_press, self._ms_left_release), + (('MS_RIGHT', 'MS_RT'), self._ms_right_press, self._ms_right_release), + ) + for names, on_press, on_release in keys: + make_key(names=names, on_press=on_press, on_release=on_release) + + def during_bootup(self, keyboard): + self._task = create_task( + lambda: self._move(keyboard), + period_ms=self.acc_interval, + ) + cancel_task(self._task) + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def _move(self, keyboard): + if self._movement & (_MR + _ML + _MD + _MU): + if self.move_step < self.max_speed: + self.move_step = self.move_step + 1 + if self._movement & _MU: + AX.Y.move(keyboard, -self.move_step) + if self._movement & _MD: + AX.Y.move(keyboard, self.move_step) + if self._movement & _ML: + AX.X.move(keyboard, -self.move_step) + if self._movement & _MR: + AX.X.move(keyboard, self.move_step) + + if self._movement & _WU: + AX.W.move(keyboard, 1) + if self._movement & _WD: + AX.W.move(keyboard, -1) + if self._movement & _WL: + AX.P.move(keyboard, -1) + if self._movement & _WR: + AX.P.move(keyboard, 1) + + def _maybe_start_move(self, mask): + self._movement |= mask + if self._movement == mask: + self._task.restart() + + def _maybe_stop_move(self, mask): + self._movement &= ~mask + if not self._movement & (_MR + _ML + _MD + _MU): + self.move_step = 1 + if not self._movement: + cancel_task(self._task) + + def _mw_up_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_WU) + + def _mw_up_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_WU) + + def _mw_down_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_WD) + + def _mw_down_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_WD) + + def _mw_left_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_WL) + + def _mw_left_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_WL) + + def _mw_right_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_WR) + + def _mw_right_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_WR) + + def _ms_up_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_MU) + + def _ms_up_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_MU) + + def _ms_down_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_MD) + + def _ms_down_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_MD) + + def _ms_left_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_ML) + + def _ms_left_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_ML) + + def _ms_right_press(self, key, keyboard, *args, **kwargs): + self._maybe_start_move(_MR) + + def _ms_right_release(self, key, keyboard, *args, **kwargs): + self._maybe_stop_move(_MR) diff --git a/hackpads/blipyboard/firmware/kmk/modules/pimoroni_trackball.py b/hackpads/blipyboard/firmware/kmk/modules/pimoroni_trackball.py new file mode 100644 index 0000000000..0b65388518 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/pimoroni_trackball.py @@ -0,0 +1,318 @@ +''' +Extension handles usage of Trackball Breakout by Pimoroni +''' + +from micropython import const + +import math +import struct +from adafruit_pixelbuf import PixelBuf + +from kmk.keys import AX, KC, Key, make_argumented_key, make_key +from kmk.kmktime import PeriodicTimer +from kmk.modules import Module +from kmk.utils import Debug + +_I2C_ADDRESS = const(0x0A) +_I2C_ADDRESS_ALTERNATIVE = const(0x0B) + +_CHIP_ID = const(0xBA11) +_VERSION = const(1) + +_REG_LED_RED = const(0x00) +_REG_LED_GRN = const(0x01) +_REG_LED_BLU = const(0x02) +_REG_LED_WHT = const(0x03) + +_REG_LEFT = const(0x04) +_REG_RIGHT = const(0x05) +_REG_UP = const(0x06) +_REG_DOWN = const(0x07) +_REG_SWITCH = const(0x08) +_MSK_SWITCH_STATE = const(0b10000000) + +_REG_USER_FLASH = const(0xD0) +_REG_FLASH_PAGE = const(0xF0) +_REG_INT = const(0xF9) +_MSK_INT_TRIGGERED = const(0b00000001) +_MSK_INT_OUT_EN = const(0b00000010) +_REG_CHIP_ID_L = const(0xFA) +_REG_CHIP_ID_H = const(0xFB) +_REG_VERSION = const(0xFC) +_REG_I2C_ADDR = const(0xFD) +_REG_CTRL = const(0xFE) +_MSK_CTRL_SLEEP = const(0b00000001) +_MSK_CTRL_RESET = const(0b00000010) +_MSK_CTRL_FREAD = const(0b00000100) +_MSK_CTRL_FWRITE = const(0b00001000) + + +debug = Debug(__name__) + + +class TrackballMode: + '''Behaviour mode of trackball: mouse movement or vertical scroll''' + + MOUSE_MODE = const(0) + SCROLL_MODE = const(1) + + +class ScrollDirection: + '''Behaviour mode of scrolling: natural or reverse scrolling''' + + NATURAL = const(0) + REVERSE = const(1) + + +class TrackballHandlerKey(Key): + def __init__(self, handler=TrackballMode.MOUSE_MODE, **kwargs): + super().__init__(**kwargs) + self.handler = handler + + +class TrackballHandler: + def handle(self, keyboard, trackball, x, y, switch, state): + raise NotImplementedError + + +class PointingHandler(TrackballHandler): + def __init__(self, on_press=KC.MB_LMB): + self.on_press = on_press + + def handle(self, keyboard, trackball, x, y, switch, state): + if x: + AX.X.move(keyboard, x) + if y: + AX.Y.move(keyboard, y) + + if switch == 1: # Button changed state + keyboard.pre_process_key(self.on_press, is_pressed=state) + + +class ScrollHandler(TrackballHandler): + def __init__(self, scroll_direction=ScrollDirection.NATURAL, on_press=KC.MB_LMB): + self.scroll_direction = scroll_direction + self.on_press = on_press + + def handle(self, keyboard, trackball, x, y, switch, state): + if self.scroll_direction == ScrollDirection.REVERSE: + y = -y + + if y != 0: + AX.W.move(keyboard, y) + + if switch == 1: # Button changed state + keyboard.pre_process_key(self.on_press, is_pressed=state) + + +class KeyHandler(TrackballHandler): + x = 0 + y = 0 + + def __init__(self, up, right, down, left, press, axis_snap=0.25, steps=8): + self.up = up + self.right = right + self.down = down + self.left = left + self.press = press + self.axis_snap = axis_snap + self.steps = steps + + def handle(self, keyboard, trackball, x, y, switch, state): + if y and abs(x / y) < self.axis_snap: + x = 0 + if x and abs(y / x) < self.axis_snap: + y = 0 + + self.x += x + self.y += y + x_taps = self.x // self.steps + y_taps = self.y // self.steps + self.x %= self.steps + self.y %= self.steps + for i in range(x_taps, 0, 1): + keyboard.tap_key(self.left) + for i in range(x_taps, 0, -1): + keyboard.tap_key(self.right) + for i in range(y_taps, 0, 1): + keyboard.tap_key(self.up) + for i in range(y_taps, 0, -1): + keyboard.tap_key(self.down) + if switch and state: + keyboard.tap_key(self.press) + + +class Trackball(Module): + '''Module handles usage of Trackball Breakout by Pimoroni''' + + def __init__( + self, + i2c, + mode=TrackballMode.MOUSE_MODE, + address=_I2C_ADDRESS, + angle_offset=0, + handlers=None, + ): + self.angle_offset = angle_offset + if not handlers: + handlers = [PointingHandler(), ScrollHandler()] + if mode == TrackballMode.SCROLL_MODE: + handlers.reverse() + self._i2c_address = address + self._i2c_bus = i2c + + self.mode = mode + self.handlers = handlers + self.current_handler = self.handlers[0] + self.polling_interval = 20 + + make_key( + names=('TB_MODE', 'TB_NEXT_HANDLER', 'TB_N'), + on_press=self._tb_handler_next_press, + ) + + make_argumented_key( + names=('TB_HANDLER', 'TB_H'), + constructor=TrackballHandlerKey, + on_press=self._tb_handler_press, + ) + + def during_bootup(self, keyboard): + chip_id = struct.unpack('= len(self.handlers): + next_index = 0 + self.activate_handler(next_index) + + def _read_raw_state(self): + '''Read up, down, left, right and switch data from trackball.''' + left, right, up, down, switch = self._i2c_rdwr([_REG_LEFT], 5) + switch_changed, switch_state = ( + switch & ~_MSK_SWITCH_STATE, + (switch & _MSK_SWITCH_STATE) > 0, + ) + return up, down, left, right, switch_changed, switch_state + + def _i2c_rdwr(self, data, length=0): + '''Write and optionally read I2C data.''' + if not self._i2c_bus.try_lock(): + return + + try: + if length > 0: + result = bytearray(length) + self._i2c_bus.writeto_then_readfrom( + self._i2c_address, bytes(data), result + ) + return list(result) + else: + self._i2c_bus.writeto(self._i2c_address, bytes(data)) + + return [] + + finally: + self._i2c_bus.unlock() + + def _tb_handler_press(self, key, keyboard, *args, **kwargs): + self.activate_handler(key.handler) + + def _tb_handler_next_press(self, key, keyboard, *args, **kwargs): + self.next_handler() + + def _calculate_movement(self, raw_x, raw_y): + '''Calculate accelerated movement vector from raw data''' + if raw_x == 0 and raw_y == 0: + return 0, 0 + + scale = math.sqrt(raw_x**2 + raw_y**2) + x = (self.rot[0][0] * raw_x + self.rot[0][1] * raw_y) * scale + y = (self.rot[1][0] * raw_x + self.rot[1][1] * raw_y) * scale + + return int(x), int(y) + + +class TrackballPixel(PixelBuf): + '''PixelBuf interface for the Trackball RGBW LED''' + + def __init__(self, trackball, **kwargs): + self.trackball = trackball + kwargs['byteorder'] = 'RGBW' + super().__init__(1, **kwargs) + + def deinit(self): + self.trackball.set_rgbw(0, 0, 0, 0) + + def _transmit(self, b): + self.trackball.set_rgbw(b[0], b[1], b[2], b[3]) diff --git a/hackpads/blipyboard/firmware/kmk/modules/potentiometer.py b/hackpads/blipyboard/firmware/kmk/modules/potentiometer.py new file mode 100644 index 0000000000..03a3dc774f --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/potentiometer.py @@ -0,0 +1,94 @@ +from analogio import AnalogIn +from supervisor import ticks_ms + +from kmk.modules import Module + + +class PotentiometerState: + def __init__(self, direction: int, position: int): + self.direction = direction + self.position = position + + +class Potentiometer: + def __init__(self, pin, move_callback, is_inverted=False): + self.is_inverted = is_inverted + self.read_pin = AnalogIn(pin) + self._direction = None + self._pos = self.get_pos() + self._timestamp = ticks_ms() + self.cb = move_callback + + # callback function on events. + self.on_move_do = lambda state: self.cb(state) + + def get_state(self) -> PotentiometerState: + return PotentiometerState( + direction=(self.is_inverted and -self._direction or self._direction), + position=(self.is_inverted and -self._pos or self._pos), + ) + + def get_pos(self): + ''' + Read from the analog pin assingned, truncate to 7 bits, + average over 10 readings, and return a value 0-127 + ''' + return int(sum([(self.read_pin.value >> 9) for i in range(10)]) / 10) + + def update_state(self): + self._direction = 0 + new_pos = self.get_pos() + if abs(new_pos - self._pos) > 2: + # movement detected! + if new_pos > self._pos: + self._direction = 1 + else: + self._direction = -1 + self._pos = new_pos + if self.on_move_do is not None: + self.on_move_do(self.get_state()) + + +class PotentiometerHandler(Module): + def __init__(self): + self.potentiometers = [] + self.pins = None + + def on_runtime_enable(self, keyboard): + return + + def on_runtime_disable(self, keyboard): + return + + def during_bootup(self, keyboard): + if self.pins: + for args in self.pins: + self.potentiometers.append(Potentiometer(*args)) + return + + def before_matrix_scan(self, keyboard): + ''' + Return value will be injected as an extra matrix update + ''' + for potentiometer in self.potentiometers: + potentiometer.update_state() + + return keyboard + + def after_matrix_scan(self, keyboard): + ''' + Return value will be replace matrix update if supplied + ''' + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/power.py b/hackpads/blipyboard/firmware/kmk/modules/power.py new file mode 100644 index 0000000000..07eca21c55 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/power.py @@ -0,0 +1,143 @@ +import board +import digitalio +from supervisor import ticks_ms + +from time import sleep + +from kmk.keys import make_key +from kmk.kmktime import check_deadline +from kmk.modules import Module + + +class Power(Module): + def __init__(self, powersave_pin=None): + self.enable = False + self.powersave_pin = powersave_pin # Powersave pin board object + self._powersave_start = ticks_ms() + self._usb_last_scan = ticks_ms() - 5000 + self._psp = None # Powersave pin object + self._i2c = 0 + self._i2c_deinit_count = 0 + self._loopcounter = 0 + + make_key(names=('PS_TOG',), on_press=self._ps_tog) + make_key(names=('PS_ON',), on_press=self._ps_enable) + make_key(names=('PS_OFF',), on_press=self._ps_disable) + + def __repr__(self): + return f'Power({self._to_dict()})' + + def _to_dict(self): + return { + 'enable': self.enable, + 'powersave_pin': self.powersave_pin, + '_powersave_start': self._powersave_start, + '_usb_last_scan': self._usb_last_scan, + '_psp': self._psp, + } + + def during_bootup(self, keyboard): + self._i2c_scan() + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + if keyboard.matrix_update or keyboard.secondary_matrix_update: + self.psave_time_reset() + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + if self.enable: + self.psleep() + + def on_powersave_enable(self, keyboard): + '''Gives 10 cycles to allow other extensions to clean up before powersave''' + if self._loopcounter > 10: + self.enable_powersave(keyboard) + self._loopcounter = 0 + else: + self._loopcounter += 1 + return + + def on_powersave_disable(self, keyboard): + self.disable_powersave(keyboard) + return + + def enable_powersave(self, keyboard): + '''Enables power saving features''' + if self._i2c_deinit_count >= self._i2c and self.powersave_pin: + # Allows power save to prevent RGB drain. + # Example here https://docs.nicekeyboards.com/#/nice!nano/pinout_schematic + + if not self._psp: + self._psp = digitalio.DigitalInOut(self.powersave_pin) + self._psp.direction = digitalio.Direction.OUTPUT + if self._psp: + self._psp.value = True + + self.enable = True + keyboard._trigger_powersave_enable = False + return + + def disable_powersave(self, keyboard): + '''Disables power saving features''' + if self._psp: + self._psp.value = False + # Allows power save to prevent RGB drain. + # Example here https://docs.nicekeyboards.com/#/nice!nano/pinout_schematic + + keyboard._trigger_powersave_disable = False + self.enable = False + return + + def psleep(self): + ''' + Sleeps longer and longer to save power the more time in between updates. + ''' + if check_deadline(ticks_ms(), self._powersave_start, 60000): + sleep(8 / 1000) + elif check_deadline(ticks_ms(), self._powersave_start, 240000) is False: + sleep(180 / 1000) + return + + def psave_time_reset(self): + self._powersave_start = ticks_ms() + + def _i2c_scan(self): + i2c = board.I2C() + while not i2c.try_lock(): + pass + try: + self._i2c = len(i2c.scan()) + finally: + i2c.unlock() + return + + def usb_rescan_timer(self): + return bool(check_deadline(ticks_ms(), self._usb_last_scan, 5000) is False) + + def usb_time_reset(self): + self._usb_last_scan = ticks_ms() + return + + def usb_scan(self): + # TODO Add USB detection here. Currently lies that it's connected + # https://github.com/adafruit/circuitpython/pull/3513 + return True + + def _ps_tog(self, key, keyboard, *args, **kwargs): + if self.enable: + keyboard._trigger_powersave_disable = True + else: + keyboard._trigger_powersave_enable = True + + def _ps_enable(self, key, keyboard, *args, **kwargs): + if not self.enable: + keyboard._trigger_powersave_enable = True + + def _ps_disable(self, key, keyboard, *args, **kwargs): + if self.enable: + keyboard._trigger_powersave_disable = True diff --git a/hackpads/blipyboard/firmware/kmk/modules/rapidfire.py b/hackpads/blipyboard/firmware/kmk/modules/rapidfire.py new file mode 100644 index 0000000000..99c7662935 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/rapidfire.py @@ -0,0 +1,118 @@ +from micropython import const + +from random import randint + +from kmk.keys import Key, make_argumented_key +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + +_INACTIVE = const(0) +_HOLD = const(1) +_ACTIVE = const(2) + + +class RapidFireKey(Key): + def __init__( + self, + key, + interval=100, + timeout=200, + enable_interval_randomization=False, + randomization_magnitude=15, + toggle=False, + **kwargs, + ): + super().__init__(**kwargs) + self.key = key + self.interval = interval + self.timeout = timeout + self.enable_interval_randomization = enable_interval_randomization + self.randomization_magnitude = randomization_magnitude + self.toggle = toggle + self._state = _INACTIVE + self._timeout = None + + +class RapidFire(Module): + def __init__(self): + make_argumented_key( + names=('RF',), + constructor=RapidFireKey, + on_press=self._rf_pressed, + on_release=self._rf_released, + ) + + def _on_timer_timeout(self, key, keyboard): + if key._state == _HOLD: + key._state = _ACTIVE + keyboard.remove_key(key.key) + key._timeout = keyboard.set_timeout( + 1, lambda: self._on_timer_timeout(key, keyboard) + ) + return + + keyboard.add_key(key.key) + keyboard.set_timeout(1, lambda: keyboard.remove_key(key.key)) + + interval = key.interval + if key.enable_interval_randomization: + interval += randint( + -key.randomization_magnitude, key.randomization_magnitude + ) + key._timeout = keyboard.set_timeout( + interval, lambda: self._on_timer_timeout(key, keyboard) + ) + + if debug.enabled: + debug(key.key, ' @', interval, 'ms') + + def _rf_pressed(self, key, keyboard, *args, **kwargs): + if key._state == _ACTIVE: + self._deactivate_key(key, keyboard) + return + + keyboard.add_key(key.key) + key._state = _HOLD + key._timeout = keyboard.set_timeout( + key.timeout, lambda: self._on_timer_timeout(key, keyboard) + ) + + def _rf_released(self, key, keyboard, *args, **kwargs): + if key._state == _ACTIVE: + if key.toggle: + return + key._state = _INACTIVE + elif key._state == _INACTIVE: + return + else: + keyboard.remove_key(key.key) + + self._deactivate_key(key, keyboard) + + def _deactivate_key(self, key, keyboard): + keyboard.cancel_timeout(key._timeout) + key._state = _INACTIVE + key._timeout = None + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/serialace.py b/hackpads/blipyboard/firmware/kmk/modules/serialace.py new file mode 100644 index 0000000000..c030377443 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/serialace.py @@ -0,0 +1,63 @@ +from usb_cdc import data + +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +class SerialACE(Module): + buffer = bytearray() + + def during_bootup(self, keyboard): + try: + data.timeout = 0 + except AttributeError: + pass + + def before_matrix_scan(self, keyboard): + pass + + def after_matrix_scan(self, keyboard): + pass + + def process_key(self, keyboard, key, is_pressed, int_coord): + return key + + def before_hid_send(self, keyboard): + # Serial.data isn't initialized. + if not data: + return + + # Nothing to parse. + if data.in_waiting == 0: + return + + self.buffer.extend(data.read()) + idx = self.buffer.find(b'\n') + + # No full command yet. + if idx == -1: + return + + # Split off command and evaluate. + line = self.buffer[:idx] + self.buffer = self.buffer[idx + 1 :] # noqa: E203 + + try: + if debug.enabled: + debug(f'eval({line})') + ret = eval(line, {'keyboard': keyboard}) + data.write(bytearray(str(ret) + '\n')) + except Exception as err: + if debug.enabled: + debug(f'error: {err}') + + def after_hid_send(self, keyboard): + pass + + def on_powersave_enable(self, keyboard): + pass + + def on_powersave_disable(self, keyboard): + pass diff --git a/hackpads/blipyboard/firmware/kmk/modules/spacemouse_keys.py b/hackpads/blipyboard/firmware/kmk/modules/spacemouse_keys.py new file mode 100644 index 0000000000..6984b45eca --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/spacemouse_keys.py @@ -0,0 +1,131 @@ +from micropython import const + +from kmk.keys import SM, Key, SpacemouseKey, make_key +from kmk.modules import Module +from kmk.scheduler import cancel_task, create_task + +_XI = const(0x001) +_YI = const(0x002) +_ZI = const(0x004) +_AI = const(0x008) +_BI = const(0x010) +_CI = const(0x020) +_XD = const(0x040) +_YD = const(0x080) +_ZD = const(0x100) +_AD = const(0x200) +_BD = const(0x400) +_CD = const(0x800) + + +class SpacemouseDirectionKey(Key): + def __init__(self, code, **kwargs): + super().__init__(**kwargs) + self.code = code + + def __repr__(self): + return super().__repr__() + f'(code=0x{self.code:03X})' + + +class SpacemouseKeys(Module): + def __init__(self, max_speed=450, accel=10, timestep_ms=15): + self.max_speed = max_speed + self.accel = accel + self.timestep_ms = timestep_ms + self._movement = 0 + self._move_step = 0 + + codes = ( + (0x01, ('SM_LB', 'SM_LEFT')), + (0x02, ('SM_RB', 'SM_RIGHT')), + ) + for code, names in codes: + make_key(names=names, constructor=SpacemouseKey, code=code) + + keys = ( + ('SM_XI', 'SM_X_INCREASE'), + ('SM_YI', 'SM_Y_INCREASE'), + ('SM_ZI', 'SM_Z_INCREASE'), + ('SM_AI', 'SM_A_INCREASE'), + ('SM_BI', 'SM_B_INCREASE'), + ('SM_CI', 'SM_C_INCREASE'), + ('SM_XD', 'SM_X_DECREASE'), + ('SM_YD', 'SM_Y_DECREASE'), + ('SM_ZD', 'SM_Z_DECREASE'), + ('SM_AD', 'SM_A_DECREASE'), + ('SM_BD', 'SM_B_DECREASE'), + ('SM_CD', 'SM_C_DECREASE'), + ) + for n, names in enumerate(keys): + make_key( + names=names, + constructor=SpacemouseDirectionKey, + on_press=self._on_press, + on_release=self._on_release, + code=1 << n, + ) + + def during_bootup(self, keyboard): + self._task = create_task( + lambda: self._move(keyboard), + period_ms=self.timestep_ms, + ) + cancel_task(self._task) + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def _move(self, keyboard): + if self._movement: + if self._move_step < self.max_speed: + self._move_step = min(self._move_step + self.accel, self.max_speed) + if self._movement & _XI: + SM.X.move(keyboard, self._move_step) + if self._movement & _YI: + SM.Y.move(keyboard, self._move_step) + if self._movement & _ZI: + SM.Z.move(keyboard, self._move_step) + if self._movement & _AI: + SM.A.move(keyboard, self._move_step) + if self._movement & _BI: + SM.B.move(keyboard, self._move_step) + if self._movement & _CI: + SM.C.move(keyboard, self._move_step) + if self._movement & _XD: + SM.X.move(keyboard, -self._move_step) + if self._movement & _YD: + SM.Y.move(keyboard, -self._move_step) + if self._movement & _ZD: + SM.Z.move(keyboard, -self._move_step) + if self._movement & _AD: + SM.A.move(keyboard, -self._move_step) + if self._movement & _BD: + SM.B.move(keyboard, -self._move_step) + if self._movement & _CD: + SM.C.move(keyboard, -self._move_step) + + def _on_press(self, key, keyboard, *args, **kwargs): + self._movement |= key.code + if self._movement == key.code: + self._task.restart() + + def _on_release(self, key, keyboard, *args, **kwargs): + self._movement &= ~key.mask + if not self._movement: + cancel_task(self._task) + self._move_step = 0 diff --git a/hackpads/blipyboard/firmware/kmk/modules/split.py b/hackpads/blipyboard/firmware/kmk/modules/split.py new file mode 100644 index 0000000000..a54b3e93f0 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/split.py @@ -0,0 +1,391 @@ +'''Enables splitting keyboards wirelessly or wired''' + +import busio +from micropython import const +from supervisor import runtime, ticks_ms + +from keypad import Event as KeyEvent +from storage import getmount + +from kmk.hid import HIDModes +from kmk.kmktime import check_deadline +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +class SplitSide: + LEFT = const(1) + RIGHT = const(2) + + +class SplitType: + UART = const(1) + I2C = const(2) # unused + ONEWIRE = const(3) # unused + BLE = const(4) + + +class Split(Module): + '''Enables splitting keyboards wirelessly, or wired''' + + def __init__( + self, + split_flip=True, + split_side=None, + split_type=SplitType.UART, + split_target_left=True, + uart_interval=20, + data_pin=None, + data_pin2=None, + uart_flip=True, + use_pio=False, + ): + self._is_target = True + self._uart_buffer = [] + self.split_flip = split_flip + self.split_side = split_side + self.split_type = split_type + self.split_target_left = split_target_left + self.split_offset = None + self.data_pin = data_pin + self.data_pin2 = data_pin2 + self.uart_flip = uart_flip + self._use_pio = use_pio + self._uart = None + self._uart_interval = uart_interval + self.uart_header = bytearray([0xB2]) # Any non-zero byte should work + + if self.split_type == SplitType.BLE: + try: + from adafruit_ble import BLERadio + from adafruit_ble.advertising.standard import ( + ProvideServicesAdvertisement, + ) + from adafruit_ble.services.nordic import UARTService + + self.BLERadio = BLERadio + self.ProvideServicesAdvertisement = ProvideServicesAdvertisement + self.UARTService = UARTService + except ImportError: + if debug.enabled: + debug('BLE Import error') + return # BLE isn't supported on this platform + self._ble_last_scan = ticks_ms() - 5000 + self._connection_count = 0 + self._split_connected = False + self._uart_connection = None + self._advertisment = None # Seems to not be used anywhere + self._advertising = False + self._psave_enable = False + + if self._use_pio: + from kmk.transports.pio_uart import PIO_UART + + self.PIO_UART = PIO_UART + + def during_bootup(self, keyboard): + # Set up name for target side detection and BLE advertisment + name = str(getmount('/').label) + if self.split_type == SplitType.BLE: + if keyboard.hid_type == HIDModes.BLE: + self._ble = keyboard._hid_helper.ble + else: + self._ble = self.BLERadio() + self._ble.name = name + else: + # Try to guess data pins if not supplied + if not self.data_pin: + self.data_pin = keyboard.data_pin + + # if split side was given, find target from split_side. + if self.split_side == SplitSide.LEFT: + self._is_target = bool(self.split_target_left) + elif self.split_side == SplitSide.RIGHT: + self._is_target = not bool(self.split_target_left) + else: + # Detect split side from name + if ( + self.split_type == SplitType.UART + or self.split_type == SplitType.ONEWIRE + ): + self._is_target = runtime.usb_connected + elif self.split_type == SplitType.BLE: + self._is_target = name.endswith('L') == self.split_target_left + + if name.endswith('L'): + self.split_side = SplitSide.LEFT + elif name.endswith('R'): + self.split_side = SplitSide.RIGHT + + if not self._is_target: + keyboard._hid_send_enabled = False + + if self.split_offset is None: + self.split_offset = keyboard.matrix[-1].coord_mapping[-1] + 1 + + if self.split_type == SplitType.UART and self.data_pin is not None: + if self._is_target or not self.uart_flip: + if self._use_pio: + self._uart = self.PIO_UART(tx=self.data_pin2, rx=self.data_pin) + else: + self._uart = busio.UART( + tx=self.data_pin2, rx=self.data_pin, timeout=self._uart_interval + ) + else: + if self._use_pio: + self._uart = self.PIO_UART(tx=self.data_pin, rx=self.data_pin2) + else: + self._uart = busio.UART( + tx=self.data_pin, rx=self.data_pin2, timeout=self._uart_interval + ) + + # Attempt to sanely guess a coord_mapping if one is not provided. + if not keyboard.coord_mapping and keyboard.row_pins and keyboard.col_pins: + cm = [] + + rows_to_calc = len(keyboard.row_pins) + cols_to_calc = len(keyboard.col_pins) + + # Flips the col order if PCB is the same but flipped on right + cols_rhs = list(range(cols_to_calc)) + if self.split_flip: + cols_rhs = list(reversed(cols_rhs)) + + for ridx in range(rows_to_calc): + for cidx in range(cols_to_calc): + cm.append(cols_to_calc * ridx + cidx) + for cidx in cols_rhs: + cm.append(cols_to_calc * (rows_to_calc + ridx) + cidx) + + keyboard.coord_mapping = tuple(cm) + + if not keyboard.coord_mapping and debug.enabled: + debug('Error: please provide coord_mapping for custom scanner') + + if self.split_side == SplitSide.RIGHT: + offset = self.split_offset + for matrix in keyboard.matrix: + matrix.offset = offset + offset += matrix.key_count + + def before_matrix_scan(self, keyboard): + if self.split_type == SplitType.BLE: + self._check_all_connections(keyboard) + self._receive_ble(keyboard) + elif self.split_type == SplitType.UART: + if self._is_target or self.data_pin2: + self._receive_uart(keyboard) + elif self.split_type == SplitType.ONEWIRE: + pass # Protocol needs written + return + + def after_matrix_scan(self, keyboard): + if keyboard.matrix_update: + if self.split_type == SplitType.UART: + if not self._is_target or self.data_pin2: + self._send_uart(keyboard.matrix_update) + else: + pass # explicit pass just for dev sanity... + elif self.split_type == SplitType.BLE: + self._send_ble(keyboard.matrix_update) + elif self.split_type == SplitType.ONEWIRE: + pass # Protocol needs written + else: + if debug.enabled: + debug('Unexpected case in after_matrix_scan') + + return + + def before_hid_send(self, keyboard): + if not self._is_target: + keyboard.hid_pending = False + + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + if self.split_type == SplitType.BLE: + if self._uart_connection and not self._psave_enable: + self._uart_connection.connection_interval = self._uart_interval + self._psave_enable = True + + def on_powersave_disable(self, keyboard): + if self.split_type == SplitType.BLE: + if self._uart_connection and self._psave_enable: + self._uart_connection.connection_interval = 11.25 + self._psave_enable = False + + def _check_all_connections(self, keyboard): + '''Validates the correct number of BLE connections''' + self._previous_connection_count = self._connection_count + self._connection_count = len(self._ble.connections) + if self._is_target: + if self._advertising or not self._check_if_split_connected(): + self._target_advertise() + elif self._connection_count < 2 and keyboard.hid_type == HIDModes.BLE: + keyboard._hid_helper.start_advertising() + + elif not self._is_target and self._connection_count < 1: + self._initiator_scan() + + def _check_if_split_connected(self): + # I'm looking for a way how to recognize which connection is on and which one off + # For now, I found that service name relation to having other CP device + if self._connection_count == 0: + return False + if self._connection_count == 2: + self._split_connected = True + return True + + # Polling this takes some time so I check only if connection_count changed + if self._previous_connection_count == self._connection_count: + return self._split_connected + + bleio_connection = self._ble.connections[0]._bleio_connection + connection_services = bleio_connection.discover_remote_services() + for service in connection_services: + if str(service.uuid).startswith("UUID('adaf0001"): + self._split_connected = True + return True + return False + + def _initiator_scan(self): + '''Scans for target device''' + self._uart = None + self._uart_connection = None + # See if any existing connections are providing UARTService. + self._connection_count = len(self._ble.connections) + if self._connection_count > 0 and not self._uart: + for connection in self._ble.connections: + if self.UARTService in connection: + self._uart_connection = connection + self._uart_connection.connection_interval = 11.25 + self._uart = self._uart_connection[self.UARTService] + break + + if not self._uart: + if debug.enabled: + debug('Scanning') + self._ble.stop_scan() + for adv in self._ble.start_scan( + self.ProvideServicesAdvertisement, timeout=20 + ): + if debug.enabled: + debug('Scanning') + if self.UARTService in adv.services and adv.rssi > -70: + self._uart_connection = self._ble.connect(adv) + self._uart_connection.connection_interval = 11.25 + self._uart = self._uart_connection[self.UARTService] + self._ble.stop_scan() + if debug.enabled: + debug('Scan complete') + break + self._ble.stop_scan() + + def _target_advertise(self): + '''Advertises the target for the initiator to find''' + # Give previous advertising some time to complete + if self._advertising: + if self._check_if_split_connected(): + if debug.enabled: + debug('Advertising complete') + self._ble.stop_advertising() + self._advertising = False + return + + if not self.ble_rescan_timer(): + return + + if debug.enabled: + debug('Advertising not answered') + + self._ble.stop_advertising() + if debug.enabled: + debug('Advertising') + # Uart must not change on this connection if reconnecting + if not self._uart: + self._uart = self.UARTService() + advertisement = self.ProvideServicesAdvertisement(self._uart) + + self._ble.start_advertising(advertisement) + self._advertising = True + self.ble_time_reset() + + def ble_rescan_timer(self): + '''If true, the rescan timer is up''' + return not bool(check_deadline(ticks_ms(), self._ble_last_scan, 5000)) + + def ble_time_reset(self): + '''Resets the rescan timer''' + self._ble_last_scan = ticks_ms() + + def _serialize_update(self, update): + buffer = bytearray(2) + buffer[0] = update.key_number + buffer[1] = update.pressed + return buffer + + def _deserialize_update(self, update): + kevent = KeyEvent(key_number=update[0], pressed=update[1]) + return kevent + + def _send_ble(self, update): + if self._uart: + try: + self._uart.write(self._serialize_update(update)) + except OSError: + try: + self._uart.disconnect() + except: # noqa: E722 + if debug.enabled: + debug('UART disconnect failed') + + if debug.enabled: + debug('Connection error') + self._uart_connection = None + self._uart = None + + def _receive_ble(self, keyboard): + if self._uart is not None and self._uart.in_waiting > 0 or self._uart_buffer: + while self._uart.in_waiting >= 2: + update = self._deserialize_update(self._uart.read(2)) + self._uart_buffer.append(update) + if self._uart_buffer: + keyboard.secondary_matrix_update = self._uart_buffer.pop(0) + + def _checksum(self, update): + checksum = bytes([sum(update) & 0xFF]) + + return checksum + + def _send_uart(self, update): + # Change offsets depending on where the data is going to match the correct + # matrix location of the receiever + if self._uart is not None: + update = self._serialize_update(update) + self._uart.write(self.uart_header) + self._uart.write(update) + self._uart.write(self._checksum(update)) + + def _receive_uart(self, keyboard): + if self._uart is not None and self._uart.in_waiting > 0 or self._uart_buffer: + if self._uart.in_waiting >= 60: + # This is a dirty hack to prevent crashes in unrealistic cases + import microcontroller + + microcontroller.reset() + + while self._uart.in_waiting >= 4: + # Check the header + if self._uart.read(1) == self.uart_header: + update = self._uart.read(2) + + # check the checksum + if self._checksum(update) == self._uart.read(1): + self._uart_buffer.append(self._deserialize_update(update)) + if self._uart_buffer: + keyboard.secondary_matrix_update = self._uart_buffer.pop(0) diff --git a/hackpads/blipyboard/firmware/kmk/modules/steno.py b/hackpads/blipyboard/firmware/kmk/modules/steno.py new file mode 100644 index 0000000000..bd93da2e12 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/steno.py @@ -0,0 +1,107 @@ +import usb_cdc + +from kmk.keys import make_key +from kmk.modules import Module + +# key order from https://github.com/openstenoproject/plover/blob/main/plover/machine/geminipr.py +# do not rearrange +STENO_KEYS = ( + 'STN_FN', + 'STN_N1', + 'STN_N2', + 'STN_N3', + 'STN_N4', + 'STN_N5', + 'STN_N6', + 'STN_LS1', + 'STN_LS2', + 'STN_LT', + 'STN_LK', + 'STN_LP', + 'STN_LW', + 'STN_LH', + 'STN_LR', + 'STN_A', + 'STN_O', + 'STN_AS1', + 'STN_AS2', + 'STN_RES1', + 'STN_RES2', + 'STN_PWR', + 'STN_AS3', + 'STN_AS4', + 'STN_E', + 'STN_U', + 'STN_RF', + 'STN_RR', + 'STN_RP', + 'STN_RB', + 'STN_RL', + 'STN_RG', + 'STN_RT', + 'STN_RS', + 'STN_RD', + 'STN_N7', + 'STN_N8', + 'STN_N9', + 'STN_NA', + 'STN_NB', + 'STN_NC', + 'STN_RZ', +) + + +class Steno(Module): + def __init__(self): + self._should_write = False + + self._buffer = bytearray(6) + self._initialize_buffer() + + for idx, key in enumerate(STENO_KEYS): + make_key( + code=((idx // 7) << 8) | (0x40 >> (idx % 7)), + names=(key,), + on_press=self._steno_press, + on_release=self._steno_release, + ) + + def _initialize_buffer(self): + self._buffer[:] = b'\x80\x00\x00\x00\x00\x00' + + # flip a key's bit in the buffer + def _steno_press(self, key, *_): + self._should_write = True + self._buffer[key.code >> 8] |= key.code & 0xFF + + # send all keys that were pressed, and reset the buffer + def _steno_release(self, *_): + if self._should_write: + usb_cdc.data.write(self._buffer) + + self._should_write = False + self._initialize_buffer() + + def during_bootup(self, keyboard): + pass + + def before_matrix_scan(self, keyboard): + pass + + def after_matrix_scan(self, keyboard): + pass + + def process_key(self, keyboard, key, is_pressed, int_coord): + return key + + def before_hid_send(self, keyboard): + pass + + def after_hid_send(self, keyboard): + pass + + def on_powersave_enable(self, keyboard): + pass + + def on_powersave_disable(self, keyboard): + pass diff --git a/hackpads/blipyboard/firmware/kmk/modules/sticky_keys.py b/hackpads/blipyboard/firmware/kmk/modules/sticky_keys.py new file mode 100644 index 0000000000..a7ea848b3a --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/sticky_keys.py @@ -0,0 +1,151 @@ +from micropython import const + +from kmk.keys import Key, make_argumented_key +from kmk.modules import Module +from kmk.utils import Debug + +debug = Debug(__name__) + + +_SK_IDLE = const(0) +_SK_PRESSED = const(1) +_SK_RELEASED = const(2) +_SK_HOLD = const(3) +_SK_STICKY = const(4) + + +class StickyKey(Key): + def __init__(self, key, defer_release=False, retap_cancel=True, **kwargs): + super().__init__(**kwargs) + self.key = key + self.defer_release = defer_release + self.timeout = None + self.state = _SK_IDLE + self.retap_cancel = retap_cancel + + +class StickyKeys(Module): + def __init__(self, release_after=1000): + self.active_keys = [] + self.release_after = release_after + + make_argumented_key( + names=('SK', 'STICKY'), + constructor=StickyKey, + on_press=self.on_press, + on_release=self.on_release, + ) + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def process_key(self, keyboard, current_key, is_pressed, int_coord): + delay_current = False + + for key in self.active_keys.copy(): + # Ignore keys that will resolve to and emit a different key + # eventually, potentially triggering twice. + # Handle interactions among sticky keys (stacking) in `on_press` + # instead of `process_key` to avoid race conditions / causal + # reordering when resetting timeouts. + if ( + isinstance(current_key, StickyKey) + or current_key.__class__.__name__ == 'TapDanceKey' + or current_key.__class__.__name__ == 'HoldTapKey' + or current_key.__class__.__name__ == 'LayerTapKeyMeta' + ): + continue + + if key.state == _SK_PRESSED and is_pressed: + key.state = _SK_HOLD + elif key.state == _SK_RELEASED and is_pressed: + key.state = _SK_STICKY + elif key.state == _SK_STICKY: + # Defer sticky release until last other key is released. + if key.defer_release: + if not is_pressed and len(keyboard._coordkeys_pressed) == 0: + self.deactivate(keyboard, key) + # Release sticky key; if it's a new key pressed: delay + # propagation until after the sticky release. + else: + self.deactivate(keyboard, key) + delay_current = is_pressed + + if delay_current: + keyboard.resume_process_key(self, current_key, is_pressed, int_coord, False) + else: + return current_key + + def set_timeout(self, keyboard, key): + key.timeout = keyboard.set_timeout( + self.release_after, + lambda: self.on_release_after(keyboard, key), + ) + + def on_press(self, key, keyboard, *args, **kwargs): + # Let sticky keys stack while renewing timeouts. + for sk in self.active_keys: + keyboard.cancel_timeout(sk.timeout) + + # If active sticky key is tapped again, cancel. + if key.retap_cancel and (key.state == _SK_RELEASED or key.state == _SK_STICKY): + self.deactivate(keyboard, key) + # Reset on repeated taps. + elif key.state != _SK_IDLE: + key.state = _SK_PRESSED + else: + self.activate(keyboard, key) + + for sk in self.active_keys: + self.set_timeout(keyboard, sk) + + def on_release(self, key, keyboard, *args, **kwargs): + # No interrupt or timeout happend, mark key as RELEASED, ready to get + # STICKY. + if key.state == _SK_PRESSED: + key.state = _SK_RELEASED + # Key in HOLD state is handled like a regular release. + elif key.state == _SK_HOLD: + keyboard.cancel_timeout(key.timeout) + self.deactivate(keyboard, key) + + def on_release_after(self, keyboard, key): + # Key is still pressed but nothing else happend: set to HOLD. + if key.state == _SK_PRESSED: + key.state = _SK_HOLD + keyboard.cancel_timeout(key.timeout) + # Key got released but nothing else happend: deactivate. + elif key.state == _SK_RELEASED: + self.deactivate(keyboard, key) + + def activate(self, keyboard, key): + if debug.enabled: + debug('activate') + key.state = _SK_PRESSED + self.active_keys.insert(0, key) + keyboard.resume_process_key(self, key.key, True) + + def deactivate(self, keyboard, key): + if debug.enabled: + debug('deactivate') + key.state = _SK_IDLE + self.active_keys.remove(key) + keyboard.resume_process_key(self, key.key, False) diff --git a/hackpads/blipyboard/firmware/kmk/modules/sticky_mod.py b/hackpads/blipyboard/firmware/kmk/modules/sticky_mod.py new file mode 100644 index 0000000000..0896b14fdb --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/sticky_mod.py @@ -0,0 +1,64 @@ +from kmk.keys import Key, make_argumented_key +from kmk.modules import Module + + +class StickyModKey(Key): + def __init__(self, key, mod, **kwargs): + super().__init__(**kwargs) + self.key = key + self.mod = mod + + +class StickyMod(Module): + def __init__(self): + self._active = False + self._active_key = None + make_argumented_key( + names=('SM',), + constructor=StickyModKey, + on_press=self.sm_pressed, + on_release=self.sm_released, + ) + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def process_key(self, keyboard, key, is_pressed, int_coord): + # release previous key if any other key is pressed + if self._active and self._active_key is not None: + self.release_key(keyboard, self._active_key) + + return key + + def before_hid_send(self, keyboard): + return + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return + + def release_key(self, keyboard, key): + keyboard.process_key(key.mod, False) + self._active = False + self._active_key = None + + def sm_pressed(self, key, keyboard, *args, **kwargs): + keyboard.process_key(key.mod, True) + keyboard.process_key(key.key, True) + self._active_key = key + + def sm_released(self, key, keyboard, *args, **kwargs): + keyboard.process_key(key.key, False) + self._active_key = key + self._active = True diff --git a/hackpads/blipyboard/firmware/kmk/modules/string_substitution.py b/hackpads/blipyboard/firmware/kmk/modules/string_substitution.py new file mode 100644 index 0000000000..c5d2e35265 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/string_substitution.py @@ -0,0 +1,229 @@ +try: + from typing import Optional +except ImportError: + # we're not in a dev environment, so we don't need to worry about typing + pass +from micropython import const + +from kmk.keys import KC, Key, ModifiedKey, ModifierKey +from kmk.modules import Module + + +class State: + LISTENING = const(0) + DELETING = const(1) + SENDING = const(2) + IGNORING = const(3) + + +class Character: + '''Helper class for making a left-shifted key identical to a right-shifted key''' + + is_shifted: bool = False + + def __init__(self, key_code: Key, is_shifted: bool) -> None: + self.is_shifted = is_shifted + self.key_code = KC.LSHIFT(key_code) if is_shifted else key_code + + def __eq__(self, other: any) -> bool: # type: ignore + try: + if isinstance(self.key_code, ModifiedKey): + return ( + self.key_code.key.code == other.key_code.key.code + and self.is_shifted == other.is_shifted + ) + return ( + self.key_code.code == other.key_code.code + and self.is_shifted == other.is_shifted + ) + except AttributeError: + return False + + +class Phrase: + '''Manages a collection of characters and keeps an index of them so that potential matches can be tracked''' + + def __init__(self, string: str) -> None: + self._characters: list[Character] = [] + self._index: int = 0 + for char in string: + key_code = KC[char] + if key_code == KC.NO: + raise ValueError(f'Invalid character in dictionary: {char}') + shifted = char.isupper() or ( + isinstance(key_code, ModifiedKey) and key_code.modifier.code == 0x02 + ) + self._characters.append(Character(key_code, shifted)) + + def next_character(self) -> None: + '''Increment the current index for this phrase''' + if not self.index_at_end(): + self._index += 1 + + def get_character_at_index(self, index: int) -> Character: + '''Returns the character at the given index''' + return self._characters[index] + + def get_character_at_current_index(self) -> Character: + '''Returns the character at the current index for this phrase''' + return self._characters[self._index] + + def reset_index(self) -> None: + '''Reset the index to the start of the phrase''' + self._index = 0 + + def index_at_end(self) -> bool: + '''Returns True if the index is at the end of the phrase''' + return self._index == len(self._characters) + + def character_is_at_current_index(self, character) -> bool: + '''Returns True if the given character is the next character in the phrase''' + return self.get_character_at_current_index() == character + + +class Rule: + '''Represents the relationship between a phrase to be substituted and its substitution''' + + def __init__(self, to_substitute: Phrase, substitution: Phrase) -> None: + self.to_substitute: Phrase = to_substitute + self.substitution: Phrase = substitution + + def restart(self) -> None: + '''Resets this rule's to_substitute and substitution phrases''' + self.to_substitute.reset_index() + self.substitution.reset_index() + + +class StringSubstitution(Module): + _shifted: bool = False + _rules: list = [] + _state: State = State.LISTENING + _matched_rule: Optional[Phrase] = None + _active_modifiers: list[ModifierKey] = [] + + def __init__( + self, + dictionary: dict, + ): + for key, value in dictionary.items(): + self._rules.append(Rule(Phrase(key), Phrase(value))) + + def process_key(self, keyboard, key, is_pressed, int_coord): + if key is KC.LSFT or key is KC.RSFT: + if is_pressed: + self._shifted = True + else: + self._shifted = False + + # control ignoring state if the key is a non-shift modifier + elif type(key) is ModifierKey: + if is_pressed and key not in self._active_modifiers: + self._active_modifiers.append(key) + self._state = State.IGNORING + elif key in self._active_modifiers: + self._active_modifiers.remove(key) + if not self._active_modifiers: + self._state = State.LISTENING + # reset rules because pressing a modifier combination + # should interrupt any current matches + for rule in self._rules: + rule.restart() + + if not self._state == State.LISTENING: + return key + + if is_pressed: + character = Character(key, self._shifted) + + # run through the dictionary to check for a possible match on each new keypress + for rule in self._rules: + if rule.to_substitute.character_is_at_current_index(character): + rule.to_substitute.next_character() + else: + rule.restart() + # if character is not a match at the current index, + # it could still be a match at the start of the sequence + # so redo the check after resetting the sequence + if rule.to_substitute.character_is_at_current_index(character): + rule.to_substitute.next_character() + # we've matched all of the characters in a phrase to be substituted + if rule.to_substitute.index_at_end(): + rule.restart() + # set the phrase indexes to where they differ + # so that only the characters that differ are replaced + for character in rule.to_substitute._characters: + if ( + character + == rule.substitution.get_character_at_current_index() + ): + rule.to_substitute.next_character() + rule.substitution.next_character() + else: + break + if rule.to_substitute.index_at_end(): + break + self._matched_rule = rule + self._state = State.DELETING + # if we have a match there's no reason to continue the full key processing, so return out + return + return key + + def during_bootup(self, keyboard): + return + + def before_matrix_scan(self, keyboard): + return + + def before_hid_send(self, keyboard): + + if self._state == State.LISTENING: + return + + if self._state == State.DELETING: + # force-release modifiers so sending the replacement text doesn't interact with them + # it should not be possible for any modifiers other than shift to be held upon rule activation + # as a modified key won't send a keycode that is matched against the user's dictionary, + # but, just in case, we'll release those too + modifiers_to_release = [ + KC.LSFT, + KC.RSFT, + KC.LCTL, + KC.LGUI, + KC.LALT, + KC.RCTL, + KC.RGUI, + KC.RALT, + ] + for modifier in modifiers_to_release: + keyboard.remove_key(modifier) + + # send backspace taps equivalent to the length of the phrase to be substituted + to_substitute: Phrase = self._matched_rule.to_substitute # type: ignore + to_substitute.next_character() + if not to_substitute.index_at_end(): + keyboard.tap_key(KC.BSPC) + else: + self._state = State.SENDING + + if self._state == State.SENDING: + substitution = self._matched_rule.substitution # type: ignore + if not substitution.index_at_end(): + keyboard.tap_key(substitution.get_character_at_current_index().key_code) + substitution.next_character() + else: + self._state = State.LISTENING + self._matched_rule = None + for rule in self._rules: + rule.restart() + + def after_hid_send(self, keyboard): + return + + def on_powersave_enable(self, keyboard): + return + + def on_powersave_disable(self, keyboard): + return + + def after_matrix_scan(self, keyboard): + return diff --git a/hackpads/blipyboard/firmware/kmk/modules/tapdance.py b/hackpads/blipyboard/firmware/kmk/modules/tapdance.py new file mode 100644 index 0000000000..2b6cba6c55 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/modules/tapdance.py @@ -0,0 +1,121 @@ +from kmk.keys import Key, make_argumented_key +from kmk.modules.holdtap import ActivationType, HoldTap, HoldTapKey + + +class TapDanceKey(Key): + def __init__(self, *keys, tap_time=None, **kwargs): + ''' + Any key in the tapdance sequence that is not already a holdtap + key gets converted to a holdtap key with identical tap and hold + attributes. + ''' + super().__init__(**kwargs) + self.tap_time = tap_time + self.keys = [] + + for key in keys: + if not isinstance(key, HoldTapKey): + ht_key = HoldTapKey( + tap=key, + hold=key, + prefer_hold=True, + tap_interrupted=False, + tap_time=self.tap_time, + ) + self.keys.append(ht_key) + else: + self.keys.append(key) + self.keys = tuple(self.keys) + + +class TapDance(HoldTap): + def __init__(self): + super().__init__(_make_key=False) + make_argumented_key( + names=('TD',), + constructor=TapDanceKey, + on_press=self.td_pressed, + on_release=self.td_released, + ) + + self.td_counts = {} + + def process_key(self, keyboard, key, is_pressed, int_coord): + if isinstance(key, TapDanceKey): + if key in self.td_counts: + return key + + for _key, state in self.key_states.copy().items(): + if state.activated == ActivationType.RELEASED: + keyboard.cancel_timeout(state.timeout_key) + self.ht_activate_tap(_key, keyboard) + self.send_key_buffer(keyboard) + self.ht_deactivate_tap(_key, keyboard) + keyboard.resume_process_key(self, key, is_pressed, int_coord) + key = None + + del self.key_states[_key] + del self.td_counts[state.tap_dance] + + if key: + key = super().process_key(keyboard, key, is_pressed, int_coord) + + return key + + def td_pressed(self, key, keyboard, *args, **kwargs): + # active tap dance + if key in self.td_counts: + count = self.td_counts[key] + kc = key.keys[count] + keyboard.cancel_timeout(self.key_states[kc].timeout_key) + + count += 1 + + # Tap dance reached the end of the list: send last tap in sequence + # and start from the beginning. + if count >= len(key.keys): + self.key_states[kc].activated = ActivationType.RELEASED + self.on_tap_time_expired(kc, keyboard) + count = 0 + else: + del self.key_states[kc] + + # new tap dance + else: + count = 0 + + current_key = key.keys[count] + + self.ht_pressed(current_key, keyboard, *args, **kwargs) + self.td_counts[key] = count + + # Add the active tap dance to key_states; `on_tap_time_expired` needs + # the back-reference. + self.key_states[current_key].tap_dance = key + + def td_released(self, key, keyboard, *args, **kwargs): + kc = key.keys[self.td_counts[key]] + state = self.key_states[kc] + if state.activated == ActivationType.HOLD_TIMEOUT: + # release hold + self.ht_deactivate_hold(kc, keyboard, *args, **kwargs) + del self.key_states[kc] + del self.td_counts[key] + elif state.activated == ActivationType.INTERRUPTED: + # release tap + self.ht_deactivate_on_interrupt(kc, keyboard, *args, **kwargs) + del self.key_states[kc] + del self.td_counts[key] + else: + # keep counting + state.activated = ActivationType.RELEASED + + def on_tap_time_expired(self, key, keyboard, *args, **kwargs): + # Note: the `key` argument is the current holdtap key in the sequence, + # not the tapdance key. + state = self.key_states[key] + if state.activated == ActivationType.RELEASED: + self.ht_activate_tap(key, keyboard, *args, **kwargs) + self.send_key_buffer(keyboard) + del self.td_counts[state.tap_dance] + super().on_tap_time_expired(key, keyboard, *args, **kwargs) diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/avr_promicro.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/avr_promicro.py new file mode 100644 index 0000000000..e8396b6a91 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/avr_promicro.py @@ -0,0 +1,20 @@ +translate = { + 'D3': 0, + 'D2': 1, + 'D1': 4, + 'D0': 5, + 'D4': 6, + 'C6': 7, + 'D7': 8, + 'E6': 9, + 'B4': 10, + 'B5': 11, + 'B6': 12, + 'B2': 13, + 'B3': 14, + 'B1': 15, + 'F7': 16, + 'F6': 17, + 'F5': 18, + 'F4': 19, +} diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/bitc_promicro.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/bitc_promicro.py new file mode 100644 index 0000000000..8c2bcf152b --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/bitc_promicro.py @@ -0,0 +1,32 @@ +import board + +# Bit-C-Pro RP2040 pinout for reference, see https://nullbits.co/bit-c-pro/ +# (unused) +pinout = [ + board.D0, # Enc 3 + board.D1, # Enc 3 + None, # GND + None, # GND + board.D2, # Enc 2 + board.D3, # Enc 2 + board.D4, # Row 4 + breakout SDA + board.D5, # Row 3 + breakout SCL + board.D6, # Row 2 + board.D7, # Row 1 + board.D8, # Enc 1 + board.D9, # Enc 1 + # Unconnected breakout pins D11, D12, GND, D13, D14 + board.D21, # WS2812 LEDs labeled D10/GP21 but only board.D21 is defined + board.D23, # MOSI - Enc 0 + board.D20, # MISO - Enc 0 + board.D22, # SCK - Row 0 + board.D26, # A0 - Col 3 + board.D27, # A1 - Col 2 + board.D28, # A2 - Col 1 + board.D29, # A3 - Col 0 + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] +# also defined: board.LED_RED, board.LED_GREEN, and board.LED_BLUE == board.LED diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/boardsource_blok.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/boardsource_blok.py new file mode 100644 index 0000000000..713cbe15ad --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/boardsource_blok.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.TX, + board.RX, + None, # GND + None, # GND + board.SDA, + board.SCL, + board.GP04, + board.GP05, + board.GP06, + board.GP07, + board.GP08, + board.GP09, + board.GP21, + board.GP23, + board.GP20, + board.GP22, + board.GP26, + board.GP27, + board.GP28, + board.GP29, + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/elite_pi.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/elite_pi.py new file mode 100644 index 0000000000..6f1173a7b9 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/elite_pi.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.D0, + board.D1, + None, # GND + None, # GND + board.D2, + board.D3, + board.D4, + board.D5, + board.D6, + board.D7, + board.D8, + board.D9, + board.D21, + board.D23, + board.D20, + board.D22, + board.D26, + board.D27, + board.D28, + board.D29, + None, # VCC + None, # RUN + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/frood.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/frood.py new file mode 100644 index 0000000000..c45a2d04e0 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/frood.py @@ -0,0 +1,33 @@ +import board + +pinout = [ + board.TX, + board.RX, + None, # GND + None, # GND + board.D2, + board.D3, + board.D4, + board.D5, + board.D6, + board.D7, + board.D8, + board.D9, + board.D12, + board.D13, + board.D14, + board.D15, + board.D16, + board.D21, + board.MOSI, + board.MISO, + board.SCK, + board.D26, + board.D27, + board.D28, + board.D29, + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/helios.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/helios.py new file mode 100644 index 0000000000..6924254cdc --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/helios.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.TX, + board.RX, + None, # GND + None, # GND + board.GP2, + board.GP3, + board.GP4, + board.GP5, + board.GP6, + board.GP7, + board.GP8, + board.GP9, + board.CS, + board.SDO, + board.SDI, + board.SCK, + board.GP26, + board.GP27, + board.GP28, + board.GP29, + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/kb2040.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/kb2040.py new file mode 100644 index 0000000000..363de3d2fe --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/kb2040.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.D0, + board.D1, + None, # GND + None, # GND + board.D2, + board.D3, + board.D4, + board.D5, + board.D6, + board.D7, + board.D8, + board.D9, + board.D10, + board.MOSI, + board.MISO, + board.SCK, + board.A0, + board.A1, + board.A2, + board.A3, + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/liatris.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/liatris.py new file mode 100644 index 0000000000..b65af7ed21 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/liatris.py @@ -0,0 +1,43 @@ +import board + +pinout = [ + # Left, top->bottom + board.TX, + board.RX, + None, # GND + None, # GND + board.SDA, + board.SCL, + board.D4, + board.D5, # C6 + board.D6, # D7 + board.D7, # E6 + board.D8, # B4 + board.D9, # B5 + # Right, bottom->top + board.D21, # B6 + board.D23, # B2 + board.D20, # B3 + board.D22, # B1 + board.D26, # F7 + board.D27, # F6 + board.D28, # F5 + board.D29, # F4 + None, # 3.3v + None, # RST + None, # GND + None, # RAW + # Bottom, left->right + board.D12, + board.D13, + board.D14, + board.D15, + board.D16, + # Internal + board.NEOPIXEL, + board.VBUS_SENSE, + board.POWER_LED, + board.I2C, + board.SPI, + board.UART, +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/nice_nano.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/nice_nano.py new file mode 100644 index 0000000000..36d5f13092 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/nice_nano.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.TX, + board.RX, + None, # GND + None, # GND + board.SDA, + board.SCL, + board.P0_22, + board.P0_24, + board.P1_00, + board.P0_11, + board.P1_04, + board.P1_06, + board.P0_09, + board.P0_10, + board.P1_11, + board.P1_13, + board.P1_15, + board.P0_02, + board.P0_29, + board.P0_31, + None, # 3.3v + None, # RST + None, # GND + None, # Battery+ +] diff --git a/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/sparkfun_promicro_rp2040.py b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/sparkfun_promicro_rp2040.py new file mode 100644 index 0000000000..13b1098940 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/quickpin/pro_micro/sparkfun_promicro_rp2040.py @@ -0,0 +1,28 @@ +import board + +pinout = [ + board.TX, + board.RX, + None, # GND + None, # GND + board.D2, + board.D3, + board.D4, + board.D5, + board.D6, + board.D7, + board.D8, + board.D9, + board.D21, + board.MOSI, + board.MISO, + board.SCK, + board.D26, + board.D27, + board.D28, + board.D29, + None, # 3.3v + None, # RST + None, # GND + None, # RAW +] diff --git a/hackpads/blipyboard/firmware/kmk/scanners/__init__.py b/hackpads/blipyboard/firmware/kmk/scanners/__init__.py new file mode 100644 index 0000000000..bf6edba974 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/scanners/__init__.py @@ -0,0 +1,38 @@ +class DiodeOrientation: + ''' + Orientation of diodes on handwired boards. You can think of: + COLUMNS = vertical + ROWS = horizontal + + COL2ROW and ROW2COL are equivalent to their meanings in QMK. + ''' + + COLUMNS = 1 + ROWS = 0 + COL2ROW = COLUMNS + ROW2COL = ROWS + + +class Scanner: + ''' + Base class for scanners. + ''' + + # for split keyboards, the offset value will be assigned in Split module + offset = 0 + + @property + def coord_mapping(self): + return tuple(range(self.offset, self.offset + self.key_count)) + + @property + def key_count(self): + raise NotImplementedError + + def scan_for_changes(self): + ''' + Scan for key events and return a key report if an event exists. + + The key report is a byte array with contents [row, col, True if pressed else False] + ''' + raise NotImplementedError diff --git a/hackpads/blipyboard/firmware/kmk/scanners/digitalio.py b/hackpads/blipyboard/firmware/kmk/scanners/digitalio.py new file mode 100644 index 0000000000..73ffb611d2 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/scanners/digitalio.py @@ -0,0 +1,144 @@ +import digitalio + +from keypad import Event as KeyEvent + +from kmk.scanners import DiodeOrientation, Scanner + + +def ensure_DIO(x): + # __class__.__name__ is used instead of isinstance as the MCP230xx lib + # does not use the digitalio.DigitalInOut, but rather a self defined one: + # https://github.com/adafruit/Adafruit_CircuitPython_MCP230xx/blob/3f04abbd65ba5fa938fcb04b99e92ae48a8c9406/adafruit_mcp230xx/digital_inout.py#L33 + if x.__class__.__name__ == 'DigitalInOut': + return x + else: + return digitalio.DigitalInOut(x) + + +class MatrixScanner(Scanner): + def __init__( + self, + cols, + rows, + diode_orientation=DiodeOrientation.COL2ROW, + pull=digitalio.Pull.UP, + rollover_cols_every_rows=None, + offset=0, + ): + self.len_cols = len(cols) + self.len_rows = len(rows) + self.pull = pull + self.offset = offset + + # A pin cannot be both a row and column, detect this by combining the + # two tuples into a set and validating that the length did not drop + # + # repr() hackery is because CircuitPython Pin objects are not hashable + unique_pins = {repr(c) for c in cols} | {repr(r) for r in rows} + assert ( + len(unique_pins) == self.len_cols + self.len_rows + ), 'Cannot use a pin as both a column and row' + del unique_pins + + self.diode_orientation = diode_orientation + + if self.diode_orientation == DiodeOrientation.COL2ROW: + self.anodes = [ensure_DIO(x) for x in cols] + self.cathodes = [ensure_DIO(x) for x in rows] + self.translate_coords = True + elif self.diode_orientation == DiodeOrientation.ROW2COL: + self.anodes = [ensure_DIO(x) for x in rows] + self.cathodes = [ensure_DIO(x) for x in cols] + self.translate_coords = False + else: + raise ValueError(f'Invalid DiodeOrientation: {self.diode_orienttaion}') + + if self.pull == digitalio.Pull.DOWN: + self.outputs = self.anodes + self.inputs = self.cathodes + elif self.pull == digitalio.Pull.UP: + self.outputs = self.cathodes + self.inputs = self.anodes + self.translate_coords = not self.translate_coords + else: + raise ValueError(f'Invalid pull: {self.pull}') + + for pin in self.outputs: + pin.switch_to_output() + + for pin in self.inputs: + pin.switch_to_input(pull=self.pull) + + self.rollover_cols_every_rows = rollover_cols_every_rows + if self.rollover_cols_every_rows is None: + self.rollover_cols_every_rows = self.len_rows + + self._key_count = self.len_cols * self.len_rows + initial_state_value = b'\x01' if self.pull is digitalio.Pull.UP else b'\x00' + self.state = bytearray(initial_state_value) * self.key_count + + @property + def key_count(self): + return self._key_count + + def scan_for_changes(self): + ''' + Poll the matrix for changes and return either None (if nothing updated) + or a bytearray (reused in later runs so copy this if you need the raw + array itself for some crazy reason) consisting of (row, col, pressed) + which are (int, int, bool) + ''' + ba_idx = 0 + any_changed = False + + for oidx, opin in enumerate(self.outputs): + opin.value = self.pull is not digitalio.Pull.UP + + for iidx, ipin in enumerate(self.inputs): + # cast to int to avoid + # + # >>> xyz = bytearray(3) + # >>> xyz[2] = True + # Traceback (most recent call last): + # File "", line 1, in + # OverflowError: value would overflow a 1 byte buffer + # + # I haven't dived too far into what causes this, but it's + # almost certainly because bool types in Python aren't just + # aliases to int values, but are proper pseudo-types + new_val = int(ipin.value) + old_val = self.state[ba_idx] + + if old_val != new_val: + if self.translate_coords: + new_oidx = oidx + self.len_cols * ( + iidx // self.rollover_cols_every_rows + ) + new_iidx = iidx - self.rollover_cols_every_rows * ( + iidx // self.rollover_cols_every_rows + ) + + row = new_iidx + col = new_oidx + else: + row = oidx + col = iidx + + if self.pull is digitalio.Pull.UP: + pressed = not new_val + else: + pressed = new_val + self.state[ba_idx] = new_val + + any_changed = True + break + + ba_idx += 1 + + opin.value = self.pull is digitalio.Pull.UP + if any_changed: + break + + if any_changed: + key_number = self.len_cols * row + col + self.offset + return KeyEvent(key_number, pressed) diff --git a/hackpads/blipyboard/firmware/kmk/scanners/encoder.py b/hackpads/blipyboard/firmware/kmk/scanners/encoder.py new file mode 100644 index 0000000000..301ebb6a44 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/scanners/encoder.py @@ -0,0 +1,43 @@ +import keypad +import rotaryio + +from kmk.scanners import Scanner + + +class RotaryioEncoder(Scanner): + def __init__(self, pin_a, pin_b, divisor=4): + self.encoder = rotaryio.IncrementalEncoder(pin_a, pin_b, divisor) + self.position = 0 + self._pressed = False + self._queue = [] + + @property + def key_count(self): + return 2 + + def scan_for_changes(self): + position = self.encoder.position + + if position != self.position: + self._queue.append(position - self.position) + self.position = position + + if not self._queue: + return + + key_number = self.offset + if self._queue[0] > 0: + key_number += 1 + + if self._pressed: + self._queue[0] -= 1 if self._queue[0] > 0 else -1 + + if self._queue[0] == 0: + self._queue.pop(0) + + self._pressed = False + + else: + self._pressed = True + + return keypad.Event(key_number, self._pressed) diff --git a/hackpads/blipyboard/firmware/kmk/scanners/keypad.py b/hackpads/blipyboard/firmware/kmk/scanners/keypad.py new file mode 100644 index 0000000000..a02c119c58 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/scanners/keypad.py @@ -0,0 +1,59 @@ +import keypad + +from kmk.scanners import Scanner + + +class KeypadScanner(Scanner): + ''' + Translation layer around a CircuitPython 7 keypad scanner. + + :param pin_map: A sequence of (row, column) tuples for each key. + :param kp: An instance of the keypad class. + ''' + + @property + def key_count(self): + return self.keypad.key_count + + def scan_for_changes(self): + ''' + Scan for key events and return a key report if an event exists. + + The key report is a byte array with contents [row, col, True if pressed else False] + ''' + ev = self.keypad.events.get() + if ev and self.offset: + return keypad.Event(ev.key_number + self.offset, ev.pressed) + return ev + + +class MatrixScanner(KeypadScanner): + ''' + Row/Column matrix using the CircuitPython 7 keypad scanner. + + :param row_pins: A sequence of pins used for rows. + :param col_pins: A sequence of pins used for columns. + :param direction: The diode orientation of the matrix. + ''' + + def __init__(self, *args, **kwargs): + self.keypad = keypad.KeyMatrix(*args, **kwargs) + super().__init__() + + +class KeysScanner(KeypadScanner): + ''' + GPIO-per-key 'matrix' using the native CircuitPython 7 keypad scanner. + + :param pins: An array of arrays of CircuitPython Pin objects, such that pins[r][c] is the pin for row r, column c. + ''' + + def __init__(self, *args, **kwargs): + self.keypad = keypad.Keys(*args, **kwargs) + super().__init__() + + +class ShiftRegisterKeys(KeypadScanner): + def __init__(self, *args, **kwargs): + self.keypad = keypad.ShiftRegisterKeys(*args, **kwargs) + super().__init__() diff --git a/hackpads/blipyboard/firmware/kmk/scheduler.py b/hackpads/blipyboard/firmware/kmk/scheduler.py new file mode 100644 index 0000000000..066d08cd93 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/scheduler.py @@ -0,0 +1,75 @@ +''' +Here we're abusing _asyncios TaskQueue to implement a very simple priority +queue task scheduler. +Despite documentation, Circuitpython doesn't usually ship with a min-heap +module; it does however implement a pairing-heap for `TaskQueue` in native code. +''' + +try: + from typing import Callable +except ImportError: + pass + +from supervisor import ticks_ms + +from _asyncio import Task, TaskQueue + +from kmk.kmktime import ticks_add, ticks_diff + +_task_queue = TaskQueue() + + +class PeriodicTaskMeta: + def __init__(self, func: Callable[[None], None], period: int) -> None: + self._task = Task(self.call) + self._coro = func + self.period = period + + def call(self) -> None: + after_ms = ticks_add(self._task.ph_key, self.period) + _task_queue.push(self._task, after_ms) + self._coro() + + def restart(self) -> None: + _task_queue.push(self._task) + + +def create_task( + func: [Callable[[None], None], Task, PeriodicTaskMeta], + *, + after_ms: int = 0, + period_ms: int = 0, +) -> [Task, PeriodicTaskMeta]: + if isinstance(func, Task): + t = r = func + elif isinstance(func, PeriodicTaskMeta): + r = func + t = r._task + elif period_ms: + r = PeriodicTaskMeta(func, period_ms) + t = r._task + else: + t = r = Task(func) + + if after_ms > 0: + _task_queue.push(t, ticks_add(ticks_ms(), after_ms)) + elif after_ms == 0: + _task_queue.push(t) + + return r + + +def get_due_task() -> [Callable, None]: + now = ticks_ms() + while True: + t = _task_queue.peek() + if not t or ticks_diff(t.ph_key, now) > 0: + break + _task_queue.pop() + yield t.coro + + +def cancel_task(t: [Task, PeriodicTaskMeta]) -> None: + if isinstance(t, PeriodicTaskMeta): + t = t._task + _task_queue.remove(t) diff --git a/hackpads/blipyboard/firmware/kmk/transports/__init__.py b/hackpads/blipyboard/firmware/kmk/transports/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/hackpads/blipyboard/firmware/kmk/transports/pio_uart.py b/hackpads/blipyboard/firmware/kmk/transports/pio_uart.py new file mode 100644 index 0000000000..108d9b46c6 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/transports/pio_uart.py @@ -0,0 +1,93 @@ +''' +Circuit Python wrapper around PIO implementation of UART +Original source of these examples: https://github.com/adafruit/Adafruit_CircuitPython_PIOASM/tree/main/examples (MIT) +''' + +import rp2pio +from array import array + +''' +.program uart_tx +.side_set 1 opt +; An 8n1 UART transmit program. +; OUT pin 0 and side-set pin 0 are both mapped to UART TX pin. + pull side 1 [7] ; Assert stop bit, or stall with line in idle state + set x, 7 side 0 [7] ; Preload bit counter, assert start bit for 8 clocks +bitloop: ; This loop will run 8 times (8n1 UART) + out pins, 1 ; Shift 1 bit from OSR to the first OUT pin + jmp x-- bitloop [6] ; Each loop iteration is 8 cycles. + +; compiles to: +''' +tx_code = array('H', [40864, 63271, 24577, 1602]) + + +''' +.program uart_rx_mini + +; Minimum viable 8n1 UART receiver. Wait for the start bit, then sample 8 bits +; with the correct timing. +; IN pin 0 is mapped to the GPIO used as UART RX. +; Autopush must be enabled, with a threshold of 8. + + wait 0 pin 0 ; Wait for start bit + set x, 7 [10] ; Preload bit counter, delay until eye of first data bit +bitloop: ; Loop 8 times + in pins, 1 ; Sample data + jmp x-- bitloop [6] ; Each iteration is 8 cycles + +; compiles to: +''' +rx_code = array('H', [8224, 59943, 16385, 1602]) + + +class PIO_UART: + def __init__(self, *, tx, rx, baudrate=9600): + if tx: + self.tx_pio = rp2pio.StateMachine( + tx_code, + first_out_pin=tx, + first_sideset_pin=tx, + frequency=8 * baudrate, + initial_sideset_pin_state=1, + initial_sideset_pin_direction=1, + initial_out_pin_state=1, + initial_out_pin_direction=1, + sideset_enable=True, + ) + if rx: + self.rx_pio = rp2pio.StateMachine( + rx_code, + first_in_pin=rx, + frequency=8 * baudrate, + auto_push=True, + push_threshold=8, + ) + + @property + def timeout(self): + return 0 + + @property + def baudrate(self): + return self.tx_pio.frequency // 8 + + @baudrate.setter + def baudrate(self, frequency): + self.tx_pio.frequency = frequency * 8 + self.rx_pio.frequency = frequency * 8 + + def write(self, buf): + return self.tx_pio.write(buf) + + @property + def in_waiting(self): + return self.rx_pio.in_waiting + + def read(self, n): + b = bytearray(n) + n = self.rx_pio.readinto(b) + return b[:n] + + def readinto(self, buf): + return self.rx_pio.readinto(buf) diff --git a/hackpads/blipyboard/firmware/kmk/utils.py b/hackpads/blipyboard/firmware/kmk/utils.py new file mode 100644 index 0000000000..e0830d9d23 --- /dev/null +++ b/hackpads/blipyboard/firmware/kmk/utils.py @@ -0,0 +1,49 @@ +try: + from typing import Optional +except ImportError: + pass + +from supervisor import ticks_ms + +from usb_cdc import console + + +def clamp(x: int, bottom: int = 0, top: int = 100) -> int: + return min(max(bottom, x), top) + + +_debug_enabled = None + + +class Debug: + '''default usage: + debug = Debug(__name__) + ''' + + def __init__(self, name: str = __name__): + self.name = name + + def __call__(self, *message: str, name: Optional[str] = None) -> None: + if not name: + name = self.name + print(ticks_ms(), end=' ') + print(name, end=': ') + print(*message, sep='') + + @property + def enabled(self) -> bool: + global _debug_enabled + if ( + _debug_enabled is None + and console + and console.connected + and console.out_waiting == 0 + ): + return True + return bool(_debug_enabled) + + @enabled.setter + def enabled(self, enabled: bool): + global _debug_enabled + _debug_enabled = enabled + self('debug.enabled=', enabled) diff --git a/hackpads/blipyboard/firmware/main.py b/hackpads/blipyboard/firmware/main.py new file mode 100644 index 0000000000..c6ecf440c9 --- /dev/null +++ b/hackpads/blipyboard/firmware/main.py @@ -0,0 +1,96 @@ +# You import all the IOs of your board +import board +import busio + +# These are imports from the kmk library +from kmk.kmk_keyboard import KMKKeyboard +from kmk.scanners.keypad import KeysScanner +from kmk.keys import KC +from kmk.modules.macros import Press, Release, Tap, Macros +from kmk.modules.encoder import EncoderHandler +from kmk.extensions.mouse_keys import MouseKeys +from kmk.extensions.rgb import RGB +from kmk.extensions.display.ssd1306 import SSD1306 +from kmk.extensions.display import Display, ImageEntry, TextEntry +from kmk.scanners.matrix import MatrixScanner + + +col1 = board.GP29 +col2 = board.GP28 +col3 = board.GP27 +col4 = board.GP26 +row1 = board.GP4 +row2 = board.GP0 +SDA = board.GP6 +SCL = board.GP7 +EC11A = board.GP2 +EC11B = board.GP1 + +# This is the main instance of your keyboard +keyboard = KMKKeyboard() +mouse_keys = MouseKeys() +keyboard.extensions.append(mouse_keys) + +# Add the macro extension +macros = Macros() +keyboard.modules.append(macros) + +encoder_handler = EncoderHandler() + +keyboard.modules.append(encoder_handler) +encoder_handler.pins = ((EC11A, EC11B),) +encoder_handler.map = [((KC.VOLU, KC.VOLD),)] + +rgb = RGB(pixel_pin=board.GP3, + num_pixels=8, + rgb_order=(1,0,2), + + ) +keyboard.extensions.append(rgb) + +i2c_bus = busio.I2C(SCL, SDA) +driver = SSD1306(i2c=i2c_bus) + +display = Display( + # Mandatory: + display=driver, + # Optional: + width=128, # screen size + height=32, # screen size + flip = False, # flips your display content + flip_left = False, # flips your display content on left side split + flip_right = False, # flips your display content on right side split + brightness=1, # initial screen brightness level +) + +display.entries = [ + ImageEntry(image="me.bmp", x=0, y=0, layer=0), +] +keyboard.extensions.append(display) + + +# Define your pins here! +ROW_PINS = [row1, row2] +COL_PINS = [col1, col2, col3, col4] + + +keyboard.matrix = MatrixScanner( + columns=COL_PINS, + rows=ROW_PINS, +) + +keyboard.keymap = [ + [ + KC.MPRV, KC.MPLY, KC.MNXT, MouseKeys.LEFT_BUTTON, + KC.LCTL(KC.C), KC.LCTL(KC.V), KC.MACRO("jxcai534@gmail.com"), MouseKeys.LEFT_BUTTON, + ] +] + +# Here you define the buttons corresponding to the pins +# Look here for keycodes: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/keycodes.md +# And here for macros: https://github.com/KMKfw/kmk_firmware/blob/main/docs/en/macros.md + + +# Start kmk! +if __name__ == '__main__': + keyboard.go() \ No newline at end of file diff --git a/hackpads/blipyboard/pcb/hackpad copy.kicad_pcb b/hackpads/blipyboard/pcb/hackpad copy.kicad_pcb new file mode 100644 index 0000000000..f8947724b8 --- /dev/null +++ b/hackpads/blipyboard/pcb/hackpad copy.kicad_pcb @@ -0,0 +1,11929 @@ +(kicad_pcb + (version 20240108) + (generator "pcbnew") + (generator_version "8.0") + (general + (thickness 1.6) + (legacy_teardrops no) + ) + (paper "A4") + (layers + (0 "F.Cu" signal) + (31 "B.Cu" signal) + (32 "B.Adhes" user "B.Adhesive") + (33 "F.Adhes" user "F.Adhesive") + (34 "B.Paste" user) + (35 "F.Paste" user) + (36 "B.SilkS" user "B.Silkscreen") + (37 "F.SilkS" user "F.Silkscreen") + (38 "B.Mask" user) + (39 "F.Mask" user) + (40 "Dwgs.User" user "User.Drawings") + (41 "Cmts.User" user "User.Comments") + (42 "Eco1.User" user "User.Eco1") + (43 "Eco2.User" user "User.Eco2") + (44 "Edge.Cuts" user) + (45 "Margin" user) + (46 "B.CrtYd" user "B.Courtyard") + (47 "F.CrtYd" user "F.Courtyard") + (48 "B.Fab" user) + (49 "F.Fab" user) + (50 "User.1" user) + (51 "User.2" user) + (52 "User.3" user) + (53 "User.4" user) + (54 "User.5" user) + (55 "User.6" user) + (56 "User.7" user) + (57 "User.8" user) + (58 "User.9" user) + ) + (setup + (pad_to_mask_clearance 0) + (allow_soldermask_bridges_in_footprints no) + (grid_origin 91.295 68.105) + (pcbplotparams + (layerselection 0x00010fc_ffffffff) + (plot_on_all_layers_selection 0x0000000_00000000) + (disableapertmacros no) + (usegerberextensions no) + (usegerberattributes yes) + (usegerberadvancedattributes yes) + (creategerberjobfile yes) + (dashed_line_dash_ratio 12.000000) + (dashed_line_gap_ratio 3.000000) + (svgprecision 4) + (plotframeref no) + (viasonmask no) + (mode 1) + (useauxorigin no) + (hpglpennumber 1) + (hpglpenspeed 20) + (hpglpendiameter 15.000000) + (pdf_front_fp_property_popups yes) + (pdf_back_fp_property_popups yes) + (dxfpolygonmode yes) + (dxfimperialunits yes) + (dxfusepcbnewfont yes) + (psnegative no) + (psa4output no) + (plotreference yes) + (plotvalue yes) + (plotfptext yes) + (plotinvisibletext no) + (sketchpadsonfab no) + (subtractmaskfromsilk no) + (outputformat 1) + (mirror no) + (drillshape 1) + (scaleselection 1) + (outputdirectory "") + ) + ) + (net 0 "") + (net 1 "+5V") + (net 2 "NEOPIXEL") + (net 3 "Net-(D1-DOUT)") + (net 4 "GND") + (net 5 "Net-(D11-DIN)") + (net 6 "Net-(D11-DOUT)") + (net 7 "SDA") + (net 8 "SCL") + (net 9 "3V3") + (net 10 "Net-(D3-A)") + (net 11 "col2") + (net 12 "Net-(D4-A)") + (net 13 "Net-(D5-A)") + (net 14 "col3") + (net 15 "Net-(D6-A)") + (net 16 "Net-(D7-A)") + (net 17 "Net-(D8-A)") + (net 18 "col4") + (net 19 "Net-(D9-A)") + (net 20 "Net-(D10-A)") + (net 21 "row2") + (net 22 "row1") + (net 23 "ROUTPUT") + (net 24 "RINPUT") + (net 25 "EC11A") + (net 26 "EC11B") + (net 27 "Net-(D14-DOUT)") + (net 28 "Net-(D15-DOUT)") + (net 29 "Net-(D16-DOUT)") + (net 30 "unconnected-(D17-DOUT-Pad1)") + (net 31 "Net-(D13-DOUT)") + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "219a831b-5fb5-4df8-a3f8-0ca655046c72") + (at 109.395 83.185) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW7" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "8c652338-13cd-4ef7-80ae-5da756c836a8") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -14.065 12.954 0) + (layer "F.Fab") + (uuid "747b3270-3da7-453a-bae6-69a55a26799c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "3bf2b549-4289-4c9c-a479-0ed63023a83c") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "0864276f-6221-40c3-979d-d4f7b4b42029") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "45a5aaf6-23ba-4abf-89c7-30a752f5e66e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/4e64b0d4-0bf5-4a85-844f-860d31b1043a") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7216c875-ba2a-43e9-890f-8afd8023d886") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "51ded169-8d69-4caf-ba05-9d3630175f57") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "91d050ef-b30a-473f-8da5-a551f91797e9") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ad4f1eba-9ced-4721-8b22-5ea02636d25c") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "77dd61ad-be9d-49c1-9913-ea6e0989318d") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "a62b832d-c4a4-41b8-a671-be63b31382be") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "214fbcd3-b43c-4a26-bfc4-7642cf217249") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "409dc611-ec2e-4a09-b2c2-8ede1bd5946b") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "df4a459e-1028-418c-82e1-e48741b71bb4") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f1612bfd-29e0-4b3b-85c4-439eeaf87e9b") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "5fd980ac-829e-461e-b578-9f545c914ae8") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d408877c-a966-4058-a449-2eecc441cd4c") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e86f3f72-82dd-431b-a632-1e9a9a0dbc1d") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "abd0dae4-db96-4125-8b64-052f563121b2") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e5e3256f-80eb-4711-827e-be70e0fae54f") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "203ce818-f5f9-4e99-8f16-9bd7f677c73d") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "6f08ec7b-6480-4acd-9dd5-a0300f58fe08") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "4ab9f0b9-1f18-4ba1-9d10-88846c2e65c7") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "784eb149-9030-49e2-8ccd-66b8ce34e748") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "3d8a1b8c-14d0-414c-8cfa-a494c7d5c1a4") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 18 "col4") + (pinfunction "1") + (pintype "passive") + (uuid "3408ecab-90b9-4abc-8f2d-07a72129b842") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 19 "Net-(D9-A)") + (pinfunction "2") + (pintype "passive") + (uuid "bfe78acb-6281-4bd6-8139-fc5d28d2f0ac") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "264dacda-88da-4349-979b-e9d7c5163cac") + (at 42.72 102.235) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW1" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "6ca9af1f-2cf9-49eb-ba6d-9b05b98034fd") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "413b4bd0-11d4-44a4-abf0-8fb114eebb2e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "3a890b65-3444-4296-be91-8b4f5c574118") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "841a0b97-1589-4dd4-be8e-04ed7bbb269f") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "04b4ddc6-24d3-4491-9a64-3e454f1b9280") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/261f75ab-c061-46a1-9759-af1f257be337") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f398ff45-f550-4e65-b77a-23d38edc2381") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "251cf32e-619f-4da1-ba57-771e7bb87018") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "5096067f-a137-40b1-a91b-b4c461dcc505") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "474bf111-8f3e-4710-bf1e-481b8dc6e472") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "2658eef0-c82f-427c-8e23-8c7faa50dbe3") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "d4b2c647-8836-4a2e-a158-07395968c901") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "f4e672f9-697c-47f0-8f4c-587ff2b4d600") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "01fd775d-c344-432f-b2ef-8f8bacac53ad") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9dc128f6-f1be-4ac6-8bdf-66777ce0ff93") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0f3516c9-708a-4949-b133-ce96536c2efa") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "db97b555-c1ce-4adc-8113-bb4fd58c4006") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "c477f503-cdbf-4067-b810-1e84e0d5a7c0") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "88c3e6dd-9c40-4030-ba19-b07acbf87316") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fb5e119d-d753-4a12-a977-f2085d2ce377") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "74dcdedd-6e8e-4212-82c0-74bf508a2c4a") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ac18a3a7-23c8-4230-ae82-b5ceb9001fff") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "4ca3c568-b19c-45b5-8ee0-a37e282cce68") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "f2f89b8f-c9c9-4634-a542-432899287c65") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "0c83a546-00bc-4fec-87d5-dd5669730901") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "244b3e69-6c6d-445b-aae0-81bcdaa141b0") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 24 "RINPUT") + (pinfunction "1") + (pintype "passive") + (uuid "ef524698-f182-4cac-a1b4-f93caddc09bb") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 10 "Net-(D3-A)") + (pinfunction "2") + (pintype "passive") + (uuid "7d541c37-e87d-4f98-85c8-681a8c64d1f5") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "2df93757-142d-489c-9505-e60661c725f6") + (at 61.77 83.185) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW5" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "895a1282-f1f2-4391-aa33-5579f3c174a1") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "07cefb64-5e0d-45e7-aad7-bfa8afa33eae") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d9bbbf7c-f7b2-40b2-9024-e8714e7ea9ca") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b54f2a3d-a568-4bbd-8944-ac2cc41b39d6") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b31e7002-5c6e-4318-a8fa-64516aec6d8c") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/f09b3314-d915-403a-ab16-16fc4614b166") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cc9a2305-df23-4a15-bce3-1aab0fe69bc3") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d3d8ad74-5d16-4327-bfaa-2b1d1fd5417d") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b4ea4cc7-825d-40b8-9d02-9b41bd19ebbd") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "266ebc55-aacc-42f3-b473-1ad7dc84afd8") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "c856b37d-0dcc-4ec3-ab8b-1fde6858c1e5") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "5bc60201-6f00-4669-ad19-de9c7a7db90a") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "c7838ad5-7849-4b9e-84fe-57d56cf2aa63") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "5873c662-4824-4791-a95c-bc8ae47de621") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9e09bef0-945d-44c4-8440-3b39bdf1d326") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e22b571f-d680-4295-884e-73b31a32e626") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d5c2d366-76ff-4a70-9133-ca39fb0fec71") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "87d2cc7d-cc2a-4a3d-a5d4-d29e65fe44c3") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b800d40b-9dbb-4157-88c1-add9636abbdd") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "03c05000-869c-45a3-a4ce-70a1db97cbba") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a71ce4f5-a28b-416e-b897-4ebf6cfd1fef") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b731c640-ba86-4243-89fa-c73861c6d652") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "78aac48e-749c-4f9a-9333-b429bc1122be") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "2c15a108-0801-45aa-8e6f-8abbd44a9a45") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "9cec6ff0-dbb0-4d6f-be1c-c7c336522d0b") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "17e069c1-f22c-4d7d-9651-48216f20e966") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 11 "col2") + (pinfunction "1") + (pintype "passive") + (uuid "ec01de05-d1f9-46ef-a253-663a9683da38") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 16 "Net-(D7-A)") + (pinfunction "2") + (pintype "passive") + (uuid "4a069af5-82d2-4280-b385-f7c1133bbc96") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "32027f1c-a5a6-4325-bcb1-9537a7096dc5") + (at 49.725 111.235 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D3" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "e66ae99f-2efc-45a7-9268-0337c9ecf837") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "2a36d356-d106-4e5d-9903-bf6690ec8d92") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "266c3b43-4d07-4af8-8d20-712744bbb49d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "76c31f6a-775d-4f93-96a7-f9ef7454c5e5") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "bd8b968b-2a15-4192-b347-6c3929497755") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1a175cb3-c94c-4660-8aa7-b6c99453d5b5") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a8547e69-a676-4910-8d97-c67ab9a17716") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/0182b48c-fe8b-47ef-8be4-7fa0b56081bd") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d6c1b703-5228-4aeb-be59-9cc7b58d7c30") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2c7e30bc-a0dd-4c2f-ad8e-e2b7bcfaa089") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "a44389e1-3139-429d-8e82-7472811f3c5f") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "42b69dcd-3653-40bf-8c20-778d2d52e07d") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c11c487c-374b-4586-afe7-d6855e597ed8") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c9752238-da35-48c8-bb37-d58d871ff3e1") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2fa289ca-1771-469e-b932-cab15a139daf") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "63112816-ebbe-4fd7-9694-8277072a2248") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6a84d4e7-e3db-4e59-9cde-4ca7923b7953") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d670adc7-c0a1-428c-8b09-eccf06708762") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "070debb5-6df6-46e8-b583-b4178c65582f") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e8a83788-9683-4f18-818c-a3f62d818f3f") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "27496a77-a3b8-4105-8c3e-b8ad2059f7d3") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ecae459d-ea6c-4014-b0d1-fdb285b78479") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1c2897e9-3eab-4eb5-8a2c-7e870e32bc01") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0c605497-2775-4479-b29b-b65291b6e25c") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "2d2689f0-0774-43e9-8173-9259fd5a3724") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "135c148a-d538-4ad4-9ffb-e9ba4a1a7fcc") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1d8a4517-7c12-415d-934e-0188799e9d61") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7d5e543a-bfb6-4453-8812-4de4c6604ce8") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "80db46c2-452d-4a95-bfac-d00c46ba7a55") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a4b9f56d-ea12-4439-b72d-bf0f6ad60c21") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "2146be1f-7554-4ea4-bd28-93abf38552ca") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "685388df-7515-4225-8764-6a331ff65df4") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "9f4ae749-b1da-409d-84c6-2bea450fe56c") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 21 "row2") + (pinfunction "K") + (pintype "passive") + (uuid "84117f8e-d3a9-4c1d-a590-cd099a39db2d") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 10 "Net-(D3-A)") + (pinfunction "A") + (pintype "passive") + (uuid "b808040e-d3c5-4fbc-8e6f-6b4cee593ff5") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "48e8f561-784d-4974-84c4-0b45e67b0265") + (at 87.855 92.275 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D8" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "aa420aa5-3848-4760-b327-39cd85dce12a") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "5072ba5f-4893-4060-90fd-8d3a01f6abe6") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "25ec59bc-cf30-4591-b679-d5ef9c170d10") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "19fea905-1a0f-4cde-bcb6-cf8874172a41") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "254033ea-e5b8-4e2f-836e-c7c34a887dc4") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "69b915e6-e1c6-4f54-a678-5a390d005816") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "eb47b5ce-defb-42f6-8bbf-0aabf5e1d031") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/554ad5aa-fcfb-4528-b5bb-4feac667d765") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9ba46c83-bf45-4e70-8728-47f916ef46d6") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "53b4aae4-fa06-4246-b4bc-a3fd781e5827") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "3d5ff8f7-5d27-481c-b2c7-006b4d20236e") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c897801c-9977-4cc8-b824-053f5f0a4d82") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b9df3a64-b57b-414a-8619-2dd7fb143d01") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cd31a077-935f-4477-aed1-9868e90c0db5") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9c080fbf-5fc9-4c18-9dac-76123503b7f9") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b4bff95b-f44a-47a4-938a-d41aaed28d9b") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e3086263-6b1d-4c75-bafc-701723ff17f2") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e34af85c-ac24-421d-aaf3-0598cd3d1954") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f57b8031-5044-4c58-b118-b14fb51297d7") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "afab5a74-7289-4a07-a498-522454ab1cb8") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b3c79efa-cfa1-4415-87f8-831897aaaa85") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bc8c0346-734b-497d-b7d8-83c6c4cdb868") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "03505b0b-5e4e-4849-b59a-9044e33901cb") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b518fb36-94fe-46b0-9bd1-55f505357abf") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5d073726-27a6-4dc4-9834-badfb8946ad0") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0606dbb9-c9fe-489c-9706-2d74c57b8dba") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "452799fd-6bfd-4b88-8a20-9aa99507c671") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c86d1108-eb47-4f53-bc4a-12ae201cb9c3") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d7f20ffb-88cb-4fe2-9f4b-175992a6f0db") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bad98010-5806-4e2c-a587-69d11dd06fd7") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "50ec668a-25a7-47e7-8676-275140a31b91") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "50eee923-b898-4d3b-8f95-7f22d82749e5") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "9f86d8a3-d933-41ae-977f-037fb34dfb46") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "K") + (pintype "passive") + (uuid "ecb6d6cb-dcd1-4437-a5dd-ff05c495576d") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 17 "Net-(D8-A)") + (pinfunction "A") + (pintype "passive") + (uuid "4c6e0b59-5b74-44c6-90e5-7fb90f0ba199") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "4f7cf52f-bd4c-4358-af75-ac246f61a9f3") + (at 87.865 111.275 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D5" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "fcf7afc9-ec44-4d83-94f8-bb2bdbd1ab81") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "d8e2d527-76f0-48d8-a1d5-d576b17715b5") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "56be824e-0eeb-45c9-a3d9-20b8940d80c5") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b7a3ec84-500d-463f-bbbd-0d86c7c929af") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5cc0f5b1-7e0d-42f8-af3d-25784318fc36") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b27494c4-a9fd-4e09-bf6d-99ac7c4b927b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "316cf41e-673c-4463-9cdc-70d4e9ea51cf") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/8f9dee36-bcf8-4199-b179-81a96b947127") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f80a5d4a-32ab-4716-93ba-670839e391f3") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "baa46d61-0afb-4bc8-b45c-51e9f90d7788") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "84c65bf7-3899-4ef0-b45a-ba387da4becb") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9b41c538-bf0d-4366-bc0a-e3d8094a1e94") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "a2ffb3c0-5512-4ad9-b264-50809bba6498") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "05ae5be1-efba-4c9e-8732-b0e647120045") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2133fecd-9dad-45fb-ab01-788333534e7f") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9a23f858-0186-409f-9458-184bd67a61fc") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "54c941af-7b5a-450c-a7f4-66816a9f0566") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f5a71200-25f6-45fc-a863-d8f217b1bd3d") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7c6e9c89-36f1-4ace-afdf-6ba6b7a2ffa6") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e22ae283-839d-4556-849b-11afd581aa01") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d290c4dc-5b5b-4b78-8c57-95f01c58b39d") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "96b1d36e-09d2-47f5-a838-3abfc74f8500") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1b590de4-b4d6-489b-b290-b362df47703f") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b32e9720-f182-4050-a74a-206749098d28") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "573fff21-4445-45b9-952d-b88932ff88f3") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4e2f962f-1b91-473a-b4b3-c9f7ae6025da") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e7389050-b30c-403c-bd5a-409943928e93") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6d56190f-6d1c-4be6-ae06-1da54ad2794c") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f760dd6a-8548-4e6b-9c80-a304624cba65") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7e02ac2f-93d1-4362-a874-4da1358d659d") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "4482e7bc-fd6c-42d2-9126-6f9c5006016b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "5a2a7252-5f13-48b5-bf6b-93163d3ad205") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "d30ea979-ce18-4c42-82ae-b62c13cc284f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 21 "row2") + (pinfunction "K") + (pintype "passive") + (uuid "03e2715b-59aa-40bb-a699-35676b4fa23f") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 13 "Net-(D5-A)") + (pinfunction "A") + (pintype "passive") + (uuid "8a628e9e-e07b-49bb-b31b-320cc4f1b22e") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "52148390-c0ae-4e35-95e2-6703d897e606") + (at 109.395 102.235) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW8" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "1bcbb0d5-2dd2-473a-a9d5-6e0857ac1f02") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "42fb4977-8775-4cf6-8181-33f9a712d403") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b71cb3ca-148a-4400-b07a-2452c9296308") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "9c0f28fe-79af-45c3-8a11-1a2a2b54782b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "68babb3e-a539-42bb-be6b-21aaedabb00b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/ff8dd6cf-a205-43c4-8cd2-4c561b3f0627") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9a48261a-c120-45ad-a1da-770965e3f776") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "14ca507d-04dd-467d-bbb6-0d3ada664ac6") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7f943822-42c5-4cb4-bc00-db377c3261cd") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c7a44f36-03d4-4d60-bbc7-eae9e7c9c1d1") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "d33244b9-bf4a-48c6-990b-c232111656c6") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "8ef31b7d-f685-42a8-8a5d-fc50333211d2") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "b6148718-47e1-4563-8114-394c8566c98a") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "d85c90ef-c5be-4b53-9889-1d5c92c7c38f") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "df663dc8-4de2-49cb-8194-fb2f29c96e67") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "55e21753-41c6-48cd-86ba-3ce54f162304") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "255ea05e-c663-47f4-a553-a3024f9ecc5b") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "60f6fd94-168a-4cb4-951b-8cdf02a7dcf9") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6c06380b-7f4d-4b1a-a6e6-31c5cc048b0b") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ce81fd19-6d97-45e0-8ac3-24088679e90d") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5d912ae1-60b2-4487-a82c-c943cd07b98d") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "33479773-4738-4708-9e1e-b76b86a10920") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "124d276a-2d22-4115-a9f4-07d21396dbdf") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "af396020-4310-4e0b-8086-c6d18f8d04b7") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "3fcdf2b1-96b0-44c1-b75a-91ce23f9c29f") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "871ad02c-33a7-405d-befb-651b884b2bbe") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 18 "col4") + (pinfunction "1") + (pintype "passive") + (uuid "a6bb4851-0870-4dab-abb5-1f48abf238d7") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 20 "Net-(D10-A)") + (pinfunction "2") + (pintype "passive") + (uuid "8c078eba-cf48-4776-b4d6-d2fe8d5de06b") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "5ca1989f-d015-4849-bc68-85122f3ead7a") + (at 78.28 97.79) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D11" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "bb186867-4fef-4dad-8610-580fb8edeb1b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "7fdfa381-1ee3-4129-9b94-ca7035c86d40") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a2947bcc-e9d6-4096-a85a-3f0dc8a2cd5d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "28eb7cea-a07f-4028-acff-0db33f32307a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "a5cb67cc-9986-4acf-9336-9f4683e69432") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/92960efb-0266-4005-bd5f-7ae1803b9af7") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4176c160-10e6-4724-b659-d1cad6588b03") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "54e83edc-f815-4e5d-a318-164fbe424cfc") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "884fbf97-3376-4ad1-93fa-dc496c133824") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e5527c5a-84f5-4336-9ba2-f5adf266ccc0") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "78c2af6a-7f3e-4b20-9a63-d86442235994") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7dcb1bc9-c679-4a7e-b629-97f09ad49d09") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "44972403-2e90-4711-9e51-3adc7ba27c11") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "769c817a-4f99-42bd-9079-6344efe56f95") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "81efd66f-99d7-442c-a5a5-a22fbe07c0dd") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fa0ea829-d9cb-484c-9281-875536b69cca") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "87e5d3c8-e9b3-424a-a7fe-9f9db39552e0") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ede6bcd5-9c9a-45c1-a2a5-3ceb22ecd8be") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "7304cb67-fe58-4ff4-be0e-284222f83409") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "a861a4e9-6bae-4de5-be69-6688918ffecd") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "042c25e0-6d34-469c-8589-ca77c55c67a9") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "Net-(D11-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "ec915f6b-52ca-42d6-b26d-0aee3a2715e9") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "67b6cf38-32cb-4f97-a0a5-d6af3f03757a") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 5 "Net-(D11-DIN)") + (pinfunction "DIN") + (pintype "input") + (uuid "f7c384c6-805d-4eed-bc56-ba628fd1963c") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "73a15d5f-e3e7-43f9-891d-cb472a7f4c6b") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "6afe5cbc-8191-4d10-9898-221b49b5c052") + (at 80.82 102.235) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW3" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "ab534baf-bf3b-4893-a86c-95635a5fba9d") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "66b3524f-746e-4bcd-9198-d1a43f0e2711") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e36476de-d0cc-4caf-bbbd-4ace46e091ff") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "47496eec-09ff-41a8-965c-883fe738f1c5") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "30dba0d5-f74e-45c6-8bfb-48009b275928") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/c5f1d131-52fa-4aab-92d1-4f7d6a77768d") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "1d3f6944-38f7-4ba8-a554-dcc0c0401f53") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9df3ca72-d10c-4fda-99ad-f80df9d23031") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7b93bdd5-c5a3-4a0d-aa41-377a487e1923") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "34709ef3-0586-4c1b-95aa-ce638af4d6c4") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "3cd2933b-c7dd-4f19-acc2-ec140d6545c3") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "b1758c21-449e-45cc-b68c-bd1b336319b9") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "b10e2819-7761-4338-9cf7-9b564adce15d") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "8ca3fb80-c4f3-49f9-a0c4-7ccb9bf7b30d") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ed49f628-2c84-4c5b-8416-cb7196f575f2") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ec481661-c7a6-4293-bd39-5ac4d89314c0") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ce16d4ac-4061-4410-a869-46d376a91c6a") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e656f64e-a3ff-48ca-a44c-c72fcd8853c3") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "905ea28a-f4ee-4866-a1a1-df45c810521d") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7c7e4972-bb96-4564-a7e3-a1d208a92963") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1c63f2d7-9a6c-455d-b11b-ae71c74ebe5b") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ad7c8b76-1113-4c63-8b76-8ca84f8f5483") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "90aafdc7-2d5a-4239-9d95-76c7f40e42a7") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "6ae47548-f7d2-4891-bdd7-b4def95012f7") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "2b1aa634-a4e5-43e5-bcf6-9be28f46cfdd") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "7c3f6390-eef1-445a-af72-ff74b700f7ed") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 14 "col3") + (pinfunction "1") + (pintype "passive") + (uuid "40e1bcb2-6d9b-45e3-a318-5739ac78881d") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 13 "Net-(D5-A)") + (pinfunction "2") + (pintype "passive") + (uuid "afb6fc14-a142-4b74-a0ed-cf0f7c04f1e6") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "6bce9aa2-7748-4157-ba36-ee3282fb0bbe") + (at 40.18 97.725) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D1" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "a1b00c65-2abe-41cc-8863-abb4cd2d28e2") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "b0c1df76-67dd-4599-b962-9b5ba83ba6c7") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6e6359b4-88c3-48ca-a5f9-ffe640a718d1") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "9b76a101-a813-40e2-a2d5-11b6c87ba9a4") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6029299b-be1a-4e8c-8232-981b1942221b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/d54e5a7f-7f39-41b2-a0c7-e86fcb28a10b") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6140b0f2-62b3-40f3-8ea3-af933f62b16d") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bc387e1f-f8ee-4053-9be0-e24171a86665") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "14b15a08-4f2b-4d9c-a4f3-03c1e1b42443") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f09ad0a5-5bbb-475a-8b46-a25d325609cb") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9921a0b2-eedd-49aa-95f3-0e24d1b5e6ae") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e197d134-a4be-4c2b-8c96-f0353f235fe7") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a1df14ce-377f-4bbc-aa95-ccff1d70dbde") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4f1c5058-bbdc-45a6-98a6-94f477841170") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ee604daa-db99-4f8e-9843-f6fe47805689") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5a9991da-4c52-4a36-954f-a0d2146b884e") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c598a615-41e7-43a8-bde7-bf88dae92005") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1f354721-7c56-428e-8e10-4e03e41fd515") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "f102e9d1-7e68-461a-9f35-0d49c6e92291") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "f829f040-5eaf-41f5-9164-b480dcb9ce5e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "acde226e-f175-4d35-9ce6-5da8c6de49a5") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "Net-(D1-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "3a718054-fcc1-472c-9d53-b359c9af49c4") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "e5b16c8f-184a-4e2a-bdc9-63baa5c109e4") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 2 "NEOPIXEL") + (pinfunction "DIN") + (pintype "input") + (uuid "21207f95-41b6-42fc-8dc0-74b383bb261b") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "8073e8af-af68-4c8c-9aef-04dda85fb637") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "6d1cac2e-65e9-41d8-b42d-ff8d2cf95034") + (at 78.28 116.84) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D15" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "7ce55b26-5cd3-451e-b91d-24c8b2f2afbb") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "c4bd3de4-24cc-4ac7-856a-796e9fde7499") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "30592ca1-a7ce-4ed0-8cc2-90b297636e40") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "8fccc43c-b484-469b-88ea-d4269cd86f60") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "7066850a-2205-4aea-90e2-105a979d7d90") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/ee596f9f-bf74-4da1-9666-bf7b9b49cced") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c626ee64-baf1-4254-a4b6-c1dd726572fb") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7905e2d4-b8f9-4cff-9d04-db8d34baf68a") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "00bfce3a-e994-4c13-ab52-2bc8ed027bca") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "22dd5a36-0620-4ccb-8997-4445cdfe03a0") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "06bc7e96-da28-4afe-86c2-fd69f689f4a1") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e413984a-9c30-4090-9f24-57eaf0adcbfe") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b2d21ce8-f499-44b6-bab1-a499071f0d8a") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "035811cb-4713-4c15-acf8-7fa2bdf089e3") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "829cea22-8177-4ec1-a346-7ec7c99155e7") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "58f0c540-5aea-4b72-b97c-f36a8440ab11") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a40ea2f7-02f5-42cd-a163-9dda8c0a16b7") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0c14d84f-9e5f-4c15-ab0d-110eb5660285") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "28508569-37de-4acf-b467-9b6b9a3c1307") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "9a847fa1-26b3-4cf8-8186-cdb668f4bbcc") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "5bde5eeb-29f6-460c-8297-74b85b2d6617") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 28 "Net-(D15-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "eab0bf53-f738-41b1-8b33-1a0876800e7a") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "d1698d2a-cd3c-446b-bce0-9d8f04d36eec") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 27 "Net-(D14-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "925277d0-2f0e-4b03-9fa3-147d7d58c350") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "75196128-9cfc-476e-b138-f08c34851530") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "6eeebc77-9a52-48ce-9da9-6cb497b29c84") + (at 80.82 83.185) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW6" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "72c681d7-4b89-4dfd-9737-2fe421a49b2f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "ad8658b4-a5e6-4683-82cc-ed6b47a7b14a") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "cc25ba28-1e5a-4958-866f-27c7925d9594") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "93325404-ddc1-4704-8ba3-a6da7307e26e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d1814c3d-bc73-475d-bee2-2437e060b849") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/758505f7-d3d8-4901-9513-5d620fdca2ab") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7f74f0af-e8bb-4ab8-9e3c-6f298b03466f") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e768a993-9a6c-457c-82cc-c419663ce9d1") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "96cbbfb4-4197-4219-9368-cbd0db53b0de") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "48e5b9eb-7fd4-44e4-85b4-32da48d1a259") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "38acc2aa-ecb6-4e22-b0d0-be2670c61eea") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "342aa784-8324-4666-9465-8f3e4322e6c8") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "f7a68bbf-7373-4cb8-8736-e9e1ada7c947") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "f3f30046-f173-4630-af2b-56f14f6f930e") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "219c7d52-1c20-47f9-826f-0e2599e6edd8") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8bb573db-6c76-43bf-8d86-3786e2f003e7") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "4d607dbf-c4a5-43ba-aa0f-6916caa489c1") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "2b63b9dc-6470-442c-aa72-beb9c80ba589") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "efe9e44c-6c42-4ad8-a9fd-32a6e7756eae") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "623f5024-e55d-4f1c-aa9f-af56c8ab64a4") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "78914ee8-725a-4590-b608-e4bdbd809832") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "de433380-5c3b-4721-bc07-34dacb8f97b2") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "c9ab11d9-f925-4b97-ba14-e5ff4eae678c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "4953aace-25f0-4a99-855c-58c86e3f1f58") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "b9cabeb8-122e-4e6c-b0d1-f2f8fcbf161d") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "c98fc875-feb8-4e40-aecc-ae02900b59a7") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 14 "col3") + (pinfunction "1") + (pintype "passive") + (uuid "911d1efb-b838-48a8-898a-b8e247199a4c") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 17 "Net-(D8-A)") + (pinfunction "2") + (pintype "passive") + (uuid "72188047-daec-4160-b7d4-d1daddb746c2") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "718d7ee5-0b1f-49b8-850b-341ab422d0ca") + (at 68.705 111.365 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D4" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "2ed4516f-f910-40fa-9680-fb4e313e504f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "202d0168-5bdf-4181-b376-2591f5eeadf7") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d9b4ad5e-461d-4e1e-ae45-05899b6b743c") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "685df99c-dd47-4154-8f5b-e435f6c39fc6") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "fbb7761c-bba7-4282-a5e0-fd932512f9a2") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "43bd6fb5-be48-43dd-94fb-b38875c75398") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "55b33ced-0cfc-461f-8bcb-e5dd91f0600c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/4e988283-ea88-4926-a401-acf7a0415ab1") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "fb982846-edf3-444c-9c59-e80f01b415dc") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0127dc0a-92cd-4a31-b848-6927b3b20551") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0510a3f0-21a8-46b0-ba83-ff9b1a7c7b52") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8e8a63d9-a761-4f85-94c6-112746e981cc") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0d5599b1-6fa7-4ca0-86a4-e3636971c1ac") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "15eda833-f259-4d14-a3c2-b002bd525fbb") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f1a79e02-8e2c-452d-8a2f-2598c92f1f38") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "a097c039-f801-4ea0-bb4c-6b97a48cc2ff") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e7f7f6cc-fbdb-492f-8557-07ad556a88da") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ad458ace-d283-49fb-93e6-c06e5d62f559") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "2e202359-0b37-417f-84a3-e10d80801f84") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "688696f5-34cf-430e-9af2-1d851af05a6f") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ba9668ac-5e22-46d1-8b90-097ebd954678") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bebd7f59-7c99-43c4-b147-dd0c958ad919") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b763877d-ed99-4ee4-ab43-e5c162d740cc") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1f81bae8-5a62-45ca-9cd7-2692e6cdbceb") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "05e753da-f013-4086-abdf-0d3fb5303a68") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "00c2539f-0dad-4ee9-b707-e28099ae3b1c") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "dd74612c-c0d7-4174-bd53-748bd51b6ef8") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ba8d3c8c-97ee-4aee-b57f-cf13f66dcc6e") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b28c4349-844f-43a1-8d14-270fb568919e") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e601afa2-686d-44f9-9553-74875917b92e") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "64f25fba-7233-4a22-9dd7-d750481fb16f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "72cbedcb-f96d-4dd8-a4f0-3e1c89033e32") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "ed4f3226-7f14-459c-869d-410900f37a46") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 21 "row2") + (pinfunction "K") + (pintype "passive") + (uuid "0270ba23-ab01-4a78-b091-04d9dd71c5ab") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 12 "Net-(D4-A)") + (pinfunction "A") + (pintype "passive") + (uuid "599e29ea-e3d8-48c0-95d9-7427e2ec1080") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "73a83eaa-3bbd-41b7-9fd4-c48b0a7a3376") + (at 97.33 92.235 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D9" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "edfa6920-0a52-4d02-ae06-e8c0ab8e1b96") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "d2846827-519e-4a90-97ba-cd2647ba8e6e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "fc8e6dd2-e9dd-4863-a7c4-b6df8d9f5a34") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5eff59e8-34bd-4ec4-a6ac-74ddcaf0f796") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c493d969-46ca-44b3-a5c5-df79132b09fb") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "7f2303db-d5d4-4303-bf42-86fa55c4a24e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "2b573892-459e-4c1c-8970-33bbadaf501e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/492b14a3-196e-491e-8781-0d6aedc31079") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c5ff6eb1-4cc0-463b-9a2e-06e06cb39b0a") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "89e70472-7b1e-4dc6-935b-ce39a1b69918") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "861f473d-de70-4d9e-927c-41eda4ef8367") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b45de780-111a-43c3-a889-2e2c3b235f74") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "92202b04-6085-49fa-a628-3a5f896b4604") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "75abf829-5283-444f-8da3-fd6530c46b03") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ef658d03-ea50-4a01-abf8-50f165f25fe8") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9d87a075-24ec-4882-b964-905b30957b70") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "87eaea0a-988e-4421-814c-e183f2ae68f9") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d5902a65-97fe-41e9-97b8-5b26d5b7538f") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d8461768-2c9f-4eaf-99d9-cfd84daf71e5") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "aba5fcf9-86b0-4cf2-9c77-af52fd443a8e") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "6b5cff98-1f14-4c58-a5a0-873a0b8bb023") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c0934932-74f3-4171-a5e9-2e605eecd2b0") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0e2f5b47-50d6-47bb-a64c-6ddb06aa6966") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "fde8db9a-94c1-4c1c-80f9-c95d915628d0") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7d678357-c94e-48f4-9198-6db3c45d22ef") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c0d74142-52b7-45e0-9910-ddd782ed2475") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d2462143-b756-4eeb-9529-19ce42399a76") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "5c3436bc-4ce2-42cb-b07a-7ec2b22fe4cb") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ba743340-3996-40d3-8fdf-6a2e2b774b12") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c5b88083-ff27-4bf1-9818-4d2467540cbd") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "dc3c9c57-d620-443e-8cd3-20a28c887bdf") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "b682b505-3647-4bf4-b6f5-02402c35d655") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "cc1cb4ec-51f5-4879-ad45-14e49c77d180") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "K") + (pintype "passive") + (uuid "f39f3543-38f7-407d-98df-8ac1a7c859a7") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 19 "Net-(D9-A)") + (pinfunction "A") + (pintype "passive") + (uuid "448e1088-ad97-4041-a529-84ae98c51b11") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "821ddc22-0ac5-47d3-9e57-09afea9388fe") + (at 97.33 111.345 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D10" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "246e6fc8-91f6-4200-92c3-5e43ce697dcb") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.4375 90) + (layer "F.Fab") + (uuid "8bf1d4f3-a7f9-4eea-9118-4dcec7e56f15") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "4e456140-0207-49b5-a8e4-b77e2c8b6870") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "f238ed57-c03b-45c0-893c-6efaa6df4cc2") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5271da28-c167-4711-b748-74b0f76cc503") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "f1c4a3f8-e80f-49d7-a95a-6d668473da28") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "ead4b776-9d28-4ca5-874b-17f6a2206838") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/ac02af9b-38a1-4956-b4e5-3c84756921e8") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c2fb1b76-1d27-4a23-b027-8c9d2868a2ac") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8f93260a-8138-4d1e-b8e2-4b3ccb665ce8") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9f1b6a9d-e855-4f52-865f-5c74b82d24c0") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6e5ec6ab-2c7d-4253-9e6b-84424af6b910") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cc695376-47bb-47bb-9c3e-312753a81b1c") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e0244ee8-cdf5-4b23-a39c-5adea48436cd") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e7326958-f16e-47b0-8654-de85ccd3d338") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d7805b62-674f-4c94-8f73-264b0a1bb57d") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ec7ca5e8-429b-43b6-89fb-4efc4cbc83c3") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b0cdf489-cd72-4625-9b12-8b4308ea4098") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "de9759eb-8a50-4ab6-af1d-c47a8440e18d") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8bf5b61a-9568-451e-b79b-0a23625b9c8c") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0f80526c-5bef-4744-88d3-8ec92ba2f985") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "cde88fe7-bf2a-4eb7-b995-a02129ead0be") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1d91e513-8605-47b8-ae42-17df1848d35f") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "204d01c7-6317-43be-864c-05f8e22f99df") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4deca5f9-40e0-47f2-bae0-0ab415e6b0ac") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "20263b7d-25f5-4de6-a459-c7eba0a5b730") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6863e79b-1458-4bab-938b-4758c2b06d92") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "766a7509-4ee4-4e83-9f4a-75d85cafa786") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f18d602e-e148-4d68-ace7-77002569eb94") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "de58b478-5679-44cb-afca-db1ee206c4e6") + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "4bf5c634-9325-4a2a-8c3f-2e575316b3f6") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "fd21b42b-aa10-419a-9582-06910a5a5c1e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 21 "row2") + (pinfunction "K") + (pintype "passive") + (uuid "c7499220-fd90-461b-844f-2aeb3ec1471b") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 20 "Net-(D10-A)") + (pinfunction "A") + (pintype "passive") + (uuid "9af1be36-3723-44c3-a8b0-18e0f531d51c") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "ScottoKeebs_Components:OLED_128x32" + (layer "F.Cu") + (uuid "85d6685c-cf07-4816-bc60-e8324770d987") + (at 53.295 62.105) + (property "Reference" "J2" + (at 7.75 10 0) + (layer "F.SilkS") + (hide yes) + (uuid "9365d19f-fc81-4ae8-b590-928f3fef3b06") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "OLED_128x32" + (at 5.75 5.75 0) + (layer "F.Fab") + (uuid "519d279b-bfad-4880-8f21-f76cd6720113") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "ScottoKeebs_Components:OLED_128x32" + (at 0 0 0) + (layer "F.Fab") + (hide yes) + (uuid "2e7696c1-1a77-4613-ba6b-56b395302558") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (layer "F.Fab") + (hide yes) + (uuid "ad2c62f4-1f3d-4c49-b711-b002f6fee476") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "" + (at 0 0 0) + (layer "F.Fab") + (hide yes) + (uuid "8ef5eeb4-1eaf-4a4f-8d9c-fb782de4a757") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/55d70023-2f4f-4dd3-9cd5-34beea9f5bfe") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole exclude_from_pos_files) + (fp_line + (start 0 0) + (end 0 12) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "e20c6952-6ba0-4e18-b9d7-0814b5576beb") + ) + (fp_line + (start 0 0) + (end 38 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "a939661a-7136-45aa-be94-11a2eae88bbf") + ) + (fp_line + (start 5.75 0) + (end 5.75 12) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "b01c9166-5924-4a3d-8e1f-639a35ee6e0a") + ) + (fp_line + (start 7.06 2.22) + (end 7.06 7.74) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "5ad62415-acca-43e9-837e-141df771526e") + ) + (fp_line + (start 7.06 2.22) + (end 29.44 2.22) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "7ac3cdbc-6421-44fb-87e3-62e936dfa5d0") + ) + (fp_line + (start 7.06 7.74) + (end 29.44 7.74) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "dd89928e-7cfe-4ee0-bcdb-6b7629849369") + ) + (fp_line + (start 29.44 7.74) + (end 29.44 2.22) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "5eaea357-a779-4430-8426-a487b9b21c17") + ) + (fp_line + (start 35.75 0) + (end 35.75 12) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "1add5625-06cc-49af-bc25-963be1fbd762") + ) + (fp_line + (start 38 0) + (end 38 12) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "696a6435-c3c9-48f9-a997-b48695111f35") + ) + (fp_line + (start 38 12) + (end 0 12) + (stroke + (width 0.12) + (type solid) + ) + (layer "Dwgs.User") + (uuid "501d0638-50a6-4174-8c36-70f7846dd94f") + ) + (pad "1" thru_hole rect + (at 1.6 9.8 180) + (size 1.7 1.7) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 4 "GND") + (pinfunction "GND") + (pintype "power_in") + (uuid "68cfb900-f4b1-4623-ac88-50b21d772cf3") + ) + (pad "2" thru_hole oval + (at 1.6 7.26 180) + (size 1.7 1.7) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 9 "3V3") + (pinfunction "VCC") + (pintype "power_in") + (uuid "c84d1895-915c-48ff-9f00-08ed2d5ee5cc") + ) + (pad "3" thru_hole oval + (at 1.6 4.72 180) + (size 1.7 1.7) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 8 "SCL") + (pinfunction "SCL") + (pintype "input") + (uuid "160c88a5-a114-4f08-a3fb-c814a3aad3dc") + ) + (pad "4" thru_hole oval + (at 1.6 2.18 180) + (size 1.7 1.7) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 7 "SDA") + (pinfunction "SDA") + (pintype "bidirectional") + (uuid "789d3010-f469-4246-8580-134a1dfcd95a") + ) + (model "${SCOTTOKEEBS_KICAD}/3dmodels/ScottoKeebs_Components.3dshapes/OLED_128x32.step" + (offset + (xyz 19 -6 2.5) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "8bac1b76-36e4-48cc-932f-539feaff9457") + (at 40.3925 116.84) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D17" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "2a087d40-75aa-4b9d-9745-4d37d93c2f4b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "d9139622-37d7-4c3f-88ad-196803a4088e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "118feb60-54b8-4217-a4e4-9bdcb377e2ad") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d9f7d9fe-865a-4b0f-9de2-7fb7dcb04ca0") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "57b8de4f-3b79-416e-8ad1-f8c825b95a0a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/f4b5d257-d254-4ca9-8510-b7d538e00f6e") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "336fad22-7f42-4edb-b0d7-54e2f329e629") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4c8f705a-5f36-4ea9-b41d-67ef2a6599c8") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4d3fc2c6-c0f9-40b1-81f2-505f040cb9ec") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "4de780f4-c2b1-4479-8568-c237bde7147e") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a9b7ccbf-4bfc-41be-ae6e-d41e27427d2a") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ec4df499-8386-42e2-b323-a6797b7dab66") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "2675d3b7-bc4e-4105-897d-203b9cf34587") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "4da20ce4-1500-450a-9dc3-5b993d338fcf") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "9ef1eab5-886d-44e8-8d84-bb0e2b5b0a18") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ae3c9157-819a-4d61-a534-41683a4c2a82") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e676791c-2430-4267-b486-4aa51986c259") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c2cc1ae5-66b4-41e5-bfd3-7a367c454b29") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "e35f4803-9225-4c76-b3ed-15e2cb501929") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "034186cb-237e-425d-aa85-9765d36c37cf") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "1783232c-d683-416f-8bc4-a53bc3b83647") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 30 "unconnected-(D17-DOUT-Pad1)") + (pinfunction "DOUT") + (pintype "output") + (uuid "84ad5f2c-8292-41ad-9c50-696e9dfbe449") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "6a02cb83-8bc4-4bd8-a6f4-6b1f79289a66") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 29 "Net-(D16-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "6b4b15f6-0728-48cd-8911-06b830ba6b00") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "57f2c916-16ed-4589-bb24-1365daedbabd") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "93146d38-658e-4f12-8b8a-96178cfa0384") + (at 42.72 83.185) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW4" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "3f546249-bec1-4719-8846-75416c9a3578") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "26f37e44-13f2-4831-a2d7-cbe369cbdd5b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1693faa1-5d85-4aaf-a53d-344a19a608ef") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e51a8d20-4524-4e0f-b6a3-e2c09907efe8") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b098e28e-5c6d-4790-aadc-695f10fafde2") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/5f4c010a-8b72-4d09-b514-c1bed217a028") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ba21cc00-7a9d-4e09-8f8a-d06f96c6298b") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e5886e30-f9d5-4c28-a883-b80967ab5511") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e7aac9f7-1adf-4a9e-9145-a5c290a9d4d9") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f3221518-dcbd-4988-9aef-7e6ee1ee12ba") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "ffa799fd-ad3e-4c4c-8da2-21177a0393a5") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "a465918a-3b7b-445e-88e2-e7db5acd9457") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "d730f345-aba2-4d3f-a1fb-dd5b29b67c41") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "b8170f1d-0106-474b-8856-9d3cb8237eb8") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "dd63e032-0d20-4676-992e-2bd8f86e6502") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "1f99a120-39c2-4bc9-944b-153f39f0f172") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "8b2bf216-5488-4e0d-8d8a-65c41fda1ef3") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7169d4b8-91ef-4852-beb2-2f14cba1a869") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "7df7169a-8f38-4cc9-9dd2-bfe4c1f213bd") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a34723ec-4a7c-4dc8-b604-500f305c70fe") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "9ebb41ae-b611-4ef9-9539-efa8581895b3") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "50ec2314-f143-42e4-af5d-625fef3a2283") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "1ca530eb-0950-4220-be8f-2b4b0b2356f4") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "49d98d86-5eeb-41cc-9465-91ee1938658f") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "285f89ca-2f69-4d1e-be94-2aab622c2a07") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "a349dcc6-9300-4a78-a199-a48af78c69ce") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 24 "RINPUT") + (pinfunction "1") + (pintype "passive") + (uuid "1b18fae0-183b-448c-85fa-53afb54c8ee0") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 15 "Net-(D6-A)") + (pinfunction "2") + (pintype "passive") + (uuid "f45fd00e-419a-4075-8d34-73e450a38ab6") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "960c91f0-e41b-4f41-9ce5-04c6ba701ed9") + (at 59.23 116.84) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D16" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "26ee7e86-e564-4563-ab9e-fc70ed23bc55") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "3e03bbe8-eef0-421b-a753-3c33a82cf293") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "835099d1-ccec-49f3-90a4-c20b631925b1") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b41f1f8b-7600-4717-afb8-dd9446df5a1d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "e95538c5-4b06-4426-b347-71a29c1e53ed") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/f5eb316a-048e-4ccd-b0dd-9ce11e5a2036") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9f599367-0e46-46af-9100-059a0078c9cd") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e8a11bbd-d64f-4e1a-a243-663d451b12f0") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7fbcd5c5-6d04-4eba-9c59-316ae7458b95") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "007bbaf0-3dc0-40c0-b433-d87adf2c6bd7") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9bab1b88-84db-4fac-824d-274303769a3b") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "d12e8014-ec0e-47b2-a8e4-c4e4b1af63bd") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "fad2d297-699e-4f1e-9195-4ac7d844a8b9") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "9763d2ac-125e-4dae-94ea-bca9c5db76aa") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "3bf21419-7fe4-4c80-a04b-f0c1600f4372") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "46656c03-ef15-46c6-a4b7-7b5dfce5a27b") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "e6c2a864-93bc-433a-a6d3-70ca8c0c3d96") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b23fdd5f-0567-4c40-9ad1-d4a263debc20") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "7f1c00ef-76a3-46ea-a71f-aacc3545fb68") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "92f4c3dd-dfcb-4112-9eba-495e5d2f9015") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "a3bf1fd1-0a52-4e10-bfab-aa90fee8569d") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 29 "Net-(D16-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "7428a131-21ee-40fb-a326-9cc14e0f8fa4") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "0ad7cc9d-813d-4b6d-ad73-b5bd58800150") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 28 "Net-(D15-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "0619273f-d08f-4fdf-868b-27eaa919d451") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "0b8d32f6-cecb-40c4-a87b-53019d91afd4") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "96adb5d4-ac3b-4cb8-a431-fdba793ec0d9") + (at 94.415 72.745 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D12" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "8b0a8ddd-2815-4cfe-aff8-be314d6fddc9") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "7c19b220-2e07-4156-b93d-9cd52ed1540b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b8e8ae93-2b2a-4870-ab61-dc224ff4501b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "593871e7-4a0a-4cc6-b3e0-4ab4c5936a5e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5f3ff987-1e93-4aa7-939d-3a1703c70e9e") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "9e724cdf-1555-4f7f-b1a9-978945710407") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "eab2f0fe-35ee-4ec7-b53d-8390a2a05187") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/d2757a62-5fd6-436f-a272-edfa97e09620") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0c345471-79d7-4f00-ba5f-89f65403a56f") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "5397f66e-88b6-4c65-9c15-ed7a9fe8a679") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "500ef684-b155-4fcc-87fb-3b24328c8a4f") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c77874ed-286c-49d1-91c8-137171a263c7") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ba5da4c9-605a-4b5f-89fa-54ba9ee262fd") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b806f257-3994-495f-a285-803961cc54a9") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "74c320b3-dd49-4b0e-a280-6a943408607e") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bea0b8b3-2530-4ac7-8dbb-b8a15a463550") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "acfe99f3-71b7-4b29-a506-44cc73f32be2") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "e99d2348-a402-41c3-a81f-8f1ba83279aa") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "06b551be-b8b1-4541-a30e-7dfaf338b86c") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a6e566d5-d10c-402e-9d7c-96f9e0b70684") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "1ee3f40b-3c73-4e51-837f-48a2d8b09b1d") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ac187709-ee24-4e27-a0bc-7eb5f255e384") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "b32f0a10-983c-4d97-88cc-3f9d4c5ad055") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0683f93e-2ccf-490c-a5c3-1d2c48f12b2f") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "bfccf5d3-16a9-49ac-b5e0-6ed80f9e661a") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1f0917ec-2865-460c-8b27-8f0ca45b78df") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "45ff2dc1-2346-45fd-94ca-e2b621fa0f5e") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "25118eda-097e-4459-8d4f-8759b7f8ce9a") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "95033819-0423-4d47-82df-f93de9c365ef") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "66a441da-9c50-4caa-ad6f-eac0447b5b88") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "fd896ae8-fff2-42de-bc11-26ddc3b1e8d5") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "27b4a4c2-98c1-473a-a7b9-94c2b8354541") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "d851706e-3d40-4ab5-9343-2056c6245fce") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "K") + (pintype "passive") + (uuid "94aa06ba-8eab-4533-966a-dc8fc7b2fb23") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 23 "ROUTPUT") + (pinfunction "A") + (pintype "passive") + (uuid "8460a113-42bb-4d13-8a58-87462df22df6") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (layer "F.Cu") + (uuid "98c38131-8248-4aff-ad97-9d3b124f908d") + (at 99.535 65.605) + (descr "Alps rotary encoder, EC12E... with switch, vertical shaft, http://www.alps.com/prod/info/E/HTML/Encoder/Incremental/EC11/EC11E15204A3.html") + (tags "rotary encoder") + (property "Reference" "SW9" + (at 2.8 -4.7 0) + (layer "F.SilkS") + (uuid "2d86e4e0-866f-408f-858f-96d5526d023f") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 7.5 10.4 0) + (layer "F.Fab") + (uuid "7ccbcc02-6d22-4069-afe9-e53124b16729") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "eef2883b-9f2e-4a2a-a376-25431f3d0edb") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "7f27e42f-d875-481e-95ee-11a9dc49fffd") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "d4f51181-3f6c-4304-9b56-002ccddea151") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "RotaryEncoder*Switch*") + (path "/1f3b652e-8c8b-49f0-b2ef-8372bc3bab18") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -0.3 -1.6) + (end 0.3 -1.6) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "48652801-3c79-4d8b-b0b4-41ab9f774762") + ) + (fp_line + (start 0 -1.3) + (end -0.3 -1.6) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "976d90ed-9cf9-4aeb-ba09-9c6048f4115a") + ) + (fp_line + (start 0.3 -1.6) + (end 0 -1.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "626ea92c-caed-4a69-918d-6fc73403cd19") + ) + (fp_line + (start 1.4 -3.4) + (end 1.4 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d6484d87-265c-4467-927f-01eafc17cf58") + ) + (fp_line + (start 5.5 -3.4) + (end 1.4 -3.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "259d3317-6f03-4e75-9cfb-4802050c1377") + ) + (fp_line + (start 5.5 8.4) + (end 1.4 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "7d023cc7-0a82-45c2-bb16-1fee04993749") + ) + (fp_line + (start 7 2.5) + (end 8 2.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "47141eac-9c97-4012-830a-1575e20145a9") + ) + (fp_line + (start 7.5 2) + (end 7.5 3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "2990fa3e-909b-47e6-a523-7c09272a9e83") + ) + (fp_line + (start 9.5 -3.4) + (end 13.6 -3.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0b0a6a08-efef-4965-b722-91aefce2d084") + ) + (fp_line + (start 13.6 -3.4) + (end 13.6 -1) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8325aa08-15b4-4af2-8bcb-ded52103bd58") + ) + (fp_line + (start 13.6 1.2) + (end 13.6 3.8) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4dcb6eb9-d0d4-4701-b558-5b11a1dfe2ec") + ) + (fp_line + (start 13.6 6) + (end 13.6 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "5b7438bf-91e6-4f50-9848-408b8807512d") + ) + (fp_line + (start 13.6 8.4) + (end 9.5 8.4) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "33cb1365-cd41-4da0-bde3-db2269482693") + ) + (fp_circle + (center 7.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (fill none) + (layer "F.SilkS") + (uuid "15f4f0fb-3329-4e57-9176-eb5b4cf7fc5c") + ) + (fp_line + (start -1.5 -4.6) + (end -1.5 9.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "86754928-2ecf-4b7f-8c57-6c305466231b") + ) + (fp_line + (start -1.5 -4.6) + (end 16 -4.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0b11bb71-1ac0-4b08-a7ec-ab4105bad21d") + ) + (fp_line + (start 16 9.6) + (end -1.5 9.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "77ad0108-d1fd-4e60-ab93-7610a2ea8d3b") + ) + (fp_line + (start 16 9.6) + (end 16 -4.6) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a358bc76-5935-4de5-90f1-6cdf62fadc49") + ) + (fp_line + (start 1.5 -2.2) + (end 2.5 -3.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "3adf693d-61a3-44a9-850a-6b4b8b03f201") + ) + (fp_line + (start 1.5 8.3) + (end 1.5 -2.2) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "478076ec-ce14-495a-ba38-650b9a002260") + ) + (fp_line + (start 2.5 -3.3) + (end 13.5 -3.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "1f59e833-8a4c-410e-876f-2965872dca8f") + ) + (fp_line + (start 4.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "86d5a0d5-1b1f-4226-8ad1-126bc6cb03c2") + ) + (fp_line + (start 7.5 -0.5) + (end 7.5 5.5) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "0455bf6f-3c40-4771-a1a2-d72fd15e9dbf") + ) + (fp_line + (start 13.5 -3.3) + (end 13.5 8.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "3cf80e99-57fa-4019-a0b9-8fd068b5e03c") + ) + (fp_line + (start 13.5 8.3) + (end 1.5 8.3) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.Fab") + (uuid "9d7f09fc-92dc-4b4a-ab12-45755c5164b5") + ) + (fp_circle + (center 7.5 2.5) + (end 10.5 2.5) + (stroke + (width 0.12) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "58d35c42-8c7d-422d-b23c-50b57435c44b") + ) + (fp_text user "${REFERENCE}" + (at 11.1 6.3 0) + (layer "F.Fab") + (uuid "1188831a-280c-4dc5-a3a8-0596f1974b36") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "A" thru_hole rect + (at 0 0) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 26 "EC11B") + (pinfunction "A") + (pintype "passive") + (uuid "2cc6f930-5e58-4e78-8a4a-524102973320") + ) + (pad "B" thru_hole circle + (at 0 5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 25 "EC11A") + (pinfunction "B") + (pintype "passive") + (uuid "e2fb3e85-f86a-4242-8083-fb9c9c8bfc68") + ) + (pad "C" thru_hole circle + (at 0 2.5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 4 "GND") + (pinfunction "C") + (pintype "passive") + (uuid "48ecb0c9-52c7-4093-8cc8-53ecaf2a5186") + ) + (pad "MP" thru_hole rect + (at 7.5 -3.1) + (size 3.2 2) + (drill oval 2.8 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "35f40f6d-92a5-48de-a1f6-22cf831b0774") + ) + (pad "MP" thru_hole rect + (at 7.5 8.1) + (size 3.2 2) + (drill oval 2.8 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (uuid "14f0413d-4c26-4828-9b09-f69d60f854a8") + ) + (pad "S1" thru_hole circle + (at 14.5 5) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 24 "RINPUT") + (pinfunction "S1") + (pintype "passive") + (uuid "90693088-711d-4091-a211-cd19244a443b") + ) + (pad "S2" thru_hole circle + (at 14.5 0) + (size 2 2) + (drill 1) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 23 "ROUTPUT") + (pinfunction "S2") + (pintype "passive") + (uuid "f96972ac-c1a0-4d33-bf19-b7cf1d3f0449") + ) + (model "${KICAD8_3DMODEL_DIR}/Rotary_Encoder.3dshapes/RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (layer "F.Cu") + (uuid "a62dc78c-b5c7-4ee5-91fd-68fb19a1ca39") + (at 61.77 102.235) + (descr "Cherry MX keyswitch, 1.00u, PCB mount, http://cherryamericas.com/wp-content/uploads/2014/12/mx_cat.pdf") + (tags "Cherry MX keyswitch 1.00u PCB") + (property "Reference" "SW2" + (at -2.54 -2.794 0) + (layer "F.SilkS") + (uuid "602b7923-9117-43d8-adb2-d94a633a124a") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at -2.54 12.954 0) + (layer "F.Fab") + (uuid "85da86e2-6dfe-43e5-870d-4ecdb5ea9287") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "eb7ca1df-c645-42fe-aee0-8a0aef1ed629") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "649e1c9c-23c3-4ee8-a7aa-30d38cd748ef") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "f33fc17c-b2ac-4441-8ca0-0c3b5ced0f62") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/c222d41d-1ea9-43a3-bed7-12de2759d5b3") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start -9.525 -1.905) + (end 4.445 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e60751c0-b047-434d-af20-64977884840f") + ) + (fp_line + (start -9.525 12.065) + (end -9.525 -1.905) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "274473a4-b50d-4368-a5ec-2dc51b08c08f") + ) + (fp_line + (start 4.445 -1.905) + (end 4.445 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e0514019-6636-4c68-b347-cf1b7afacd92") + ) + (fp_line + (start 4.445 12.065) + (end -9.525 12.065) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "43f5e4d0-360c-4f01-ba5e-d7c9ab7de6ec") + ) + (fp_line + (start -12.065 -4.445) + (end 6.985 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "99a6d5bb-a70b-4f64-81ca-256c938cc7b6") + ) + (fp_line + (start -12.065 14.605) + (end -12.065 -4.445) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "701b6fc8-128a-454a-876e-48e67691e704") + ) + (fp_line + (start 6.985 -4.445) + (end 6.985 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "3c06d162-5d79-4968-aeee-483cad1537e0") + ) + (fp_line + (start 6.985 14.605) + (end -12.065 14.605) + (stroke + (width 0.15) + (type solid) + ) + (layer "Dwgs.User") + (uuid "ff6b0c6a-12f8-4a9b-9e64-c933d3f9d28a") + ) + (fp_line + (start -9.14 -1.52) + (end 4.06 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "b3a1f6cd-4f39-4eb8-b63f-07cfa8096460") + ) + (fp_line + (start -9.14 11.68) + (end -9.14 -1.52) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "c6882147-0456-4cbb-bb31-c91ac19ac950") + ) + (fp_line + (start 4.06 -1.52) + (end 4.06 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "9de7d9d0-5521-4863-93fc-65ecfc27fe81") + ) + (fp_line + (start 4.06 11.68) + (end -9.14 11.68) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "3454e0c2-d134-45d7-b488-4384063d31e3") + ) + (fp_line + (start -8.89 -1.27) + (end 3.81 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6100ca0b-5e80-4e32-ae12-e947eaa98d76") + ) + (fp_line + (start -8.89 11.43) + (end -8.89 -1.27) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f207b9a0-80ad-438c-af2f-aad0041aade5") + ) + (fp_line + (start 3.81 -1.27) + (end 3.81 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c6b41cf6-0fb3-457e-95af-ad4d0cbc80e6") + ) + (fp_line + (start 3.81 11.43) + (end -8.89 11.43) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "17ee8657-178a-4cdb-8a87-2c9e0dcbff4a") + ) + (fp_text user "${REFERENCE}" + (at -2.54 -2.794 0) + (layer "F.Fab") + (uuid "b7675f49-05f7-4ba0-8a68-965a9bd6003e") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "" np_thru_hole circle + (at -7.62 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "08560537-02bd-48f2-aabd-50419dc6deb2") + ) + (pad "" np_thru_hole circle + (at -2.54 5.08) + (size 4 4) + (drill 4) + (layers "*.Cu" "*.Mask") + (uuid "80f88bba-24a8-4c57-83c3-665664749755") + ) + (pad "" np_thru_hole circle + (at 2.54 5.08) + (size 1.7 1.7) + (drill 1.7) + (layers "*.Cu" "*.Mask") + (uuid "bd54332b-d38c-44c0-8a87-46d1a1036077") + ) + (pad "1" thru_hole circle + (at 0 0) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 11 "col2") + (pinfunction "1") + (pintype "passive") + (uuid "9c17e9c4-e154-4347-a499-730b6c6d30ca") + ) + (pad "2" thru_hole circle + (at -6.35 2.54) + (size 2.2 2.2) + (drill 1.5) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 12 "Net-(D4-A)") + (pinfunction "2") + (pintype "passive") + (uuid "ba300425-46f6-4e1f-bf88-9389f30e3825") + ) + (model "${KICAD8_3DMODEL_DIR}/Button_Switch_Keyboard.3dshapes/SW_Cherry_MX_1.00u_PCB.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "a86c1ea8-17d2-430e-83e5-42723ee521ae") + (at 106.855 97.79) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D13" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "c32d5780-3a08-45e7-a499-f78aeb03d5c2") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "32293a99-46c6-486b-a8cf-a86e9747e695") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "bb6a57d3-ac34-4b3b-955f-380d8713a7c5") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c68adc7d-3a98-465f-86ad-dc059a9ea094") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "00e326e9-849b-443e-8a15-ab81d70b8a8a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/d7e2a864-424f-46fb-b7ff-7fca8ee5a421") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "505e3884-ffc3-477a-b1c0-bf133c3a3d59") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b5d08171-4429-4964-996d-82ae497f3288") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "bedc17ad-91d5-41f8-ba7d-bff5c83dff61") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "adf40ce7-a87b-4e8c-9edd-19cee3780780") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "7fc5ca83-3ce2-45c9-b8a3-b1c784a22782") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "c28b300e-5169-43e1-9630-715e607b719f") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "83e76327-7e60-4de1-b634-53a5123000ef") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "3a3f3de0-96ea-4902-aa48-1702f8c65a22") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f62c6528-a1ab-4b00-82b9-0473b4288461") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "0a98f79f-24a2-4ce2-af1d-4628fc79e3e6") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "a65ffefa-c6cd-4a7b-b08b-fc642df9b91c") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6a965fa2-5544-4295-ba3c-cebbc95d282e") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "7350ecc5-e0a2-4573-bd34-7efb724da986") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "11afeecb-5533-43e0-855e-fef75567db3d") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "ac01b331-fe93-47c0-83bc-2738d55168ec") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 31 "Net-(D13-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "30357cb7-d54a-46a0-93eb-9d74ba88c199") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "e07ec879-d73c-4bae-9e89-f13d5ae792ae") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 6 "Net-(D11-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "bd25cffb-0f15-456d-bb3d-3c556a452ccb") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "b92f4987-4141-4eb8-9ab9-c7be9d52a1a0") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "ab34cc27-e556-4f7e-8144-f739f4517739") + (at 49.725 92.185 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D6" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "9bb04749-9be5-4058-bc0d-2458a2f8826c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "103667b8-f553-473c-80e4-144b3a5e4446") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "3c1d2335-9e8c-4a39-88a5-1076e019ef5d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "22d92657-b435-4010-a755-6767fa01337d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "0bbe035b-e9c6-4fec-8ebb-f66213d9b9b3") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "b856ef5f-0193-4a3d-b721-f10a1ec8ebe3") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "48d4b7c1-23c6-48ad-9f19-8e7202bb785b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/9beb8400-f418-49d3-8d9b-ca8a6e3d55a9") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "c0881f15-5953-4eb5-b649-ee620bb66c33") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "8849c905-114e-4e6b-b5d2-47e0b0dab820") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "3fb5ff3a-9994-4898-82e9-666d8a1e0d27") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "0f1a08d8-8a4b-4fff-9cc6-724f102d7bdc") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6e4265bf-b3a4-4981-9020-d7db5ca47588") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "e525e8ce-9225-4ebb-b46a-9644dc1ef955") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "dd351a11-e981-498f-b70f-7875adc2569c") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "797de5d2-99ff-40ed-a144-9373dd798a20") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "afe37023-18ed-4230-81aa-de087dbdb0fb") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "fbd58fbb-5068-4534-b774-9df49ce106eb") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f16ae6ab-9efd-4f26-8d23-5e92b186f179") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "a40e9f0b-8128-4386-9299-5d7d1b486ccb") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "22a655f8-6909-4fe3-9a5d-aeedc8795541") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ee818a10-1067-41b4-81ce-8b5da3860ad8") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f13b65e1-a9b5-4033-b284-dfec47e72cfe") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d86d751c-b7f9-4bde-b0bf-b58f40625448") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1e6453b4-9e5d-4415-aa0b-332793104c07") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "ba44803e-8593-4a59-938a-7fc3c01aad0a") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "50244bd6-9d55-4938-b2e9-0d0e10148127") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "d2403f93-cad1-40ac-ae4d-bc24bc5d0cab") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "3e6055f2-7512-41bf-94aa-f3170fa63f4c") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f285cc42-f6f8-4288-b474-e4ea887838c5") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "de3147d3-d110-41c5-b30f-96095b694674") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "5e05e7a6-629c-4bd2-acca-e878c6d669ff") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "99efa540-027f-49e2-a212-1bcfefd95a59") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "K") + (pintype "passive") + (uuid "5b6b9450-b0ce-4a38-b5e0-ee436bc55b04") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 15 "Net-(D6-A)") + (pinfunction "A") + (pintype "passive") + (uuid "59524adc-067b-4add-9c5c-430c4687d71c") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (layer "F.Cu") + (uuid "bcea09c0-f550-4317-96fc-95fd84eedb4c") + (at 40.205 68.205) + (property "Reference" "U1" + (at -8.5 -12 0) + (unlocked yes) + (layer "F.SilkS") + (uuid "2d2438f0-fa08-4953-aa03-635d3e756e7d") + (effects + (font + (size 0.635 0.635) + (thickness 0.1016) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (uuid "1a9dbdf5-f73d-4b7d-963b-2f65daefe5fb") + (effects + (font + (size 0.635 0.635) + (thickness 0.1016) + ) + ) + ) + (property "Footprint" "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "543e5114-bd24-4c2d-9554-29a3857a0216") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c217a96f-64c2-4b7a-b323-84551cf3f9d7") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "1f5e0e17-eb08-4b24-8525-74f7f79c9ecb") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (path "/35a068e0-5f88-40dc-ba2a-cf656c23bdce") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -8.89 8.509) + (end -8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "fda4fb3c-64fc-40c2-afe2-dde6be344abd") + ) + (fp_line + (start -6.985 10.414) + (end 6.985 10.414) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "d54257fd-4672-4599-a34d-6d4a925412e7") + ) + (fp_line + (start -4.495 -10.541) + (end -4.491272 -11.451272) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "0977885a-147f-448b-824c-91b6c6cca012") + ) + (fp_line + (start -3.991272 -11.951) + (end 4.004 -11.951) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "f3e61c13-a212-4235-94b4-62feef731848") + ) + (fp_line + (start 4.504 -11.451) + (end 4.504 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "62022e13-cd81-4194-9f7c-92818d586bc8") + ) + (fp_line + (start 6.985 -10.541) + (end -6.985 -10.541) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.SilkS") + (uuid "e1bc6c08-703b-4a62-8974-2955f97783d5") + ) + (fp_line + (start 6.985 -10.541) + (end -6.985 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "6706b7a9-0aa6-4c66-9135-8ed273384558") + ) + (fp_line + (start 8.89 8.509) + (end 8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "3058988f-12d5-4aea-92fc-c6ad808ae747") + ) + (fp_arc + (start -8.89 -8.636) + (mid -8.332038 -9.983038) + (end -6.985 -10.541) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "0d89b76d-a63a-4950-a34b-4f69e606afdc") + ) + (fp_arc + (start -6.985 10.414) + (mid -8.332038 9.856038) + (end -8.89 8.509) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "6127b326-769c-4475-ba1d-c9f288bb9a8c") + ) + (fp_arc + (start -4.491272 -11.451272) + (mid -4.344724 -11.804644) + (end -3.991272 -11.951) + (stroke + (width 0.127) + (type default) + ) + (layer "F.SilkS") + (uuid "659dfe95-8125-4cc8-aa68-0bd3fcfbf688") + ) + (fp_arc + (start 4.004 -11.951) + (mid 4.357553 -11.804553) + (end 4.504 -11.451) + (stroke + (width 0.127) + (type default) + ) + (layer "F.SilkS") + (uuid "b37081fe-f88e-478b-9330-c5cd2b8e4aa6") + ) + (fp_arc + (start 6.985 -10.541) + (mid 8.332038 -9.983038) + (end 8.89 -8.636) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "d8430691-46f8-4e10-b64b-50ee101005c1") + ) + (fp_arc + (start 8.89 8.509) + (mid 8.332038 9.856038) + (end 6.985 10.414) + (stroke + (width 0.127) + (type solid) + ) + (layer "F.SilkS") + (uuid "4c320d84-204a-4793-8f9d-18c35299621a") + ) + (fp_circle + (center -8.95 -10.3) + (end -8.95 -10.554) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.SilkS") + (uuid "49376817-f454-4316-a36c-8cd4d7d19fb0") + ) + (fp_circle + (center -7.807 -9.42) + (end -7.807 -9.674) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.SilkS") + (uuid "bedccba5-e5b0-48f1-bdd1-87e997153417") + ) + (fp_rect + (start -8.9 -10.55) + (end 8.9 10.425) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "F.CrtYd") + (uuid "4468ecb7-906a-4ccc-a617-350cc5cc42c1") + ) + (fp_rect + (start -8.9 -10.55) + (end 8.9 10.425) + (stroke + (width 0.1) + (type default) + ) + (fill none) + (layer "F.Fab") + (uuid "1c3ad90e-9ebc-4b79-930f-22843cc64b2e") + ) + (fp_circle + (center -7.804 -9.426) + (end -7.804 -9.68) + (stroke + (width 0.5) + (type solid) + ) + (fill solid) + (layer "F.Fab") + (uuid "cfed35be-ab2d-4ca9-a8d0-e24cbf03154e") + ) + (pad "1" smd roundrect + (at -8.455 -7.62 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 18 "col4") + (pinfunction "GPIO26/ADC0/A0") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "4aae30f9-e9bf-4813-90bc-9f1709f9ec56") + ) + (pad "1" thru_hole circle + (at -7.62 -7.62 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 18 "col4") + (pinfunction "GPIO26/ADC0/A0") + (pintype "passive") + (uuid "943a55d1-fae5-405c-a9a9-ec0ac576b845") + ) + (pad "2" smd roundrect + (at -8.455 -5.08 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 14 "col3") + (pinfunction "GPIO27/ADC1/A1") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "57dcc893-8a49-4f6b-a44e-a49a331d0814") + ) + (pad "2" thru_hole circle + (at -7.62 -5.08 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 14 "col3") + (pinfunction "GPIO27/ADC1/A1") + (pintype "passive") + (uuid "88e648e6-229e-409a-a345-723b4946beec") + ) + (pad "3" smd roundrect + (at -8.455 -2.54 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 11 "col2") + (pinfunction "GPIO28/ADC2/A2") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "5f2b2e28-8e28-4e4e-9765-ee5af67fba6b") + ) + (pad "3" thru_hole circle + (at -7.62 -2.54 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 11 "col2") + (pinfunction "GPIO28/ADC2/A2") + (pintype "passive") + (uuid "b7b214de-7e1b-4e08-a217-6495fddb923c") + ) + (pad "4" smd roundrect + (at -8.455 0 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 24 "RINPUT") + (pinfunction "GPIO29/ADC3/A3") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "d616a121-f39e-4dde-8f67-ab55d7a1773a") + ) + (pad "4" thru_hole circle + (at -7.62 0 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 24 "RINPUT") + (pinfunction "GPIO29/ADC3/A3") + (pintype "passive") + (uuid "5ad2f4bc-48db-4b1d-95bc-bd19e405c91a") + ) + (pad "5" smd roundrect + (at -8.455 2.54 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 7 "SDA") + (pinfunction "GPIO6/SDA") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "113d7b97-bcfe-4ed5-ab76-5b1714714cc0") + ) + (pad "5" thru_hole circle + (at -7.62 2.54 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 7 "SDA") + (pinfunction "GPIO6/SDA") + (pintype "passive") + (uuid "d96c399f-86fe-4a54-a775-0758f3ab98d1") + ) + (pad "6" smd roundrect + (at -8.455 5.08 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 8 "SCL") + (pinfunction "GPIO7/SCL") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "7bd956bf-b3d7-4bff-8e42-38be29addd24") + ) + (pad "6" thru_hole circle + (at -7.62 5.08 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 8 "SCL") + (pinfunction "GPIO7/SCL") + (pintype "passive") + (uuid "19aac008-b49b-48b0-b821-5fb50d800e47") + ) + (pad "7" smd roundrect + (at -8.455 7.62 180) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 21 "row2") + (pinfunction "GPIO0/TX") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "1d95f920-ed7f-477d-9e64-bc71e5a2e474") + ) + (pad "7" thru_hole circle + (at -7.62 7.62 180) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 21 "row2") + (pinfunction "GPIO0/TX") + (pintype "passive") + (uuid "ba22484d-3689-45f8-8804-500f0548d15b") + ) + (pad "8" thru_hole circle + (at 7.62 7.62) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 26 "EC11B") + (pinfunction "GPIO1/RX") + (pintype "passive") + (uuid "2168fc10-9828-4174-bfcc-a74c19695618") + ) + (pad "8" smd roundrect + (at 8.455 7.62) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 26 "EC11B") + (pinfunction "GPIO1/RX") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "e600158e-9af4-4c3f-984e-4d89b853a1ce") + ) + (pad "9" thru_hole circle + (at 7.62 5.08) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 25 "EC11A") + (pinfunction "GPIO2/SCK") + (pintype "passive") + (uuid "6a3c37c1-e6b4-49a5-998c-aa6254b3b5bb") + ) + (pad "9" smd roundrect + (at 8.455 5.08) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 25 "EC11A") + (pinfunction "GPIO2/SCK") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "3a1240d9-d607-413a-acac-007ea9b45652") + ) + (pad "10" thru_hole circle + (at 7.62 2.54) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "GPIO4/MISO") + (pintype "passive") + (uuid "0d572ebe-cd7c-4601-98e9-e923fefcf210") + ) + (pad "10" smd roundrect + (at 8.455 2.54) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 22 "row1") + (pinfunction "GPIO4/MISO") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "d774ef5d-a71a-4c4f-a8b3-5bb0f62d5cef") + ) + (pad "11" thru_hole circle + (at 7.62 0) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 2 "NEOPIXEL") + (pinfunction "GPIO3/MOSI") + (pintype "passive") + (uuid "5dd39d58-8764-4d0c-9294-64ec896b7cbe") + ) + (pad "11" smd roundrect + (at 8.455 0) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 2 "NEOPIXEL") + (pinfunction "GPIO3/MOSI") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "1133efc5-7060-4309-a890-04cd6ffe8f70") + ) + (pad "12" thru_hole circle + (at 7.62 -2.54) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 9 "3V3") + (pinfunction "3V3") + (pintype "passive") + (uuid "5b3e6e35-8ab3-4e67-b227-5ae1cd02543a") + ) + (pad "12" smd roundrect + (at 8.455 -2.54) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 9 "3V3") + (pinfunction "3V3") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "a4f6c349-c649-44c0-b361-3c80db9d9eb4") + ) + (pad "13" thru_hole circle + (at 7.62 -5.08) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 4 "GND") + (pinfunction "GND") + (pintype "passive") + (uuid "9116ea51-4e7b-474f-bf75-06c390e46089") + ) + (pad "13" smd roundrect + (at 8.455 -5.08) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 4 "GND") + (pinfunction "GND") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "7f310c9f-0472-4b43-85fe-9028b8ed6fac") + ) + (pad "14" thru_hole circle + (at 7.62 -7.62) + (size 1.524 1.524) + (drill 0.889) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 1 "+5V") + (pinfunction "VBUS") + (pintype "passive") + (uuid "1bbe5454-2bb9-4d2b-b86b-3e708bd01d7a") + ) + (pad "14" smd roundrect + (at 8.455 -7.62) + (size 2.432 1.524) + (layers "F.Cu" "F.Mask") + (roundrect_rratio 0.1) + (net 1 "+5V") + (pinfunction "VBUS") + (pintype "passive") + (thermal_bridge_angle 45) + (uuid "f5a639cf-860f-420f-8b13-dd2797379b73") + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-nRF52840 v15.step" + (hide yes) + (offset + (xyz -1.778 -6.096 0.381) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeeduino XIAO SAMD21 v4.step" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO RP2040 v26.step" + (hide yes) + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 90) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/Seeed Studio XIAO-ESP32-C3.step" + (hide yes) + (offset + (xyz -1.7018 -6.096 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + (model "${AMZPATH}/3dmodels/AMz3D.3dshapes/XIAO-ESP32S3 v2.step" + (hide yes) + (offset + (xyz -1.778 -6.1722 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz -90 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "bd1ff2b4-5a98-40b9-8ae9-86cf352dd3f8") + (at 106.7675 116.84) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D14" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "3c625ec1-55c7-4be2-9091-b613264b09bf") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "a2300933-1d6a-439e-967d-e257ab9af1e7") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "6de200d2-d27e-488c-abd2-b281014641ed") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c36aa5a9-bc52-4cb2-8a38-a6c8bb22f81f") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "62e0f88d-eaf1-4f7b-91ee-fdc9c996625b") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/d4dad580-cf91-4aa0-9cca-6e9db2b71eab") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "6caf45c6-5010-4f85-a1ca-5fec55e06118") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b0836549-3757-4fc0-8c86-9ba8c6948c0d") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "d4d7497d-246d-4f51-b420-1a785e0dd6f8") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "90d1b589-e662-45f7-bea1-4c89996b7460") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "6dfccb0f-e56b-42b4-91cb-287afc7e9e48") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "21c8c6b0-6812-44c0-9b0b-79c389ab5298") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "228dae09-c387-4947-a659-debf4d77a073") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "342df1a6-73fe-481b-8e45-a96e85acfda5") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "686c340a-a78a-475d-9619-8a6bafb1026b") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "06472461-0716-477d-9d77-d75b1ccc8083") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "de3de138-10ff-4641-8d77-040bee9175c4") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "359e6e8c-0e25-47ef-a531-fffe2dd2e535") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "1c98cb9d-0145-483c-9319-cc287d773fd3") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "18e9a659-b27a-4dd4-919c-da3c52229a0b") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "ea8284f3-7172-4766-827b-5d3fb642b7ef") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 27 "Net-(D14-DOUT)") + (pinfunction "DOUT") + (pintype "output") + (uuid "718fb65f-41c5-442f-8fe0-5a5a5448e88f") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "e7d1aacb-a7ad-4e4d-990e-97f83835a225") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 31 "Net-(D13-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "893a3a82-144a-4674-aaf8-ff62198192e9") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "085451bc-28fd-47cc-811f-558da07c19b0") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (layer "F.Cu") + (uuid "e73cacef-550c-49e5-92c8-7d957733f060") + (at 59.23 97.79) + (descr "3.5mm x 3.5mm PLCC4 Addressable RGB LED NeoPixel, https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf") + (tags "LED RGB NeoPixel Mini PLCC-4 3535") + (property "Reference" "D2" + (at 0 -2.75 0) + (layer "F.SilkS") + (uuid "f7be8e45-02f7-47cb-982e-587295b87c10") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 0 3.25 0) + (layer "F.Fab") + (uuid "a41ecc9f-9228-43a0-857f-5adce95410e7") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "5b97a0b5-d13a-458d-ad33-b87601a7ee6a") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "c39b4e28-8027-4cd0-b604-23cb635eb61d") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "f8b79a82-9a1b-4eea-8dae-5ed704e5bc70") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*") + (path "/496010bf-b03a-4ebc-b0fa-a1866f535ae8") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr smd) + (fp_line + (start -2.95 -1.95) + (end 2.95 -1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "80313d67-23ec-45ac-b03f-852d553b843d") + ) + (fp_line + (start -2.95 1.95) + (end 2.95 1.95) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "9ef7819e-72e4-444f-b023-1610b0b43558") + ) + (fp_line + (start 2.95 1.95) + (end 2.95 0.875) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "317e6b3f-7217-4e62-90a7-7c3524e3b589") + ) + (fp_line + (start -2.8 -2) + (end -2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "090db7b8-8bc6-4102-9b37-42807b8eba13") + ) + (fp_line + (start -2.8 2) + (end 2.8 2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "870d2fed-3303-45a7-b382-d0caaf6da70b") + ) + (fp_line + (start 2.8 -2) + (end -2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "0c625fb8-7c45-4b5e-970a-37726f9f6a75") + ) + (fp_line + (start 2.8 2) + (end 2.8 -2) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "51f69623-fc7c-4f76-8078-678544429bf1") + ) + (fp_line + (start -1.75 -1.75) + (end -1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f8072307-9efb-4fc2-b753-89011d4c1ba8") + ) + (fp_line + (start -1.75 1.75) + (end 1.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "cbfac0a2-00af-4f45-9bb5-27d4b737dcae") + ) + (fp_line + (start 1.75 -1.75) + (end -1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "1128bed8-3451-4e57-a083-a5876aba50cf") + ) + (fp_line + (start 1.75 0.75) + (end 0.75 1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c8f723f5-7824-4d73-ac24-40ed28067b59") + ) + (fp_line + (start 1.75 1.75) + (end 1.75 -1.75) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "9e054f6a-d239-4ab7-be55-7c51dba15c32") + ) + (fp_circle + (center 0 0) + (end 0 -1.5) + (stroke + (width 0.1) + (type solid) + ) + (fill none) + (layer "F.Fab") + (uuid "71ab03f7-26c7-415b-b6ce-9db5b96abba6") + ) + (fp_text user "1" + (at -3.5 -0.875 0) + (layer "F.SilkS") + (uuid "feb1c4d5-19cb-4c7f-b13d-3f01d177a26c") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 0 0 0) + (layer "F.Fab") + (uuid "75e4751b-8a2d-49cc-9aa3-ec35c8f3a085") + (effects + (font + (size 0.5 0.5) + (thickness 0.1) + ) + ) + ) + (pad "1" smd rect + (at -1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 5 "Net-(D11-DIN)") + (pinfunction "DOUT") + (pintype "output") + (uuid "c6db48b1-1ab7-483f-9116-3f2c0f85986d") + ) + (pad "2" smd rect + (at -1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 4 "GND") + (pinfunction "VSS") + (pintype "power_in") + (uuid "cb390840-0ee8-48f9-9804-142a71222136") + ) + (pad "3" smd rect + (at 1.75 0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 3 "Net-(D1-DOUT)") + (pinfunction "DIN") + (pintype "input") + (uuid "62a2c179-a39a-4cb3-97b8-18d076155008") + ) + (pad "4" smd rect + (at 1.75 -0.875) + (size 1.6 0.85) + (layers "F.Cu" "F.Paste" "F.Mask") + (net 1 "+5V") + (pinfunction "VDD") + (pintype "power_in") + (uuid "5a7e51a2-7e84-4623-9b9a-d810ae1abf0a") + ) + (model "${KICAD8_3DMODEL_DIR}/LED_SMD.3dshapes/LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (footprint "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (layer "F.Cu") + (uuid "ec74c34a-e51a-4c28-9d1a-f2c1fd37d6ed") + (at 68.705 92.275 90) + (descr "Diode, DO-35_SOD27 series, Axial, Horizontal, pin pitch=7.62mm, , length*diameter=4*2mm^2, , http://www.diodes.com/_files/packages/DO-35.pdf") + (tags "Diode DO-35_SOD27 series Axial Horizontal pin pitch 7.62mm length 4mm diameter 2mm") + (property "Reference" "D7" + (at 3.81 -2.12 90) + (layer "F.SilkS") + (uuid "520e982e-5820-46a3-9536-ecadcc0827fe") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Value" "Diode" + (at 3.81 2.12 90) + (layer "F.Fab") + (uuid "f3124c54-7929-445d-ac9b-aa940cd4dc93") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "55ef0880-f2d1-4b2c-804e-5ec103c70295") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Datasheet" "" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "4f959e3e-5b57-4651-85ff-7b8421e71cce") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "85e917c2-4b2f-42ce-8ffe-1182d9ea03e0") + (effects + (font + (size 1.27 1.27) + (thickness 0.15) + ) + ) + ) + (property "Sim.Device" "D" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "09653017-6e21-4f1f-ae6c-c743bfee448d") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 90) + (unlocked yes) + (layer "F.Fab") + (hide yes) + (uuid "15ac0c1f-f61c-4993-984e-5275e7d4d314") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (property ki_fp_filters "D*DO?35*") + (path "/ff19517d-941e-403e-91a1-6d1f376aed1a") + (sheetname "Root") + (sheetfile "hackpad.kicad_sch") + (attr through_hole) + (fp_line + (start 5.93 -1.12) + (end 1.69 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "38c042c0-4948-4e53-b7bb-25a0f03d9ca3") + ) + (fp_line + (start 2.53 -1.12) + (end 2.53 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f24a1fd1-fb39-4442-9e95-f8f11459311e") + ) + (fp_line + (start 2.41 -1.12) + (end 2.41 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "ff0d261d-26b5-413c-99a5-5efb0d91adbe") + ) + (fp_line + (start 2.29 -1.12) + (end 2.29 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "f7a2e2cb-51a4-4539-8bb0-2e58c6dbe409") + ) + (fp_line + (start 1.69 -1.12) + (end 1.69 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cd9d9acf-832d-48d7-91d7-9ec55292730d") + ) + (fp_line + (start 6.58 0) + (end 5.93 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "4a7a3cad-177a-445b-99b2-27bb8d34d71c") + ) + (fp_line + (start 1.04 0) + (end 1.69 0) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "b4f1c57d-49e7-4cda-9175-f3e02c8227b6") + ) + (fp_line + (start 5.93 1.12) + (end 5.93 -1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "cad2a197-fd17-472d-9047-39608fd674f4") + ) + (fp_line + (start 1.69 1.12) + (end 5.93 1.12) + (stroke + (width 0.12) + (type solid) + ) + (layer "F.SilkS") + (uuid "30b01b46-da5b-44b8-a227-d2c61dd3f35e") + ) + (fp_line + (start 8.67 -1.25) + (end -1.05 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "bbc0d621-ff4c-41ff-8376-b5533d187b08") + ) + (fp_line + (start -1.05 -1.25) + (end -1.05 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f6405d2c-3927-4541-9400-d0f2ef168dd8") + ) + (fp_line + (start 8.67 1.25) + (end 8.67 -1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "f8956552-5f7a-40be-b4c9-08c334980fb5") + ) + (fp_line + (start -1.05 1.25) + (end 8.67 1.25) + (stroke + (width 0.05) + (type solid) + ) + (layer "F.CrtYd") + (uuid "ee8bce21-dcea-4444-93c8-4af19223f833") + ) + (fp_line + (start 5.81 -1) + (end 1.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "c7957cd1-8399-49a3-90a4-f21bacd07247") + ) + (fp_line + (start 2.51 -1) + (end 2.51 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "79f6cff1-5b2d-4151-aa88-e8f02206739f") + ) + (fp_line + (start 2.41 -1) + (end 2.41 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "19425f79-6826-4e1c-85c6-4aeacb7b2f11") + ) + (fp_line + (start 2.31 -1) + (end 2.31 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "8367fd57-8ce4-488a-b12e-adb76f4a9695") + ) + (fp_line + (start 1.81 -1) + (end 1.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "71c71e77-7c06-4364-9ded-a30366fa6ab8") + ) + (fp_line + (start 7.62 0) + (end 5.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f3413446-4554-45ac-bb7f-dec4086bc09c") + ) + (fp_line + (start 0 0) + (end 1.81 0) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "41d561ab-33a1-4a42-ab78-b6516cc8bce9") + ) + (fp_line + (start 5.81 1) + (end 5.81 -1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "6de31880-dc7a-4f5d-a7b4-5dcb8a6271a8") + ) + (fp_line + (start 1.81 1) + (end 5.81 1) + (stroke + (width 0.1) + (type solid) + ) + (layer "F.Fab") + (uuid "f142cc1c-83b7-403e-ab79-1c3c738e0cbf") + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.SilkS") + (uuid "3b2038bc-908d-4a6c-bde7-2a2548065ad1") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (fp_text user "${REFERENCE}" + (at 4.11 0 90) + (layer "F.Fab") + (uuid "c75811a3-b822-42e8-b8dd-ab7264fd314d") + (effects + (font + (size 0.8 0.8) + (thickness 0.12) + ) + ) + ) + (fp_text user "K" + (at 0 -1.8 90) + (layer "F.Fab") + (uuid "f6d3f2b4-6e7d-4b81-8c00-dce94db1dbf4") + (effects + (font + (size 1 1) + (thickness 0.15) + ) + ) + ) + (pad "1" thru_hole rect + (at 0 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 22 "row1") + (pinfunction "K") + (pintype "passive") + (uuid "4823e432-560f-4f66-98f6-adf7a0e73207") + ) + (pad "2" thru_hole oval + (at 7.62 0 90) + (size 1.6 1.6) + (drill 0.8) + (layers "*.Cu" "*.Mask") + (remove_unused_layers no) + (net 16 "Net-(D7-A)") + (pinfunction "A") + (pintype "passive") + (uuid "a4ac56c6-7d7d-4dd6-b103-98b4a4fdddc9") + ) + (model "${KICAD8_3DMODEL_DIR}/Diode_THT.3dshapes/D_DO-35_SOD27_P7.62mm_Horizontal.wrl" + (offset + (xyz 0 0 0) + ) + (scale + (xyz 1 1 1) + ) + (rotate + (xyz 0 0 0) + ) + ) + ) + (gr_rect + (start 26.5425 52.395) + (end 120.8625 121.255) + (stroke + (width 0.05) + (type default) + ) + (fill none) + (layer "Edge.Cuts") + (uuid "12432d92-3880-4a43-b0b3-d5fbd9b9bf0c") + ) + (dimension + (type aligned) + (layer "F.Cu") + (uuid "4a63cd72-c687-4d66-986b-5d76a4c7c5e4") + (pts + (xy 120.545 52.395) (xy 26.225 52.395) + ) + (height 11.14) + (gr_text "94.3200 mm" + (at 73.385 39.455 0) + (layer "F.Cu") + (uuid "4a63cd72-c687-4d66-986b-5d76a4c7c5e4") + (effects + (font + (size 1.5 1.5) + (thickness 0.3) + ) + ) + ) + (format + (prefix "") + (suffix "") + (units 3) + (units_format 1) + (precision 4) + ) + (style + (thickness 0.2) + (arrow_length 1.27) + (text_position_mode 0) + (extension_height 0.58642) + (extension_offset 0.5) keep_text_aligned) + ) + (dimension + (type aligned) + (layer "F.SilkS") + (uuid "67793f50-ab0a-4b05-992b-6a6410d8dc82") + (pts + (xy 120.8625 121.255) (xy 120.545 52.395) + ) + (height 10.19288) + (gr_text "68.8607 mm" + (at 131.99651 86.772931 -89.73582223) + (layer "F.SilkS") + (uuid "67793f50-ab0a-4b05-992b-6a6410d8dc82") + (effects + (font + (size 1 1) + (thickness 0.1) + ) + ) + ) + (format + (prefix "") + (suffix "") + (units 3) + (units_format 1) + (precision 4) + ) + (style + (thickness 0.1) + (arrow_length 1.27) + (text_position_mode 0) + (extension_height 0.58642) + (extension_offset 0.5) keep_text_aligned) + ) + (segment + (start 80.755 115.24) + (end 107.7925 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "0a014e8e-6993-4a5f-95e4-6565db0ea12d") + ) + (segment + (start 63.719999 95.79) + (end 63.469999 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "0a9002ab-1f43-46f3-872a-dcb20c109679") + ) + (segment + (start 41.93 96.85) + (end 41.93 90.96) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "151b3121-5cee-4f46-8e4a-442a84249dec") + ) + (segment + (start 44.3425 97.79) + (end 43.4025 96.85) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "19cf8406-ea06-45c4-885c-e338fe6f8368") + ) + (segment + (start 63.525 115.24) + (end 79.305 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "1d07030e-a890-4ee6-80d1-508f7caf6fd5") + ) + (segment + (start 60.255 115.24) + (end 60.98 115.965) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "26b6ac09-e44c-41b6-a8f0-1a39ebdcdf4b") + ) + (segment + (start 62.2625 95.79) + (end 62.105 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "31e56e81-7445-423d-a9fb-fc3dd6d117dd") + ) + (segment + (start 79.305 115.24) + (end 80.03 115.965) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "3a31bb2c-b99f-4398-be1d-05d1ff081850") + ) + (segment + (start 108.605 96.915) + (end 107.48 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "5785d62e-77ab-42ad-8b43-93348829cbe8") + ) + (segment + (start 62.8 115.965) + (end 63.525 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "5aa86cd3-b634-4775-b30c-7c4b80e8f410") + ) + (segment + (start 42.1425 113.955) + (end 42.1425 115.965) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "5e8162bb-882d-4d72-a575-e0ddf9ad6d94") + ) + (segment + (start 46.7625 95.79) + (end 45.5425 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "5faa9de8-0dce-4793-a557-61b45ba95833") + ) + (segment + (start 59.855 95.79) + (end 46.7625 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "6753fe75-61ed-4afd-bb2e-6f7de3e428e2") + ) + (segment + (start 60.98 96.915) + (end 59.855 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "6784d8e9-82fc-41f2-9c35-708c18a6a9d4") + ) + (segment + (start 42.1425 113.66) + (end 43.9675 111.835) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "6c9375a4-7aa5-46b4-a956-bf3976503414") + ) + (segment + (start 80.03 115.965) + (end 80.755 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "6dd97f2b-eca2-4d71-975b-8dfea0bf5a78") + ) + (segment + (start 43.4025 96.85) + (end 41.93 96.85) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "72a63643-4c33-4603-bf01-aa5bb627ef4c") + ) + (segment + (start 42.8675 115.24) + (end 60.255 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "7dd43eeb-ce61-48ed-a95b-9ac52e356a7e") + ) + (segment + (start 107.48 95.79) + (end 83.0425 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "7ea6117f-7428-4c5e-b2bd-3e443d4ac70f") + ) + (segment + (start 62.105 95.79) + (end 60.98 96.915) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "82ee608f-2029-44d8-9a2f-cc28120d12fd") + ) + (segment + (start 81.155 95.79) + (end 80.03 96.915) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "9a253946-18bb-4b56-92fb-e694629f7199") + ) + (segment + (start 41.93 90.96) + (end 43.669707 89.220293) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "9b34bfef-cab4-4e47-bab2-dc6f9b148163") + ) + (segment + (start 42.1425 115.965) + (end 42.8675 115.24) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "9ccd9193-10af-4331-a871-a2e79c7758ac") + ) + (segment + (start 42.1425 113.955) + (end 42.1425 113.66) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "b1c7cbc0-3fe7-46d7-989b-655a3d415ccc") + ) + (segment + (start 80.03 96.915) + (end 78.905 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "c0890c40-b641-430c-9485-6d54699ec8f2") + ) + (segment + (start 44.3425 95.79) + (end 43.2825 96.85) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "d0fcb22f-490b-421c-8225-58ee262a5efa") + ) + (segment + (start 60.98 115.965) + (end 62.8 115.965) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "d1affde8-57e3-4bdc-8304-9af7b77c45ab") + ) + (segment + (start 43.2825 96.85) + (end 41.93 96.85) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "d653f8e9-d073-480f-83fa-a565f69bb09e") + ) + (segment + (start 81.525 95.79) + (end 81.155 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "da20143f-1873-4fdd-8e0b-7d0c592a2080") + ) + (segment + (start 78.905 95.79) + (end 63.719999 95.79) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "dc76ee6b-f2ec-4b4a-8e87-c9fb51dc9c20") + ) + (segment + (start 43.9675 111.835) + (end 44.0125 111.835) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "e051a006-60d0-4fb2-b3fb-03c1b52d3cf9") + ) + (segment + (start 107.7925 115.24) + (end 108.5175 115.965) + (width 0.2) + (layer "F.Cu") + (net 1) + (uuid "fc66aed4-747b-42ff-8a64-e4e30722e7a9") + ) + (via + (at 44.0125 111.835) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "1aa44adc-9203-48e3-9d8f-54d7873c3a18") + ) + (via + (at 81.525 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "1be82906-555e-42bb-953e-91f2592683f8") + ) + (via + (at 44.3425 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "23655249-c8cb-4499-9c0e-99c00d1fbfea") + ) + (via + (at 45.5425 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "52ebfb7f-2254-4c14-9e09-20d1460562c1") + ) + (via + (at 63.469999 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "93bf7f1e-a77a-41da-bf75-9d7c6a2f9261") + ) + (via + (at 82.725 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "ae5dea61-053a-4c32-b838-c370546f65f5") + ) + (via + (at 62.2625 95.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "b12d7578-a553-4549-95a1-3d86a7c45289") + ) + (via + (at 43.669707 89.220293) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "edb58c86-8f13-4a80-8725-56e7055550b1") + ) + (via + (at 44.3425 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 1) + (uuid "f572d4d6-9c2b-4847-945f-d906a9536413") + ) + (segment + (start 44.0125 111.835) + (end 44.0125 102.922399) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "1b8bbf55-d010-4e07-ab18-e98c28ce8fdc") + ) + (segment + (start 44.625 87.202944) + (end 44.625 63.785) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "34fc1cd5-e254-4c30-9b59-16bbe54f95ef") + ) + (segment + (start 45.5425 95.79) + (end 44.3425 95.79) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "4250c822-5ea1-4f7e-b909-c9a38a91ac5a") + ) + (segment + (start 44.625 63.785) + (end 47.825 60.585) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "648d53ec-dd44-4dc1-a5f7-e0f7b21bde1f") + ) + (segment + (start 43.669707 89.220293) + (end 43.669707 88.158237) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "69584d53-d7d5-4fd3-8c5a-806ab75fc56f") + ) + (segment + (start 82.725 95.79) + (end 81.525 95.79) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "996f6f97-9d21-4ca8-9cba-a7451fe93f7d") + ) + (segment + (start 63.469999 95.79) + (end 62.2625 95.79) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "a63bd1c1-7f06-4e62-8852-f70079f14814") + ) + (segment + (start 44.3425 102.592399) + (end 44.3425 97.79) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "ac8f3d13-cc8d-4b53-b1e7-2140180a956d") + ) + (segment + (start 43.669707 88.158237) + (end 44.625 87.202944) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "e70cfa87-ee2c-4b55-b050-ecc917ee02e9") + ) + (segment + (start 44.0125 102.922399) + (end 44.3425 102.592399) + (width 0.2) + (layer "B.Cu") + (net 1) + (uuid "f7c0866b-69df-4556-95ec-b441d82d9659") + ) + (segment + (start 40.83 97.5) + (end 40.83 93.5275) + (width 0.2) + (layer "F.Cu") + (net 2) + (uuid "0d5ebdc7-07b9-45df-997b-bfa85cd904e5") + ) + (segment + (start 51.185 68.205) + (end 51.325 68.345) + (width 0.2) + (layer "F.Cu") + (net 2) + (uuid "1f5c439c-90ed-4dc3-9e37-68e1f80707ac") + ) + (segment + (start 40.83 93.5275) + (end 41.33 93.0275) + (width 0.2) + (layer "F.Cu") + (net 2) + (uuid "43d96146-646d-407b-83aa-092b8eae9dcd") + ) + (segment + (start 47.825 68.205) + (end 51.185 68.205) + (width 0.2) + (layer "F.Cu") + (net 2) + (uuid "b4a599cf-1687-454f-a267-880891b55567") + ) + (segment + (start 41.93 98.6) + (end 40.83 97.5) + (width 0.2) + (layer "F.Cu") + (net 2) + (uuid "f8dd1fec-0978-4f76-b534-67fcb8da7322") + ) + (via + (at 41.33 93.0275) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 2) + (uuid "45cf245d-e0f5-44aa-90d0-d56584f05274") + ) + (via + (at 51.325 68.345) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 2) + (uuid "71618f1b-2cfd-49fd-a627-6ed0ec094444") + ) + (segment + (start 44.625 93.0275) + (end 47.81 89.8425) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "3022487e-9b0c-4a20-b2e9-289b989c4a9c") + ) + (segment + (start 51.435372 68.455372) + (end 51.325 68.345) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "4e494af8-44f6-4179-a30b-c87696e11b7d") + ) + (segment + (start 47.735 81.115) + (end 47.81 81.115) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "602ed6fb-c305-4fdc-b803-0808673bbfab") + ) + (segment + (start 51.435372 77.489628) + (end 51.435372 68.455372) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "67658bf3-aa1c-41bb-b0fe-3d79db52cdd8") + ) + (segment + (start 41.33 93.0275) + (end 44.625 93.0275) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "71b0557e-5975-4078-b075-5e2bafba4bd6") + ) + (segment + (start 47.81 89.8425) + (end 47.81 81.115) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "beb17da7-5ee3-4010-9a41-dc4b75d4f327") + ) + (segment + (start 47.81 81.115) + (end 51.435372 77.489628) + (width 0.2) + (layer "B.Cu") + (net 2) + (uuid "ca571b24-cd73-43a1-a4c0-bc67ec82b1c9") + ) + (segment + (start 58.505 96.19) + (end 60.98 98.665) + (width 0.2) + (layer "F.Cu") + (net 3) + (uuid "086857c2-81a1-4955-acb6-246d422005da") + ) + (segment + (start 45.5425 97.79) + (end 47.1425 96.19) + (width 0.2) + (layer "F.Cu") + (net 3) + (uuid "0db3a36a-63ea-44d1-b3a0-17057e303ebc") + ) + (segment + (start 47.1425 96.19) + (end 58.505 96.19) + (width 0.2) + (layer "F.Cu") + (net 3) + (uuid "5eded7d0-acbd-4732-80ac-6328b1f688ab") + ) + (via + (at 45.5425 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 3) + (uuid "46b15b3b-ce24-47d7-a8fd-074f9e114eff") + ) + (via + (at 38.43 96.85) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 3) + (uuid "8ddab013-60c7-45c1-9227-289c8dfe2a71") + ) + (segment + (start 38.77 97.19) + (end 38.43 96.85) + (width 0.2) + (layer "B.Cu") + (net 3) + (uuid "acf87ba3-e128-4d49-8736-de2f6f95693b") + ) + (segment + (start 45.5425 97.79) + (end 44.9425 97.19) + (width 0.2) + (layer "B.Cu") + (net 3) + (uuid "da1bc38c-7f19-45a8-8efd-773d06965d5e") + ) + (segment + (start 44.9425 97.19) + (end 38.77 97.19) + (width 0.2) + (layer "B.Cu") + (net 3) + (uuid "f0ebd0ec-f4a3-4315-832d-383ac1959b75") + ) + (segment + (start 54.895 71.905) + (end 58.845 67.955) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "06f7d5a8-cf1a-47d3-8938-6685d738508b") + ) + (segment + (start 58.7625 118.44) + (end 76.3625 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "0de5146e-7c4e-4902-b858-71b88f3bd976") + ) + (segment + (start 105.0175 117.715) + (end 104.2925 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "15a164b9-eaee-448a-937b-bb968e893300") + ) + (segment + (start 56.445 64.208654) + (end 55.361346 63.125) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "15e4e0c3-4436-4c0b-9794-966aa072a23a") + ) + (segment + (start 105.105 98.665) + (end 104.505 99.265) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "1b7d3211-b1ff-4e31-b550-7d518a4ffc7e") + ) + (segment + (start 76.53 99.924899) + (end 80.240101 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "1fab33f0-24bf-4d51-89b0-61e80ffaffad") + ) + (segment + (start 81.6425 103.635) + (end 86.6125 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "21310126-fe6e-4c3a-bbe4-9ce24e27e839") + ) + (segment + (start 77.255 118.44) + (end 76.53 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "281e213c-e36d-4795-a183-b849e6d2e2de") + ) + (segment + (start 42.140101 103.635) + (end 43.5425 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "2b822dc1-54f5-46c2-969c-8f918bfd7bde") + ) + (segment + (start 67.5625 98.665) + (end 76.53 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "3ac63472-a05b-40a1-98c7-7272a8831701") + ) + (segment + (start 56.755 118.44) + (end 57.48 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "3f2a94ac-a916-4348-b830-0e2102f56e28") + ) + (segment + (start 54.895 71.905) + (end 56.445 70.355) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "4915949e-3e69-4786-aba2-744d749122e8") + ) + (segment + (start 38.43 98.6) + (end 39.8625 97.1675) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "4cf505db-38be-49a0-aaa8-ed050efcab36") + ) + (segment + (start 62.5925 103.635) + (end 67.5625 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "4cfd815a-7a79-49b2-a2d5-d4d45018e84f") + ) + (segment + (start 104.2925 118.44) + (end 77.255 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "5833c9e5-7c09-431e-9368-c0f5c26fa0f8") + ) + (segment + (start 38.6425 117.715) + (end 39.3675 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "61cdf301-42e4-411e-a0f4-4227dbe58989") + ) + (segment + (start 38.43 99.924899) + (end 42.140101 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "6556e73f-21db-4c1c-b219-07c3034f55d2") + ) + (segment + (start 76.3625 118.44) + (end 77.0875 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "6607eb1a-df9b-4be0-a52a-d06b48429dd2") + ) + (segment + (start 39.3675 118.44) + (end 56.755 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "668ef1d1-d0d8-4516-a7fa-077a5c426cd7") + ) + (segment + (start 39.8625 92.461814) + (end 43.069707 89.254607) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "68b936dc-981c-47ea-b2aa-4bbf373409c8") + ) + (segment + (start 76.53 98.665) + (end 76.53 99.924899) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "6af620f4-9faf-4d49-956f-4956e08c1405") + ) + (segment + (start 55.361346 63.125) + (end 47.825 63.125) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "71771a3d-0718-417e-85a0-d9df5a307506") + ) + (segment + (start 57.48 117.715) + (end 58.0375 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "759fd11b-f26f-4f75-9737-4708893f8dad") + ) + (segment + (start 61.190101 103.635) + (end 62.5925 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "81494715-9984-4443-956c-bc5d4754c6da") + ) + (segment + (start 43.069707 89.254607) + (end 43.069707 88.654606) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "85c8684e-de3b-455c-8e05-b7ae52239397") + ) + (segment + (start 58.845 67.955) + (end 99.385 67.955) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "8667b0e3-bb48-421d-ad6b-b86ef549c9db") + ) + (segment + (start 106.855 116.84) + (end 105.98 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "88f88bf1-07c1-4a9c-95fc-727ee3ab3a7e") + ) + (segment + (start 57.48 98.665) + (end 57.48 99.924899) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "8cd3f4ed-32fc-4884-9310-fe7d9ebf0ea1") + ) + (segment + (start 48.5125 98.665) + (end 57.48 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "9e83e699-fab1-407f-97f3-fd49ffca549d") + ) + (segment + (start 80.240101 103.635) + (end 81.6425 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "a2dcd11a-daf3-4f41-99b7-23a80e0dbbac") + ) + (segment + (start 43.5425 103.635) + (end 48.5125 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "b65b78bd-c95b-48bb-8e81-993cdadce12d") + ) + (segment + (start 38.43 98.6) + (end 38.43 99.924899) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "b7c281b5-a44d-42f9-a828-a0558afd18a1") + ) + (segment + (start 56.445 70.355) + (end 56.445 64.208654) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "b815305e-62ce-4f2e-bf19-93841fbc9aaa") + ) + (segment + (start 104.505 99.265) + (end 104.505 114.29) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "bb4c4c67-c2d3-4427-9988-6475d58ebaee") + ) + (segment + (start 57.48 99.924899) + (end 61.190101 103.635) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "bf3a4723-7af9-4f7e-8684-5728ff7e0f04") + ) + (segment + (start 86.6125 98.665) + (end 105.105 98.665) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "c279ee03-72ce-4ed2-b080-a5f8de2cdee4") + ) + (segment + (start 39.8625 97.1675) + (end 39.8625 92.461814) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "c415eb81-00bb-4e25-b0a1-8eda9449edaf") + ) + (segment + (start 99.385 67.955) + (end 99.535 68.105) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "c9038340-6241-46fc-a71d-6423bbf5ca0b") + ) + (segment + (start 44.391985 63.169485) + (end 44.43647 63.125) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "db5b46b3-f957-4c4c-84d9-c135a3fb9c32") + ) + (segment + (start 105.98 117.715) + (end 105.0175 117.715) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "e540a223-010e-42c9-a700-7aacf559b901") + ) + (segment + (start 44.43647 63.125) + (end 47.825 63.125) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "f344238e-34f7-4403-9671-a0badc3c416f") + ) + (segment + (start 104.505 114.29) + (end 104.855 114.64) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "f4278d1f-afe3-4a1e-bd3d-6bb485658035") + ) + (segment + (start 58.0375 117.715) + (end 58.7625 118.44) + (width 0.2) + (layer "F.Cu") + (net 4) + (uuid "fad937a8-fcdd-4e24-94c5-5ee3809f5138") + ) + (via + (at 43.069707 88.654606) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 4) + (uuid "216e34d7-16b2-41aa-aab2-be2aa6e8319a") + ) + (via + (at 104.855 114.64) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 4) + (uuid "91603a68-61c0-4eee-b004-13ae2fad5c1b") + ) + (via + (at 44.391985 63.169485) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 4) + (uuid "cff35ff1-dee5-4fc5-9bb7-8afedb6e1972") + ) + (via + (at 106.855 116.84) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 4) + (uuid "ded85262-80fa-42ea-87ec-f3301fda62d4") + ) + (segment + (start 43.069707 88.192551) + (end 43.069707 88.654606) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "6cecd3ab-5a68-4c8b-9910-1bfe527f9076") + ) + (segment + (start 104.855 114.84) + (end 106.855 116.84) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "777c2d32-e2d1-4d40-b543-5cf91f551935") + ) + (segment + (start 44.391985 63.169485) + (end 44.225 63.33647) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "7c77c448-28ae-4e06-857c-203b6df0525b") + ) + (segment + (start 44.225 87.037258) + (end 43.069707 88.192551) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "7f6dedb1-576d-4b92-96c2-6a8a627f5508") + ) + (segment + (start 104.855 114.64) + (end 104.855 114.84) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "bdb614d6-3753-48cb-aef6-fef4bfcc5084") + ) + (segment + (start 44.225 63.33647) + (end 44.225 87.037258) + (width 0.2) + (layer "B.Cu") + (net 4) + (uuid "dcb8e892-42ed-400c-919e-a2410941b448") + ) + (segment + (start 63.719999 97.79) + (end 63.469999 97.79) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "13a93905-e8de-437c-b70a-4dc718587873") + ) + (segment + (start 77.555 96.19) + (end 65.319999 96.19) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "327ea98e-1284-4e3b-a224-61d361900fd8") + ) + (segment + (start 57.48 96.915) + (end 58.0375 96.915) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "6941cbe1-00ee-414e-8dc9-89254378b733") + ) + (segment + (start 65.319999 96.19) + (end 63.719999 97.79) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "7e53b6a6-c8f1-4255-8297-f0d8ef9e835a") + ) + (segment + (start 80.03 98.665) + (end 77.555 96.19) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "ba0349fb-e806-487d-9134-4c3cd1f43cf2") + ) + (segment + (start 58.0375 96.915) + (end 58.9125 97.79) + (width 0.2) + (layer "F.Cu") + (net 5) + (uuid "ca6be708-3828-454b-84b7-34d6ded85a80") + ) + (via + (at 58.9125 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 5) + (uuid "14fa4856-4fd5-4f21-bf6c-f53b3be796c0") + ) + (via + (at 63.469999 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 5) + (uuid "3d08ed13-f208-4300-9557-1e2c715a6d10") + ) + (segment + (start 63.469999 97.79) + (end 58.9125 97.79) + (width 0.2) + (layer "B.Cu") + (net 5) + (uuid "d493b7ac-bca1-4513-9d5b-92625113f549") + ) + (segment + (start 106.13 96.19) + (end 108.605 98.665) + (width 0.2) + (layer "F.Cu") + (net 6) + (uuid "297ffd81-32a3-4c9e-8cc1-add4c1f643f3") + ) + (segment + (start 77.405 97.79) + (end 76.53 96.915) + (width 0.2) + (layer "F.Cu") + (net 6) + (uuid "66163522-3278-4c9f-8852-286315b7e06d") + ) + (segment + (start 77.9625 97.79) + (end 77.405 97.79) + (width 0.2) + (layer "F.Cu") + (net 6) + (uuid "78bbd6aa-8d4c-4038-814a-ba789e3bf48c") + ) + (segment + (start 84.325 96.19) + (end 106.13 96.19) + (width 0.2) + (layer "F.Cu") + (net 6) + (uuid "8c322367-fb9f-4ab2-afae-def1566c8de7") + ) + (segment + (start 82.725 97.79) + (end 84.325 96.19) + (width 0.2) + (layer "F.Cu") + (net 6) + (uuid "971ab111-ab53-4f18-8e6d-d8be75397c52") + ) + (via + (at 82.725 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 6) + (uuid "08f6f525-7088-480e-b484-053203392508") + ) + (via + (at 77.9625 97.79) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 6) + (uuid "2c00b561-20be-48b1-ab11-94fe2cd2cd9b") + ) + (segment + (start 82.725 97.79) + (end 77.9625 97.79) + (width 0.2) + (layer "B.Cu") + (net 6) + (uuid "5b96aa51-1ab0-40d3-9045-0a305b8448ed") + ) + (segment + (start 39.045 64.285) + (end 32.585 70.745) + (width 0.2) + (layer "F.Cu") + (net 7) + (uuid "a7092661-c3aa-4fa0-b19c-4cabcc8d06d2") + ) + (segment + (start 54.895 64.285) + (end 39.045 64.285) + (width 0.2) + (layer "F.Cu") + (net 7) + (uuid "f54513fe-4acb-4a33-80e4-5cd6cada2d12") + ) + (segment + (start 49.499214 72.223) + (end 33.647 72.223) + (width 0.2) + (layer "F.Cu") + (net 8) + (uuid "128d8188-10ef-4bc3-9391-a41c7e8eb5d8") + ) + (segment + (start 54.895 66.827214) + (end 49.499214 72.223) + (width 0.2) + (layer "F.Cu") + (net 8) + (uuid "59c2db0a-48e6-4ef9-87b7-8ff721eb7771") + ) + (segment + (start 33.647 72.223) + (end 32.585 73.285) + (width 0.2) + (layer "F.Cu") + (net 8) + (uuid "a6ee2625-38c0-47ea-ad4d-69cb2d6d99c7") + ) + (segment + (start 54.895 66.825) + (end 54.895 66.827214) + (width 0.2) + (layer "F.Cu") + (net 8) + (uuid "fc00832b-1e83-4a74-83fc-023b7c98139c") + ) + (segment + (start 56.045 66.348654) + (end 55.361346 65.665) + (width 0.2) + (layer "F.Cu") + (net 9) + (uuid "26b8fb07-8415-4f1c-b559-7826c72c2e0f") + ) + (segment + (start 54.895 69.365) + (end 56.045 68.215) + (width 0.2) + (layer "F.Cu") + (net 9) + (uuid "2ce5dde8-fc26-472c-b796-772ed029b4d5") + ) + (segment + (start 55.361346 65.665) + (end 47.825 65.665) + (width 0.2) + (layer "F.Cu") + (net 9) + (uuid "baabf829-b2dc-47c5-88c6-dca24792bd31") + ) + (segment + (start 56.045 68.215) + (end 56.045 66.348654) + (width 0.2) + (layer "F.Cu") + (net 9) + (uuid "cecc71b7-4a17-4f75-ba99-31cb7b5ae229") + ) + (segment + (start 36.37 104.775) + (end 48.565 104.775) + (width 0.2) + (layer "F.Cu") + (net 10) + (uuid "1d7022b0-1cae-4b03-80a9-aa7b9dd2c8c7") + ) + (segment + (start 48.565 104.775) + (end 49.725 103.615) + (width 0.2) + (layer "F.Cu") + (net 10) + (uuid "d79ff055-b6b1-4cb3-849f-9c0c253f07ed") + ) + (segment + (start 61.77 86.42) + (end 61.675 86.325) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "1d906c21-12fd-4e58-a9e9-de8d70e46939") + ) + (segment + (start 37.335 84.585) + (end 34.165 81.415) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "2cc6b446-144b-4a2d-a31b-ca9e56d4698e") + ) + (segment + (start 62.869999 101.135001) + (end 62.869999 93.433528) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "31264445-3bc1-45cc-9884-76edacdf5c15") + ) + (segment + (start 62.869999 93.433528) + (end 61.675 92.238529) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "50398bdd-104e-419f-8183-0dccf19f782f") + ) + (segment + (start 61.675 92.238529) + (end 61.675 86.325) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "5aa89109-ebe8-41f8-a5a8-ae54d8db2922") + ) + (segment + (start 43.299899 84.585) + (end 37.335 84.585) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "64d3bad8-f180-408b-b9c1-e32eeb28e60d") + ) + (segment + (start 61.77 83.185) + (end 44.699899 83.185) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "863faace-6a61-46d3-b88d-b64d22e0561a") + ) + (segment + (start 34.165 81.415) + (end 33.185 81.415) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "9085e836-9271-4ef7-88e5-e2d6a8daf25a") + ) + (segment + (start 44.699899 83.185) + (end 43.299899 84.585) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "cd2a1547-989f-4eb1-9f69-44ad9844a341") + ) + (segment + (start 61.77 102.235) + (end 62.869999 101.135001) + (width 0.2) + (layer "F.Cu") + (net 11) + (uuid "e73dda5b-895a-4c5d-923a-ef352807dae5") + ) + (via + (at 33.185 81.415) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 11) + (uuid "28df3ae0-aa78-45dc-be82-5866149b7cf3") + ) + (via + (at 61.675 86.325) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 11) + (uuid "2b590312-e8d6-460c-81a7-30bd3e34c355") + ) + (segment + (start 61.675 86.325) + (end 61.675 85.885) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "4161f437-660f-4f08-ac52-e4e57088b1ef") + ) + (segment + (start 61.675 85.885) + (end 61.77 85.79) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "6c8ce530-21b9-4106-a663-bed4f224e0ea") + ) + (segment + (start 31.523 66.727) + (end 32.585 65.665) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "acc1bd09-bf0c-44cf-b42b-dda15488ccc3") + ) + (segment + (start 33.185 81.415) + (end 31.523 79.753) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "bdcaf52d-bf78-4ecb-ad95-9835b1633a5c") + ) + (segment + (start 61.77 85.79) + (end 61.77 83.185) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "d98c272e-ee36-4833-909f-938dc839a9fa") + ) + (segment + (start 31.523 79.753) + (end 31.523 66.727) + (width 0.2) + (layer "B.Cu") + (net 11) + (uuid "e8a786eb-7a05-408f-a3b0-6baf94fcd26f") + ) + (segment + (start 67.675 104.775) + (end 68.705 103.745) + (width 0.2) + (layer "F.Cu") + (net 12) + (uuid "0ab3465f-a9f7-4b0d-bc80-8ef0f115dff1") + ) + (segment + (start 55.42 104.775) + (end 67.675 104.775) + (width 0.2) + (layer "F.Cu") + (net 12) + (uuid "188317ec-3f0d-40b4-b69c-4bbe0bf9bd69") + ) + (segment + (start 74.47 104.775) + (end 86.745 104.775) + (width 0.2) + (layer "F.Cu") + (net 13) + (uuid "e2bfc640-0493-4375-a99c-6b5459a11fd7") + ) + (segment + (start 86.745 104.775) + (end 87.865 103.655) + (width 0.2) + (layer "F.Cu") + (net 13) + (uuid "e6c8ea55-6505-4d29-b7b2-7b7912093202") + ) + (segment + (start 61.609899 85.325) + (end 60.609899 84.325) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "09c72520-9e0f-4aed-961d-5eaab02b29f7") + ) + (segment + (start 80.82 102.235) + (end 82.125 100.93) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "0d742387-4c7e-486e-bf70-3f20ce54b162") + ) + (segment + (start 54.840101 84.325) + (end 52.778743 86.386358) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "13816258-2795-40eb-951c-bd70ed81cd2a") + ) + (segment + (start 82.125 100.93) + (end 82.125 93.938529) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "30e572fa-2972-4557-a3ce-5019fc256fd4") + ) + (segment + (start 80.82 92.633529) + (end 80.82 86.37) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "38187100-e8e0-4139-95d9-1ace296e884a") + ) + (segment + (start 60.609899 84.325) + (end 54.840101 84.325) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "6504a3ed-d18b-48a8-be70-1c8af900516e") + ) + (segment + (start 80.82 83.185) + (end 79.42 81.785) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "7af45386-61f2-4072-8c3b-c2489528be04") + ) + (segment + (start 80.82 86.37) + (end 80.865 86.325) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "a3fe9462-ddb3-4b18-9f6b-ac9124f48e2a") + ) + (segment + (start 79.42 81.785) + (end 65.149899 81.785) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "c3a1e0b3-e9a7-4f4d-bae7-e16f48af10cf") + ) + (segment + (start 52.778743 86.386358) + (end 43.522646 86.386358) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "d4af6591-5db5-4f45-8ff4-45872e6afec5") + ) + (segment + (start 65.149899 81.785) + (end 61.609899 85.325) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "dabf0011-609c-49f2-bef9-443e5b156abb") + ) + (segment + (start 82.125 93.938529) + (end 80.82 92.633529) + (width 0.2) + (layer "F.Cu") + (net 14) + (uuid "e14fb725-6daf-4b20-9ab1-23c0a2472c2b") + ) + (via + (at 43.522646 86.386358) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 14) + (uuid "52a216a5-72a7-4c71-a156-d16dd73203e2") + ) + (via + (at 80.865 86.325) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 14) + (uuid "c9d5b3ca-84f0-4c62-8e7f-ee5c21ec2981") + ) + (segment + (start 33.647 64.187) + (end 32.585 63.125) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "0c32bcd0-7ce3-4b98-a7fc-976687272c50") + ) + (segment + (start 42.984004 86.925) + (end 42.476471 86.925) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "1e77e8c5-75fd-4d4c-90a5-8d2c9a6a9d92") + ) + (segment + (start 43.522646 86.386358) + (end 42.984004 86.925) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "273fc8e3-3b06-4c07-bc7c-2bb0e3bf0fb2") + ) + (segment + (start 42.476471 86.925) + (end 33.647 78.095529) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "28035783-6cb1-4400-a335-7ea45c8cffa1") + ) + (segment + (start 80.82 85.84) + (end 80.82 83.185) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "32f5d65b-f3f2-44e3-872c-3257b7b0c84e") + ) + (segment + (start 80.865 85.885) + (end 80.82 85.84) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "4bd37b9c-a1de-4629-a389-a261b1d14be6") + ) + (segment + (start 80.865 86.325) + (end 80.865 85.885) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "6547c18c-25b3-4bd8-bbd2-ad1b5e39c4ce") + ) + (segment + (start 33.647 78.095529) + (end 33.647 64.187) + (width 0.2) + (layer "B.Cu") + (net 14) + (uuid "7bfebd80-cda3-44a2-adb6-e88a6f0724a9") + ) + (segment + (start 48.565 85.725) + (end 49.725 84.565) + (width 0.2) + (layer "F.Cu") + (net 15) + (uuid "707df198-e2f5-4d35-a2ea-0940f5d06f38") + ) + (segment + (start 36.37 85.725) + (end 48.565 85.725) + (width 0.2) + (layer "F.Cu") + (net 15) + (uuid "c4473e35-960d-4017-970d-f94e64cd6d82") + ) + (segment + (start 67.635 85.725) + (end 68.705 84.655) + (width 0.2) + (layer "F.Cu") + (net 16) + (uuid "bf4b93e7-7227-495d-ab53-a31ba0d2f6f6") + ) + (segment + (start 55.42 85.725) + (end 67.635 85.725) + (width 0.2) + (layer "F.Cu") + (net 16) + (uuid "c19ee607-4ea6-450c-90e5-8ddcad669712") + ) + (segment + (start 74.47 85.725) + (end 86.785 85.725) + (width 0.2) + (layer "F.Cu") + (net 17) + (uuid "1cb4361c-9281-4acc-8734-c58dcec8ab61") + ) + (segment + (start 86.785 85.725) + (end 87.855 84.655) + (width 0.2) + (layer "F.Cu") + (net 17) + (uuid "ca3a95fe-dc8e-4565-a2c3-a2d1539c5142") + ) + (segment + (start 111.6175 100.0125) + (end 109.395 102.235) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "1509f082-2f53-42ed-a03a-e328acbd1cf6") + ) + (segment + (start 109.395 83.185) + (end 107.398235 81.188235) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "1e21471e-cb16-4f4e-9c4c-5b8090b12228") + ) + (segment + (start 111.6175 89.644556) + (end 111.6175 100.0125) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "7db47ceb-5a37-41c3-8970-9aecfef3ee9f") + ) + (segment + (start 107.398235 81.188235) + (end 41.571765 81.188235) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "b4019566-98f3-4159-858d-e0802b27a261") + ) + (segment + (start 111.6175 89.644556) + (end 109.395 87.422056) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "c3a8aae1-9536-443a-a805-56ed3a81eb89") + ) + (segment + (start 109.395 87.422056) + (end 109.395 83.185) + (width 0.2) + (layer "F.Cu") + (net 18) + (uuid "d038f82d-554c-4597-8162-7003082f1255") + ) + (via + (at 41.571765 81.188235) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 18) + (uuid "ae314458-f0da-40d4-8e98-3c37fe0444cc") + ) + (segment + (start 34.155 77.965) + (end 37.378235 81.188235) + (width 0.2) + (layer "B.Cu") + (net 18) + (uuid "17872b74-d48a-4ec6-924f-645f87a9be28") + ) + (segment + (start 34.155 62.155) + (end 34.155 77.965) + (width 0.2) + (layer "B.Cu") + (net 18) + (uuid "62d30922-5fa7-4999-a497-7aaee7eb228a") + ) + (segment + (start 32.585 60.585) + (end 34.155 62.155) + (width 0.2) + (layer "B.Cu") + (net 18) + (uuid "c4924d2d-bc45-4ee7-82f5-7d268b67b634") + ) + (segment + (start 37.378235 81.188235) + (end 41.571765 81.188235) + (width 0.2) + (layer "B.Cu") + (net 18) + (uuid "ecb88937-f103-4b1d-ae71-41c65ea71371") + ) + (segment + (start 98.135 85.725) + (end 97.025 84.615) + (width 0.2) + (layer "F.Cu") + (net 19) + (uuid "40521558-ce8e-4f20-89c8-81a7a32effd9") + ) + (segment + (start 103.045 85.725) + (end 98.135 85.725) + (width 0.2) + (layer "F.Cu") + (net 19) + (uuid "9535fee2-95e0-4b0c-9f61-20957c3fc18e") + ) + (segment + (start 98.105 104.775) + (end 97.055 103.725) + (width 0.2) + (layer "F.Cu") + (net 20) + (uuid "35ada209-889a-477b-bf67-d10713bb1da5") + ) + (segment + (start 103.045 104.775) + (end 98.105 104.775) + (width 0.2) + (layer "F.Cu") + (net 20) + (uuid "67f30628-88eb-4290-b37d-737e425f11d0") + ) + (segment + (start 49.725 111.235) + (end 37.322944 111.235) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "13c50bc4-fb09-400f-a4bd-69ce626ad2ab") + ) + (segment + (start 32.585 106.497056) + (end 32.585 75.825) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "3fc02fc1-5623-4cbf-853d-af93a8ced068") + ) + (segment + (start 97.055 111.345) + (end 96.985 111.275) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "51970218-6ddf-4917-bc36-460c18d43585") + ) + (segment + (start 87.775 111.365) + (end 87.865 111.275) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "727441c7-e1a2-4180-bb20-ef9644df935c") + ) + (segment + (start 68.705 111.365) + (end 87.775 111.365) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "77513a1b-d20d-4502-afeb-b9f0c5f716f7") + ) + (segment + (start 37.322944 111.235) + (end 32.585 106.497056) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "a8fb392c-85b5-4084-819e-f7c3fb3d9eb2") + ) + (segment + (start 68.575 111.235) + (end 68.705 111.365) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "b4f14c0d-f18f-4fe2-97a8-5ee22fa3c439") + ) + (segment + (start 49.725 111.235) + (end 68.575 111.235) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "bdbb8cfd-6338-4ea4-821c-6362854135be") + ) + (segment + (start 87.865 111.275) + (end 96.985 111.275) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "db5cf461-cbfc-427a-9873-019c2a37ab78") + ) + (segment + (start 97.33 111.345) + (end 97.055 111.345) + (width 0.2) + (layer "F.Cu") + (net 21) + (uuid "ef48fa04-bfaf-45b4-a731-4ee3cb456a39") + ) + (segment + (start 49.499214 74.347) + (end 50.577214 75.425) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "0f0e78f9-0446-4862-9903-a652dd3fc8dc") + ) + (segment + (start 97.025 92.235) + (end 87.895 92.235) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "2bcbbdbc-27b2-40b7-9f9f-ad6431b9ca4f") + ) + (segment + (start 93.858235 81.89147) + (end 93.755 81.788235) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "350c656c-0bdd-42fc-a668-8387cce84ab3") + ) + (segment + (start 81.53 92.275) + (end 81.42 92.385) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "365b83af-af87-4a4b-9649-9948e91d4d87") + ) + (segment + (start 46.515 72.823) + (end 46.515 73.485) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "3e9d3e70-e1c5-4684-bdfd-a5ec474aa8ef") + ) + (segment + (start 87.855 92.275) + (end 81.53 92.275) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "4bac80b6-0fba-4c2b-be88-5b25f8d0faed") + ) + (segment + (start 47.377 74.347) + (end 49.499214 74.347) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "4d74a632-8507-4460-b0da-6c35c58a658d") + ) + (segment + (start 68.705 92.275) + (end 62.56 92.275) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "5b573ff3-dbd1-4af6-b989-34a353f25083") + ) + (segment + (start 93.858235 89.068235) + (end 93.858235 81.89147) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "64240a74-21e5-49e8-91fd-53a50a8bd9a2") + ) + (segment + (start 62.56 92.275) + (end 62.37 92.085) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "6a427787-8393-4d55-8ea3-5fd1ee5abbed") + ) + (segment + (start 97.025 92.235) + (end 93.858235 89.068235) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "76e09803-ccaf-44a2-8207-5a5f0c6283d8") + ) + (segment + (start 50.577214 75.425) + (end 91.735 75.425) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "8d786696-4738-409f-8164-f0e02388c600") + ) + (segment + (start 91.735 75.425) + (end 94.415 72.745) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "94515c59-1ea3-495e-ba45-c8644006e5e9") + ) + (segment + (start 46.515 73.485) + (end 47.377 74.347) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "b792a4b2-cb63-46c3-a7ec-31d44b6f2d77") + ) + (segment + (start 97.33 92.235) + (end 97.025 92.235) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "c33d46a3-3e34-4af3-8fca-b84982912121") + ) + (segment + (start 87.895 92.235) + (end 87.855 92.275) + (width 0.2) + (layer "F.Cu") + (net 22) + (uuid "df9eeed0-6cb9-47ce-8711-c91f2a23bf0f") + ) + (via + (at 81.42 92.385) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 22) + (uuid "0029fd8f-dc3b-46d7-9e19-f58cb38b0700") + ) + (via + (at 46.515 72.823) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 22) + (uuid "8ae4d707-5076-49c3-9775-045e4a631cad") + ) + (via + (at 93.755 81.788235) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 22) + (uuid "bd9c20ef-878e-4c33-8bef-6f0bfd3bb352") + ) + (via + (at 62.37 92.085) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 22) + (uuid "d58518ca-2bd2-4a1b-b29e-390514e40e06") + ) + (segment + (start 93.755 73.405) + (end 94.415 72.745) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "03c0ba24-44b9-4db0-a1a6-95158a6d2e8f") + ) + (segment + (start 46.515 72.055) + (end 47.825 70.745) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "106be2f3-2cec-41bd-b1b5-a472b95dbb39") + ) + (segment + (start 62.37 92.085) + (end 62.27 92.185) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "3e19d21a-64fe-4563-bf1e-8654c05a8897") + ) + (segment + (start 62.27 92.185) + (end 49.725 92.185) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "4b1f3e80-791e-4b64-8372-36c0be95ed4b") + ) + (segment + (start 81.065 92.385) + (end 80.955 92.275) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "507018db-96f9-459b-8e64-0b53a9b1241b") + ) + (segment + (start 46.515 72.823) + (end 46.515 72.055) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "58dc06f5-3190-4458-a734-3c1cec24d0dc") + ) + (segment + (start 93.755 81.588235) + (end 93.755 73.405) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "b0ed12b0-9635-4672-b0ab-73bddb12040d") + ) + (segment + (start 80.955 92.275) + (end 68.705 92.275) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "ec7f76b5-25f6-4f33-b62f-eb2dc649cf7c") + ) + (segment + (start 81.42 92.385) + (end 81.065 92.385) + (width 0.2) + (layer "B.Cu") + (net 22) + (uuid "ff1a2faa-4002-4536-b467-7b20cc94adb7") + ) + (segment + (start 112.585 64.155) + (end 114.035 65.605) + (width 0.2) + (layer "F.Cu") + (net 23) + (uuid "6b69d90e-a460-4b1a-a5c7-2485e63306cf") + ) + (segment + (start 94.415 65.125) + (end 95.385 64.155) + (width 0.2) + (layer "F.Cu") + (net 23) + (uuid "e2c222aa-18a0-4fa0-9c96-9880c1ff40c7") + ) + (segment + (start 95.385 64.155) + (end 112.585 64.155) + (width 0.2) + (layer "F.Cu") + (net 23) + (uuid "f614ecaa-ca3b-4949-b819-d83e2b5b8550") + ) + (segment + (start 30.910786 74.763) + (end 30.045 73.897214) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "0cf95e46-16d4-4481-8351-e6a01b2cedcb") + ) + (segment + (start 44.9425 100.0125) + (end 42.72 102.235) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "18b1f658-43cc-40ab-8c86-8c68cfa9d321") + ) + (segment + (start 30.045 73.897214) + (end 30.045 69.91) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "1d210f1c-38e0-468d-8b32-80dfaa0ec34f") + ) + (segment + (start 104.051765 80.588235) + (end 114.035 70.605) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "3a0383f5-093c-4e3b-939e-38b4e0322f33") + ) + (segment + (start 42.72 83.185) + (end 34.298 74.763) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "3e1a53a6-ae6a-4648-b3ff-b8b7c14edac9") + ) + (segment + (start 42.72 86.33) + (end 42.725 86.325) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "795a6ebb-2da0-4757-8d1f-37d36e41237e") + ) + (segment + (start 44.9425 89.644556) + (end 44.9425 100.0125) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "79da4718-267b-4a68-8b2e-f37f11a66c8b") + ) + (segment + (start 30.045 69.91) + (end 31.75 68.205) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "80338ca8-ca74-41e4-ae67-295fa48ff2d2") + ) + (segment + (start 40.971765 81.436765) + (end 40.971765 80.939706) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "831e5099-f5c5-49de-9ede-2e10001b7354") + ) + (segment + (start 34.298 74.763) + (end 30.910786 74.763) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "8b5b762a-3dc4-4544-9487-e0795ccb9a4b") + ) + (segment + (start 42.72 83.185) + (end 40.971765 81.436765) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "8f9d4787-eb34-4570-b3a1-173f5c236451") + ) + (segment + (start 31.75 68.205) + (end 32.585 68.205) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "a65c579d-174a-44dc-ad1e-ea6b162eab43") + ) + (segment + (start 42.725 86.325) + (end 42.725 87.427056) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "b6035d2c-701a-4d8f-8539-7722ceb152fb") + ) + (segment + (start 41.323236 80.588235) + (end 104.051765 80.588235) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "c6aa9071-4f85-43af-a6af-4781bc1db73e") + ) + (segment + (start 42.725 87.427056) + (end 44.9425 89.644556) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "d54ee5ca-c75e-438c-a49d-1cca99e0ad73") + ) + (segment + (start 40.971765 80.939706) + (end 41.323236 80.588235) + (width 0.2) + (layer "F.Cu") + (net 24) + (uuid "fdabdcc6-b802-4e56-b94b-38d690b48d6f") + ) + (via + (at 42.725 86.325) + (size 0.6) + (drill 0.3) + (layers "F.Cu" "B.Cu") + (net 24) + (uuid "3cfe2570-da5d-4208-8476-fbdfe744bc21") + ) + (segment + (start 42.725 85.965) + (end 42.72 85.96) + (width 0.2) + (layer "B.Cu") + (net 24) + (uuid "0e72b7bf-dd36-494f-aa64-82cb5550cf79") + ) + (segment + (start 42.72 85.96) + (end 42.72 83.185) + (width 0.2) + (layer "B.Cu") + (net 24) + (uuid "2c199dbb-edda-498a-ae9f-75def93ef45e") + ) + (segment + (start 42.725 86.325) + (end 42.725 85.965) + (width 0.2) + (layer "B.Cu") + (net 24) + (uuid "855e063f-8099-4155-8d3c-a31218fdbe12") + ) + (segment + (start 48.66 73.285) + (end 49.039315 73.285) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "03d0fc64-44ef-4475-b412-e3b59565e51b") + ) + (segment + (start 49.0029 73.285) + (end 47.825 73.285) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "3285d67a-8911-4f3d-b90e-a07415775d98") + ) + (segment + (start 94.355 70.605) + (end 99.535 70.605) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "80589739-b613-4452-b919-713580469006") + ) + (segment + (start 49.039315 73.285) + (end 50.649315 74.895) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "c782cadb-0325-4bd5-8be9-65ae7b20cb73") + ) + (segment + (start 50.649315 74.895) + (end 90.065 74.895) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "c7bce07a-65e1-4322-a76e-478ee6d67ff6") + ) + (segment + (start 90.065 74.895) + (end 94.355 70.605) + (width 0.2) + (layer "F.Cu") + (net 25) + (uuid "e4827eb1-f60a-408e-b547-a2238046b3b2") + ) + (segment + (start 100.835 71.143478) + (end 100.835 66.905) + (width 0.2) + (layer "F.Cu") + (net 26) + (uuid "477068da-233a-4b81-9411-5a930851230a") + ) + (segment + (start 47.825 75.825) + (end 96.153478 75.825) + (width 0.2) + (layer "F.Cu") + (net 26) + (uuid "88dd5a81-e64f-45af-b261-6b7664fda4e8") + ) + (segment + (start 100.835 66.905) + (end 99.535 65.605) + (width 0.2) + (layer "F.Cu") + (net 26) + (uuid "890c69de-fafe-48c4-a42b-5165758880c6") + ) + (segment + (start 96.153478 75.825) + (end 100.835 71.143478) + (width 0.2) + (layer "F.Cu") + (net 26) + (uuid "bba9fe71-5912-460c-bc07-14d72dc69f3c") + ) + (segment + (start 105.0175 115.965) + (end 103.2675 117.715) + (width 0.2) + (layer "F.Cu") + (net 27) + (uuid "6c184477-4648-4654-aa68-53b57340865c") + ) + (segment + (start 103.2675 117.715) + (end 80.03 117.715) + (width 0.2) + (layer "F.Cu") + (net 27) + (uuid "ea725115-3078-43ea-ab32-6c2af576aaad") + ) + (segment + (start 74.78 117.715) + (end 76.53 115.965) + (width 0.2) + (layer "F.Cu") + (net 28) + (uuid "59bdeb2d-4014-4af8-b1cb-d16637025f32") + ) + (segment + (start 60.98 117.715) + (end 74.78 117.715) + (width 0.2) + (layer "F.Cu") + (net 28) + (uuid "783ae8b2-073d-4f5b-b24e-9e0dc5ea4b1d") + ) + (segment + (start 55.73 117.715) + (end 57.48 115.965) + (width 0.2) + (layer "F.Cu") + (net 29) + (uuid "4bf95508-7584-46a6-9aa6-aed5edc463bd") + ) + (segment + (start 42.1425 117.715) + (end 55.73 117.715) + (width 0.2) + (layer "F.Cu") + (net 29) + (uuid "67d9dfa4-44bc-4a29-8b88-974b3f8f1289") + ) + (segment + (start 109.6175 116.69) + (end 108.5925 117.715) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "0ac9531f-316d-483c-bb13-b728cbd99bd4") + ) + (segment + (start 105.105 96.915) + (end 107.828402 99.638402) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "56270ec4-53b3-4ea1-93dc-856a8413a684") + ) + (segment + (start 108.5925 117.715) + (end 108.5175 117.715) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "66c25608-916f-491c-980a-8e96baaa3178") + ) + (segment + (start 107.828402 99.638402) + (end 107.828402 104.965) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "98f27cc3-9a8e-4ca0-a039-7bf3d34b12e2") + ) + (segment + (start 107.828402 104.965) + (end 109.6175 106.754098) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "ac1bfca9-1267-4462-a6f7-8a7b5d13337b") + ) + (segment + (start 109.6175 106.754098) + (end 109.6175 116.69) + (width 0.2) + (layer "F.Cu") + (net 31) + (uuid "ea26ed17-3cd7-486c-8fa3-813ebdee0cbd") + ) +) diff --git a/hackpads/blipyboard/pcb/hackpad copy.kicad_pro b/hackpads/blipyboard/pcb/hackpad copy.kicad_pro new file mode 100644 index 0000000000..1ad86f6aa2 --- /dev/null +++ b/hackpads/blipyboard/pcb/hackpad copy.kicad_pro @@ -0,0 +1,584 @@ +{ + "board": { + "3dviewports": [], + "design_settings": { + "defaults": { + "apply_defaults_to_fp_fields": false, + "apply_defaults_to_fp_shapes": false, + "apply_defaults_to_fp_text": false, + "board_outline_line_width": 0.05, + "copper_line_width": 0.2, + "copper_text_italic": false, + "copper_text_size_h": 1.5, + "copper_text_size_v": 1.5, + "copper_text_thickness": 0.3, + "copper_text_upright": false, + "courtyard_line_width": 0.05, + "dimension_precision": 4, + "dimension_units": 3, + "dimensions": { + "arrow_length": 1270000, + "extension_offset": 500000, + "keep_text_aligned": true, + "suppress_zeroes": false, + "text_position": 0, + "units_format": 1 + }, + "fab_line_width": 0.1, + "fab_text_italic": false, + "fab_text_size_h": 1.0, + "fab_text_size_v": 1.0, + "fab_text_thickness": 0.15, + "fab_text_upright": false, + "other_line_width": 0.1, + "other_text_italic": false, + "other_text_size_h": 1.0, + "other_text_size_v": 1.0, + "other_text_thickness": 0.15, + "other_text_upright": false, + "pads": { + "drill": 0.762, + "height": 1.524, + "width": 1.524 + }, + "silk_line_width": 0.1, + "silk_text_italic": false, + "silk_text_size_h": 1.0, + "silk_text_size_v": 1.0, + "silk_text_thickness": 0.1, + "silk_text_upright": false, + "zones": { + "min_clearance": 0.5 + } + }, + "diff_pair_dimensions": [], + "drc_exclusions": [], + "meta": { + "version": 2 + }, + "rule_severities": { + "annular_width": "error", + "clearance": "error", + "connection_width": "warning", + "copper_edge_clearance": "error", + "copper_sliver": "warning", + "courtyards_overlap": "error", + "diff_pair_gap_out_of_range": "error", + "diff_pair_uncoupled_length_too_long": "error", + "drill_out_of_range": "error", + "duplicate_footprints": "warning", + "extra_footprint": "warning", + "footprint": "error", + "footprint_symbol_mismatch": "warning", + "footprint_type_mismatch": "ignore", + "hole_clearance": "error", + "hole_near_hole": "error", + "holes_co_located": "warning", + "invalid_outline": "error", + "isolated_copper": "warning", + "item_on_disabled_layer": "error", + "items_not_allowed": "error", + "length_out_of_range": "error", + "lib_footprint_issues": "warning", + "lib_footprint_mismatch": "warning", + "malformed_courtyard": "error", + "microvia_drill_out_of_range": "error", + "missing_courtyard": "ignore", + "missing_footprint": "warning", + "net_conflict": "warning", + "npth_inside_courtyard": "ignore", + "padstack": "warning", + "pth_inside_courtyard": "ignore", + "shorting_items": "error", + "silk_edge_clearance": "warning", + "silk_over_copper": "warning", + "silk_overlap": "warning", + "skew_out_of_range": "error", + "solder_mask_bridge": "error", + "starved_thermal": "error", + "text_height": "warning", + "text_thickness": "warning", + "through_hole_pad_without_hole": "error", + "too_many_vias": "error", + "track_dangling": "warning", + "track_width": "error", + "tracks_crossing": "error", + "unconnected_items": "error", + "unresolved_variable": "error", + "via_dangling": "warning", + "zones_intersect": "error" + }, + "rules": { + "max_error": 0.005, + "min_clearance": 0.0, + "min_connection": 0.0, + "min_copper_edge_clearance": 0.5, + "min_hole_clearance": 0.25, + "min_hole_to_hole": 0.25, + "min_microvia_diameter": 0.2, + "min_microvia_drill": 0.1, + "min_resolved_spokes": 2, + "min_silk_clearance": 0.0, + "min_text_height": 0.8, + "min_text_thickness": 0.08, + "min_through_hole_diameter": 0.3, + "min_track_width": 0.0, + "min_via_annular_width": 0.1, + "min_via_diameter": 0.5, + "solder_mask_to_copper_clearance": 0.0, + "use_height_for_length_calcs": true + }, + "teardrop_options": [ + { + "td_onpadsmd": true, + "td_onroundshapesonly": false, + "td_ontrackend": false, + "td_onviapad": true + } + ], + "teardrop_parameters": [ + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_round_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_rect_shape", + "td_width_to_size_filter_ratio": 0.9 + }, + { + "td_allow_use_two_tracks": true, + "td_curve_segcount": 0, + "td_height_ratio": 1.0, + "td_length_ratio": 0.5, + "td_maxheight": 2.0, + "td_maxlen": 1.0, + "td_on_pad_in_zone": false, + "td_target_name": "td_track_end", + "td_width_to_size_filter_ratio": 0.9 + } + ], + "track_widths": [], + "tuning_pattern_settings": { + "diff_pair_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 1.0 + }, + "diff_pair_skew_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + }, + "single_track_defaults": { + "corner_radius_percentage": 80, + "corner_style": 1, + "max_amplitude": 1.0, + "min_amplitude": 0.2, + "single_sided": false, + "spacing": 0.6 + } + }, + "via_dimensions": [], + "zones_allow_external_fillets": false + }, + "ipc2581": { + "dist": "", + "distpn": "", + "internal_id": "", + "mfg": "", + "mpn": "" + }, + "layer_presets": [], + "viewports": [] + }, + "boards": [], + "cvpcb": { + "equivalence_files": [] + }, + "erc": { + "erc_exclusions": [], + "meta": { + "version": 0 + }, + "pin_map": [ + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 1, + 0, + 1, + 2 + ], + [ + 0, + 1, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2 + ], + [ + 1, + 1, + 1, + 1, + 1, + 0, + 1, + 1, + 1, + 1, + 1, + 2 + ], + [ + 0, + 0, + 0, + 1, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 2, + 0, + 0, + 1, + 0, + 2, + 2, + 2, + 2 + ], + [ + 0, + 2, + 0, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 0, + 2, + 1, + 1, + 0, + 0, + 1, + 0, + 2, + 0, + 0, + 2 + ], + [ + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2, + 2 + ] + ], + "rule_severities": { + "bus_definition_conflict": "error", + "bus_entry_needed": "error", + "bus_to_bus_conflict": "error", + "bus_to_net_conflict": "error", + "conflicting_netclasses": "error", + "different_unit_footprint": "error", + "different_unit_net": "error", + "duplicate_reference": "error", + "duplicate_sheet_names": "error", + "endpoint_off_grid": "warning", + "extra_units": "error", + "global_label_dangling": "warning", + "hier_label_mismatch": "error", + "label_dangling": "error", + "lib_symbol_issues": "warning", + "missing_bidi_pin": "warning", + "missing_input_pin": "warning", + "missing_power_pin": "error", + "missing_unit": "warning", + "multiple_net_names": "warning", + "net_not_bus_member": "warning", + "no_connect_connected": "warning", + "no_connect_dangling": "warning", + "pin_not_connected": "error", + "pin_not_driven": "error", + "pin_to_pin": "warning", + "power_pin_not_driven": "error", + "similar_labels": "warning", + "simulation_model_issue": "ignore", + "unannotated": "error", + "unit_value_mismatch": "error", + "unresolved_variable": "error", + "wire_dangling": "error" + } + }, + "libraries": { + "pinned_footprint_libs": [], + "pinned_symbol_libs": [] + }, + "meta": { + "filename": "hackpad.kicad_pro", + "version": 1 + }, + "net_settings": { + "classes": [ + { + "bus_width": 12, + "clearance": 0.2, + "diff_pair_gap": 0.25, + "diff_pair_via_gap": 0.25, + "diff_pair_width": 0.2, + "line_style": 0, + "microvia_diameter": 0.3, + "microvia_drill": 0.1, + "name": "Default", + "pcb_color": "rgba(0, 0, 0, 0.000)", + "schematic_color": "rgba(0, 0, 0, 0.000)", + "track_width": 0.2, + "via_diameter": 0.6, + "via_drill": 0.3, + "wire_width": 6 + } + ], + "meta": { + "version": 3 + }, + "net_colors": null, + "netclass_assignments": null, + "netclass_patterns": [] + }, + "pcbnew": { + "last_paths": { + "gencad": "", + "idf": "", + "netlist": "", + "plot": "", + "pos_files": "", + "specctra_dsn": "", + "step": "hackpad.step", + "svg": "", + "vrml": "hackpad.wrl" + }, + "page_layout_descr_file": "" + }, + "schematic": { + "annotate_start_num": 0, + "bom_export_filename": "", + "bom_fmt_presets": [], + "bom_fmt_settings": { + "field_delimiter": ",", + "keep_line_breaks": false, + "keep_tabs": false, + "name": "CSV", + "ref_delimiter": ",", + "ref_range_delimiter": "", + "string_delimiter": "\"" + }, + "bom_presets": [], + "bom_settings": { + "exclude_dnp": false, + "fields_ordered": [ + { + "group_by": false, + "label": "Reference", + "name": "Reference", + "show": true + }, + { + "group_by": true, + "label": "Value", + "name": "Value", + "show": true + }, + { + "group_by": false, + "label": "Datasheet", + "name": "Datasheet", + "show": true + }, + { + "group_by": false, + "label": "Footprint", + "name": "Footprint", + "show": true + }, + { + "group_by": false, + "label": "Qty", + "name": "${QUANTITY}", + "show": true + }, + { + "group_by": true, + "label": "DNP", + "name": "${DNP}", + "show": true + } + ], + "filter_string": "", + "group_symbols": true, + "name": "Grouped By Value", + "sort_asc": true, + "sort_field": "Reference" + }, + "connection_grid_size": 50.0, + "drawing": { + "dashed_lines_dash_length_ratio": 12.0, + "dashed_lines_gap_length_ratio": 3.0, + "default_line_thickness": 6.0, + "default_text_size": 50.0, + "field_names": [], + "intersheets_ref_own_page": false, + "intersheets_ref_prefix": "", + "intersheets_ref_short": false, + "intersheets_ref_show": false, + "intersheets_ref_suffix": "", + "junction_size_choice": 3, + "label_size_ratio": 0.375, + "operating_point_overlay_i_precision": 3, + "operating_point_overlay_i_range": "~A", + "operating_point_overlay_v_precision": 3, + "operating_point_overlay_v_range": "~V", + "overbar_offset_ratio": 1.23, + "pin_symbol_size": 25.0, + "text_offset_ratio": 0.15 + }, + "legacy_lib_dir": "", + "legacy_lib_list": [], + "meta": { + "version": 1 + }, + "net_format_name": "", + "page_layout_descr_file": "", + "plot_directory": "", + "spice_current_sheet_as_root": false, + "spice_external_command": "spice \"%I\"", + "spice_model_current_sheet_as_root": true, + "spice_save_all_currents": false, + "spice_save_all_dissipations": false, + "spice_save_all_voltages": false, + "subpart_first_id": 65, + "subpart_id_separator": 0 + }, + "sheets": [ + [ + "82dbe48b-4e91-4863-9dbe-ebee03307ff6", + "Root" + ] + ], + "text_variables": {} +} diff --git a/hackpads/blipyboard/pcb/hackpad copy.kicad_sch b/hackpads/blipyboard/pcb/hackpad copy.kicad_sch new file mode 100644 index 0000000000..03e1ff75c2 --- /dev/null +++ b/hackpads/blipyboard/pcb/hackpad copy.kicad_sch @@ -0,0 +1,5701 @@ +(kicad_sch + (version 20231120) + (generator "eeschema") + (generator_version "8.0") + (uuid "82dbe48b-4e91-4863-9dbe-ebee03307ff6") + (paper "A4") + (lib_symbols + (symbol "Device:RotaryEncoder_Switch" + (pin_names + (offset 0.254) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 0 6.604 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 0 -6.604 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at -3.81 4.064 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 6.604 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "rotary switch encoder switch push button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "RotaryEncoder*Switch*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "RotaryEncoder_Switch_0_1" + (rectangle + (start -5.08 5.08) + (end 5.08 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + (circle + (center -3.81 0) + (radius 0.254) + (stroke + (width 0) + (type default) + ) + (fill + (type outline) + ) + ) + (circle + (center -0.381 0) + (radius 1.905) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (arc + (start -0.381 2.667) + (mid -3.0988 -0.0635) + (end -0.381 -2.794) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.635 -1.778) (xy -0.635 1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.381 -1.778) (xy -0.381 1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.127 1.778) (xy -0.127 -1.778) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.81 0) (xy 3.429 0) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.81 1.016) (xy 3.81 -1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 -2.54) (xy -3.81 -2.54) (xy -3.81 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 2.54) (xy -3.81 2.54) (xy -3.81 2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 -3.048) (xy -0.508 -2.794) (xy 0.127 -2.413) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0.254 2.921) (xy -0.508 2.667) (xy 0.127 2.286) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 -2.54) (xy 4.318 -2.54) (xy 4.318 -1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 5.08 2.54) (xy 4.318 2.54) (xy 4.318 1.016) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -5.08 0) (xy -3.81 0) (xy -3.81 -1.016) (xy -3.302 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -4.318 0) (xy -3.81 0) (xy -3.81 1.016) (xy -3.302 2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 4.318 -1.016) + (radius 0.127) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 4.318 1.016) + (radius 0.127) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "RotaryEncoder_Switch_1_1" + (pin passive line + (at -7.62 2.54 0) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -7.62 -2.54 0) + (length 2.54) + (name "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "B" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -7.62 0 0) + (length 2.54) + (name "C" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "C" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 2.54 180) + (length 2.54) + (name "S1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 7.62 -2.54 180) + (length 2.54) + (name "S2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "S2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "LED:SK6812MINI" + (pin_names + (offset 0.254) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 5.08 5.715 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right bottom) + ) + ) + (property "Value" "SK6812MINI" + (at 1.27 -5.715 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 1.27 -7.62 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 2.54 -9.525 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "RGB LED NeoPixel Mini addressable" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "LED*SK6812MINI*PLCC*3.5x3.5mm*P1.75mm*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SK6812MINI_0_0" + (text "RGB" + (at 2.286 -4.191 0) + (effects + (font + (size 0.762 0.762) + ) + ) + ) + ) + (symbol "SK6812MINI_0_1" + (polyline + (pts + (xy 1.27 -3.556) (xy 1.778 -3.556) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 -2.54) (xy 1.778 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 4.699 -3.556) (xy 2.667 -3.556) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.286 -2.54) (xy 1.27 -3.556) (xy 1.27 -3.048) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 2.286 -1.524) (xy 1.27 -2.54) (xy 1.27 -2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 3.683 -1.016) (xy 3.683 -3.556) (xy 3.683 -4.064) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 4.699 -1.524) (xy 2.667 -1.524) (xy 3.683 -3.556) (xy 4.699 -1.524) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (rectangle + (start 5.08 5.08) + (end -5.08 -5.08) + (stroke + (width 0.254) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "SK6812MINI_1_1" + (pin output line + (at 7.62 0 180) + (length 2.54) + (name "DOUT" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 -7.62 90) + (length 2.54) + (name "VSS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input line + (at -7.62 0 0) + (length 2.54) + (name "DIN" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at 0 7.62 270) + (length 2.54) + (name "VDD" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "ScottoKeebs:OLED_128x32" + (pin_names + (offset 1.016) + ) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "J" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "OLED_128x32" + (at 0 6.35 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "ScottoKeebs_Components:OLED_128x32" + (at 0 8.89 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 1.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "OLED_128x32_0_1" + (rectangle + (start 0 5.08) + (end 15.24 -5.08) + (stroke + (width 0) + (type default) + ) + (fill + (type background) + ) + ) + ) + (symbol "OLED_128x32_1_1" + (pin power_in line + (at -2.54 -3.81 0) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin power_in line + (at -2.54 -1.27 0) + (length 2.54) + (name "VCC" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin input clock + (at -2.54 1.27 0) + (length 2.54) + (name "SCL" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin bidirectional line + (at -2.54 3.81 0) + (length 2.54) + (name "SDA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "ScottoKeebs:Placeholder_Diode" + (pin_numbers hide) + (pin_names hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "D" + (at 0 2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "Diode" + (at 0 -2.54 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "diode" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_fp_filters" "D*DO?35*" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "Placeholder_Diode_0_1" + (polyline + (pts + (xy -1.27 1.27) (xy -1.27 -1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 0) (xy -1.27 0) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.27 1.27) (xy 1.27 -1.27) (xy -1.27 0) (xy 1.27 1.27) + ) + (stroke + (width 0.254) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "Placeholder_Diode_1_1" + (pin passive line + (at -3.81 0 0) + (length 2.54) + (name "K" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 3.81 0 180) + (length 2.54) + (name "A" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP" + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "U" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 5.334 -1.778 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Module:MOUDLE14P-XIAO-DIP-SMD" + (at 14.478 -32.258 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "XIAO-RP2040-DIP_1_0" + (polyline + (pts + (xy -1.27 -30.48) (xy -1.27 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -27.94) (xy -2.54 -27.94) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -24.13) (xy -2.54 -24.13) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -20.32) (xy -2.54 -20.32) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -16.51) (xy -2.54 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -16.51) (xy -1.27 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -12.7) (xy -2.54 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -12.7) (xy -1.27 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -8.89) (xy -2.54 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -8.89) (xy -1.27 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -5.08) (xy -2.54 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -5.08) (xy -1.27 -2.54) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -1.27 -2.54) (xy 29.21 -2.54) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -30.48) (xy -1.27 -30.48) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -12.7) (xy 29.21 -30.48) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -8.89) (xy 29.21 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -5.08) (xy 29.21 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 29.21 -2.54) (xy 29.21 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -27.94) (xy 29.21 -27.94) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -24.13) (xy 29.21 -24.13) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -20.32) (xy 29.21 -20.32) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -16.51) (xy 29.21 -16.51) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -12.7) (xy 29.21 -12.7) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -8.89) (xy 29.21 -8.89) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 30.48 -5.08) (xy 29.21 -5.08) + ) + (stroke + (width 0.1524) + (type solid) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -3.81 -5.08 0) + (length 2.54) + (name "GPIO26/ADC0/A0" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -20.32 180) + (length 2.54) + (name "GPIO4/MISO" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "10" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -16.51 180) + (length 2.54) + (name "GPIO3/MOSI" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "11" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -12.7 180) + (length 2.54) + (name "3V3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "12" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -8.89 180) + (length 2.54) + (name "GND" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "13" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -5.08 180) + (length 2.54) + (name "VBUS" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "14" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -8.89 0) + (length 2.54) + (name "GPIO27/ADC1/A1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -12.7 0) + (length 2.54) + (name "GPIO28/ADC2/A2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -16.51 0) + (length 2.54) + (name "GPIO29/ADC3/A3" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "4" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -20.32 0) + (length 2.54) + (name "GPIO6/SDA" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "5" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -24.13 0) + (length 2.54) + (name "GPIO7/SCL" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "6" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at -3.81 -27.94 0) + (length 2.54) + (name "GPIO0/TX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "7" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -27.94 180) + (length 2.54) + (name "GPIO1/RX" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "8" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 31.75 -24.13 180) + (length 2.54) + (name "GPIO2/SCK" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "9" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "Switch:SW_Push_45deg" + (pin_numbers hide) + (pin_names + (offset 1.016) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "SW" + (at 3.048 1.016 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "SW_Push_45deg" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "switch normally-open pushbutton push-button" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "SW_Push_45deg_0_1" + (circle + (center -1.1684 1.1684) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -0.508 2.54) (xy 2.54 -0.508) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.016 1.016) (xy 2.032 2.032) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy -2.54 2.54) (xy -1.524 1.524) (xy -1.524 1.524) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 1.524 -1.524) (xy 2.54 -2.54) (xy 2.54 -2.54) (xy 2.54 -2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (circle + (center 1.143 -1.1938) + (radius 0.508) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (pin passive line + (at -2.54 2.54 0) + (length 0) + (name "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + (pin passive line + (at 2.54 -2.54 180) + (length 0) + (name "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "2" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:+5V" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 0 3.556 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "+5V_0_1" + (polyline + (pts + (xy -0.762 1.27) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 0) (xy 0 2.54) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + (polyline + (pts + (xy 0 2.54) (xy 0.762 1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "+5V_1_1" + (pin power_in line + (at 0 0 90) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + (symbol "power:GND" + (power) + (pin_numbers hide) + (pin_names + (offset 0) hide) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (property "Reference" "#PWR" + (at 0 -6.35 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 0 -3.81 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "ki_keywords" "global power" + (at 0 0 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (symbol "GND_0_1" + (polyline + (pts + (xy 0 0) (xy 0 -1.27) (xy 1.27 -1.27) (xy 0 -2.54) (xy -1.27 -1.27) (xy 0 -1.27) + ) + (stroke + (width 0) + (type default) + ) + (fill + (type none) + ) + ) + ) + (symbol "GND_1_1" + (pin power_in line + (at 0 0 270) + (length 0) + (name "~" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (number "1" + (effects + (font + (size 1.27 1.27) + ) + ) + ) + ) + ) + ) + ) + (junction + (at 76.2 86.36) + (diameter 0) + (color 0 0 0 0) + (uuid "0cf2e436-2fa9-4223-bbd2-1ae3cd60cd39") + ) + (junction + (at 119.38 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "0e886d46-1d97-405a-a959-21245a2a875a") + ) + (junction + (at 119.38 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "0f2728f2-e840-4ffb-a70d-ea9ac2192e05") + ) + (junction + (at 140.97 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "13a831b7-9a06-4cef-8548-58a70b2a4ac6") + ) + (junction + (at 95.25 86.36) + (diameter 0) + (color 0 0 0 0) + (uuid "20991fd9-18e1-499b-8b43-71c4dec1dcbf") + ) + (junction + (at 105.41 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "32faf1df-b449-4301-8068-547e6795d0df") + ) + (junction + (at 59.69 63.5) + (diameter 0) + (color 0 0 0 0) + (uuid "5113df16-b250-4666-a00f-2e83e32d472e") + ) + (junction + (at 62.23 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "6a8bae1c-5a2c-4947-a156-360f82a14764") + ) + (junction + (at 48.26 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "90260c0b-0833-4e1a-85fa-09ff17e16460") + ) + (junction + (at 95.25 63.5) + (diameter 0) + (color 0 0 0 0) + (uuid "9eb9e812-5067-40ce-9a5d-51e851f09e7a") + ) + (junction + (at 36.83 50.8) + (diameter 0) + (color 0 0 0 0) + (uuid "a002188c-67d5-4348-ab72-ab1912aab8a0") + ) + (junction + (at 83.82 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "a155e91a-24bf-4770-a08f-b66103444538") + ) + (junction + (at 113.03 63.5) + (diameter 0) + (color 0 0 0 0) + (uuid "a2b994c6-1533-43f6-b91d-759be4ccec78") + ) + (junction + (at 105.41 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "b0ce829c-a210-4139-8679-c50929a674cf") + ) + (junction + (at 62.23 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "c76e513b-aee2-4357-ba8c-c48c82f5a0d7") + ) + (junction + (at 162.56 124.46) + (diameter 0) + (color 0 0 0 0) + (uuid "cb64f199-d190-41c3-8dba-1f908041e74b") + ) + (junction + (at 48.26 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "d01fe8b8-e1ce-4361-b734-799eea3b1786") + ) + (junction + (at 76.2 63.5) + (diameter 0) + (color 0 0 0 0) + (uuid "d181ec1e-1d0b-4d0c-b416-d33e5b141800") + ) + (junction + (at 162.56 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "e530f95a-1776-421e-947c-93942217e4a5") + ) + (junction + (at 59.69 86.36) + (diameter 0) + (color 0 0 0 0) + (uuid "f1ebe3b6-e91b-4215-858c-e916ae3653f3") + ) + (junction + (at 83.82 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "f674dcfd-1c3a-45b3-8260-e600e7aaf5b9") + ) + (junction + (at 140.97 139.7) + (diameter 0) + (color 0 0 0 0) + (uuid "f790c8d5-5d8b-404b-80fb-67fe0c929ca0") + ) + (wire + (pts + (xy 83.82 124.46) (xy 105.41 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "02c2369d-defd-4f12-876d-66713473762a") + ) + (wire + (pts + (xy 59.69 86.36) (xy 76.2 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "10a142a5-e22e-4f4e-bc10-0ed75d75cd9b") + ) + (wire + (pts + (xy 83.82 139.7) (xy 105.41 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "188128bb-3969-4713-9fce-3b1c38cab6d1") + ) + (wire + (pts + (xy 90.17 50.8) (xy 90.17 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "19c5f215-d232-4e74-b702-5e574fa8bf7e") + ) + (wire + (pts + (xy 121.92 86.36) (xy 95.25 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1a9a592b-eef0-4410-acff-e731eafa24c7") + ) + (wire + (pts + (xy 119.38 139.7) (xy 140.97 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "1d4d4b2e-643b-4c92-9f4b-11dcd1d7b16d") + ) + (wire + (pts + (xy 62.23 124.46) (xy 83.82 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "23514951-b14d-4b9e-bd6a-e14422ac17a4") + ) + (wire + (pts + (xy 177.8 59.69) (xy 173.99 59.69) + ) + (stroke + (width 0) + (type default) + ) + (uuid "23e16aad-b07c-4344-8e35-f4f74c9ce533") + ) + (wire + (pts + (xy 140.97 124.46) (xy 162.56 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "2a8261a8-85af-40f8-a305-f6c13b7f3ce6") + ) + (wire + (pts + (xy 48.26 124.46) (xy 62.23 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3820dfbf-81a3-4b77-b11d-9cc5ba36988f") + ) + (wire + (pts + (xy 91.44 132.08) (xy 97.79 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "384e4eae-ae8c-4b64-9291-6e3975e1af60") + ) + (wire + (pts + (xy 162.56 139.7) (xy 187.96 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3876dc86-7c0b-46bb-bba8-cf05f2889548") + ) + (wire + (pts + (xy 48.26 139.7) (xy 62.23 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "3b995569-86e8-42f9-a7a3-ccea37d1986e") + ) + (wire + (pts + (xy 162.56 124.46) (xy 187.96 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4ae477f0-3fff-406a-bef6-fafb8390cab2") + ) + (wire + (pts + (xy 76.2 63.5) (xy 95.25 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "4b94cfcb-d9ec-475e-877c-47205a49f6db") + ) + (wire + (pts + (xy 71.12 50.8) (xy 71.12 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "50517b8d-fa19-4320-a91f-cc4531aee91b") + ) + (wire + (pts + (xy 148.59 132.08) (xy 154.94 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "522bd4cb-dfc9-4126-92ad-482d762e4a1f") + ) + (wire + (pts + (xy 140.97 139.7) (xy 162.56 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "5f400f14-d754-43b1-ab06-443e77c7ff4d") + ) + (wire + (pts + (xy 36.83 29.21) (xy 36.83 50.8) + ) + (stroke + (width 0) + (type default) + ) + (uuid "613accae-a036-4f1e-b769-f61c18fae4ce") + ) + (wire + (pts + (xy 105.41 139.7) (xy 119.38 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "62db0933-ae8c-45a2-b599-0dfe36cb7b46") + ) + (wire + (pts + (xy 119.38 124.46) (xy 140.97 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "6552ac37-f751-4098-b231-7ce7675d78a2") + ) + (wire + (pts + (xy 113.03 63.5) (xy 95.25 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "733ae8dd-cbde-4e8d-841b-90f3fce09877") + ) + (wire + (pts + (xy 36.83 50.8) (xy 36.83 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "74c0f3b3-4250-4f5f-a5f8-b3a461fbadc5") + ) + (wire + (pts + (xy 41.91 86.36) (xy 59.69 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "768b2b19-bf0c-4e1e-ad2e-a9375c2c0142") + ) + (wire + (pts + (xy 69.85 132.08) (xy 76.2 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7860045d-ef8a-418e-8a51-29d4b23ac3c3") + ) + (wire + (pts + (xy 62.23 139.7) (xy 83.82 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "7c7499c2-9be0-444d-978f-b80d99cc8eae") + ) + (wire + (pts + (xy 76.2 86.36) (xy 95.25 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "88515cc8-2ec0-42a7-a9b5-99be2de0b3da") + ) + (wire + (pts + (xy 208.28 86.36) (xy 193.04 86.36) + ) + (stroke + (width 0) + (type default) + ) + (uuid "a270fe44-4135-44e0-a5ae-0114835530d3") + ) + (wire + (pts + (xy 34.29 124.46) (xy 48.26 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bc114d7d-17da-41b6-8b35-18d08646571d") + ) + (wire + (pts + (xy 208.28 90.17) (xy 193.04 90.17) + ) + (stroke + (width 0) + (type default) + ) + (uuid "bd28f5a1-f555-4a0e-b2f0-8e5793b6af59") + ) + (wire + (pts + (xy 127 132.08) (xy 133.35 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cc1e71ff-7c3a-49ba-b435-0688a21e2fba") + ) + (wire + (pts + (xy 105.41 124.46) (xy 119.38 124.46) + ) + (stroke + (width 0) + (type default) + ) + (uuid "cdda8274-cf2e-4a26-85a3-1e6aef5d8c7d") + ) + (wire + (pts + (xy 130.81 55.88) (xy 139.7 55.88) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ce57a172-de20-4474-b209-fa82f2449d82") + ) + (wire + (pts + (xy 59.69 63.5) (xy 76.2 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d56a50ac-eb31-4544-b1c3-b9fd251fec74") + ) + (wire + (pts + (xy 54.61 50.8) (xy 54.61 73.66) + ) + (stroke + (width 0) + (type default) + ) + (uuid "d8d7cec3-9976-4b04-beeb-6314fd4a5bbd") + ) + (wire + (pts + (xy 173.99 59.69) (xy 173.99 60.96) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e48fb94e-7acf-4c8f-adcd-05d4cbb83bc1") + ) + (wire + (pts + (xy 34.29 139.7) (xy 48.26 139.7) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e56d2116-7a31-42ec-944c-cfd4b2af87f7") + ) + (wire + (pts + (xy 121.92 63.5) (xy 113.03 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "e58d005e-d60d-488b-aaa6-bc4ffd30bc64") + ) + (wire + (pts + (xy 170.18 132.08) (xy 180.34 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "ed52cdfa-0b97-4b75-9fda-c7e212c8354c") + ) + (wire + (pts + (xy 41.91 63.5) (xy 59.69 63.5) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f12b974e-9e14-4ef2-9287-335ba808e98c") + ) + (wire + (pts + (xy 41.91 132.08) (xy 54.61 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "f7213325-1e06-4dd7-a245-4e7713c01be6") + ) + (wire + (pts + (xy 111.76 132.08) (xy 113.03 132.08) + ) + (stroke + (width 0) + (type default) + ) + (uuid "fee86481-0f02-4b7e-b77b-e7dff85c0c7d") + ) + (global_label "NEOPIXEL" + (shape input) + (at 26.67 132.08 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "2d95a03a-4ae6-46bd-b2a4-ae1114249901") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 14.6134 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "col1" + (shape input) + (at 36.83 29.21 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "2ef80886-9415-4443-9102-3451094520b3") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 36.83 22.1125 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "SDA" + (shape input) + (at 157.48 101.6 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "357ef89a-73c0-4188-b62c-3d28babbbe60") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.9267 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "col2" + (shape input) + (at 54.61 50.8 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "3700ad9a-598b-4f22-89d6-e73284c37179") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 54.61 43.7025 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "col2" + (shape input) + (at 157.48 93.98 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "414cf9f3-a16e-438d-9c57-cf45094051b7") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.3825 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "SCL" + (shape input) + (at 157.48 105.41 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "4e07f16f-8b31-49cf-b726-786031b2761b") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.9872 105.41 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "col3" + (shape input) + (at 71.12 50.8 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5805439f-e39b-4e01-b0b7-4463702469da") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 71.12 43.7025 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "ROUTPUT" + (shape input) + (at 113.03 55.88 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5cad1b85-3056-4b7d-8d64-98354f728289") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 113.03 44.4281 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "row1" + (shape input) + (at 193.04 101.6 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "5f5fe941-cda2-4c81-8e23-75e7e526c3fa") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 200.5004 101.6 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "row2" + (shape input) + (at 121.92 86.36 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "6829e5a9-d65a-41fa-b866-76abd45e4a77") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 129.3804 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "NEOPIXEL" + (shape input) + (at 193.04 97.79 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "7d18881c-717d-4628-9ba3-2fb61f2ac9b9") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 205.0966 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "EC11B" + (shape input) + (at 139.7 53.34 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "8164b014-f8c0-47a2-af8e-4b4d18598d52") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 130.6068 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "EC11A" + (shape input) + (at 193.04 105.41 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "8feb5882-88a3-4423-88fd-1692601e62cf") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 201.9518 105.41 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "col3" + (shape input) + (at 157.48 90.17 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "98b50935-5978-4590-b7ed-d1f7c004c2b2") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.3825 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "EC11A" + (shape input) + (at 139.7 58.42 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "a45ac9fc-72aa-449f-a5cd-51d11b56eaab") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 130.7882 58.42 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "col4" + (shape input) + (at 157.48 86.36 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "ab9d5c1f-f812-42c7-89ad-755ea9c130db") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.3825 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "EC11B" + (shape input) + (at 193.04 109.22 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "ada89d72-47b8-41a0-9b81-f0987114be68") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 202.1332 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "col4" + (shape input) + (at 90.17 50.8 90) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "ade4fd79-3b85-4dab-b528-763635f3cd8e") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 90.17 43.7025 90) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "3V3" + (shape input) + (at 177.8 57.15 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "ae4a16a3-a644-458f-b2ae-449bf0468da9") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 171.3072 57.15 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "col1" + (shape input) + (at 157.48 97.79 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "af8535b7-763b-48ad-98a1-ef626a8a2490") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.3825 97.79 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "row1" + (shape input) + (at 121.92 63.5 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "b06231a6-c386-4ddc-96aa-658fa994b64b") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 129.3804 63.5 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "row2" + (shape input) + (at 157.48 109.22 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "b257c538-af7c-4de7-83ca-301e7be70d19") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 150.0196 109.22 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "SCL" + (shape input) + (at 177.8 54.61 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "c7f4f4c5-7ed3-4682-890d-23e0ecd4a4d6") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 171.3072 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "RINPUT" + (shape input) + (at 36.83 36.83 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "ca306316-e19a-4578-9599-631a2b9cc911") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 27.0714 36.83 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (global_label "3V3" + (shape input) + (at 193.04 93.98 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d76d643a-1d7a-4fbc-a381-12a7604f809d") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 199.5328 93.98 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "RINPUT" + (shape input) + (at 154.94 53.34 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d7b348a6-fdd7-4cc4-b9bf-c92e3f0eedee") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 164.6986 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "ROUTPUT" + (shape input) + (at 154.94 58.42 0) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + (uuid "d97a99b2-1652-4e60-99f9-54458a796b04") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 166.3919 58.42 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + (hide yes) + ) + ) + ) + (global_label "SDA" + (shape input) + (at 177.8 52.07 180) + (fields_autoplaced yes) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + (uuid "e2c04a09-e39b-4744-8e8b-63df532dcbe5") + (property "Intersheetrefs" "${INTERSHEET_REFS}" + (at 171.2467 52.07 0) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + (hide yes) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 41.91 82.55 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "0182b48c-fe8b-47ef-8be4-7fa0b56081bd") + (property "Reference" "D3" + (at 44.45 81.2799 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 44.45 83.8199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 41.91 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 41.91 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 41.91 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 41.91 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 41.91 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "ec7ea631-6828-4bc6-bb1a-43120b34e603") + ) + (pin "1" + (uuid "078994c5-f3df-4a7b-a998-d8765640c52a") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Device:RotaryEncoder_Switch") + (at 147.32 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "1f3b652e-8c8b-49f0-b2ef-8372bc3bab18") + (property "Reference" "SW9" + (at 147.32 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "RotaryEncoder_Switch" + (at 147.32 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Rotary_Encoder:RotaryEncoder_Alps_EC11E-Switch_Vertical_H20mm" + (at 143.51 51.816 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 147.32 49.276 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Rotary encoder, dual channel, incremental quadrate outputs, with switch" + (at 147.32 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "A" + (uuid "bb135034-1708-4b5a-ae03-582031b3b35b") + ) + (pin "B" + (uuid "91e5a1b6-1640-407d-8077-2f9eb86c9af8") + ) + (pin "S2" + (uuid "2e210253-a2b6-486f-82aa-d772d685bfbb") + ) + (pin "S1" + (uuid "07e37b84-a6b0-408b-b2ad-e4d870ad31eb") + ) + (pin "C" + (uuid "8bb539ed-2faf-4471-9f4a-709cdf917a46") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW9") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 208.28 86.36 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "235c46b6-f99b-460e-8859-bc8b006f0aa1") + (property "Reference" "#PWR03" + (at 208.28 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 208.28 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 208.28 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 208.28 86.36 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "717881cd-cf03-4f53-babe-45161384a137") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR03") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 48.26 139.7 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "25643743-ccf2-4fca-a91e-c886fdc0568e") + (property "Reference" "#PWR01" + (at 48.26 146.05 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 48.26 144.78 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 48.26 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 48.26 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 48.26 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "886fbfca-6c00-4466-a6e8-9bfb10098f22") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR01") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 39.37 76.2 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "261f75ab-c061-46a1-9759-af1f257be337") + (property "Reference" "SW1" + (at 39.37 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 39.37 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 39.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 39.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 39.37 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "029d8268-75a7-429b-bce3-3f678009c3c5") + ) + (pin "2" + (uuid "da6964a6-9dc2-4729-97a6-55f234bc7043") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Seeed_Studio_XIAO_Series:XIAO-RP2040-DIP") + (at 161.29 81.28 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "35a068e0-5f88-40dc-ba2a-cf656c23bdce") + (property "Reference" "U1" + (at 175.26 78.74 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "XIAO-RP2040-DIP" + (at 175.26 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Seeed Studio XIAO Series Library:XIAO-RP2040-DIP" + (at 175.768 113.538 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 161.29 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 161.29 81.28 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "6" + (uuid "600ec4d4-48ec-40a0-8d89-97dacd8e17be") + ) + (pin "9" + (uuid "d5275c79-cd14-453c-80d1-8861b6470357") + ) + (pin "13" + (uuid "aeff5494-b2d7-4717-b72e-b0b646607378") + ) + (pin "11" + (uuid "7773e803-1a5d-4a2d-a68f-5729d0b5dc42") + ) + (pin "8" + (uuid "9b4b334e-db81-4dcf-88da-54d71ccf8fb1") + ) + (pin "2" + (uuid "5cd6ba0f-7247-4182-a962-74b5d236ef30") + ) + (pin "14" + (uuid "0b2effcf-8e65-4170-a936-73c77e324386") + ) + (pin "12" + (uuid "570c028a-43e2-47b0-90f2-d970eaafa31f") + ) + (pin "10" + (uuid "4bb715f1-9888-4ca3-886e-13cd0bdb0982") + ) + (pin "3" + (uuid "cbbd32b5-1f20-4e03-b7be-07b7995d87c1") + ) + (pin "5" + (uuid "dc45325c-91ab-45ee-9bc7-700329898620") + ) + (pin "1" + (uuid "2e28ed87-1d2c-4dbf-9e96-4e8d26301c8b") + ) + (pin "4" + (uuid "eebfee26-1065-4ece-81ed-8739d81f879e") + ) + (pin "7" + (uuid "3a8a98f7-73f4-4371-b8be-326b0ee85834") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "U1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 95.25 59.69 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "492b14a3-196e-491e-8781-0d6aedc31079") + (property "Reference" "D9" + (at 97.79 58.4199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 97.79 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 95.25 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 95.25 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 95.25 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 95.25 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 95.25 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "536a53a0-419b-4dd0-9e5c-34bff06a6459") + ) + (pin "1" + (uuid "50a186ad-5ce7-43b7-b2f2-e0f90065e9ac") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D9") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 62.23 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "496010bf-b03a-4ebc-b0fa-a1866f535ae8") + (property "Reference" "D2" + (at 74.93 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 74.93 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 63.5 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 64.77 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 62.23 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "33d4b93b-e45d-4f4a-a421-51018b509e83") + ) + (pin "2" + (uuid "dd5a5e09-f3c7-4bf3-9de0-50c5d8a3e9bb") + ) + (pin "1" + (uuid "abca9311-b368-4f1f-9337-61507e0e1c10") + ) + (pin "3" + (uuid "99702eab-e447-4567-b771-65c8a4fa4931") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 92.71 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "4e64b0d4-0bf5-4a85-844f-860d31b1043a") + (property "Reference" "SW7" + (at 92.71 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 92.71 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 92.71 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 92.71 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 92.71 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "96f44453-99fc-4315-9f57-f865ea77698c") + ) + (pin "2" + (uuid "8509b7ef-9d14-4c86-b31d-efcbb5d5870a") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 59.69 82.55 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "4e988283-ea88-4926-a401-acf7a0415ab1") + (property "Reference" "D4" + (at 62.23 81.2799 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 62.23 83.8199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 59.69 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 59.69 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 59.69 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 59.69 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 59.69 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "ae5ac38f-3bf5-4135-b5fc-016c67ebb31c") + ) + (pin "1" + (uuid "7041285c-b187-445f-95b5-f517dc77ed90") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 173.99 60.96 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5209f54d-9721-4bfb-a47f-b798e7a18665") + (property "Reference" "#PWR05" + (at 173.99 67.31 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 173.99 66.04 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 173.99 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 173.99 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 173.99 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "4d224cfa-6966-4873-aeb2-80ffdb6d1eaa") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR05") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 76.2 59.69 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "554ad5aa-fcfb-4528-b5bb-4feac667d765") + (property "Reference" "D8" + (at 78.74 58.4199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 78.74 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 76.2 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 76.2 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 76.2 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 76.2 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 76.2 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "f3759646-4595-42ab-bd5a-d320a927fbf0") + ) + (pin "1" + (uuid "7f631640-3fdf-43cc-8630-d827d5825048") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D8") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:OLED_128x32") + (at 180.34 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "55d70023-2f4f-4dd3-9cd5-34beea9f5bfe") + (property "Reference" "J2" + (at 196.85 54.6099 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Value" "OLED_128x32" + (at 196.85 57.1499 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left) + ) + ) + (property "Footprint" "ScottoKeebs_Components:OLED_128x32" + (at 180.34 46.99 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 180.34 54.61 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "" + (at 180.34 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "f4004f06-9b6b-4447-88d7-cf13fa042ca8") + ) + (pin "2" + (uuid "5c5f5777-720a-491a-9bfe-460a4a75dfee") + ) + (pin "3" + (uuid "31dd2584-3b1e-45b3-b961-4fb0ef0fe367") + ) + (pin "1" + (uuid "159ab1e0-1d62-4995-8c18-163c1cc9aeda") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "J2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 130.81 55.88 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5b6b466a-2f58-4300-82dc-174ed61dc905") + (property "Reference" "#PWR06" + (at 130.81 62.23 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 130.81 60.96 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 130.81 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 130.81 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 130.81 55.88 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "90f06f00-f3e9-4333-a830-11697551cf33") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR06") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 39.37 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "5f4c010a-8b72-4d09-b514-c1bed217a028") + (property "Reference" "SW4" + (at 39.37 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 39.37 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 39.37 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 39.37 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 39.37 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "63ed5a01-fa0d-469a-8e5d-49cc92475c94") + ) + (pin "2" + (uuid "6419f91c-d9a1-4449-8103-da6c10e3fcab") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW4") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 73.66 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "758505f7-d3d8-4901-9513-5d620fdca2ab") + (property "Reference" "SW6" + (at 73.66 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 73.66 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 73.66 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 73.66 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 73.66 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "359eb099-012e-49f9-b6e3-04493d714e8e") + ) + (pin "2" + (uuid "db6f8717-de98-4c56-a5e8-0f2a1ba9192c") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:+5V") + (at 48.26 124.46 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "78862f0f-a4af-4590-b768-978b3a019aa8") + (property "Reference" "#PWR04" + (at 48.26 128.27 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "+5V" + (at 48.26 119.38 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 48.26 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 48.26 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"+5V\"" + (at 48.26 124.46 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "d7ffad31-fc3b-49cc-b82a-d875d2121b35") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR04") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 76.2 82.55 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "8f9dee36-bcf8-4199-b179-81a96b947127") + (property "Reference" "D5" + (at 78.74 81.2799 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 78.74 83.8199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 76.2 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 76.2 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 76.2 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 76.2 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 76.2 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "6261f445-84e8-40ba-9f30-36e9e0a1bd92") + ) + (pin "1" + (uuid "83c89c5b-0061-414e-8d3f-a59bd51d83ec") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 83.82 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "92960efb-0266-4005-bd5f-7ae1803b9af7") + (property "Reference" "D11" + (at 96.52 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 96.52 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 85.09 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 86.36 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 83.82 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "7c2eee88-d293-4f89-ac47-dca1f4f40188") + ) + (pin "2" + (uuid "c89d942a-592a-4e28-8c1e-ca42ce61a7f1") + ) + (pin "1" + (uuid "14a69ada-265b-43a6-9584-a2828f09ca3d") + ) + (pin "3" + (uuid "ee7e79a3-bbfc-4a5c-8921-c01e8646380d") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D11") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "power:GND") + (at 208.28 90.17 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "9a0d354a-e5c0-4b21-9d96-afc39358fd06") + (property "Reference" "#PWR02" + (at 208.28 96.52 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Value" "GND" + (at 208.28 95.25 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "" + (at 208.28 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 208.28 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Power symbol creates a global label with name \"GND\" , ground" + (at 208.28 90.17 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "49caf229-e323-40c6-864c-86ef49ffc54c") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "#PWR02") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 41.91 59.69 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "9beb8400-f418-49d3-8d9b-ca8a6e3d55a9") + (property "Reference" "D6" + (at 44.45 58.4199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 44.45 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 41.91 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 41.91 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 41.91 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 41.91 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 41.91 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "08ffb663-9cb3-4659-a101-c2bca3609b21") + ) + (pin "1" + (uuid "9d2c93ba-dce1-4cd1-87af-52b92bde6e94") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D6") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 95.25 82.55 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ac02af9b-38a1-4956-b4e5-3c84756921e8") + (property "Reference" "D10" + (at 97.79 81.2799 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 97.79 83.8199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 95.25 82.55 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "89ec82c5-4ae2-4fff-a2bc-eb11ea49b69d") + ) + (pin "1" + (uuid "0114a1e9-c41d-49d0-acb2-94de1f579b2e") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D10") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 57.15 76.2 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c222d41d-1ea9-43a3-bed7-12de2759d5b3") + (property "Reference" "SW2" + (at 57.15 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 57.15 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 57.15 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 57.15 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 57.15 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "8adf2917-1174-4c94-b6df-3408ad595f6b") + ) + (pin "2" + (uuid "df61288c-8ada-4d71-8aa1-52720cdb7587") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW2") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 73.66 76.2 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "c5f1d131-52fa-4aab-92d1-4f7d6a77768d") + (property "Reference" "SW3" + (at 73.66 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 73.66 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 73.66 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 73.66 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 73.66 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "a0cb71c7-7695-4706-b26e-c21000612fb7") + ) + (pin "2" + (uuid "1d80deea-3a9a-4f77-991a-9b73535cd3d5") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW3") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 113.03 59.69 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d2757a62-5fd6-436f-a272-edfa97e09620") + (property "Reference" "D12" + (at 115.57 58.4199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 115.57 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 113.03 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 113.03 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 113.03 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 113.03 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 113.03 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "a84560c4-dd0c-44c9-8d1f-bee53053cad5") + ) + (pin "1" + (uuid "45dea4ca-feee-426d-9987-e85d22e4619a") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D12") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 119.38 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d4dad580-cf91-4aa0-9cca-6e9db2b71eab") + (property "Reference" "D14" + (at 132.08 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 132.08 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 120.65 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 121.92 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 119.38 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "7ae415d3-ac80-4896-9acd-f81c092c04ee") + ) + (pin "2" + (uuid "1df5575b-6a89-4e36-a5e2-277b33c7580f") + ) + (pin "1" + (uuid "4b0d04d7-b301-4570-b2a5-109e3f253602") + ) + (pin "3" + (uuid "c25ec39d-6b2e-4a9a-913f-e01dba1b20e6") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D14") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 34.29 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d54e5a7f-7f39-41b2-a0c7-e86fcb28a10b") + (property "Reference" "D1" + (at 46.99 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 46.99 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 35.56 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 36.83 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 34.29 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "e19bfe51-c0d9-4916-a190-178aa01149f1") + ) + (pin "2" + (uuid "4d86aeb0-6472-4f37-bef5-fe216d12ea98") + ) + (pin "1" + (uuid "d0ec2561-074f-43ef-92bd-540907c717f0") + ) + (pin "3" + (uuid "7334b7cf-63ae-40f9-b4b6-a239fe865fa3") + ) + (instances + (project "" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D1") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 105.41 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "d7e2a864-424f-46fb-b7ff-7fca8ee5a421") + (property "Reference" "D13" + (at 118.11 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 118.11 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 106.68 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 107.95 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 105.41 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "28253de3-e25a-41d5-a26b-27af368503a1") + ) + (pin "2" + (uuid "42c226c8-c0d6-44c2-aed9-d3009b7c9781") + ) + (pin "1" + (uuid "76db3edc-04c2-4276-a56d-fc57e8c34308") + ) + (pin "3" + (uuid "e9daa752-31b1-47a5-ac6b-9a9e8b3ae87d") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D13") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 140.97 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ee596f9f-bf74-4da1-9666-bf7b9b49cced") + (property "Reference" "D15" + (at 153.67 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 153.67 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 142.24 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 143.51 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 140.97 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "13f5cc77-b3d7-443f-8886-586430e85dae") + ) + (pin "2" + (uuid "a462710c-a20f-4370-b3bc-311c00965e8a") + ) + (pin "1" + (uuid "e2dbcd32-0e33-48d8-8a56-5d62978aea9b") + ) + (pin "3" + (uuid "3131e3d3-be6d-4343-bf35-0b3d14076e73") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D15") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 57.15 53.34 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f09b3314-d915-403a-ab16-16fc4614b166") + (property "Reference" "SW5" + (at 57.15 45.72 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 57.15 48.26 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 57.15 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 57.15 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 57.15 53.34 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "705552f4-523c-4e62-99ff-2933136add2c") + ) + (pin "2" + (uuid "a055072b-bba1-4c80-bc67-f4d39d9192c3") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW5") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 187.96 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f4b5d257-d254-4ca9-8510-b7d538e00f6e") + (property "Reference" "D17" + (at 200.66 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 200.66 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 189.23 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 190.5 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 187.96 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "da6d0b60-b167-45a0-8637-95d8dc932f60") + ) + (pin "2" + (uuid "e73f55a1-b793-41d0-83cb-9dcccab3a3ed") + ) + (pin "1" + (uuid "1375a941-adf4-403b-b475-fe68679753f1") + ) + (pin "3" + (uuid "ff6baded-b9f9-4827-a347-88a88cc080fd") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D17") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "LED:SK6812MINI") + (at 162.56 132.08 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "f5eb316a-048e-4ccd-b0dd-9ce11e5a2036") + (property "Reference" "D16" + (at 175.26 125.7614 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SK6812MINI" + (at 175.26 128.3014 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "LED_SMD:LED_SK6812MINI_PLCC4_3.5x3.5mm_P1.75mm" + (at 163.83 139.7 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Datasheet" "https://cdn-shop.adafruit.com/product-files/2686/SK6812MINI_REV.01-1-2.pdf" + (at 165.1 141.605 0) + (effects + (font + (size 1.27 1.27) + ) + (justify left top) + (hide yes) + ) + ) + (property "Description" "RGB LED with integrated controller" + (at 162.56 132.08 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "4" + (uuid "d7f9074b-bddf-4db5-bb7a-ee93cc8d4d41") + ) + (pin "2" + (uuid "c37255bb-5ba5-4daf-8551-ed0dbaf937ee") + ) + (pin "1" + (uuid "b09b6a47-169e-46f8-aab1-9b9c929bcf1e") + ) + (pin "3" + (uuid "1d898747-3ca0-469a-a89d-b99abc6e8f9d") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D16") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "ScottoKeebs:Placeholder_Diode") + (at 59.69 59.69 90) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (fields_autoplaced yes) + (uuid "ff19517d-941e-403e-91a1-6d1f376aed1a") + (property "Reference" "D7" + (at 62.23 58.4199 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Value" "Diode" + (at 62.23 60.9599 90) + (effects + (font + (size 1.27 1.27) + ) + (justify right) + ) + ) + (property "Footprint" "Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal" + (at 59.69 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "" + (at 59.69 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "1N4148 (DO-35) or 1N4148W (SOD-123)" + (at 59.69 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Device" "D" + (at 59.69 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Sim.Pins" "1=K 2=A" + (at 59.69 59.69 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "2" + (uuid "dfb92c3b-7dbd-40c5-aa03-07cec662b4dd") + ) + (pin "1" + (uuid "ca35717e-105e-4c15-8cfe-15f5e171b9a5") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "D7") + (unit 1) + ) + ) + ) + ) + (symbol + (lib_id "Switch:SW_Push_45deg") + (at 92.71 76.2 0) + (unit 1) + (exclude_from_sim no) + (in_bom yes) + (on_board yes) + (dnp no) + (uuid "ff8dd6cf-a205-43c4-8cd2-4c561b3f0627") + (property "Reference" "SW8" + (at 92.71 68.58 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Value" "SW_Push_45deg" + (at 92.71 71.12 0) + (effects + (font + (size 1.27 1.27) + ) + ) + ) + (property "Footprint" "Button_Switch_Keyboard:SW_Cherry_MX_1.00u_PCB" + (at 92.71 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Datasheet" "~" + (at 92.71 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (property "Description" "Push button switch, normally open, two pins, 45° tilted" + (at 92.71 76.2 0) + (effects + (font + (size 1.27 1.27) + ) + (hide yes) + ) + ) + (pin "1" + (uuid "55d6b2ae-bfd4-41c2-af21-8024e01edf7e") + ) + (pin "2" + (uuid "b2716831-2737-4191-b1f5-bf4d000853d5") + ) + (instances + (project "hackpad" + (path "/82dbe48b-4e91-4863-9dbe-ebee03307ff6" + (reference "SW8") + (unit 1) + ) + ) + ) + ) + (sheet_instances + (path "/" + (page "1") + ) + ) +) diff --git a/hackpads/blipyboard/pcb/hackpad.kicad_prl copy b/hackpads/blipyboard/pcb/hackpad.kicad_prl copy new file mode 100644 index 0000000000..8387f6b1ae --- /dev/null +++ b/hackpads/blipyboard/pcb/hackpad.kicad_prl copy @@ -0,0 +1,83 @@ +{ + "board": { + "active_layer": 0, + "active_layer_preset": "All Layers", + "auto_track_width": true, + "hidden_netclasses": [], + "hidden_nets": [], + "high_contrast_mode": 0, + "net_color_mode": 1, + "opacity": { + "images": 0.6, + "pads": 1.0, + "tracks": 1.0, + "vias": 1.0, + "zones": 0.6 + }, + "selection_filter": { + "dimensions": true, + "footprints": true, + "graphics": true, + "keepouts": true, + "lockedItems": false, + "otherItems": true, + "pads": true, + "text": true, + "tracks": true, + "vias": true, + "zones": true + }, + "visible_items": [ + 0, + 1, + 2, + 3, + 4, + 5, + 8, + 9, + 10, + 11, + 12, + 13, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 32, + 33, + 34, + 35, + 36, + 39, + 40 + ], + "visible_layers": "fffffff_ffffffff", + "zone_display_mode": 0 + }, + "git": { + "repo_password": "", + "repo_type": "", + "repo_username": "", + "ssh_key": "" + }, + "meta": { + "filename": "hackpad.kicad_prl", + "version": 3 + }, + "project": { + "files": [] + } +} diff --git a/hackpads/blipyboard/production/bottom.stl b/hackpads/blipyboard/production/bottom.stl new file mode 100644 index 0000000000000000000000000000000000000000..fc57cbf2fef6ee640592611f9ba836ea0e95b3b4 GIT binary patch literal 48884 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�!d8wlrJiHE$5 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 literal 0 HcmV?d00001 diff --git a/hackpads/blipyboard/production/plate.stl b/hackpads/blipyboard/production/plate.stl new file mode 100644 index 0000000000000000000000000000000000000000..cfda1e048721553b7de9ceafff2bdbb31b8a028f GIT binary patch literal 81884 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

5_MhYsj_a)R0hLdCe+Ybtb`7lHYT0 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 bT}B2YK@ADLD`#=)JoX{MRE$?%{=EMOmhp{T literal 0 HcmV?d00001 diff --git a/hackpads/blipyboard/production/top.stl b/hackpads/blipyboard/production/top.stl new file mode 100644 index 0000000000000000000000000000000000000000..3932c621a7f94d448bf5ca740ea768aa9eda8800 GIT binary patch literal 28884 zcmb81ZLDQiS;tSN70iecNl4VjGG=D z&@I%UP>qPvv|1dUJK+>cz&63LruW>*w4GsSJDmjO2$7KRfztSb^aEdbasAh`p8fpR z-s_C@lG4@tU%&ldug_Y0?Y-|WzWJ8LzV6Mh-*@P`YYts|P5R%ypS$gr+upQw;>3yX z?fd`#+_+~p`{>K=UVY|0k8I8I&%QIKul~!$Y_{xXGf%I(e?NcqnZ=j>D*yhjTS-u9 z6YK7-TVHtnyH@}8zI%?yf<&a(-Sa>Zzydr{LcL)FJUw7Yf&x6Io3DulRn~+BuQ#)y-;bv1fPx%LL%nl*n`(%uJ2uQe)ly`wmhhii1|47Ai-R>T-@FL%G*9t z`keKkLL%nl*n*=s!RvK~}O#C#lkkYKKu zU4`hAPx_}GiE8Q7U;c~9sLUg=6io9Z<_8J2;kRCA^k#y&)FR)0_CwKwL#e2!PM7Yn zT=d@TQ4?3a;`G%Y2#;nxX0ym851+wP4_9iUTr{oPmm?zApI!f{-5)u7d{=R$Ca8FR zya^P13VW4Y9Zckg+k z_DGlPS5$ai_0wyA<8uvy3JJCB7q5J-K~N!K;8j@@vP2y+ln=x$f}MVQ2BuN<~6f@|{8L!D}&>O4!~3kYFy2nApRWrcM9S ziW3S6wOe}!K!Ul{Pwn-biu&AFWL{~gc|R`In0V9AwAOQ8OKHy)`_ge_phAM{d|fIM z%r)5osDVp8l+@3%+uHm1V%Gn|E0mU>N20+a<+A>8g~Zn0b7`GzMK~%X{_wFU7LzEN zJxDOuA6)z7q8$@;U0><9_FhUQv3)!J>UvNi@saPGTPW^NqYnw@`rWN_i}vcw(XKlA z2xn=hrHXn4p;l>fT>^V&SVL>o+Zxj|>vJ(q!e# z9=sNFu{UcE_U+b%Cl|hwaV*pX6%seU`>92HRU^S%)`P88P5tcGdhYiwEPP#R61nD7 zNSuG_{9>{W_UaE3%*E0UHP6KMr_T@VbM9TwEOZZ|@ygN;L@pH-5?gzpUg$1qI@(Dv z7wc4e@VYGFFFg9}LU%Az4=N;n^9`TfFwaRa*Xtg=nCAR9cBdXxNZh{r*$vT$1ap1y zozE>4Nv9rENPKYbg$?tA1atk$SD#xbicdYLkody>3&RYq`-22?G1_IKpXHx^MTLa? zJYv)yB$!LBpk3#*9#qsHeh0xTZT29c5o7lafBcSc(jui*amR zs#q;6BE_yvr3ymv%5y35c`MZYK}C_%TlA%siUebR?V;%AFbtez&fNW~cAfw7>FGV9j&i4b}t|61tL~EpH~6OHsnl z{RSeY=sgfK5mYK7MZ4;(FXh%xO(-UME=5#7_ZvKV5mXel{S1KK12OR+ zq19mGF(H^s>xw_28+(L8LaUG0X*0oGTH(BC8h^Llzee<9~LVi9AvPW-Jzaqh0+C{}vOL|Ztp;oBwqXrKW%%$C6 zJhh|;6%y*F>SSW@Ai-SP)y7jxdQc&u5mTLI3?3wyOS|)UYDo_&Bs7lwB&6;S63nIh zgm`M1Jcd$HA)&j8cm~N*Q6Zrj>}Mx+sYo!F?y2G#BuhnwgzmijUVRwtsV3qa%$m{aNV(=(6j|j*8bscxh z)7Nxrr=K`OinKiwjyquz+IzavCh*)jdyt5g!j1?I2g@HX)DlG<@~q z?_BYdBqD9k=wr{|gx+W1o}o?1qde7L>3s$gk+ydYV(;UG+Lk++HX)DnE`#1@$ZbU; z()P}T{@Zp-B)B7M6WPPw%g7!iB5m(}sFcN{5D$Ik`h(nAwh4KZw?%fo{

h@kBq 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 Date: Fri, 27 Jun 2025 23:03:05 -0700 Subject: [PATCH 2/3] Add files via upload --- hackpads/blipyboard/README.md | 7 ++++++- hackpads/blipyboard/production/bottom.stl | Bin 48884 -> 116884 bytes 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/hackpads/blipyboard/README.md b/hackpads/blipyboard/README.md index 67d5645745..5f626c897b 100644 --- a/hackpads/blipyboard/README.md +++ b/hackpads/blipyboard/README.md @@ -9,9 +9,11 @@ Designed and Modeled using Fusion 360 Screenshot 2025-06-27 at 10 01 06 PM # **PCB** -Screenshot 2025-06-27 at 10 02 29 PM
+Screenshot 2025-06-27 at 10 17 19 PM
Schematic and PCB created using KiCad + + # **BOM** 8x Cherry MX Switches
9x 1N4148 Diodes
@@ -24,3 +26,6 @@ Schematic and PCB created using KiCad 1x Custom PCB
1x 1kg spool of white filament from Amazon
I will print my own case + +# **Inspiration/Challenges** +I created this macropad to learn more about hardware and firmware creation. While working on this hackpad, I encountered issues with the firmware, the pcb, and 3d models associated with the footprints. By looking at other people's submissions and asking for help on slack, I overcame these issues. diff --git a/hackpads/blipyboard/production/bottom.stl b/hackpads/blipyboard/production/bottom.stl index fc57cbf2fef6ee640592611f9ba836ea0e95b3b4..2d1df82a826285284d2afdffb42dd5b1bb41db5d 100644 GIT binary patch literal 116884 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 T$eL1UJHo8-kt`0V@`uP@7@RR( From df0a0d90ae415c468361f0cc9341ce800acf97d0 Mon Sep 17 00:00:00 2001 From: joanna cai Date: Fri, 27 Jun 2025 23:27:35 -0700 Subject: [PATCH 3/3] Add files via upload --- hackpads/blipyboard/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hackpads/blipyboard/README.md b/hackpads/blipyboard/README.md index 5f626c897b..8083e06fdc 100644 --- a/hackpads/blipyboard/README.md +++ b/hackpads/blipyboard/README.md @@ -1,5 +1,8 @@ # blipyboard -An 8 key macropad with an OLED screen and potentiometer for HackPad. It also has 8 SK6812 leds for lighting and utilizes custom KMK firmware. +An 8 key macropad with an OLED screen and potentiometer for HackPad. It also has 8 SK6812 leds for lighting and utilizes custom KMK firmware.
+ +Screenshot 2025-06-27 at 11 23 31 PM + # **CAD Model** Screenshot 2025-06-27 at 9 58 29 PM
@@ -28,4 +31,4 @@ Schematic and PCB created using KiCad I will print my own case # **Inspiration/Challenges** -I created this macropad to learn more about hardware and firmware creation. While working on this hackpad, I encountered issues with the firmware, the pcb, and 3d models associated with the footprints. By looking at other people's submissions and asking for help on slack, I overcame these issues. +I created this macropad to learn more about hardware and firmware creation. I wanted to be able to perform my most used functions with singular key presses such as copy/paste and inserting long strings. While working on this hackpad, I encountered issues with the firmware, the pcb, and 3d models associated with the footprints. By looking at other people's submissions and asking for help on slack, I overcame these issues. In the future I want to learn how to integrate QMK firmware and add more advanced animations for the OLED.