<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="20" type="file" uuid="ae84f737-f8ad-44bf-9ba2-2e796989daa7">
    <property name="canvasHeight" value="1000"/>
    <property name="canvasWidth" value="1000"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <node name="root" prototype="core.network" renderedChild="AdjustLeading">
        <node name="AdjustLeading" position="2.00,0.00" prototype="core.network" renderedChild="translate2">
            <node name="centroid1" position="-26.00,5.00" prototype="corevector.centroid"/>
            <node name="compound1" position="-16.00,11.00" prototype="corevector.compound">
                <port name="function" type="string" value="intersected"/>
            </node>
            <node name="divide1" position="-38.00,-3.00" prototype="math.divide">
                <port name="value2" type="float" value="100.0"/>
            </node>
            <node name="fontSize1" position="-29.00,-4.00" prototype="math.number">
                <port name="value" type="float" value="24.0"/>
            </node>
            <node name="grid1" position="-22.00,7.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="rows" type="int" value="11"/>
                <port name="height" type="float" value="315.0"/>
                <port name="position" type="point" value="127.00,144.00"/>
            </node>
            <node name="grid2" position="-32.00,10.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="rows" type="int" value="11"/>
                <port name="height" type="float" value="315.0"/>
                <port name="position" type="point" value="127.00,144.00"/>
            </node>
            <node name="group1" position="-23.00,18.00" prototype="corevector.group"/>
            <node comment="Tries to guess number of lines.  If wrong, replace the node with a number set to the correct value." name="lineCount" position="-32.00,-1.00" prototype="core.network" renderedChild="count1">
                <node name="compare1" position="-12.00,9.00" prototype="math.compare">
                    <port name="value2" type="float" value="-11.0"/>
                </node>
                <node name="count1" position="-14.00,12.00" prototype="list.count"/>
                <node name="cull1" position="-14.00,11.00" prototype="list.cull"/>
                <node comment="This fudge factor defines how much leftward swing constitutes an end of line.  When it's wrong, linecount will be off." name="divide1" position="-10.00,6.00" prototype="math.divide">
                    <port name="value2" type="float" value="-2.0"/>
                </node>
                <node name="lookup1" outputRange="list" position="-15.00,-1.00" prototype="data.lookup">
                    <port name="key" type="string" value="points"/>
                </node>
                <node name="make_strings1" position="-15.00,0.00" prototype="string.make_strings">
                    <port name="separator" type="string" value=","/>
                </node>
                <node name="rest1" position="-18.00,3.00" prototype="list.rest"/>
                <node name="sort1" position="-18.00,10.00" prototype="list.sort"/>
                <node name="subtract1" position="-15.00,5.00" prototype="math.subtract"/>
                <node name="take_every1" position="-15.00,1.00" prototype="list.take_every">
                    <port name="n" type="int" value="2"/>
                </node>
                <port childReference="lookup1.list" description="The input value." label="" name="list" range="value" type="list" widget="none"/>
                <port childReference="divide1.value1" description="" label="" name="fontHeight" range="value" type="float" value="0.0" widget="float"/>
                <conn input="make_strings1.string" output="lookup1"/>
                <conn input="take_every1.list" output="make_strings1"/>
                <conn input="rest1.list" output="take_every1"/>
                <conn input="subtract1.value1" output="rest1"/>
                <conn input="subtract1.value2" output="take_every1"/>
                <conn input="compare1.value1" output="subtract1"/>
                <conn input="cull1.list" output="subtract1"/>
                <conn input="cull1.booleans" output="compare1"/>
                <conn input="count1.list" output="cull1"/>
                <conn input="sort1.list" output="subtract1"/>
                <conn input="compare1.value2" output="divide1"/>
            </node>
            <node name="lookup1" position="-21.00,-9.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.width"/>
            </node>
            <node name="lookup2" position="-18.00,-9.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.height"/>
            </node>
            <node name="lookup4" position="-11.00,15.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.y"/>
            </node>
            <node name="lookup5" position="-14.00,15.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.x"/>
            </node>
            <node name="lookup6" position="-12.00,21.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.y"/>
            </node>
            <node name="lookup7" position="-16.00,21.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.x"/>
            </node>
            <node name="make_point1" position="-14.00,27.00" prototype="corevector.make_point">
                <port name="y" type="float" value="-144.0"/>
            </node>
            <node name="multiply1" position="-36.00,3.00" prototype="math.multiply"/>
            <node name="null1" position="-19.00,-15.00" prototype="corevector.null"/>
            <node name="rect4" position="-19.00,9.00" prototype="corevector.rect">
                <port name="height" type="float" value="24.0"/>
            </node>
            <node name="subtract1" position="-28.00,-1.00" prototype="math.subtract">
                <port name="value2" type="float" value="24.0"/>
            </node>
            <node name="subtract2" position="-18.00,25.00" prototype="math.subtract"/>
            <node name="subtract3" position="-13.00,25.00" prototype="math.subtract"/>
            <node name="translate1" position="-23.00,17.00" prototype="corevector.translate"/>
            <node name="translate2" position="-20.00,29.00" prototype="corevector.translate">
                <port name="translate" type="point" value="-127.00,-144.00"/>
            </node>
            <port childReference="null1.shape" description="The input shape." label="" name="shape" range="value" type="geometry" widget="none"/>
            <port childReference="fontSize1.value" description="" label="" name="value_2" range="value" type="float" value="24.0" widget="float"/>
            <port childReference="divide1.value1" description="" label="" name="Leading" range="value" type="float" value="0.0" widget="float"/>
            <conn input="rect4.width" output="lookup1"/>
            <conn input="rect4.position" output="grid1"/>
            <conn input="grid1.position" output="centroid1"/>
            <conn input="subtract1.value1" output="lookup2"/>
            <conn input="grid1.height" output="subtract1"/>
            <conn input="grid1.width" output="lookup1"/>
            <conn input="centroid1.shape" output="null1"/>
            <conn input="lookup1.list" output="null1"/>
            <conn input="lookup2.list" output="null1"/>
            <conn input="compound1.shape2" output="null1"/>
            <conn input="compound1.shape1" output="rect4"/>
            <conn input="translate1.shape" output="compound1"/>
            <conn input="grid2.width" output="lookup1"/>
            <conn input="multiply1.value2" output="subtract1"/>
            <conn input="multiply1.value1" output="divide1"/>
            <conn input="grid2.height" output="multiply1"/>
            <conn input="translate1.translate" output="grid2"/>
            <conn input="group1.shapes" output="translate1"/>
            <conn input="translate2.shape" output="group1"/>
            <conn input="subtract1.value2" output="fontSize1"/>
            <conn input="lookup4.list" output="null1"/>
            <conn input="lookup5.list" output="null1"/>
            <conn input="lookup6.list" output="group1"/>
            <conn input="subtract2.value1" output="lookup5"/>
            <conn input="subtract3.value1" output="lookup4"/>
            <conn input="make_point1.x" output="subtract2"/>
            <conn input="translate2.translate" output="make_point1"/>
            <conn input="lookup7.list" output="group1"/>
            <conn input="subtract2.value2" output="lookup7"/>
            <conn input="subtract3.value2" output="lookup6"/>
            <conn input="make_point1.y" output="subtract3"/>
            <conn input="lineCount.list" output="null1"/>
            <conn input="grid2.rows" output="lineCount"/>
            <conn input="grid1.rows" output="lineCount"/>
            <conn input="rect4.height" output="fontSize1"/>
            <conn input="lineCount.fontHeight" output="fontSize1"/>
        </node>
        <node name="combine1" position="-1.00,4.00" prototype="list.combine"/>
        <node name="fontHeight" position="3.00,-4.00" prototype="math.number">
            <port name="value" type="float" value="24.0"/>
        </node>
        <node name="frame1" position="8.00,-8.00" prototype="core.frame"/>
        <node name="leading" position="6.00,-4.00" prototype="math.number">
            <port name="value" type="float" value="-20.0"/>
        </node>
        <node name="textpath1" position="-1.00,-4.00" prototype="corevector.textpath">
            <port name="text" type="string" value="Four score and seven years ago, our fathers brought forth onto this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal."/>
            <port name="font_name" type="string" value="Arial-Black"/>
            <port name="align" type="string" value="LEFT"/>
            <port name="width" type="float" value="259.0"/>
        </node>
        <node name="textpath2" position="-4.00,-4.00" prototype="corevector.textpath">
            <port name="text" type="string" value="Four score and seven years ago, our fathers brought forth onto this continent a new nation, conceived in liberty and dedicated to the proposition that all men are created equal."/>
            <port name="font_name" type="string" value="ArialMT"/>
            <port name="align" type="string" value="LEFT"/>
            <port name="position" type="point" value="-330.00,0.00"/>
            <port name="width" type="float" value="259.0"/>
        </node>
        <node name="translate1" position="2.00,1.00" prototype="corevector.translate">
            <port name="translate" type="point" value="322.00,0.00"/>
        </node>
        <node name="wave1" position="6.00,-6.00" prototype="math.wave">
            <port name="min" type="float" value="-30.0"/>
            <port name="max" type="float" value="30.0"/>
        </node>
        <conn input="AdjustLeading.shape" output="textpath1"/>
        <conn input="AdjustLeading.Leading" output="leading"/>
        <conn input="combine1.list1" output="textpath2"/>
        <conn input="combine1.list2" output="textpath1"/>
        <conn input="translate1.shape" output="AdjustLeading"/>
        <conn input="combine1.list3" output="translate1"/>
        <conn input="AdjustLeading.value_2" output="fontHeight"/>
        <conn input="wave1.offset" output="frame1"/>
        <conn input="leading.value" output="wave1"/>
    </node>
</ndbx>
