<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Dillon Shook</title><description>Autodidact &amp; Zero One Infinity Advocate</description><link>https://dillonshook.com/</link><language>en</language><copyright>All content copyright Dillon Shook</copyright><item><title>How To Create a 3d Printed Jigsaw Puzzle</title><link>https://dillonshook.com/how-to-create-a-3d-jigsaw-puzzle/</link><guid isPermaLink="true">https://dillonshook.com/how-to-create-a-3d-jigsaw-puzzle/</guid><description>Turn any multi-colored 3mf model into jigsaw puzzle however big you like!</description><pubDate>Tue, 06 Oct 2026 01:52:19 GMT</pubDate><content:encoded>&lt;p&gt;I wanted to make a 3d printed jigsaw puzzle as a gift for my Mom who’s both a puzzle and map lover but it ended up being a little bit harder than I was expecting so here’s how I ended up doing it which hopefully will save you some trouble if you want to make one too!&lt;/p&gt;
&lt;p&gt;There’s lots of different sites and ways to download map data into a model but the best one I found that lets you customize colors, details, and a whole lot more is &lt;a href=&quot;https://miniskyline.com/map?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Mini Skyline&lt;/a&gt;.  It does even have a “project mode” that theoretically lets you subdivide the model into the puzzle pieces but as of the time of writing it’s still bugged out as far as I can tell (and with all the combinations of parameters I’ve tried) and won’t let you export. It also has a limit of 20 x 20 pieces which my method doesn’t have.&lt;/p&gt;
&lt;p&gt;So to get started, the first step is to select the area you’re interested in, customize the colors to something close to what you can print, make sure to set the intended model longest side length (which informs the scale and will be used later). I exported with the terrain tile mode and high quality, but neither of those are required for this method.&lt;/p&gt;
&lt;p&gt;The next step is to create your puzzle piece shapes using &lt;a href=&quot;https://jigsawmake.com/#generator?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;JigsawMake&lt;/a&gt;.  Choose the layout option and then customize your piece count with the rows and columns and match the dimensions of the puzzle with the model you generated. Then use the export “Pieces SVG (Zip)” option which has each piece as its own svg file in a zip file. When you unzip it you should see a &lt;code&gt;piece_r1_c1.svg&lt;/code&gt; file along with all the other pieces.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Jigsaw Pieces&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1256&quot; height=&quot;871&quot; src=&quot;/_astro/jigsaw-pieces.BKI2SRyZ_24fXxd.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;The next step is to get &lt;a href=&quot;https://www.blender.org/?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Blender&lt;/a&gt; set up for cutting the model into pieces. First go into the preferences &gt; Add-ons and add the 3MF Import/Export plugin from Clonephaze.  Delete the default cube and then from File &gt; Import &gt; Import 3MF file and select your model. Then I renamed my model in the hierarchy to something shorter (&lt;code&gt;mt&lt;/code&gt;) since the script will need to reference it with the &lt;code&gt;ORIGINAL_NAME&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Blender Setup&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1621&quot; height=&quot;1256&quot; src=&quot;/_astro/blender-setup.BBnn5eNz_ZzLTWu.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;After that go to the script tab and paste in the script below. The important things to configure are at the top. I would start by putting a &lt;code&gt;TEST_LIMIT&lt;/code&gt; of 5 pieces, then run the script by clicking the play icon.  Verify that you’re getting pieces generated and that they import into your slicer and look right after slicing.  After you get it looking good, then set the &lt;code&gt;TEST_LIMIT&lt;/code&gt; back to none and generate the whole puzzle. This script is vibecoded from Claude and hasn’t been optimized so it took quite awhile (probably 15-20min) to generate a 400 piece puzzle on a fairly beefy machine.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;Blender Script Tab&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1473&quot; height=&quot;309&quot; src=&quot;/_astro/blender-scripting.fLurIj3T_ZXdDET.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cut-pieces-blender-script.py&lt;/code&gt;&lt;/p&gt;
&lt;pre class=&quot;astro-code astro-code-themes catppuccin-latte dracula-soft&quot; style=&quot;background-color:#eff1f5;--shiki-dark-bg:#282A36;color:#4c4f69;--shiki-dark:#f6f6f4; overflow-x: auto;&quot; tabindex=&quot;0&quot; data-language=&quot;py&quot;&gt;&lt;code&gt;&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;SVG_FOLDER&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;/Users/you/Downloads/3D Prints/puzzle_pieces_svg_20x20&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;      # folder containing piece_000.svg etc.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;ORIGINAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;mt&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;          # name of your original colored object in the blender scene&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;OUTPUT_DIR&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;/Users/you/Downloads/3D Prints/puzzle-out&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;      # folder to write piece_000.3mf, etc.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;EXTRUDE_DEPTH&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 100.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;                     # mm; bigger than your model&apos;s thickness&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;TEST_LIMIT&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;                           # set to None to process every piece&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;GRID_ROWS&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 20&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;                           # rows in your puzzle grid (e.g. 20x20=400)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;GRID_COLS&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 20&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;                           # columns in your puzzle grid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# The config below shouldn&apos;t need to be touched&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;ONLY_FILES&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;             # e.g. {&quot;r1_c3.svg&quot;} to re-cut specific pieces&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Fraction of a piece&apos;s footprint its upward-facing surface must cover.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Border pieces of a non-rectangular model can legitimately fall below it.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;MIN_TOP_COVERAGE&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.95&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Material for every piece&apos;s side walls and bottom. None: the material on&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# the model&apos;s bottom face (normally the base).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;BASE_MATERIAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Gap between neighboring pieces, like the width of the cutting line. Each&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# piece gives up half of it along every edge it shares with a neighbor;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# the puzzle&apos;s outer edges aren&apos;t moved.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;PIECE_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.07&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Taller pieces need a bigger gap. On top of PIECE_TOLERANCE_MM, a piece&apos;s&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# gap grows by EXTRA_TOLERANCE_MM for every EXTRA_TOLERANCE_PER_HEIGHT_MM of&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# that piece&apos;s own height, measured from the model&apos;s bottom to the highest&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# point of the model inside the piece&apos;s outline (scaled linearly, so a 50 mm&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# tall piece adds 0.025 mm with the defaults). Set EXTRA_TOLERANCE_MM to 0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# to turn this off.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;EXTRA_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.01&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;EXTRA_TOLERANCE_PER_HEIGHT_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 20.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;Batch jigsaw cutter for Blender -- v7 (handles multi-object hierarchies)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;Cuts a colored model into N interlocking jigsaw pieces and exports each&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;as its own .3mf. Handles models whose 3MF import created a parent Empty&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;with the colored geometry split across multiple child mesh objects&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;(common for multi-material 3MF imports, one mesh per color group).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;HOW IT WORKS&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;1. Every SVG is read directly (not through Blender&apos;s SVG importer, which&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   shifts each piece by its file&apos;s cropped viewBox). The piece paths are&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   drawn in full-puzzle coordinates, so all outlines together give the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   puzzle&apos;s extent. That extent is centered over the model&apos;s XY bounds&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   with one uniform scale (SVG units -&gt; model units), flipping SVG&apos;s&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   downward Y to Blender&apos;s upward Y. Nothing is stretched.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;2. Each color mesh is repaired on a copy (the originals are left untouched):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   duplicate vertices are merged, small holes filled, and normals made&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   consistent. Common 3MF imports leave duplicate vertices along color&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   boundaries, which shows up as open edges. Each outline becomes a closed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   prism spanning the model&apos;s full height; border edges are pushed just&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   past the model so they never coincide with the model&apos;s own side walls,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   and shared edges are pulled in by half of the piece gap so neighbors end&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   up that far apart. Each piece&apos;s gap is PIECE_TOLERANCE_MM plus an extra&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   EXTRA_TOLERANCE_MM per EXTRA_TOLERANCE_PER_HEIGHT_MM of that piece&apos;s own&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   height, found by casting rays down onto the model inside its outline.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;3. Each color mesh is intersected with that prism. Afterwards:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   - Cut walls are found geometrically (vertical faces lying on the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     outline). Color meshes that aren&apos;t closed shells can make the boolean&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     keep walls outside the mesh; a wall is kept only if its source mesh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     is both above and below it.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   - Cut walls, downward-facing faces, and the model&apos;s outer side walls&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     all get one base material, so every piece has the same side/bottom&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     color no matter which color regions it contains. Upward-facing&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     surfaces keep their original colors.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   - If the cut leaves open edges where the source mesh was closed, the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     same repair is run on the cut piece and the edges are counted again.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   - The result is checked (within the model&apos;s height, within the outline,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     top surface covers the footprint, no open edges where the source mesh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;     was closed) and retried without hole-tolerant mode if needed.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;4. Every piece is exported with the whole model&apos;s filament palette, in the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   same order, even colors the piece doesn&apos;t use. The 3MF add-on normally&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   numbers filaments by only the colors in each file, so importing one&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   piece into another in Bambu Studio / Orca would shuffle colors.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;5. Output files are named from the SVG&apos;s rN_cN (1-based), else the SVG&apos;s&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   own name. The piece&apos;s object name inside the 3MF (what Bambu Studio /&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   Orca show as the model name) is set to the same name, without .3mf.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;HOW TO USE&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;----------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;1. Export puzzle pieces as individual SVGs into one folder.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;2. Import the colored .3mf (File &gt; Import &gt; 3D Manufacturing Format) and&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;   note the TOP-LEVEL object&apos;s name in the Outliner.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;3. Edit CONFIG below and run in the Scripting workspace (Alt+P).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;4. Test with TEST_LIMIT or ONLY_FILES first; watch the System Console.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bmesh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; re&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; importlib&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; addon_utils&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xml&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;etree&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ElementTree &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ElementTree&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; numpy &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; np&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mathutils &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; Vector&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mathutils&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bvhtree &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; BVHTree&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;FORCED_MODULE_NAME&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bl_ext.blender_org.ThreeMF_io&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ------------------------------------------------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _get_export_3mf_func&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;module_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Tries module_name.api.export_3mf, then module_name.export_3mf.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Requires a callable: the package may also have an export_3mf&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    submodule that would otherwise be mistaken for the function.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; suffix &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.api&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            mod &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; importlib&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;import_module&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;module_name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; suffix&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ImportError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        candidate &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; getattr&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;export_3mf&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; callable&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;candidate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; candidate&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _find_3mf_api&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    candidates &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mod &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; addon_utils&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;modules&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bl_info &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; getattr&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bl_info&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {})&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        display_name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; str&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bl_info&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        module_name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;__name__&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;3mf&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; display_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;lower&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;3mf&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; module_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;lower&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            candidates&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;module_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; name &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; candidates&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        func &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _get_export_3mf_func&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; func &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; func&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    all_modules &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;        (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;__name__&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; str&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;getattr&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bl_info&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}).&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mod &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; addon_utils&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;modules&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;    ]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Could not find a callable export_3mf function.&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;        f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;3mf-like candidates checked: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;candidates &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;(none)&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;All installed add-ons (module name | display name):&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;n&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; | &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; n&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_modules&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Set FORCED_MODULE_NAME to the correct one and rerun.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;    )&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; FORCED_MODULE_NAME&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    export_3mf &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _get_export_3mf_func&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;FORCED_MODULE_NAME&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; export_3mf &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;            f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;FORCED_MODULE_NAME &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;FORCED_MODULE_NAME&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos; didn&apos;t yield a &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;            &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;callable export_3mf (checked both &apos;.api&apos; and the bare module).&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;        )&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    export_3mf &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _find_3mf_api&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ---------------- SVG outlines (plain Python, no bpy) ----------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Points are (x, y) tuples in SVG units.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; load_orca_color_hooks&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Returns (orca exporter module, its collect_face_colors, material_to_hex_color)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    from the 3MF add-on. Raises RuntimeError if this add-on version is laid&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    out differently.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    module &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; export_3mf&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;__module__&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; root &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;module&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; module&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;rsplit&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            orca &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; importlib&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;import_module&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;root &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.export_3mf.orca&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ImportError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        collect &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; getattr&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;collect_face_colors&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        to_hex &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; getattr&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;material_to_hex_color&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; callable&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;collect&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; callable&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;to_hex&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; collect&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; to_hex&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Couldn&apos;t find the 3MF add-on&apos;s export_3mf.orca.collect_face_colors, which &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;this script replaces during export to give every piece the same filament &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;palette. This add-on version may be structured differently.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; export_with_shared_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Exports with every file using filament_palette. Swaps the add-on&apos;s&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    per-file color collection only for the duration of this call, so other&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    exports in the Blender session are unaffected.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; shared_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;blender_objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;kwargs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        used &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; original_collect_face_colors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;blender_objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;args&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;kwargs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        missing &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;used&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filament_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; missing&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;basename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: colors &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;missing&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; aren&apos;t in the &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                  f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;shared palette and won&apos;t be painted.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; dict&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filament_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    exporter_orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;collect_face_colors &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; shared_palette&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; export_3mf&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; objects&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    finally&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        exporter_orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;collect_face_colors &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; original_collect_face_colors&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; natural_sort_key&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Sorts piece_2.svg before piece_10.svg instead of alphabetically.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;chunk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; chunk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;isdigit&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; chunk&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; chunk &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; re&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;split&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; output_filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;svg_filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;piece_rRR_cCC.3mf from a name containing rN_cN, else the SVG&apos;s own stem.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    match &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; re&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;search&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#BF9EEE&quot;&gt;_-&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; re&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;IGNORECASE&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; match &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;splitext&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;svg_filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.3mf&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;piece_r&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:02d&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;_c&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;match&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;group&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:02d&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.3mf&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; polygon_area&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Signed shoelace area; positive for counter-clockwise in a Y-up frame.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                     for&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; zip&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; polygon_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;(min_x, min_y, max_x, max_y)&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    xs &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    ys &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;xs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ys&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;xs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ys&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _segments_intersect&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; orient&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; on_segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                and&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d2 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; orient&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; orient&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    d3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d4 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; orient&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; orient&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d1 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; !=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d2 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d1 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d2 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; \&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            and&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d3 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; !=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d4 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d3 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d4 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; True&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d1 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d2 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            or&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d3 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d4 &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; first_self_intersection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Returns a point where non-adjacent edges touch or cross, or None.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    edges &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; %&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    boxes &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;             for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; j &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; j &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # these two edges share the closing vertex&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            bk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bj &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; boxes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; boxes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bk&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _segments_intersect&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                return&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; extend_border_points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; puzzle_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; margin&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Moves points lying on the puzzle&apos;s outer boundary outward by margin.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Border pieces&apos; outer cuts then land outside the model instead of exactly&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    on its side walls, where coplanar faces confuse the boolean. Neighbors&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    share their border corners, so they move identically and still tile.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Returns (points, sides), where sides[k] is the set of boundary sides&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    (&quot;min_x&quot;, &quot;max_x&quot;, &quot;min_y&quot;, &quot;max_y&quot;) point k lies on.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_bounds&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    extended&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sides &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [],&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        on &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; margin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            on&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;min_x&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; margin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            on&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;max_x&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; margin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            on&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;min_y&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; margin&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            on&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;max_y&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        extended&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        sides&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;on&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; extended&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sides&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; inset_polygon&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; edge_insets&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Moves edge k (points[k] -&gt; points[k+1]) inward by edge_insets[k], joining&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    neighboring edges where their moved lines meet. Insets should be small&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    relative to the outline&apos;s curvature; the caller checks the result for&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    self-intersection.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    orientation &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1.0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; polygon_area&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    lines &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # (point on moved line, direction, inward unit normal, inset)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;        (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; %&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        nx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; orientation&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; orientation&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        inset &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; edge_insets&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        lines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; nx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;nx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    result &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;        (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; n1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; n2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; lines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; lines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        px&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; py &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        cross &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        largest &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;inset1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inset2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        joined &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cross&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-12&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            t &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cross&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            joined &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; p1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; d1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;            # Nearly-reversing edges put the meeting point far away; cap it.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; px&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; py&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; largest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                joined &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; joined &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            nx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; n1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; n2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; n1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; n2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;nx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; nx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            joined &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;px &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; nx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; largest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; py &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ny &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; largest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        result&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;joined&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; result&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; make_outline_locator&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Returns on_outline(x, y): whether a point is within tolerance of the outline&apos;s edges.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    segments &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; %&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    perimeter &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(((&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; segments&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    cell &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;perimeter &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    grid &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; segment &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; segments&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;        (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; segment&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; gx &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; //&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; //&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; gy &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; //&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; //&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                grid&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;setdefault&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;gx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; gy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []).&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;segment&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; on_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; grid&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; int&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;//&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cell&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ()):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            length_sq &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            t &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length_sq &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; length_sq&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; True&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; on_outline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;_PATH_TOKEN&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; re&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;compile&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;r&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#BF9EEE&quot;&gt;A-Za-z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;|&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#BF9EEE&quot;&gt;-+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;(?:&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\.&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*|&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;)(?:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#BF9EEE&quot;&gt;eE&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#BF9EEE&quot;&gt;-+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#BF9EEE&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:inherit;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;\d&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:inherit;--shiki-dark:#F6F6F4;--shiki-dark-font-style:italic&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#EE6666&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; parse_path_polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Closed polygons from an SVG path made of straight segments (M, L, H, V,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Z, absolute or relative). Raises ValueError for curves or arcs.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    tokens &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; _PATH_TOKEN&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;findall&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    unsupported &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;({&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;t &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; tokens &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;isalpha&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; t &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;MmLlHhVvZz&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;})&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unsupported&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;path uses unsupported commands &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;unsupported&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                         f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(only straight-line paths are supported)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; current &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [],&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    command &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    i &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        nonlocal&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;isalpha&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;path is missing a number after &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;command&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        value &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; float&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        i &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; value&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    while&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;isalpha&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            command &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; tokens&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            i &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Zz&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                current &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;path doesn&apos;t start with a command&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        relative &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;islower&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Mm&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(),&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; relative &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            start_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            current &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            command &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;l&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; relative &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;L&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # extra coordinate pairs are line-tos&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Ll&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(),&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; relative &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;dx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Hh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            dx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; relative &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dx&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        elif&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; command &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Vv&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            dy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; number&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; relative &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; dy&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            current &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;start_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; start_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;current&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    cleaned_polygons &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; polygon &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        cleaned &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; point &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; polygon&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cleaned &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;or&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; point &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;point&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        while&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;pop&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            cleaned_polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cleaned&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cleaned_polygons&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; load_svg_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;svg_path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Largest closed polygon among the SVG&apos;s &amp;#x3C;path&gt; elements, in the path&apos;s&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    own coordinates (the SVG&apos;s viewBox cropping is ignored). Raises&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    ValueError if there is none or the file uses transforms.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    root &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ElementTree&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;parse&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;svg_path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;).&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;getroot&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    polygons &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; element &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; root&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;iter&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;transform&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; element&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;attrib&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;SVG uses transform attributes, which aren&apos;t supported&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; element&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;tag&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;rsplit&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; element&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;extend&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;parse_path_polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;element&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;d&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;no closed path found&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;lambda&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;polygon_area&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ---------------- model analysis ----------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;UP&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;DOWN&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# |normal.z| below this counts as a vertical face. Loose enough for float32&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# rounding on small wall slivers; the on-outline test is the strict part.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;VERTICAL_NZ&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; collect_hierarchy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Returns [obj] + every descendant, recursively, depth-first.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    result &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; child &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;children&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        result&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;extend&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;collect_hierarchy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;child&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; result&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; world_vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;(N, 3) float64 array of the mesh&apos;s vertices in world space.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    local &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;empty&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; dtype&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;float32&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;foreach_get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;co&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; local&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    matrix &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; dtype&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;float64&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; local&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;reshape&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; @&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; matrix&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt; :&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;T &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; matrix&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; world_vertex_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Axis-aligned world bounding box (min, max) of the objects&apos; mesh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    vertices. Uses the vertices rather than bound_box, whose transformed&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    corners overstate the extent of rotated objects.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    all_verts &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;world_vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                 for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; objects &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;axis&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; axis&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;            Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;np&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;axis&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; axis&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; world_bvh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;BVH tree of the mesh in world space, for inside/outside ray tests.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    verts &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; world_vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    polygons &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;tuple&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; BVHTree&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;FromPolygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;edges &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;is_manifold&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; repair_bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; merge_distance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Merges duplicate vertices, fills holes of up to 64 edges, and, if that&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    leaves no open edges, recalculates normals (on an open surface that can&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    flip it the wrong way). Returns (new_faces, open_edges_after), where&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    new_faces are the faces created by filling holes.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;remove_doubles&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; verts&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; dist&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;merge_distance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    existing &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    boundary &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;e &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;edges &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;is_boundary&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; boundary&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        filled &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;holes_fill&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; edges&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;boundary&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; sides&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;64&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filled&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;triangulate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; faces&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filled&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    new_faces &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; existing&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;recalc_face_normals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; faces&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; new_faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; after&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; prepare_source_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; merge_distance_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Returns (repaired copy of the object&apos;s mesh, open_edges_before,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    open_edges_after). See repair_bmesh for what the repair does.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    bm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;from_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        before &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;s&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; s &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_scale&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;())&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        _&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; repair_bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; merge_distance_world &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; scale&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mesh &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;copy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;_repaired_&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; before&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; after&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    finally&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;free&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; bottom_material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;The material covering the most area on downward faces at the model&apos;s lowest Z.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    totals &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mesh &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        verts &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; world_vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; poly &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; poly&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_slots&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            material &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;material_slots&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;poly&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;material_index&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; material &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            zs &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;poly&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; zs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_min &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;                totals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; totals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; poly&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;area&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; totals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;materials&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;totals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; key&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;totals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ---------------- cutting ----------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; build_cutter_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Closed prism over a world-space XY outline spanning z_min..z_max, with&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    outward normals. Raises ValueError if it can&apos;t be a watertight solid.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    crossing &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; first_self_intersection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; crossing &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;outline touches or crosses itself near &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                         f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;crossing&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;crossing&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    bm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bottom &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        top &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            caps &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;top&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;reversed&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                j &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; %&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; count&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;bottom&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bottom&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; top&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;j&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; top&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; error&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;outline has repeated points (&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;triangulate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; faces&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;caps&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; quad_method&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;BEAUTY&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; ngon_method&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;BEAUTY&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # Outline winding varies (and the SVG-&gt;Blender Y flip mirrors it);&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # an inside-out cutter makes the intersect discard the model.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;recalc_face_normals&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; faces&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bad_edges &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;edges &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;is_manifold&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bad_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bad_edges&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; non-manifold edges&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;calc_volume&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;signed&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;cutter has no volume or is inside-out&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mesh &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    finally&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;free&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; material_slot_index&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Index of the object&apos;s slot holding material, adding a slot if needed.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; index&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; slot &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; enumerate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_slots&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; slot&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;materials&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_slots&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _newell_normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Area-weighted (unnormalized) polygon normal.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    normal &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; zip&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; _enclosed_by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;bvh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Whether the source mesh lies both above and below the face these points&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    belong to. Two sample points guard against a ray slipping between&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    triangles.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    centroid &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sample &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;centroid&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;centroid &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bvh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;ray_cast&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;sample&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; UP&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bvh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;ray_cast&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;sample&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; DOWN&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; True&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; finish_cut_object&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Post-processes one boolean result in place: deletes cut walls the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    boolean kept outside the source mesh, and gives cut walls, downward&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    faces, and the model&apos;s outer side walls the base material. Returns a&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    list of problem strings.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    base_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; material_slot_index&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;base_material&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    on_outline &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;on_outline&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;z_min&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;z_max&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;xy_tolerance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; on_model_side&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;all&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;axis&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; bound&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;axis&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                   for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; axis &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bound &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    bm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;from_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        matrix &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        world &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;co &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        vertex_on_outline &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        leaked &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            indices &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;index &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            points &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; indices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; any&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z_min &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_max &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                leaked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # only the cutter reaches past the model&apos;s height&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            normal &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _newell_normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;length &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            nz &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;length&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;nz&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; VERTICAL_NZ&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; indices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; vertex_on_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;                        vertex_on_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; all&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;vertex_on_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; indices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _enclosed_by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;bvh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                        leaked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                        continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                elif&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; on_model_side&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            elif&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; nz &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.5&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; leaked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;delete&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; geom&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;leaked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;FACES&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        open_edges &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # The source was closed, so the cut should be too. Try the same&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # repair the source meshes got before reporting anything.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        open_before_repair &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_edges&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;closed&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            new_faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_edges &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; repair_bmesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merge_distance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; new_faces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                points &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;co &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;verts&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                normal &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; _newell_normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                nz &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;length &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;length &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; nz &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;                    # Upward faces keep the color of the surface around them.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    neighbors &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;edges &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; e&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;link_faces &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; neighbors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                        face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; neighbors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    face&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_index&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_edges &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;                print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;    &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: repair closed &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_before_repair&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;open edge(s) in the cut&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    finally&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bm&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;free&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;closed&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_edges&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_edges&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; open edge(s) in the cut, &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                        f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;so walls or surfaces are missing &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                        f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(repair left &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_edges&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; of &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_before_repair&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Removes temporary objects, then any of the meshes left without users.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; do_unlink&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ReferenceError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            pass&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # already consumed by a join&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;users &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ReferenceError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            pass&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; cut_model&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; cutter_obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; collection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; hole_tolerant&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;              created_objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; created_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Intersects each source mesh with the cutter, post-processes each result,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    and joins them into one object. Returns (merged object or None, problems).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Temporaries are appended to created_objects/created_meshes as they&apos;re&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    made so the caller can discard them even if this raises.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    results &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; source &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # The copy shares the source&apos;s mesh data, which is never modified:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # the modifier result is baked into a new mesh and swapped in.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;copy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        collection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        created_objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;parent &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;copy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;hide_viewport &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;hide_select &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;hide_set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;False&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mod &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;modifiers&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;PuzzleCut&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; type&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;BOOLEAN&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;operation &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;INTERSECT&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;object &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_obj&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;solver &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;EXACT&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        mod&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;use_hole_tolerant &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hole_tolerant&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        depsgraph &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;evaluated_depsgraph_get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        baked &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new_from_object&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;evaluated_get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;depsgraph&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        created_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;baked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;modifiers&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;clear&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; baked&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; baked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;extend&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;finish_cut_object&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; baked&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;temp&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # Join rather than Boolean Union: union gets ambiguous where color&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # regions share coincident faces and can drop whole layers.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;select_all&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;action&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;DESELECT&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;select_set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;view_layer&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;active &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ops&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; results&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; inspect_piece&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Checks a cut result against the piece outline (for top coverage) and the&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    cutter outline (for bounds). Returns {&quot;problems&quot;: [...], &quot;bounds_ok&quot;: bool,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;coverage&quot;: float}.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;cut result is empty&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bounds_ok&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    world &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;co &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; v &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    low &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; c &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    high &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; c &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    height_ok &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; low &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_min &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; high &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_max &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; height_ok&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;spans z &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;low&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;high&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; but the model spans &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                        f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z_min&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z_max&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; (cutter geometry leaked in)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; polygon_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;max_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-3&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    footprint_ok &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; all&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;min_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                       and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; c&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                       for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; c &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; footprint_ok&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;extends outside the piece outline (model geometry leaked in)&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;    # Projected XY area of upward-facing polygons.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    up_area &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; poly &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        up_area &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;_newell_normal&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; poly&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;vertices&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]).&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    footprint_area &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;polygon_area&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    coverage &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; up_area &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; footprint_area &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; footprint_area &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; coverage &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; MIN_TOP_COVERAGE&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;top surface covers only &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.0%&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; of the footprint&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bounds_ok&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; height_ok &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; footprint_ok&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;            &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; coverage&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; attempt_score&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    report &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;bounds_ok&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; ==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; report&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; point_in_polygon&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;Even-odd test of whether (x, y) is inside the polygon.&quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    inside &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; by&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; zip&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ay &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; !=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;by &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&amp;#x3C;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;by &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ay&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bx &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ax&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            inside &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inside&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; inside&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; piece_top_z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; ray_start_z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; samples&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;20&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    Highest point of the source meshes inside the outline, found by casting&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    rays straight down from above at a grid of points within the outline&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    plus the outline&apos;s own corners. Returns None if nothing was hit.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#7B7F8B&quot;&gt;    &quot;&quot;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; polygon_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    points &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; list&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ix &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;samples&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ix &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; samples &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;max_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; iy &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;samples&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;iy &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.5&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; samples &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;max_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; point_in_polygon&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    top &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; source &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            hit &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;bvh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;ray_cast&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;Vector&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ray_start_z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)),&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; DOWN&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hit &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;top &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hit&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; top&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                top &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hit&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; top&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ---------------- setup ----------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;makedirs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;OUTPUT_DIR&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; exist_ok&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;original &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;ORIGINAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; original &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Couldn&apos;t find object named &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;ORIGINAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos;. &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                       f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Check the Outliner for the exact name.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_meshes &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; collect_hierarchy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;original&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;type &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;MESH&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; and&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;ORIGINAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos; has no mesh objects in its hierarchy.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; world_vertex_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-7&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Model bounds: x &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;y &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, z &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;..&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; BASE_MATERIAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    base_material &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;materials&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;BASE_MATERIAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_material &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;No material named &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;BASE_MATERIAL_NAME&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos;. Materials: &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                           f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;materials&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;keys&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()))&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    base_material &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; bottom_material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_material &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Couldn&apos;t find a material on the model&apos;s bottom face; &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;                           &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;set BASE_MATERIAL_NAME.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Base material for piece sides and bottoms: &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;base_material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Shared filament palette, computed with the add-on&apos;s own color logic so&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# the hex values match what it writes: sorted by hex, numbered from 1.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;exporter_orca&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; original_collect_face_colors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; material_to_hex_color &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; load_orca_color_hooks&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;palette_colors &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;original_collect_face_colors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; lambda&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; **&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;                                                  export_hidden&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt; include_disabled&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;base_color &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; material_to_hex_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;base_material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    palette_colors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;base_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filament_palette &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; index &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; index&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; color &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; enumerate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;palette_colors&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_names_by_color &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; slot &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_slots&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; slot&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            material_names_by_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;setdefault&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;                material_to_hex_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;slot&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; set&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()).&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;add&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;slot&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Filament palette shared by every piece:&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; index &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filament_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;items&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    names &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;material_names_by_color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;color&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; ())))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  filament &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;index&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;color&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;names&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Preparing model meshes (repairing copies)...&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;merge_distance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-6&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;sources &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_before&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; prepare_source_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; merge_distance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;({&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;bvh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; world_bvh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;matrix_world&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;                    &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;closed&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;})&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    state &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;closed&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_after &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_after&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; open edges&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_before &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; open_after&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        state &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot; (was &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;open_before&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;)&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;polygons&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; faces, &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;state&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;all_svg_files &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; sorted&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;    (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;listdir&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;SVG_FOLDER&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;lower&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;endswith&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;.svg&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;    key&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;natural_sort_key&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Pass 1: read every outline to find the whole puzzle&apos;s extent.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Reading &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;all_svg_files&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; SVG outline(s)...&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;svg_outlines &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_svg_files&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;        svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; load_svg_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;SVG_FOLDER&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    except&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;ValueError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; ElementTree&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;ParseError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; error&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;        print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, skipping.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    raise&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; RuntimeError&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;No usable SVG outlines in &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;SVG_FOLDER&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;all_bounds &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;polygon_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; o &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;()]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_min_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_min_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_x&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;b&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;3&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; b &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_bounds &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_min_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                 puzzle_min_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_width&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;border_margin &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_width&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.01&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;border_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_width&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-6&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Pieces that tile the puzzle exactly have areas summing to its rectangle.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;area_ratio &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;sum&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;polygon_area&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;o&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; o &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;values&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;())&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;              /&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;SVG puzzle: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_width&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_height&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; SVG units; pieces cover &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;area_ratio&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.2%&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; of it (100% = no gaps or overlaps, with every piece present)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; area_ratio &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1.005&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;  [WARN] the SVG outlines overlap each other; neighboring pieces &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;          &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;will share a sliver of the model.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_depth &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_width&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_depth &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# One scale for both axes. Averaging the two only matters if the sizes&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# disagree, which is warned about below.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; scale_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_center_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_center_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_center_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_center_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_min_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Model XY size &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_width&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_depth&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.4g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;; scale &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;puzzle_scale&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.6g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;model units per SVG unit&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; scale_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.01&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] model and puzzle aspect ratios differ by &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;abs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; scale_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.1%&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;          f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(x scale &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_x&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.6g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, y scale &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_y&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.6g&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;). Pieces aren&apos;t stretched, so &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;          f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;the puzzle won&apos;t line up exactly with the model&apos;s edges.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-light-font-style:italic;--shiki-dark:#62E884;--shiki-dark-font-style:inherit&quot;&gt; to_model_xy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#FFB86C;--shiki-dark-font-style:italic&quot;&gt;point&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;    # SVG Y points down; Blender&apos;s Y points up (top of the puzzle = +Y).&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    return&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_center_x &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;point&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_center_x&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_scale&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            model_center_y &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;point&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; -&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_center_y&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_scale&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;output_names &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; output_filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;seen_outputs &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; out_name &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; output_names&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;items&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;():&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; out_name &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; seen_outputs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;        print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; and &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;seen_outputs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;out_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; both export to &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;              f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;out_name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;; one will overwrite the other.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;    seen_outputs&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;out_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;files_to_cut &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; all_svg_files &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; ONLY_FILES&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    files_to_cut &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; files_to_cut &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; f &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; ONLY_FILES&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; TEST_LIMIT&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    files_to_cut &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; files_to_cut&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F286C4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt;TEST_LIMIT&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# The cutter extends past the model&apos;s top and bottom so the cut is clean.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z_padding &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-4&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_z_min &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_padding&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_z_max &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_padding&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_width&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_depth&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1e-6&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# Blender units -&gt; meters is the scene&apos;s unit scale.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;unit_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scene&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;unit_settings&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;scale_length&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Gap between pieces: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;PIECE_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm, plus &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;EXTRA_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm per &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;EXTRA_TOLERANCE_PER_HEIGHT_MM&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm of each piece&apos;s own height &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(model is &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_width &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unit_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1000&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.1f&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; x &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_depth &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unit_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1000&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.1f&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; x &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;      f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;model_height &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unit_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1000&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.1f&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;# ---------------- pass 2: cut and export ----------------&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Cutting &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;files_to_cut&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; piece(s)...&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;work_collection &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;collection&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;manifest_rows &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;   # (sequential_index, svg_filename, out_filename, status)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;suspect_pieces &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;  # (svg_filename, problem description)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; enumerate&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;files_to_cut&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    out_name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; output_names&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    out_path &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;OUTPUT_DIR&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; out_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    outline &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_model_xy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    extended&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; border_sides &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; extend_border_points&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;        svg_outlines&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; puzzle_bounds&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; border_margin&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; border_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    cutter_outline &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;to_model_xy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;p&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; p &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; extended&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    top_z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; piece_top_z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_padding&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    piece_height_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;top_z &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;-&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; top_z &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                       else&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_height&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unit_scale &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 1000&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    extra_tolerance_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.0&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; EXTRA_TOLERANCE_PER_HEIGHT_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        extra_tolerance_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; EXTRA_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; *&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_height_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; EXTRA_TOLERANCE_PER_HEIGHT_MM&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    gap_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt; PIECE_TOLERANCE_MM&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; extra_tolerance_mm&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    piece_gap &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; gap_mm &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0.001&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; /&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; unit_scale&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_gap &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;&gt;&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        count &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # Edges along the puzzle&apos;s outer boundary keep their position.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        edge_insets &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0.0&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; border_sides&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &amp;#x26;&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; border_sides&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;k &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#BF9EEE;--shiki-dark-font-style:inherit&quot;&gt; 1&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; %&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; else&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_gap &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;/&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 2&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                       for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; k &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; range&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;count&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        cutter_outline &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; inset_polygon&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; edge_insets&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        cutter_mesh &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; build_cutter_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_z_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_z_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                                        f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;_cutter_data_&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; ValueError&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; error&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;        print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: can&apos;t build cutter: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;. Skipping; check it by hand.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt; f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;skipped, cutter: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    cutter_obj &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;_cutter_tmp_&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    work_collection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;link&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    cutter_obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;hide_render &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; True&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    context &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;base_material&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; base_material&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;on_outline&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; make_outline_locator&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;),&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;z_min&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;z_max&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;model_min&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;model_max&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;xy_tolerance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; xy_tolerance &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;*&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 10&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;        &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;merge_distance&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; merge_distance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;    }&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    best &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # Cut, check, and retry without hole-tolerant mode if the result&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # fails; keep only the best attempt.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hole_tolerant &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;True&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; False&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            label &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;EXACT hole-tolerant&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hole_tolerant &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;EXACT&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            attempt &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; {&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; label&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [],&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; []}&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            try&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;                attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cut_problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; cut_model&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                    sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; work_collection&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; hole_tolerant&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; context&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;                    attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            except&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt; Exception&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; error&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;                print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [RETRY] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; failed: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;error&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;                discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;            attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; inspect_piece&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cutter_outline&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                                              model_min&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; model_max&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;z&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; z_tolerance&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;            attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; =&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; cut_problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; best &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; attempt_score&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; &gt;&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; attempt_score&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;):&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; best &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;                    discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;                best &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; attempt&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            else&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;                discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;                break&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [RETRY] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                  f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;attempt&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; best &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; or&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: every boolean attempt came out empty, not exported.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;not exported, empty cut&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;            continue&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # Without this the exported model keeps the source object&apos;s name&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#7C7F93;--shiki-light-font-style:italic;--shiki-dark:#7B7F8B;--shiki-dark-font-style:inherit&quot;&gt;        # (e.g. &quot;Base.001&quot;), which is what Bambu Studio / Orca list.&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        piece_name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;splitext&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;out_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)[&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;        best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_name&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;        best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_name&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;!=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; piece_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: an object named &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;piece_name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos; already exists, &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                  f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;so the model is named &apos;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&apos; instead.&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        result &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt; export_with_shared_palette&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;out_path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;merged&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        problems &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        status &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;ok&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; if&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;else&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;suspect&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;        print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:03d&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;result&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;status&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; -&gt; &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;out_name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;              f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;(&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;label&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, top coverage &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;report&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;][&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;coverage&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.0%&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;, &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;              f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;height &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;piece_height_mm&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.1f&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm, gap &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;gap_mm&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;:.3f&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; mm)&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;            print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  [WARN] &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: best attempt still has problems: &quot;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;                  f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &apos;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&apos;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;problems&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        manifest_rows&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;append&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; filename&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; out_name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; status&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;))&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    finally&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; best &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; None&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;            discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;objects&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; best&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;        discard&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;([&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_obj&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;],&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt; [&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;cutter_mesh&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; source &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; sources&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    if&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;]&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; is&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; not&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;and&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt; source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;].&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;users &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-dark:#BF9EEE&quot;&gt; 0&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        bpy&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;data&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;meshes&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;remove&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#E64553;--shiki-light-font-style:italic;--shiki-dark:#F6F6F4;--shiki-dark-font-style:inherit&quot;&gt;source&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#E7EE98;--shiki-dark-font-style:inherit&quot;&gt;mesh&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;])&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Done cutting and exporting.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; manifest_rows&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;    manifest_path &lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; os&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#BF9EEE&quot;&gt;OUTPUT_DIR&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;piece_manifest.csv&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    with&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt; open&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;manifest_path&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;w&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; as&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; manifest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;        manifest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;write&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;sequential_index,svg_filename,filename,status&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;        for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; row &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; manifest_rows&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;            manifest&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;write&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color:#1E66F5;--shiki-dark:#F6F6F4&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:italic&quot;&gt;str&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;value&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt; for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; value &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; row&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#179299;--shiki-dark:#F286C4&quot;&gt; +&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt; &quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#F286C4&quot;&gt;\n&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;Manifest written to &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;manifest_path&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;    print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;len&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt; piece(s) need a manual check:&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;    for&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; name&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; reason &lt;/span&gt;&lt;span style=&quot;color:#8839EF;--shiki-dark:#F286C4&quot;&gt;in&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt; suspect_pieces&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;:&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;        print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-light-font-style:italic;--shiki-dark:#F286C4;--shiki-dark-font-style:inherit&quot;&gt;f&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;  &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;color:#4C4F69;--shiki-dark:#F6F6F4&quot;&gt;reason&lt;/span&gt;&lt;span style=&quot;color:#EA76CB;--shiki-dark:#BF9EEE&quot;&gt;}&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;line&quot;&gt;&lt;span style=&quot;color:#FE640B;--shiki-light-font-style:italic;--shiki-dark:#97E1F1;--shiki-dark-font-style:inherit&quot;&gt;print&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#E7EE98&quot;&gt;Done.&lt;/span&gt;&lt;span style=&quot;color:#40A02B;--shiki-dark:#DEE492&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;color:#7C7F93;--shiki-dark:#F6F6F4&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If you’re having issues I learned that to see the script console output you have to launch blender via CLI. On MacOS that’s with &lt;code&gt;/Applications/Blender.app/Contents/MacOS/Blender&lt;/code&gt;. There were a number of issues I worked through with Claude where the resulting piece geometry wasn’t valid or had holes in it. Those should be resolved but I wouldn’t be surprised for them to come back if you throw some crazy geometry at it.&lt;/p&gt;
&lt;p&gt;Once you’ve got some piece models it’s time to print! I would highly recommend starting by just printing a couple pieces and making sure that your printer tolerances give you the piece fit you’re looking for. If the pieces are too tight against each other, look at the &lt;code&gt;PIECE_TOLERANCE_MM&lt;/code&gt; as the global tolerance setting and the &lt;code&gt;EXTRA_TOLERANCE_MM&lt;/code&gt; / &lt;code&gt;EXTRA_TOLERANCE_PER_HEIGHT_MM&lt;/code&gt; settings which add even more tolerance for tall pieces (which need more with the increased surface area).&lt;/p&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img alt=&quot;Print In Progress&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1200&quot; height=&quot;1274&quot; src=&quot;/_astro/print-in-progress.DgVYZFNV_Z25ezbb.webp&quot;&gt;&lt;/li&gt;&lt;li&gt;&lt;img alt=&quot;Assembly In Progress&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;996&quot; height=&quot;1275&quot; src=&quot;/_astro/assembly-in-progress.DzheLQ2y_OTho.webp&quot;&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The slicer settings I’ve customized are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Layer height at 0.24 mm (on a 0.4mm nozzle) for the chunky layer topo map look I love. I think you could go even higher (and with a bigger nozzle even more) and end up with a cool result while also speeding up the print time.&lt;/li&gt;
&lt;li&gt;1 wall loop to save filament. They still end up strong and I never worried about breaking a piece even when they got stuck in the wrong place.&lt;/li&gt;
&lt;li&gt;Sparse infill density 5% gyroid&lt;/li&gt;
&lt;li&gt;Purge into infill&lt;/li&gt;
&lt;li&gt;Changed the purging multiplier to 0.1. Since there’s so many color swaps I wanted to minimize purge waste and this actually also helps blend the colors together a bit giving a gradient which is fitting for terrain.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img alt=&quot;Detail View&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1120&quot; height=&quot;1400&quot; src=&quot;/_astro/detail.D020YzbS_ZPvjBw.webp&quot;&gt;&lt;/p&gt;
&lt;p&gt;Here’s the &lt;a href=&quot;https://makerworld.com/en/models/3396463-mount-rainier-400-piece-3d-jigsaw-puzzle#profileId-3866294?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Makerworld&lt;/a&gt; full project if you’d like to make Mount Rainier yourself!&lt;/p&gt;</content:encoded></item><item><title>The AI Workflow That Works For Me</title><link>https://dillonshook.com/ai-workflow/</link><guid isPermaLink="true">https://dillonshook.com/ai-workflow/</guid><pubDate>Fri, 12 Jun 2026 11:49:33 GMT</pubDate><content:encoded>&lt;p&gt;I thought it’d be interesting for my future self to write down how I’m using AI tools now after having settled into a groove after  ~8 months of heavier usage and trying different approaches. It’s fascinating to me how everyone adopts AI in their own ways and on their own timeline.  I’m mainly interested in seeing how much my own approach will change over time as the tools evolve but hopefully this post will be interesting for you to compare your own approach to as well.  Claude Fable dropped as I’m writing this so who knows, this may be out of date before it’s even published.&lt;/p&gt;
&lt;p&gt;For a little &lt;em&gt;context&lt;/em&gt;, I’m working on an internal application written in Next.js with one other very experienced coworker. We mostly work on different parts of the application but sync up regularly to talk about anything that affects both of our work. There’s an extensive documentation folder that our AGENTS.md points to with docs for all the major subsystems, common developer commands, and repo conventions. The application also has a strong type system that checks everything from sql queries with &lt;a href=&quot;https://www.kysely.dev/?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Kysely&lt;/a&gt;, how the data is mapped into internal and external APIs, the query and path parameters for advanced filtering, to all the external API types that are shared with the frontend so any type mismatch throughout the system can be caught and fixed by an agent.&lt;/p&gt;
&lt;p&gt;We don’t do “normal” human PR reviews since they’d slow both of us down too much but instead just do self &amp;#x26; AI reviews.  We trust each other to commit good code and own the consequences of it. I still review every line, but with varying degrees of scrutiny.  If you’re building an app where you feel comfortable YOLO’ing it, feel free to ignore the rest of this.  I’m currently primarily using Opus 4.8 since it’s been out inside of Cursor and occasionally switching to ChatGPT 5.5 (codex) and Composer 2.5 for quicker straightforward tasks.&lt;/p&gt;
&lt;p&gt;&lt;img alt=&quot;My agents&quot; loading=&quot;lazy&quot; decoding=&quot;async&quot; width=&quot;1000&quot; height=&quot;417&quot; src=&quot;/_astro/agent.DMjTx8Dn_1xLoEm.webp&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;what-ive-tried&quot;&gt;What I’ve Tried&lt;a class=&quot;anchor&quot; href=&quot;#what-ive-tried&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;Instead of giving a whole diatribe of every possible thing I’ve tried, I’ll focus on the popular ones that I’ve seen/heard coworkers and friends use that didn’t work for me.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Using agents to write a giant very detailed multi-step plan all up front, getting specialized agents to review and modify the plan in a loop, then having them go build it all in one go.  I’ve found this approach is too prone to going off the rails for me in a couple of ways.  First, it’s very tedious to review giant plan documents, not miss anything, and make sure they’re staying true to your intent as they’re being rewritten all the time so I fall into the trap of skimming over them and just assuming the agent will know what it’s doing.  Then when it comes to implementation there are inevitably a number of assumptions the agents make that I missed or didn’t think about in the plan that need to be unwound which of course takes time and tokens proportional to how much code is built on top.  Lastly, I like feeling out the problem space and making big decisions during the process of implementation and testing.  Some of my best ideas come from using the feature in app and projecting out the problems.  I find it very difficult to think of all of these up front in the planning process.  Besides, isn’t this approach just waterfall anyways?  I could see this approach working well if you have a very well defined problem to solve and can verify implementation easily (i.e. have lots of tests).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There’s another workflow where you generate code through whatever means and then put up a PR before looking at any of the code.  You then treat the PR as if another teammate wrote it and use GitHub to review the PR by leaving comments. After your review you then use a skill hooked up to the GitHub CLI that pulls all your comments and either fixes them or answers your questions.  I don’t think there’s anything wrong with this approach but for me it felt too cumbersome using the github UI (both web and VS Code GitHub PR extension) to manage the review and the sea of back and forth conversation threads. I prefer to review the code in Cursor after it’s been generated but before it’s committed so I can make light touch ups if needed and know everything checked in has been reviewed.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lastly, I haven’t been able to effectively manage multiple medium to large tasks in parallel for any real length of time. By the time I get a couple prompted and going the first has finished and needs review, which takes enough time that the other workstreams complete.  It’s too much context switching on top of all the other distractions (slack/support requests/meetings) that I end up missing things I should catch in reviews. The models are fast enough now that you can use the bits of generation time to think about the next step in the process or think about what you’re looking for in the code you’re about to review.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;what-works-for-me&quot;&gt;What Works For Me&lt;a class=&quot;anchor&quot; href=&quot;#what-works-for-me&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Small tasks&lt;/strong&gt; —&gt; For anything that’s a simple bug fix or feature where I know exactly what the change looks like I’ll write a detailed description in the Jira ticket and then I’ll have a custom skill I made automate all the rest of the work.  In a nutshell, the skill creates a worktree with the ticket number, fetches the title and description from the Jira ticket, implements the change, open a PR using the GitHub CLI, waits for the automatic AI review comments and test results, then does one iteration of addressing the comments and fixing any tests.  Since I only use this on simple task I don’t want the agent spinning its wheels and going off on tangents so just one round of feedback is ideal.  With this workflow I can parallelize a bunch of tickets  and then just review the PRs when they’re done.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Medium tasks&lt;/strong&gt; —&gt; For anything that is a little more involved or ambiguous I’ll use the built in plan mode with the agent to some research and ideating on the change to make sure it’ll go in the right direction when I let it loose.  I’ll usually use a faster model for the implementation since the plan can keep them on track well and then I’ll do my review/testing/touch-up/reprompting loop.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Large tasks&lt;/strong&gt; —&gt; Anything that’s a multi-day effort requires a bit different tactics.  I’ll start by brain dumping everything I can think of into a planning doc organized by the phases it should be implemented. In each phase I’ll list any and all that apply and I want to enforce: requirements, business logic, API contracts, data models, performance characteristics.  By the nature of learning more as you go, there will be more details in the earlier phases and the later phases will mostly be just user requirements and goals.  Then with an agent I’ll give it the whole doc for context but tell it to create a new section for implementation plan (so it doesn’t overwrite your section) being clear to just focus on the first phase. I ask it to do any research needed to resolve ambiguities or come up with alternative approaches to weigh and then architect how the phase will be built.  After I loop enough times refining this first phase plan and I’m satisfied with it I’ll hand it over to an agent to build just the first phase.&lt;/p&gt;
&lt;p&gt;From there on out I’ll focus on reviewing, steering, testing, and deploying the first phase which inevitably will refine my thinking about how the later phases should go as well as features that might be needed that I couldn’t think of up front.  Going through the phases systematically actually &lt;em&gt;using&lt;/em&gt; the software and imagining how your users will use the software is so much better than just aiming it in a direction and coming back much later to find it thinks it done but actually ended up in a very different place than you intended.&lt;/p&gt;
&lt;h2 id=&quot;a-couple-closing-thoughts&quot;&gt;A Couple Closing Thoughts&lt;a class=&quot;anchor&quot; href=&quot;#a-couple-closing-thoughts&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It’s an absolutely wild time for the industry right now. We’ve always had to keep up with the technology treadmill but it’s going faster than ever and only speeding up.  Remember that the point isn’t to create as much software as possible, the point is to create as much &lt;strong&gt;good&lt;/strong&gt; software as possible.  And as insanely powerful as the tools have become, I still think creating good software will require an experienced human at the helm for the forseeable future.&lt;/p&gt;
&lt;p&gt;Here’s a bit of further reading on the subject that I connected with:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.caimito.net/en/blog/2025/12/07/the-recurring-dream-of-replacing-developers.html?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.caimito.net/en/blog/2025/12/07/the-recurring-dream-of-replacing-developers.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/ai-impact-on-software-engineers-part-2?ref=dillonshook.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://newsletter.pragmaticengineer.com/p/ai-impact-on-software-engineers-part-2&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Hammond Castle</title><link>https://dillonshook.com/photos/hammond-castle/</link><guid isPermaLink="true">https://dillonshook.com/photos/hammond-castle/</guid><description>A north shore fairytale</description><pubDate>Mon, 02 Nov 2026 17:50:43 GMT</pubDate><content:encoded>&lt;p&gt;On the northern shores of Massachusetts there’s a castle that looks straight out of a fairy tale. Despite being built in the 1920’s - 1930’s it was modeled after 15th centry French castles by its creator John Hays Hammond Jr., an inventor and pioneer in the study of remote control who held over four hundred patents.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728116/hammond-castle/DSC05239.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05253.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728117/hammond-castle/DSC05240.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05266.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728120/hammond-castle/DSC05269.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728120/hammond-castle/DSC05272.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728118/hammond-castle/DSC05281-Pano.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728119/hammond-castle/DSC05288.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728121/hammond-castle/DSC05292.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728121/hammond-castle/DSC05300.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793728122/hammond-castle/DSC05305.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content:encoded></item><item><title>Photo Roll</title><link>https://dillonshook.com/photos/rando/</link><guid isPermaLink="true">https://dillonshook.com/photos/rando/</guid><description>Random photos that otherwise don&apos;t fit in an album</description><pubDate>Tue, 13 Oct 2026 07:42:00 GMT</pubDate><content:encoded>&lt;p&gt;This is random smattering of photos that didn’t feel like they deserved their own album for one reason or another.&lt;/p&gt;
&lt;p&gt;They’re organized roughly by newest first and I’ll keep this up to date as they happen&lt;/p&gt;
&lt;h2 id=&quot;latest-update&quot;&gt;Latest Update&lt;a class=&quot;anchor&quot; href=&quot;#latest-update&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793738714/rando/DSC05047.jpg&quot; alt=&quot;Intricate Tree Bark&quot; title=&quot;Intricate Tree Bark&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793738714/rando/DSC05047.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793738714/rando/DSC05047.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793738714/rando/DSC05047.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793738714/rando/DSC05047.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793738714/rando/DSC05047.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793738714/rando/DSC05047.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1793738713/rando/DSC05026.jpg&quot; alt=&quot;Fall Berries&quot; title=&quot;Fall Berries&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793738713/rando/DSC05026.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793738713/rando/DSC05026.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793738713/rando/DSC05026.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1793738713/rando/DSC05026.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1793738713/rando/DSC05026.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1793738713/rando/DSC05026.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;h2 id=&quot;around-cape-cod&quot;&gt;Around Cape Cod&lt;a class=&quot;anchor&quot; href=&quot;#around-cape-cod&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1724893304/rando/DSC01472.jpg&quot; alt=&quot;Cape Cod Sunset&quot; title=&quot;Cape Cod Sunset&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1724893304/rando/DSC01472.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1724893304/rando/DSC01472.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1724893304/rando/DSC01472.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1724893304/rando/DSC01472.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1724893304/rando/DSC01472.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1724893304/rando/DSC01472.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1724893304/rando/DSC01476.jpg&quot; alt=&quot;Kent&apos;s Point Hike&quot; title=&quot;Kent&apos;s Point Hike&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1724893304/rando/DSC01476.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1724893304/rando/DSC01476.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1724893304/rando/DSC01476.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1724893304/rando/DSC01476.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1724893304/rando/DSC01476.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1724893304/rando/DSC01476.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h2 id=&quot;summer-2023&quot;&gt;Summer 2023&lt;a class=&quot;anchor&quot; href=&quot;#summer-2023&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1689517997/rando/DSC09080.jpg&quot; alt=&quot;View from Worlds End&quot; title=&quot;View from Worlds End&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517997/rando/DSC09080.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517997/rando/DSC09080.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517997/rando/DSC09080.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517997/rando/DSC09080.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517997/rando/DSC09080.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517997/rando/DSC09080.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1689517812/rando/DSC09100.jpg&quot; alt=&quot;Old Stereoscopic viewer&quot; title=&quot;Old Stereoscopic viewer&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517812/rando/DSC09100.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517812/rando/DSC09100.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517812/rando/DSC09100.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517812/rando/DSC09100.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517812/rando/DSC09100.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517812/rando/DSC09100.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1689517813/rando/DSC09135.jpg&quot; alt=&quot;Airbnb views&quot; title=&quot;Airbnb views&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517813/rando/DSC09135.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517813/rando/DSC09135.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517813/rando/DSC09135.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517813/rando/DSC09135.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517813/rando/DSC09135.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517813/rando/DSC09135.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1689517813/rando/DSC09148.jpg&quot; alt=&quot;Paint by numbers&quot; title=&quot;Paint by numbers&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517813/rando/DSC09148.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517813/rando/DSC09148.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517813/rando/DSC09148.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1689517813/rando/DSC09148.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1689517813/rando/DSC09148.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1689517813/rando/DSC09148.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h2 id=&quot;views-from-around-the-house&quot;&gt;Views from around the house&lt;a class=&quot;anchor&quot; href=&quot;#views-from-around-the-house&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656796/rando/DSC07965.jpg&quot; alt=&quot;A new beginning&quot; title=&quot;A new beginning&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656796/rando/DSC07965.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656796/rando/DSC07965.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656796/rando/DSC07965.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656796/rando/DSC07965.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656796/rando/DSC07965.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656796/rando/DSC07965.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg&quot; alt=&quot;Snowflake Macro&quot; title=&quot;Snowflake Macro&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656789/rando/DSC07908-Edit.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656796/rando/DSC07938.jpg&quot; alt=&quot;Snowflake Macro 2&quot; title=&quot;Snowflake Macro 2&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656796/rando/DSC07938.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656796/rando/DSC07938.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656796/rando/DSC07938.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656796/rando/DSC07938.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656796/rando/DSC07938.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656796/rando/DSC07938.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656779/rando/DSC07596.jpg&quot; alt=&quot;Chelsea Seagazing&quot; title=&quot;Chelsea Seagazing&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656779/rando/DSC07596.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656779/rando/DSC07596.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656779/rando/DSC07596.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656779/rando/DSC07596.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656779/rando/DSC07596.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656779/rando/DSC07596.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656793/rando/DSC07600.jpg&quot; alt=&quot;Nali&apos;s first walk&quot; title=&quot;Nali&apos;s first walk&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656793/rando/DSC07600.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656793/rando/DSC07600.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656793/rando/DSC07600.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656793/rando/DSC07600.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656793/rando/DSC07600.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656793/rando/DSC07600.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h2 id=&quot;new-hampshire&quot;&gt;New Hampshire&lt;a class=&quot;anchor&quot; href=&quot;#new-hampshire&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1679533417/rando/DSC07317.jpg&quot; alt=&quot;Rail trail through the rocks&quot; title=&quot;Rail trail through the rocks&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07317.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07317.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07317.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07317.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07317.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07317.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1679533417/rando/DSC07320.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07320.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07320.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07320.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07320.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07320.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07320.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1679533417/rando/DSC07342.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07342.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07342.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07342.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533417/rando/DSC07342.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533417/rando/DSC07342.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533417/rando/DSC07342.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1679533416/rando/DSC07348.jpg&quot; alt=&quot;&amp;quot;&amp;quot;&quot; title=&quot;&amp;quot;&amp;quot;&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533416/rando/DSC07348.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533416/rando/DSC07348.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533416/rando/DSC07348.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533416/rando/DSC07348.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533416/rando/DSC07348.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533416/rando/DSC07348.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;boston&quot;&gt;Boston&lt;a class=&quot;anchor&quot; href=&quot;#boston&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1679533416/rando/DSC07311.jpg&quot; alt=&quot;Nahant from the sky&quot; title=&quot;Nahant from the sky&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533416/rando/DSC07311.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533416/rando/DSC07311.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533416/rando/DSC07311.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1679533416/rando/DSC07311.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1679533416/rando/DSC07311.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1679533416/rando/DSC07311.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656785/rando/DSC04297.jpg&quot; alt=&quot;Boston Brutalist Architecture&quot; title=&quot;Boston Brutalist Architecture&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656785/rando/DSC04297.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656785/rando/DSC04297.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656785/rando/DSC04297.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656785/rando/DSC04297.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656785/rando/DSC04297.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656785/rando/DSC04297.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656803/rando/DSC01931.jpg&quot; alt=&quot;Emerson Diagonal&quot; title=&quot;Emerson Diagonal&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656803/rando/DSC01931.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656803/rando/DSC01931.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656803/rando/DSC01931.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656803/rando/DSC01931.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656803/rando/DSC01931.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656803/rando/DSC01931.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656807/rando/DSC01971.jpg&quot; alt=&quot;Bird snack&quot; title=&quot;Bird snack&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656807/rando/DSC01971.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656807/rando/DSC01971.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656807/rando/DSC01971.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656807/rando/DSC01971.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656807/rando/DSC01971.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656807/rando/DSC01971.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656812/rando/DSC04284.jpg&quot; alt=&quot;Boston Common Fall layers&quot; title=&quot;Boston Common Fall layers&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656812/rando/DSC04284.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656812/rando/DSC04284.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656812/rando/DSC04284.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656812/rando/DSC04284.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656812/rando/DSC04284.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656812/rando/DSC04284.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656785/rando/DSC04288.jpg&quot; alt=&quot;Boston Common Fall Squirrel&quot; title=&quot;Boston Common Fall Squirrel&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656785/rando/DSC04288.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656785/rando/DSC04288.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656785/rando/DSC04288.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656785/rando/DSC04288.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656785/rando/DSC04288.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656785/rando/DSC04288.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656791/rando/DSC04293.jpg&quot; alt=&quot;Cascading Ivy&quot; title=&quot;Cascading Ivy&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656791/rando/DSC04293.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656791/rando/DSC04293.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656791/rando/DSC04293.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656791/rando/DSC04293.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656791/rando/DSC04293.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656791/rando/DSC04293.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;h2 id=&quot;philadelphia&quot;&gt;Philadelphia&lt;a class=&quot;anchor&quot; href=&quot;#philadelphia&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656806/rando/DSC02643.jpg&quot; alt=&quot;Vibrant Sky&quot; title=&quot;Vibrant Sky&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656806/rando/DSC02643.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656806/rando/DSC02643.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656806/rando/DSC02643.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656806/rando/DSC02643.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656806/rando/DSC02643.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656806/rando/DSC02643.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656807/rando/DSC02613.jpg&quot; alt=&quot;Philadelphia Fallout Shelter&quot; title=&quot;Philadelphia Fallout Shelter&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656807/rando/DSC02613.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656807/rando/DSC02613.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656807/rando/DSC02613.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656807/rando/DSC02613.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656807/rando/DSC02613.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656807/rando/DSC02613.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1678656804/rando/DSC01126.jpg&quot; alt=&quot;Birthday Dessert&quot; title=&quot;Birthday Dessert&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656804/rando/DSC01126.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656804/rando/DSC01126.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656804/rando/DSC01126.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1678656804/rando/DSC01126.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1678656804/rando/DSC01126.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1678656804/rando/DSC01126.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item><item><title>Sioux Falls to Missoula</title><link>https://dillonshook.com/photos/sioux-falls-missoula/</link><guid isPermaLink="true">https://dillonshook.com/photos/sioux-falls-missoula/</guid><pubDate>Fri, 07 Aug 2026 00:21:40 GMT</pubDate><content:encoded>&lt;p&gt;This was a trip to see family we hadn’t seen in awhile and meet a new baby niece.  I didn’t get too many non-family photos in South Dakota but we did go to an indoor butterfly hatchery and habitat that was a hit with our toddler who got them to land on her finger.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg&quot; alt=&quot;Monarch?&quot; title=&quot;Monarch?&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04709.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg&quot; alt=&quot;Butterfly closeup&quot; title=&quot;Butterfly closeup&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04701.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg&quot; alt=&quot;Butterfly with transparent wings&quot; title=&quot;Butterfly with transparent wings&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061981/sioux-falls-missoula/DSC04712.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Then we stopped by to see &lt;em&gt;the&lt;/em&gt; Sioux Falls downtown and checked out a nearby fair.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg&quot; alt=&quot;Upper falls&quot; title=&quot;Upper falls&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061985/sioux-falls-missoula/DSC04741.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg&quot; alt=&quot;Anyone want to kayak it?&quot; title=&quot;Anyone want to kayak it?&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786061982/sioux-falls-missoula/DSC04748.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h1 id=&quot;-missoula-mt&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;symbol id=&quot;ai:fa6-solid:location-dot&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0M192 128a64 64 0 1 1 0 128a64 64 0 1 1 0-128&quot;/&gt;&lt;/symbol&gt;&lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; Missoula, MT&lt;a class=&quot;anchor&quot; href=&quot;#-missoula-mt&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Missoula was fairly smoky when we were there due to nearby wildfires. The night we got there we checked out another fair and watched a dirt bike race.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg&quot; alt=&quot;Smoky sunset&quot; title=&quot;Smoky sunset&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04778.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg&quot; alt=&quot;Dirt bike race start&quot; title=&quot;Dirt bike race start&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04783.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg&quot; alt=&quot;Lords of Dirt race&quot; title=&quot;Lords of Dirt race&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062015/sioux-falls-missoula/DSC04790.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg&quot; alt=&quot;Pan shot 1&quot; title=&quot;Pan shot 1&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04814.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg&quot; alt=&quot;Speeeed&quot; title=&quot;Speeeed&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04817.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg&quot; alt=&quot;Drifting and sliding&quot; title=&quot;Drifting and sliding&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04819.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062016/sioux-falls-missoula/DSC04849.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;There was tons of wildlife just hanging around town. We probably saw 40 deer during a 20 minute walk each way and then the next morning we saw this little guy across a driveway which is apparently called a rock chuck.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg&quot; alt=&quot;Rock Chuck&quot; title=&quot;Rock Chuck&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04862.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg&quot; alt=&quot;Racoon getting breakfast&quot; title=&quot;Racoon getting breakfast&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04885.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg&quot; alt=&quot;Wanna fight?&quot; title=&quot;Wanna fight?&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062017/sioux-falls-missoula/DSC04888.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg&quot; alt=&quot;Rockin Rudys Record store and more&quot; title=&quot;Rockin Rudys Record store and more&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04889.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04890.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062018/sioux-falls-missoula/DSC04892.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04891.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;We then checked out “the only verified Lewis &amp;amp; Clark camp” called Travelers Rest a little south of town. The barn must have come much later hah.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062019/sioux-falls-missoula/DSC04895.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04899.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;I then went for a solo hike on a trail called “Bear Creek” that thankfully did not live up to its name, but made up for that with the sights.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg&quot; alt=&quot;Bear Creek hike&quot; title=&quot;Bear Creek hike&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04902.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg&quot; alt=&quot;Rocky Crags&quot; title=&quot;Rocky Crags&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062021/sioux-falls-missoula/DSC04905.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg&quot; alt=&quot;Nestled Waterfalls&quot; title=&quot;Nestled Waterfalls&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04922.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg&quot; alt=&quot;Impressive Cliffs&quot; title=&quot;Impressive Cliffs&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062022/sioux-falls-missoula/DSC04926.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg&quot; alt=&quot;Tiny Snakes&quot; title=&quot;Tiny Snakes&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062023/sioux-falls-missoula/DSC04929.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg&quot; alt=&quot;Grand Vistas&quot; title=&quot;Grand Vistas&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04931.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04932.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062025/sioux-falls-missoula/DSC04935.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04937.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Gotta get back home though…&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1786062024/sioux-falls-missoula/DSC04941.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;</content:encoded></item><item><title>Baltimore to D.C.</title><link>https://dillonshook.com/photos/bwi-dc-spring/</link><guid isPermaLink="true">https://dillonshook.com/photos/bwi-dc-spring/</guid><description>A Parents Escape</description><pubDate>Sat, 18 Apr 2026 00:45:01 GMT</pubDate><content:encoded>&lt;p&gt;Taking trips and photos has definitely been on the back burner since my daughter was born, so getting the chance to drop her off at the grandparents house and getting a couple days to ourselves was a nice break and chance to pull out the camera again.&lt;/p&gt;
&lt;h1 id=&quot;-national-aquarium&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;symbol id=&quot;ai:fa6-solid:location-dot&quot;&gt;&lt;path fill=&quot;currentColor&quot; d=&quot;M215.7 499.2C267 435 384 279.4 384 192C384 86 298 0 192 0S0 86 0 192c0 87.4 117 243 168.3 307.2c12.3 15.3 35.1 15.3 47.4 0M192 128a64 64 0 1 1 0 128a64 64 0 1 1 0-128&quot;/&gt;&lt;/symbol&gt;&lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; National Aquarium&lt;a class=&quot;anchor&quot; href=&quot;#-national-aquarium&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04484.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04490.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04500.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472718/bwi-dc-spring/DSC04514.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;h1 id=&quot;-union-station-washington-dc&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; Union Station, Washington D.C.&lt;a class=&quot;anchor&quot; href=&quot;#-union-station-washington-dc&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Coming back into Union Station was a throwback to seeing the &lt;a href=&quot;/photos/cherry-blossoms&quot;&gt;Cherry Blossoms&lt;/a&gt; way back in 2018.&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg&quot; alt=&quot;Union Station&quot; title=&quot;Union Station&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04521.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04525.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04529.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h1 id=&quot;-arlington-national-cemetary&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; Arlington National Cemetary&lt;a class=&quot;anchor&quot; href=&quot;#-arlington-national-cemetary&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Since I had been around the National Mall a few times before I decided to instead go to Arlington National Cemetary which I’d never been to before.  The sheer scale of it is hard to comprehend, even when only seeing a fraction of it.  Makes you think about how many more service members are buried elsewhere and the insanity of war.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472720/bwi-dc-spring/DSC04531.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04532.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472721/bwi-dc-spring/DSC04537.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04540.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472722/bwi-dc-spring/DSC04542.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04552.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04556.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472725/bwi-dc-spring/DSC04557.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472724/bwi-dc-spring/DSC04563.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 50vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472725/bwi-dc-spring/DSC04574.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472726/bwi-dc-spring/DSC04576.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472726/bwi-dc-spring/DSC04581.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04582.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472727/bwi-dc-spring/DSC04584.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h1 id=&quot;-around-dc&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; Around DC&lt;a class=&quot;anchor&quot; href=&quot;#-around-dc&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;Back in the city after a short pit stop at the hotel I wandered over to the Smithsonian Natural History Museum and caught the beginning of some parade and then headed up to Union Market for lunch.&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04587.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04595.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472729/bwi-dc-spring/DSC04600.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04603.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472728/bwi-dc-spring/DSC04604-Pano.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg&quot; alt title srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472730/bwi-dc-spring/DSC04607.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;
&lt;h1 id=&quot;-renwick-gallery&quot;&gt;&lt;svg width=&quot;0.75em&quot; height=&quot;1em&quot; viewBox=&quot;0 0 384 512&quot; class=&quot;inline&quot; data-icon=&quot;fa6-solid:location-dot&quot;&gt;   &lt;use href=&quot;#ai:fa6-solid:location-dot&quot;&gt;&lt;/use&gt;  &lt;/svg&gt; Renwick Gallery&lt;a class=&quot;anchor&quot; href=&quot;#-renwick-gallery&quot;&gt;&lt;span class=&quot;anchor-icon&quot; data-pagefind-ignore=&quot;true&quot;&gt;#&lt;/span&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;I was recommended to go check out the Renwick Gallery by a co-worker which turned out to be a great off the beaten path rec, even though it’s not far from the White House. The museum is focused on craft and decorative art with the current exhibition celebrating county fairs from around the country.&lt;/p&gt;
&lt;ul class=&quot;photo-row-flex&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg&quot; alt=&quot;Butter package dress&quot; title=&quot;Butter package dress&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472729/bwi-dc-spring/DSC04608.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg&quot; alt=&quot;Prize Ribbon Quilt&quot; title=&quot;Prize Ribbon Quilt&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472731/bwi-dc-spring/DSC04610.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;They had over a dozen portraits entirely made out of seeds&lt;/p&gt;
&lt;div&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg&quot; alt=&quot;Betty White&quot; title=&quot;Betty White&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472732/bwi-dc-spring/DSC04613.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg&quot; alt=&quot;Lucille Ball&quot; title=&quot;Lucille Ball&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472733/bwi-dc-spring/DSC04614.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg&quot; alt=&quot;Elvis in seed&quot; title=&quot;Elvis in seed&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472734/bwi-dc-spring/DSC04615.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 33vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg&quot; alt=&quot;Butter Cow&quot; title=&quot;Butter Cow&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472731/bwi-dc-spring/DSC04619.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ol class=&quot;photo-row&quot;&gt;&lt;li&gt;&lt;img src=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_800,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg&quot; alt=&quot;Pickle Pyramid&quot; title=&quot;Pickle Pyramid&quot; srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 1200w&quot; data-pswp-srcset=&quot;https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_600,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 600w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1000,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 1000w,
          https://res.cloudinary.com/dillonshook/image/upload/f_auto,q_95,c_scale,w_1800,dpr_auto/v1776472733/bwi-dc-spring/DSC04622.jpg 1200w&quot; data-pswp-width=&quot;1800&quot; data-pswp-height=&quot;1800&quot; sizes=&quot;(max-width: 720px) 100vw, 100vw&quot; loading=&quot;lazy&quot; class=&quot;post-image&quot;/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;</content:encoded></item></channel></rss>