<?xml version='1.0' encoding='UTF-8'?>
<AST>
  <HeaderNode startPos="1,1,0" endPos="11,1,207">
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="head" startPos="7,13,121" endPos="7,17,125"/>
      <NameSlot slot="1" name="elements" startPos="0,0,0" endPos="0,0,0"/>
      <NameSlot slot="2" name="foreach" startPos="3,5,13" endPos="3,12,20"/>
    </VariableTable>
    <VariableTable startPos="0,0,0" endPos="0,0,0">
      <NameSlot slot="0" name="dw::Core" startPos="0,0,0" endPos="0,0,0"/>
    </VariableTable>
    <ExternalBindings startPos="0,0,0" endPos="0,0,0"/>
    <VersionDirective startPos="1,1,0" endPos="1,8,7">
      <VersionMajor startPos="1,5,4" endPos="1,6,5"/>
      <VersionMinor startPos="1,7,6" endPos="1,8,7"/>
    </VersionDirective>
    <FunctionDirective startPos="3,1,9" endPos="10,6,206">
      <NameSlot slot="2" name="foreach" startPos="3,5,13" endPos="3,12,20"/>
      <DynamicFunctionNode startPos="0,0,0" endPos="0,0,0">
        <FunctionParameterNode materialize="true" typeRequiresMaterialize="false" startPos="3,13,21" endPos="3,39,47">
          <NameSlot slot="1" name="elements" startPos="3,13,21" endPos="3,21,29"/>
          <LiteralTypeNode startPos="0,0,0" endPos="0,0,0">
            <TypeNode startPos="3,23,31" endPos="3,39,47"/>
          </LiteralTypeNode>
        </FunctionParameterNode>
        <TailRecFunctionBodyNode startPos="0,0,0" endPos="0,0,0">
          <IfNode startPos="0,0,0" endPos="0,0,0">
            <NullNode startPos="5,9,90" endPos="5,13,94"/>
            <FunctionCallNode startPos="4,8,63" endPos="4,25,80">
              <VariableReferenceNode startPos="4,8,63" endPos="4,15,70"/>
              <VariableReferenceNode startPos="4,16,71" endPos="4,24,79"/>
            </FunctionCallNode>
            <DoBlockNode startPos="0,0,0" endPos="0,0,0">
              <HeaderNode startPos="7,9,117" endPos="8,9,150">
                <VariableTable startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="0" name="head" startPos="7,13,121" endPos="7,17,125"/>
                  <NameSlot slot="1" name="elements" startPos="0,0,0" endPos="0,0,0"/>
                  <NameSlot slot="2" name="foreach" startPos="3,5,13" endPos="3,12,20"/>
                </VariableTable>
                <VariableTable startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="0" name="dw::Core" startPos="0,0,0" endPos="0,0,0"/>
                </VariableTable>
                <ExternalBindings startPos="0,0,0" endPos="0,0,0"/>
                <VarDirective startPos="7,9,117" endPos="7,33,141">
                  <NameSlot slot="0" name="head" startPos="7,13,121" endPos="7,17,125"/>
                  <NullSafeNode startPos="7,20,128" endPos="7,33,141">
                    <FunctionCallNode startPos="7,20,128" endPos="7,33,141">
                      <BinaryOpNode name="Dynamic Selector" startPos="7,20,128" endPos="7,31,139">
                        <VariableReferenceNode startPos="7,20,128" endPos="7,28,136"/>
                        <NumberNode startPos="7,29,137" endPos="7,30,138">0</NumberNode>
                      </BinaryOpNode>
                    </FunctionCallNode>
                  </NullSafeNode>
                </VarDirective>
              </HeaderNode>
              <InlineTailRecFunctionCall startPos="0,0,0" endPos="0,0,0">
                <VarDirective startPos="0,0,0" endPos="0,0,0">
                  <NameSlot slot="1" name="elements" startPos="3,13,21" endPos="3,21,29"/>
                  <DefaultNode startPos="9,18,171" endPos="9,46,199">
                    <NullSafeNode startPos="9,18,171" endPos="9,35,188">
                      <BinaryOpNode name="Dynamic Selector" startPos="9,18,171" endPos="9,35,188">
                        <VariableReferenceNode startPos="9,18,171" endPos="9,26,179"/>
                        <FunctionCallNode startPos="9,27,180" endPos="9,34,187">
                          <VariableReferenceNode startPos="9,29,182" endPos="9,31,184"/>
                          <NumberNode startPos="9,27,180" endPos="9,28,181">1</NumberNode>
                          <NumberNode startPos="9,32,185" endPos="9,34,187">-1</NumberNode>
                        </FunctionCallNode>
                      </BinaryOpNode>
                    </NullSafeNode>
                    <LiteralArrayNode startPos="9,44,197" endPos="9,46,199"/>
                  </DefaultNode>
                </VarDirective>
              </InlineTailRecFunctionCall>
            </DoBlockNode>
          </IfNode>
        </TailRecFunctionBodyNode>
      </DynamicFunctionNode>
    </FunctionDirective>
  </HeaderNode>
  <FunctionCallNode startPos="12,1,211" endPos="12,22,232">
    <VariableReferenceNode startPos="12,1,211" endPos="12,8,218"/>
    <ArrayNode startPos="12,9,219" endPos="12,21,231">
      <DynamicFunctionNode startPos="12,10,220" endPos="12,20,230">
        <NullNode startPos="12,16,226" endPos="12,20,230"/>
      </DynamicFunctionNode>
    </ArrayNode>
  </FunctionCallNode>
</AST>