<?xml version="1.0" ?>
<PsychoPy2experiment encoding="utf-8" version="2021.2.3">
  <Settings>
    <Param name="Audio latency priority" updates="None" val="use prefs" valType="str"/>
    <Param name="Audio lib" updates="None" val="use prefs" valType="str"/>
    <Param name="Completed URL" updates="None" val="" valType="str"/>
    <Param name="Data file delimiter" updates="None" val="auto" valType="str"/>
    <Param name="Data filename" updates="None" val="u'data/%s_%s_%s' % (expInfo['participant'], expName, expInfo['date'])" valType="code"/>
    <Param name="Enable Escape" updates="None" val="True" valType="bool"/>
    <Param name="Experiment info" updates="None" val="{'participant':'', 'session':'001'}" valType="code"/>
    <Param name="Force stereo" updates="None" val="True" valType="bool"/>
    <Param name="Full-screen window" updates="None" val="True" valType="bool"/>
    <Param name="HTML path" updates="None" val="" valType="str"/>
    <Param name="Incomplete URL" updates="None" val="" valType="str"/>
    <Param name="Monitor" updates="None" val="testMonitor" valType="str"/>
    <Param name="Resources" updates="None" val="[]" valType="list"/>
    <Param name="Save csv file" updates="None" val="False" valType="bool"/>
    <Param name="Save excel file" updates="None" val="False" valType="bool"/>
    <Param name="Save hdf5 file" updates="None" val="False" valType="bool"/>
    <Param name="Save log file" updates="None" val="True" valType="bool"/>
    <Param name="Save psydat file" updates="None" val="True" valType="bool"/>
    <Param name="Save wide csv file" updates="None" val="True" valType="bool"/>
    <Param name="Screen" updates="None" val="1" valType="num"/>
    <Param name="Show info dlg" updates="None" val="True" valType="bool"/>
    <Param name="Show mouse" updates="None" val="False" valType="bool"/>
    <Param name="Units" updates="None" val="height" valType="str"/>
    <Param name="Use version" updates="None" val="" valType="str"/>
    <Param name="Window size (pixels)" updates="None" val="(1024, 768)" valType="list"/>
    <Param name="blendMode" updates="None" val="avg" valType="str"/>
    <Param name="color" updates="None" val="$[0,0,0]" valType="color"/>
    <Param name="colorSpace" updates="None" val="rgb" valType="str"/>
    <Param name="elAddress" updates="None" val="100.1.1.1" valType="str"/>
    <Param name="elDataFiltering" updates="None" val="FILTER_LEVEL_2" valType="str"/>
    <Param name="elLiveFiltering" updates="None" val="FILTER_LEVEL_OFF" valType="str"/>
    <Param name="elModel" updates="None" val="EYELINK 1000 DESKTOP" valType="str"/>
    <Param name="elPupilAlgorithm" updates="None" val="ELLIPSE_FIT" valType="str"/>
    <Param name="elPupilMeasure" updates="None" val="PUPIL_AREA" valType="str"/>
    <Param name="elSampleRate" updates="None" val="1000" valType="num"/>
    <Param name="elSimMode" updates="None" val="False" valType="bool"/>
    <Param name="elTrackEyes" updates="None" val="RIGHT_EYE" valType="str"/>
    <Param name="elTrackingMode" updates="None" val="PUPIL_CR_TRACKING" valType="str"/>
    <Param name="expName" updates="None" val="navon-figures" valType="str"/>
    <Param name="exportHTML" updates="None" val="on Sync" valType="str"/>
    <Param name="eyetracker" updates="None" val="None" valType="str"/>
    <Param name="gpAddress" updates="None" val="127.0.0.1" valType="str"/>
    <Param name="gpPort" updates="None" val="4242" valType="num"/>
    <Param name="logging level" updates="None" val="exp" valType="code"/>
    <Param name="mgBlink" updates="None" val="MIDDLE_BUTTON" valType="list"/>
    <Param name="mgMove" updates="None" val="CONTINUOUS" valType="str"/>
    <Param name="mgSaccade" updates="None" val="0.5" valType="num"/>
    <Param name="tbLicenseFile" updates="None" val="" valType="str"/>
    <Param name="tbModel" updates="None" val="" valType="str"/>
    <Param name="tbSampleRate" updates="None" val="60" valType="num"/>
    <Param name="tbSerialNo" updates="None" val="" valType="str"/>
  </Settings>
  <Routines>
    <Routine name="trial">
      <CodeComponent name="code">
        <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="thisLetter = letters[trials.thisN];&amp;#10;polygon.setAutoDraw(true);&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range((thisLetter.length - 2)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    elements[Idx].setPos(thisLetter[(Idx + 2)]);&amp;#10;    elements[Idx].text = thisLetter[1];&amp;#10;    elements[Idx].setAutoDraw(true);&amp;#10;}&amp;#10;" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="thisLetter = letters[trials.thisN]&amp;#10;polygon.setAutoDraw(True)&amp;#10;for Idx in range(len(thisLetter)-2):&amp;#10;    elements[Idx].setPos(thisLetter[Idx+2])&amp;#10;    elements[Idx].text = thisLetter[1]&amp;#10;    elements[Idx].setAutoDraw(True)" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Auto-&gt;JS" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="polygon.setAutoDraw(false);&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range((thisLetter.length - 2)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    elements[Idx].setAutoDraw(false);&amp;#10;}&amp;#10;" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="polygon.setAutoDraw(False)&amp;#10;for Idx in range(len(thisLetter)-2):&amp;#10;    elements[Idx].setAutoDraw(False)" valType="extendedCode"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="name" updates="None" val="code" valType="code"/>
      </CodeComponent>
      <KeyboardComponent name="key_resp">
        <Param name="allowedKeys" updates="constant" val="'n','h','t','l','x','o'" valType="list"/>
        <Param name="correctAns" updates="constant" val="" valType="str"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="discard previous" updates="constant" val="True" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="forceEndRoutine" updates="constant" val="True" valType="bool"/>
        <Param name="name" updates="None" val="key_resp" valType="code"/>
        <Param name="saveStartStop" updates="None" val="True" valType="bool"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="store" updates="constant" val="last key" valType="str"/>
        <Param name="storeCorrect" updates="constant" val="False" valType="bool"/>
        <Param name="syncScreenRefresh" updates="constant" val="True" valType="bool"/>
      </KeyboardComponent>
    </Routine>
    <Routine name="setup">
      <CodeComponent name="code_colours">
        <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Experiment" updates="constant" val="white = [1,1,1]" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="white = new util.Color([1, 1, 1]);&amp;#10;" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Both" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="name" updates="None" val="code_colours" valType="code"/>
      </CodeComponent>
      <CodeComponent name="code_Navon">
        <Param name="Before Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Before JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Experiment" updates="constant" val="localHeight = .02&amp;#10;localWidth = .015&amp;#10;globalHeight = .2&amp;#10;globalWidth = .15&amp;#10;nY = 9&amp;#10;localHeight = globalHeight/nY&amp;#10;&amp;#10;leftBar = []&amp;#10;for Idx in range(nY):&amp;#10;    leftBar.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;rightBar = []&amp;#10;for Idx in range(nY):&amp;#10;    rightBar.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;midBar = []&amp;#10;for Idx in range(nY):&amp;#10;    midBar.append([0,(Idx-nY/2)/nY*globalHeight])&amp;#10;topBar = []&amp;#10;for Idx in range(nY):&amp;#10;    topBar.append([(Idx-nY/2)/nY*globalWidth,globalHeight/2])&amp;#10;bottomBar = []&amp;#10;for Idx in range(nY):&amp;#10;    bottomBar.append([(Idx-nY/2)/nY*globalWidth,-globalHeight/2])&amp;#10;crossBar = []&amp;#10;for Idx in range(nY):&amp;#10;    crossBar.append([(Idx-nY/2)/nY*globalWidth,0])&amp;#10;&amp;#10;letters = []&amp;#10;thisLetter = ['n','N']&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(1,nY-1):&amp;#10;    thisLetter.append([-(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;letters.append(thisLetter)&amp;#10;thisLetter = ['h','H']&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(1,nY-1):&amp;#10;    thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,-localHeight/2])&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;letters.append(thisLetter)&amp;#10;thisLetter = ['t','T']&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,globalHeight/2-localHeight])&amp;#10;for Idx in range(nY-1):&amp;#10;    thisLetter.append([0,(Idx-nY/2)/nY*globalHeight])&amp;#10;letters.append(thisLetter)&amp;#10;thisLetter = ['l','L']&amp;#10;for Idx in range(nY):&amp;#10;    thisLetter.append([-globalWidth/2,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(1,nY):&amp;#10;    thisLetter.append([(Idx-nY/2)/nY*globalWidth,-globalHeight/2])&amp;#10;letters.append(thisLetter)&amp;#10;thisLetter = ['x','X']&amp;#10;for Idx in range(0,nY):&amp;#10;    thisLetter.append([-(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(0,nY):&amp;#10;    thisLetter.append([(.5+Idx-nY/2)/(nY-1)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;letters.append(thisLetter)&amp;#10;thisLetter = ['o','O']&amp;#10;for Idx in range(0,nY):&amp;#10;    thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;for Idx in range(nY-1):&amp;#10;    thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;Idx = .25&amp;#10;thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,-(1+Idx-nY/2)/nY*globalHeight])&amp;#10;thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,-(1+Idx-nY/2)/nY*globalHeight])&amp;#10;#Idx = nY-.25&amp;#10;#thisLetter.append([sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;#thisLetter.append([-sqrt(.25-((.5+Idx-nY/2)/(nY-1))**2)*globalWidth,(Idx-nY/2)/nY*globalHeight])&amp;#10;letters.append(thisLetter)&amp;#10;&amp;#10;elements = []&amp;#10;for Idx in range(2,len(letters[0])):&amp;#10;    elements.append(visual.TextStim(&amp;#10;    win=win, name='element'+str(Idx),&amp;#10;    text='N',&amp;#10;    font='Arial',&amp;#10;    pos=letters[0][Idx], height=localHeight, &amp;#10;    wrapWidth=None, ori=0, &amp;#10;    color=white))&amp;#10;&amp;#10;nReps = len(letters)&amp;#10;print('nReps',nReps)&amp;#10;" valType="extendedCode"/>
        <Param name="Begin JS Experiment" updates="constant" val="localHeight = 0.02;&amp;#10;localWidth = 0.015;&amp;#10;globalHeight = 0.2;&amp;#10;globalWidth = 0.15;&amp;#10;nY = 9;&amp;#10;localHeight = (globalHeight / nY);&amp;#10;leftBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    leftBar.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;rightBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    rightBar.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;midBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    midBar.push([0, (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;topBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    topBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), (globalHeight / 2)]);&amp;#10;}&amp;#10;bottomBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    bottomBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), ((- globalHeight) / 2)]);&amp;#10;}&amp;#10;crossBar = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    crossBar.push([(((Idx - (nY / 2)) / nY) * globalWidth), 0]);&amp;#10;}&amp;#10;letters = [];&amp;#10;thisLetter = [&quot;n&quot;, &quot;N&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, (nY - 1)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(((- ((0.5 + Idx) - (nY / 2))) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;letters.push(thisLetter);&amp;#10;thisLetter = [&quot;h&quot;, &quot;H&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, (nY - 1)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), ((- localHeight) / 2)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(globalWidth / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;letters.push(thisLetter);&amp;#10;thisLetter = [&quot;t&quot;, &quot;T&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), ((globalHeight / 2) - localHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range((nY - 1)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([0, (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;letters.push(thisLetter);&amp;#10;thisLetter = [&quot;l&quot;, &quot;L&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((- globalWidth) / 2), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(1, nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(((Idx - (nY / 2)) / nY) * globalWidth), ((- globalHeight) / 2)]);&amp;#10;}&amp;#10;letters.push(thisLetter);&amp;#10;thisLetter = [&quot;x&quot;, &quot;X&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(((- ((0.5 + Idx) - (nY / 2))) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((((0.5 + Idx) - (nY / 2)) / (nY - 1)) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;letters.push(thisLetter);&amp;#10;thisLetter = [&quot;o&quot;, &quot;O&quot;];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(0, nY), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range((nY - 1)), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;}&amp;#10;Idx = 0.25;&amp;#10;thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((Idx - (nY / 2)) / nY) * globalHeight)]);&amp;#10;thisLetter.push([(Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2))) * globalWidth), (((- ((1 + Idx) - (nY / 2))) / nY) * globalHeight)]);&amp;#10;thisLetter.push([((- Math.sqrt((0.25 - Math.pow((((0.5 + Idx) - (nY / 2)) / (nY - 1)), 2)))) * globalWidth), (((- ((1 + Idx) - (nY / 2))) / nY) * globalHeight)]);&amp;#10;letters.push(thisLetter);&amp;#10;elements = [];&amp;#10;for (var Idx, _pj_c = 0, _pj_a = util.range(2, letters[0].length), _pj_b = _pj_a.length; (_pj_c &lt; _pj_b); _pj_c += 1) {&amp;#10;    Idx = _pj_a[_pj_c];&amp;#10;    elements.push(new visual.TextStim({&quot;win&quot;: psychoJS.window, &quot;name&quot;: (&quot;element&quot; + Idx.toString()), &quot;text&quot;: &quot;N&quot;, &quot;font&quot;: &quot;Arial&quot;, &quot;pos&quot;: letters[0][Idx], &quot;height&quot;: localHeight, &quot;wrapWidth&quot;: null, &quot;ori&quot;: 0, &quot;color&quot;: white}));&amp;#10;}&amp;#10;nReps = letters.length;&amp;#10;console.log(&quot;nReps&quot;, nReps);&amp;#10;" valType="extendedCode"/>
        <Param name="Begin JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Begin Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="Code Type" updates="None" val="Auto-&gt;JS" valType="str"/>
        <Param name="Each Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="Each JS Frame" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Experiment" updates="constant" val="" valType="extendedCode"/>
        <Param name="End JS Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="End Routine" updates="constant" val="" valType="extendedCode"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="name" updates="None" val="code_Navon" valType="code"/>
      </CodeComponent>
    </Routine>
    <Routine name="fix">
      <PolygonComponent name="polygon">
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="contrast" updates="constant" val="1" valType="num"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="fillColor" updates="constant" val="darkgrey" valType="color"/>
        <Param name="interpolate" updates="constant" val="linear" valType="str"/>
        <Param name="lineColor" updates="constant" val="darkgrey" valType="color"/>
        <Param name="lineWidth" updates="constant" val="1" valType="num"/>
        <Param name="nVertices" updates="constant" val="4" valType="int"/>
        <Param name="name" updates="None" val="polygon" valType="code"/>
        <Param name="opacity" updates="constant" val="" valType="num"/>
        <Param name="ori" updates="constant" val="0" valType="num"/>
        <Param name="pos" updates="constant" val="(0, -localHeight/2)" valType="list"/>
        <Param name="saveStartStop" updates="None" val="True" valType="bool"/>
        <Param name="shape" updates="None" val="rectangle" valType="str"/>
        <Param name="size" updates="constant" val="(globalWidth, globalHeight)" valType="list"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val=".5" valType="code"/>
        <Param name="syncScreenRefresh" updates="None" val="True" valType="bool"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="vertices" updates="constant" val="" valType="list"/>
      </PolygonComponent>
    </Routine>
    <Routine name="end">
      <TextComponent name="text">
        <Param name="color" updates="constant" val="white" valType="color"/>
        <Param name="colorSpace" updates="constant" val="rgb" valType="str"/>
        <Param name="contrast" updates="constant" val="1" valType="num"/>
        <Param name="disabled" updates="None" val="False" valType="bool"/>
        <Param name="durationEstim" updates="None" val="" valType="code"/>
        <Param name="flip" updates="constant" val="None" valType="str"/>
        <Param name="font" updates="constant" val="Open Sans" valType="str"/>
        <Param name="languageStyle" updates="None" val="LTR" valType="str"/>
        <Param name="letterHeight" updates="constant" val="0.1" valType="num"/>
        <Param name="name" updates="None" val="text" valType="code"/>
        <Param name="opacity" updates="constant" val="" valType="num"/>
        <Param name="ori" updates="constant" val="0" valType="num"/>
        <Param name="pos" updates="constant" val="(0, 0)" valType="list"/>
        <Param name="saveStartStop" updates="None" val="True" valType="bool"/>
        <Param name="startEstim" updates="None" val="" valType="code"/>
        <Param name="startType" updates="None" val="time (s)" valType="str"/>
        <Param name="startVal" updates="None" val="0.0" valType="code"/>
        <Param name="stopType" updates="None" val="duration (s)" valType="str"/>
        <Param name="stopVal" updates="constant" val="" valType="code"/>
        <Param name="syncScreenRefresh" updates="None" val="True" valType="bool"/>
        <Param name="text" updates="constant" val="Fin" valType="str"/>
        <Param name="units" updates="None" val="from exp settings" valType="str"/>
        <Param name="wrapWidth" updates="constant" val="" valType="num"/>
      </TextComponent>
    </Routine>
  </Routines>
  <Flow>
    <Routine name="setup"/>
    <LoopInitiator loopType="TrialHandler" name="trials">
      <Param name="Selected rows" updates="None" val="" valType="str"/>
      <Param name="conditions" updates="None" val="None" valType="str"/>
      <Param name="conditionsFile" updates="None" val="" valType="file"/>
      <Param name="endPoints" updates="None" val="[0, 1]" valType="num"/>
      <Param name="isTrials" updates="None" val="True" valType="bool"/>
      <Param name="loopType" updates="None" val="sequential" valType="str"/>
      <Param name="nReps" updates="None" val="nReps" valType="num"/>
      <Param name="name" updates="None" val="trials" valType="code"/>
      <Param name="random seed" updates="None" val="" valType="code"/>
    </LoopInitiator>
    <Routine name="fix"/>
    <Routine name="trial"/>
    <LoopTerminator name="trials"/>
    <Routine name="end"/>
  </Flow>
</PsychoPy2experiment>