<snapdata remixID="12511452"><project name="Online Shooter" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="2"><scene name="Online Shooter"><notes></notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="generate token" type="reporter" category="MQTT"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>random</option></l><block s="reportTextSplit"><l>qwertyuiopasdfghjklzxcvbnm1234567890</l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><l>128</l></block></block></block></block></script></block-definition><block-definition s="-- %&apos;n&apos;" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs><input type="%anyUE" readonly="true"></input></inputs><script><block s="doRun"><block s="reifyScript"><script><block s="doChangeVar"><l></l><l>-1</l></block></script><list></list></block><list><block var="n"/></list></block><block s="doReport"><block s="evaluate"><block var="n"/><list></list></block></block></script></block-definition><block-definition s="animate setter %&apos;setter&apos; getter %&apos;getter&apos; delta %&apos;delta&apos; over %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="control"><header></header><code></code><translations>de:animiere Setter _ Getter _ Delta _ über _ Sek. beschleunigt _&#xD;ca:modifica setter _ i getter _ amb delta _ en _ segons de forma _&#xD;pt:anima com modificador _ e inspector _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%cmdRing"></input><input type="%repRing"></input><input type="%n">50</input><input type="%n">1</input><input type="%repRing"></input></inputs><script><block s="doDeclareVariables"><list><l>end time</l><l>destination</l></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>destination</l><block s="reportVariadicSum"><list><block s="evaluate"><block var="getter"/><list></list></block><block var="delta"/></list></block></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="doRun"><block var="setter"/><list><block s="reportDifference"><block var="destination"/><block s="reportVariadicProduct"><list><block var="delta"/><block s="evaluate"><block var="easing"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></list></block></script></block><block s="doRun"><block var="setter"/><list><block var="destination"/></list></block></script></block-definition><block-definition s="PI" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3.141592653589793</l></block></script></block-definition><block-definition s="degrees %&apos;radians&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Grad _&#xD;ca:graus de _ radians&#xD;pt:_ radianos em graus&#xD;</translations><inputs><input type="%n">0.5</input></inputs><script><block s="doReport"><block s="reportQuotient"><block s="reportVariadicProduct"><list><block var="radians"/><l>180</l></list></block><custom-block s="PI"></custom-block></block></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><header></header><code></code><translations>de:Fehler _&#xD;pt:assinala o erro _&#xD;</translations><inputs><input type="%s"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="glide %&apos;steps&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:gleite _ in _ Sek. beschleunigt: _&#xD;ca:llisca _ en _ segons de forma _&#xD;fr:glisser _ en _ sec. accélérer _&#xD;pt:desliza _ em _ s de forma _&#xD;</translations><inputs><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>destX</l><l>destY</l><l>end time</l><l>deltaX</l><l>deltaY</l><l>func</l><l>pendown?</l></list></block><block s="doSetVar"><l>pendown?</l><block s="getPenDown"></block></block><block s="up"></block><block s="forward"><block var="steps"/></block><block s="doSetVar"><l>destX</l><block s="xPosition"></block></block><block s="doSetVar"><l>destY</l><block s="yPosition"></block></block><block s="forward"><block s="reportVariadicProduct"><list><block var="steps"/><l>-1</l></list></block></block><block s="doIf"><block var="pendown?"/><script><block s="down"></block></script><list></list></block><block s="doSetVar"><l>end time</l><block s="reportVariadicSum"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></list></block></block><block s="doSetVar"><l>deltaX</l><block s="reportDifference"><block var="destX"/><block s="xPosition"></block></block></block><block s="doSetVar"><l>deltaY</l><block s="reportDifference"><block var="destY"/><block s="yPosition"></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><block s="doUntil"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="end time"/></list></block><script><block s="setXPosition"><block s="reportDifference"><block var="destX"/><block s="reportVariadicProduct"><list><block var="deltaX"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block><block s="setYPosition"><block s="reportDifference"><block var="destY"/><block s="reportVariadicProduct"><list><block var="deltaY"/><block s="evaluate"><block var="func"/><list><block s="reportQuotient"><block s="reportDifference"><block var="end time"/><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="reportVariadicProduct"><list><block var="duration"/><l>1000</l></list></block></block></list></block></list></block></block></block></script></block><block s="gotoXY"><block var="destX"/><block var="destY"/></block></script></block-definition><block-definition s="animate %&apos;attribute&apos; by %&apos;delta&apos; in %&apos;duration&apos; secs easing %&apos;easing&apos;" type="command" category="motion"><header></header><code></code><translations>de:animiere _ um _ in _ Sek. beschleunigt: _&#xD;ca:modifica _ amb _ en _ segons de forma _&#xD;pt:anima _ de _ em _ s de forma _&#xD;</translations><inputs><input type="%s" readonly="true">x position<options>x position&#xD;y position&#xD;direction&#xD;size&#xD;ghost effect&#xD;color effect&#xD;saturation effect&#xD;brightness effect&#xD;fisheye effect&#xD;whirl effect&#xD;pixelate effect&#xD;mosaic effect&#xD;negative effect&#xD;tempo&#xD;volume&#xD;balance</options></input><input type="%n">50</input><input type="%n">1</input><input type="%s" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doDeclareVariables"><list><l>accessors</l><l>func</l></list></block><block s="doSetVar"><l>accessors</l><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>x position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setXPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="xPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>y position</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setYPosition"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="yPosition"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>direction</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setHeading"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="direction"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>size</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setScale"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getScale"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>tempo</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="doSetTempo"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getTempo"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>volume</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setVolume"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getVolume"></block></autolambda><list></list></block></list></block><block s="reportIfElse"><block s="reportVariadicEquals"><list><block var="attribute"/><l>balance</l></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setPan"><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getPan"></block></autolambda><list></list></block></list></block><block s="reportNewList"><list><block s="reifyScript"><script><block s="setEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block><l></l></block></script><list></list></block><block s="reifyReporter"><autolambda><block s="getEffect"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="attribute"/><l> </l></block></block></block></autolambda><list></list></block></list></block></block></block></block></block></block></block></block></block><block s="doIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><script><block s="doSetVar"><l>func</l><block var="easing"/></block></script><script><block s="doSetVar"><l>func</l><custom-block s="easing %txt"><block var="easing"/></custom-block></block></script></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reportListItem"><l>1</l><block var="accessors"/></block><block s="reportListItem"><l>2</l><block var="accessors"/></block><block var="delta"/><block var="duration"/><block var="func"/></custom-block></script></block-definition><block-definition s="easing %&apos;choice&apos;" type="reporter" category="operators"><header></header><code></code><translations>de:Beschleunigung _&#xD;ca:de forma _&#xD;pt:a forma _&#xD;</translations><inputs><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input></inputs><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>linear</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>id</option></l><l></l></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><l></l></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportDifference"><l>2</l><l></l></block></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quadratic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>2</l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDifference"><l>4</l><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block></block><l></l></list></block><l>1</l></block></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block var="t"/></list></block><block var="t"/></list></block><l>1</l></list></block></autolambda><list><l>t</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>cubic-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>4</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><l>1</l></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><block s="reportDifference"><block s="reportVariadicProduct"><list><l>2</l><l></l></list></block><l>2</l></block></list></block><l>1</l></list></block></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>quart-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicLessThan"><list><l></l><l>.5</l></list></block><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><block s="reportVariadicProduct"><list><l></l><l></l></list></block></list></block></list></block></list></block><block s="evaluate"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportVariadicProduct"><list><l>8</l><block s="reportVariadicProduct"><list><custom-block s="-- %anyUE"><block var="t"/></custom-block><block s="reportVariadicProduct"><list><block var="t"/><block s="reportVariadicProduct"><list><block var="t"/><block var="t"/></list></block></list></block></list></block></list></block></block></autolambda><list><l>t</l></list></block><list><l></l></list></block></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicSum"><list><l>90</l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></list></block></block></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportMonadic"><l><option>sin</option></l><block s="reportVariadicProduct"><list><l></l><l>90</l></list></block></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>sine-in-out</l></list></block><script><block s="doReport"><block s="reifyReporter"><autolambda><block s="reportQuotient"><block s="reportDifference"><l>1</l><block s="reportMonadic"><l><option>cos</option></l><block s="reportVariadicProduct"><list><l></l><l>180</l></list></block></block></block><l>2</l></block></autolambda><list></list></block></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="choice"/><l>elastic</l></list></block><script><block s="doReport"><block s="reifyScript"><script><block s="doDeclareVariables"><list><l>p</l></list></block><block s="doSetVar"><l>p</l><l>0.3</l></block><block s="doReport"><block s="reportVariadicSum"><list><block s="reportVariadicProduct"><list><block s="reportPower"><l>2</l><block s="reportVariadicProduct"><list><l>-10</l><l></l></list></block></block><block s="reportMonadic"><l><option>sin</option></l><custom-block s="degrees %n"><block s="reportVariadicProduct"><list><block s="reportDifference"><l></l><block s="reportQuotient"><block var="p"/><l>4</l></block></block><block s="reportQuotient"><block s="reportVariadicProduct"><list><l>2</l><custom-block s="PI"></custom-block></list></block><block var="p"/></block></list></block></custom-block></block></list></block><l>1</l></list></block></block></script><list></list></block></block></script><list></list></block><custom-block s="error %s"><block s="reportJoinWords"><list><l>unknown easing function "</l><block var="choice"/><l>"</l></list></block></custom-block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; $nl in %&apos;time&apos; secs easing %&apos;easing&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations>de:für _ = _ bis _ _ in _ Sek. beschleunigt: _ _&#xD;ca:per _ = _ fins _ _ en _ segons de forma _ _&#xD;pt:para _ de _ a _ _ em _ s de forma _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%n">0</input><input type="%n">100</input><input type="%n">1</input><input type="%txt" readonly="true">linear<options>linear&#xD;quadratic={&#xD;quadratic-in&#xD;quadratic-out&#xD;quadratic-in-out&#xD;}&#xD;cubic={&#xD;cubic-in&#xD;cubic-out&#xD;cubic-in-out&#xD;}&#xD;quart={&#xD;quart-in&#xD;quart-out&#xD;quart-in-out&#xD;}&#xD;sinusoidal={&#xD;sine-in&#xD;sine-out&#xD;sine-in-out&#xD;}&#xD;elastic</options></input><input type="%ca"></input></inputs><script><block s="doSetVar"><l>i</l><block var="start"/></block><custom-block s="animate setter %cmdRing getter %repRing delta %n over %n secs easing %repRing"><block s="reifyScript"><script><block s="doSetVar"><l>i</l><l></l></block><block s="doRun"><block var="action"/><list></list></block></script><list></list></block><block s="reifyReporter"><autolambda><block var="i"/></autolambda><list></list></block><block s="reportDifference"><block var="end"/><block var="start"/></block><block var="time"/><block s="reportIfElse"><block s="reportIsA"><block var="easing"/><l><option>reporter</option></l></block><block var="easing"/><custom-block s="easing %txt"><block var="easing"/></custom-block></block></custom-block></script></block-definition><block-definition s="safely try %&apos;action&apos; then if %&apos;error&apos; %&apos;handler&apos;" type="command" category="control"><comment x="0" y="0" w="276" collapsed="false">Catch errors.&#xD;&#xD;Runs the first script.  If it succeeds, nothing else happens.&#xD;But if it has an error (something that would otherwise result&#xD;in a red halo around the block), then the second script is run,&#xD;with the text of the error message that would have been shown in the variable ERROR.</comment><header></header><code></code><translations>pt:tenta executar _ e, em caso de erro _ , executa _&#xD;ca:prova de forma segura _ i si _ _&#xD;</translations><inputs><input type="%cs"></input><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block var="action"/><block var="handler"/><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block></script></block-definition><block-definition s="error %&apos;msg&apos;" type="command" category="control"><comment x="0" y="0" w="268.6666666666667" collapsed="false">Throw an error.&#xD;&#xD;Makes a red halo appear around the script that runs it,&#xD;with the input text shown in a speech balloon next to&#xD;the script, just like any Snap! error.&#xD;&#xD;This is useful to put in the second script of SAFELY TRY&#xD;after some other instructions to undo the partial work of&#xD;the first script.</comment><header></header><code></code><translations>pt:lança o erro _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="msg"/></list></block></script></block-definition><block-definition s="safely try reporting %&apos;this&apos; then if %&apos;error&apos; report %&apos;that&apos;" type="reporter" category="control"><comment x="0" y="0" w="316.6666666666667" collapsed="false">Catch errors in a reporter.&#xD;&#xD;Evaluates its first input.  If that expression successfully reports a value, this block reports that value.  If the expression causes a Snap! error,&#xD;then the final input slot is evaluated with the text of what would have&#xD;been the error message in variable ERROR.  SAFELY TRY then reports the value of that final expression.&#xD;&#xD;Sometimes you&apos;ll want to throw an error in the final expression.  You&#xD;can put an ERROR block inside a CALL block to do that.</comment><header></header><code></code><translations>ca:prova de forma segura reportant _ i si _ reportant _&#xD;</translations><inputs><input type="%anyUE"></input><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doDeclareVariables"><list><l>value</l></list></block><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>value</l><block s="evaluate"><block var="this"/><list></list></block></block></script><l>err</l><script><block s="doSetVar"><l>error</l><block var="err"/></block><block s="doSetVar"><l>value</l><block s="evaluate"><block var="that"/><list></list></block></block></script></custom-block><block s="doReport"><block var="value"/></block></script></block-definition><block-definition s="stage image" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>name</l><l>result</l></list></block><block s="doSetVar"><l>name</l><custom-block s="generate token"></custom-block></block><block s="doScreenshot"><l><option>stage image</option></l><block var="name"/></block><block s="doSetVar"><l>result</l><block s="reportListItem"><block s="reportListIndex"><block var="name"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="doDeleteFromList"><block s="reportListIndex"><block var="name"/><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportGetImageAttribute"><l><option>name</option></l><l></l></block></autolambda><list></list></block><block s="reportGet"><l><option>costumes</option></l></block></block></block><block s="reportGet"><l><option>costumes</option></l></block></block><block s="doReport"><block var="result"/></block></script></block-definition><block-definition s="$flash remove duplicates from %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="209" collapsed="false">Reports a new list whose items are the same as in the input list, except that if two or more equal items appear in the input list, only the last one is kept in the result.</comment><header></header><code></code><translations>ca:elimina els duplicats de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportListAttribute"><l><option>columns</option></l><block s="reportApplyExtension"><l>dta_analyze(list)</l><list><block var="data"/></list></block></block></block></block></script></block-definition><block-definition s="$flash sort %&apos;data&apos; ordering with %&apos;function&apos;" type="reporter" category="lists"><comment x="0" y="0" w="161.14285714285708" collapsed="false">Reports a sorted version of the list in its first input slot, using the comparison function in the second input slot.  For a list of numbers, using &lt; as the comparison function will sort from low to high; using &gt; will sort from high to low.</comment><header></header><code></code><translations>ca:ordena _ segons criteri _&#xD;</translations><inputs><input type="%l"></input><input type="%predRing"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_sort(list, fn)</l><list><block var="data"/><block var="function"/></list></block></block></script></block-definition><block-definition s="$flash assoc %&apos;key&apos; %&apos;a-list&apos;" type="reporter" category="lists"><comment x="0" y="0" w="289.3333333333333" collapsed="false">The second input is an &quot;association list,&quot; a list of two-item lists.  Each of those smaller lists has a &quot;key&quot; as its first item and a &quot;value&quot; as its second.  ASSOC reports the first key-value pair in the association list whose key matches the first input.</comment><header></header><code></code><translations>ca:associació _ _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportAtomicFindFirst"><block s="reifyPredicate"><autolambda><block s="reportVariadicEquals"><list><block var="key"/><block s="reportListItem"><l>1</l><l/></block></list></block></autolambda><list></list></block><block var="a-list"/></block></block></script></block-definition><block-definition s="%&apos;#&apos; for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><comment x="0" y="0" w="228.57142857142858" collapsed="false">This block carries out the given script for each item of the given list, like the primitive FOR EACH.&#xD;&#xD;What&apos;s different is that it provides the # variable, which will contain the item number in the list of each item in turn, 1 while processing item 1, and so on.</comment><header></header><code></code><translations>ca:_ per cada _ de _ _&#xD;</translations><inputs><input type="%upvar"></input><input type="%upvar"></input><input type="%l"></input><input type="%ca"></input></inputs><script><block s="doForEach"><l>inner item</l><block var="data"/><script><block s="doSetVar"><l>item</l><block var="inner item"/></block><block s="doChangeVar"><l>#</l><l>1</l></block><block s="doRun"><block var="action"/><list></list></block></script></block></script></block-definition><block-definition s="☠︎ linked? %&apos;data&apos;" type="predicate" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>lst_linked(list)</l><list><block var="data"/></list></block></block></script></block-definition><block-definition s="☠︎ link %&apos;data&apos;" type="reporter" category="lists" helper="true"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><block s="reportCDR"><block var="data"/></block></block></block></script></block-definition><block-definition s="printable %&apos;data&apos;" type="reporter" category="lists"><comment x="0" y="0" w="188.66666666666666" collapsed="false">Takes a (possibly deep) list as input,&#xD;and reports a human-readable text form &#xD;of the list (namely, Lisp notation).&#xD;&#xD;Will not work on circular lists.</comment><header></header><code></code><translations>ca:notació textual de _&#xD;</translations><inputs><input type="%l"></input></inputs><script><block s="doIf"><block s="reportNot"><block s="reportIsA"><block var="data"/><l><option>list</option></l></block></block><script><block s="doReport"><block var="data"/></block></script><list></list></block><block s="doIf"><block s="reportListIsEmpty"><block var="data"/></block><script><block s="doReport"><l>()</l></block></script><list></list></block><block s="doReport"><block s="reportJoinWords"><list><l>(</l><block s="reportAtomicCombine"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="printable %l"><l/></custom-block></autolambda><list></list></block><block var="data"/></block><block s="reifyReporter"><autolambda><block s="reportJoinWords"><list><l></l><l> </l><l></l></list></block></autolambda><list></list></block></block><l>)</l></list></block></block></script></block-definition><block-definition s="sentence %&apos;phrase&apos;" type="reporter" category="lists"><comment x="0" y="0" w="302.6666666666667" collapsed="false">SENTENCE is the main constructor for sentences, represented&#xD;as lists of words.  It takes zero or more inputs, each of which can&#xD;be either a list or a text string.  If a list, the input is assumed to be&#xD;a list of words.  If a text string, it is converted to a list of words using&#xD;SENTENCE→LIST.  Then all the lists of words are appended to form a new list of words.&#xD;&#xD;If the inputs are lists of lists rather than lists of words, SENTENCE,&#xD;like APPEND, does only one level of flattening, reporting a list of&#xD;all the items of all the input lists.</comment><header></header><code></code><translations>ca:frase _&#xD;</translations><inputs><input type="%mult%s"></input></inputs><script><block s="doReport"><block s="reportConcatenatedLists"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportIsA"><l></l><l><option>list</option></l></block><l></l><custom-block s="sentence $arrowRight list %txt"><l></l></custom-block></block></autolambda><list></list></block><block var="phrase"/></block></block></block></script></block-definition><block-definition s="$flash zip %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="192" collapsed="false">ZIP takes any number of lists as inputs.  The lists should all be the same length.  ZIP reports a list of lists in which the first item is a list of all the first items, the second item is a list of all the second items, etc.&#xD;Viewing the inputs as the rows of a matrix, ZIP reports its transpose.</comment><header></header><code></code><translations></translations><inputs><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>columns</option></l><block var="lists"/></block></block></script></block-definition><block-definition s="%&apos;x&apos;" type="reporter" category="lists"><comment x="0" y="0" w="105.33333333333333" collapsed="false">The identity function reports its input.</comment><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block var="x"/></block></script></block-definition><block-definition s="multimap %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><comment x="0" y="0" w="267.3333333333333" collapsed="false">Takes as input a function of N inputs and N lists.&#xD;The function is called with item 1 of all the lists as its inputs, with item 2 of all the lists as its inputs, and so on.  (The lists should all be the same length.)</comment><header></header><code></code><translations>ca:multi-mapeja _ sobre _&#xD;</translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="evaluate"><block var="function"/><custom-block s="%s"><l></l></custom-block></block></autolambda><list></list></block><custom-block s="$flash zip %mult%l"><block var="lists"/></custom-block></block></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><comment x="0" y="0" w="196" collapsed="false">Takes a sentence in text string form and reports the sentence as a list of its words.</comment><header></header><code></code><translations>de:Satz $arrowRight Liste _&#xD;ca:frase $arrowRight llista _&#xD;es:frase $arrowRight lista _&#xD;fr:phrase $arrowRight liste _&#xD;pt:uma lista com as palavras da frase _&#xD;</translations><inputs><input type="%txt"></input></inputs><script><block s="doReport"><block s="reportAtomicKeep"><block s="reifyPredicate"><autolambda><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportTextAttribute"><l><option>length</option></l><l></l></block><l>0</l></list></block></block></autolambda><list></list></block><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></block></script></block-definition><block-definition s="$cloudOutline MQTT connect to %&apos;broker&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="416.6666666666666" collapsed="false">Connect to a broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. username (some brokers need this)&#xD;2. password (some brokers need this)&#xD;3. keepalive (default time is 60 seconds but some brokers need a shorter time)&#xD;4. connection callback (ringed set of scripts to be run when connection is made or remade)&#xD;&#xD;Note: The connection callback doesn&apos;&apos;t have to be the 4th option - it just has to be the last (or only) option.&#xD;&#xD;ADVANCED: The brokers offered in the menu are accessed using default ports and  basepaths (if needed).  If accessing other brokers, the complete urls should be formed like this:&#xD;&#xD;siteURL:port/basepath &#xD;e.g mqtt.eclipseprojects.io:443/mqtt&#xD;&#xD;It is possible to have more than one connection to the same broker, for instance, using two different user/pass accounts simultaneously. To do this, add a connection id at the end of the broker:&#xD;&#xD;e.g mqtt.eclipseprojects.io:443/mqtt|1&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>connection status</l><l>callback</l></list></block><block s="doSetVar"><l>connection status</l><l>connecting</l></block><block s="doSetVar"><l>callback</l><l></l></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="options"/></block><l><option>command</option></l></block><script><block s="doSetVar"><l>callback</l><block s="reportListItem"><l><option>last</option></l><block var="options"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="options"/></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>username</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>password</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>keepalive</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_connect(broker,callback,options)</l><list><block var="broker"/><block var="callback"/><block var="options"/></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connecting</l></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connected</l></list></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script><list></list></block></script></block-definition><block-definition s="$cloudOutline MQTT subscribe to %&apos;broker&apos; topic %&apos;topic&apos; $nl on each message run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="239.99999999999977" collapsed="false">Subscribe to a topic on a broker&#xD;&#xD;Make sure you have already run an MQTT connect block before using this one&#xD;&#xD;You should add a script to be run inside he grey ring.&#xD;&#xD;It will be run each time a message is received&#xD;&#xD;If you click on the arrow on the grey ring twice, you can use #1 and #2 inside your script.&#xD;&#xD;#1 will contain the received payload&#xD;&#xD;#2 will contain the received topic name&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;There is only 1 option at present&#xD;1. Buffer mode (boolean) Default (false) - payload is returned as text&#xD;&#xD;If true, payload returned as single column list of values in the range of 0 to 255..  </comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_sub(broker,topic,callback,options)</l><list><block var="broker"/><block var="topic"/><block var="callback"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT publish to %&apos;broker&apos; topic %&apos;topic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="310" collapsed="false">Publish a message to an MQTT broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. qos (quality of service 0,1 or 2)&#xD;&#xD;2. retain flag (boolean)&#xD;&#xD;3. Buffer mode (boolean).    Default (false) - the payload is published as text&#xD;&#xD;If set to true then payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text.&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>qos</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>retain</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="options"/><l><option>json</option></l></block></block></block></block><script><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>list</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportListAttribute"><l><option>json</option></l><block var="payload"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>number</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportJoinWords"><list><block var="payload"/></list></block></block></script><list></list></block></script><list></list></block><block s="doApplyExtension"><l>mqt_pub(broker,topic,payload,options)</l><list><block var="broker"/><block var="topic"/><block var="payload"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT unsubscribe from %&apos;broker&apos; topic %&apos;topic&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_unsub(broker,topic)</l><list><block var="broker"/><block var="topic"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT disconnect from %&apos;broker&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">all<options>all&#xD;broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_disconnect(broker)</l><list><block var="broker"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT response %&apos;broker&apos; topic %&apos;topic&apos; $nl reply %&apos;reply&apos; $nl $options-1-192-192-192 %&apos;$options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="292.22207031250036" collapsed="false">1. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  Default (false) - it is returned as text&#xD;&#xD;2.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name/#</input><input type="%repRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>callbackTopic</l><l>error</l></list></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topic"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></list></block><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list><block var="received payload"/><block var="received topic"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list></list></block></block></script><list></list></block><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doSetVar"><l>callbackTopic</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="received topic"/><l>@</l></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="callbackTopic"/><block var="resp"/><list><l></l><l></l><block s="reportListItem"><l>2</l><block var="$options"/></block></list></custom-block></script><list></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="$options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl on response run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="243" collapsed="false">The options are not required but can be filled if needed.&#xD;&#xD;1. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  &#xD;&#xD;2. Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.&#xD;&#xD;3.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>error</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>2</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list><block var="received payload"/><block var="received topic"/></list></block></script><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list></list></block></script><list></list></block><block var="error"/></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l><l></l><block s="reportListItem"><l>3</l><block var="options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT example response reporter payload %&apos;payload&apos; topic %&apos;topic&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="90" collapsed="false">This is a simple echo example.&#xD;Topic can be used to filter the response.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">hello</input><input type="%txt">name</input></inputs><script><block s="doReport"><block var="payload"/></block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="343" collapsed="false">The response topic should be a unique value for each call e.g. use timer&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1.  Timeout value - default is 3 seconds&#xD;&#xD;2. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  Default (false) - it is returned as text&#xD;&#xD;3.  Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.&#xD;&#xD;4.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>semaphore</l><l>timer0</l><l>timeout</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>semaphore</l><l>0</l></block><block s="doSetVar"><l>timeout</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="options"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="options"/></block><l>3</l></block></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>3</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSetVar"><l>resp</l><l>timeout</l></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block var="received payload"/></block><block s="doSetVar"><l>semaphore</l><l>1</l></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>2</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l><l></l><block s="reportListItem"><l>4</l><block var="options"/></block></list></custom-block><block s="doSetVar"><l>timer0</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="semaphore"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="timer0"/></block><block s="reportVariadicProduct"><list><block var="timeout"/><l>1000</l></list></block></list></block></list></block></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block></custom-block><block s="doReport"><block var="resp"/></block></script></block-definition><block-definition s="MQTT Extension Examples" type="command" category="MQTT"><comment x="0" y="0" w="277" collapsed="false">Open (edit) this block to look at examples how to use the MQTT Extension blocks&#xD;&#xD;Background documentation:&#xD;https://github.com/pixavier/mqtt4snap&#xD;&#xD;Last source code version (mqtt.xml and mqttExtension.js):&#xD;https://gitlab.com/cymplecy/Snap/-/tree/master/libraries</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="24.333333333333485" y="371.8666666666658"><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><l>hello</l><list><l></l></list></custom-block></script><script x="22.333333333333485" y="271.19999999999976"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><comment x="525.9999999999995" y="140.2" w="191" collapsed="false">To execute the examples, single click on blocks, following the corresponding steps.</comment><script x="28" y="1315.0333333333292"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="24.333333333333485" y="1013.2000000000016"><custom-block s="$cloudOutline MQTT response %s topic %s %br reply %repRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name/#</l><block s="reifyReporter"><autolambda><custom-block s="$cloudOutline MQTT example response reporter payload %mlt topic %txt"><block var="payload"/><block var="topic"/></custom-block></autolambda><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="28" y="498.6999999999993"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><block s="reifyScript"><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name2</l><block var="payload"/><list><l></l></list></custom-block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="30" y="633.0333333333344"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><list><l></l><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block><l>2</l></block></script><comment x="487.99999999999955" y="1311.6999999999966" w="224" collapsed="false">Step 2 bis: Send a request (timer acts as idCall) and do not wait for the answer</comment><comment x="487.99999999999955" y="1013.7000000000012" w="220" collapsed="false">Step 1: Activate the responder</comment><comment x="483.66666666666697" y="805.3666666666666" w="224" collapsed="false">Step 2 bis: Send a request and do not wait for the answer</comment><comment x="487" y="495.6999999999983" w="220" collapsed="false">Step 1: Activate the responder as a simple subscription</comment><comment x="484.99999999999955" y="374.1999999999991" w="222" collapsed="false">Step 2: Publish a message</comment><comment x="485.99999999999955" y="293.1999999999993" w="222" collapsed="false">Step 1: Subscribe to a topic</comment><comment x="482.99999999999955" y="215.2" w="223" collapsed="false">Step 0: Connect to the broker</comment><comment x="485" y="635.6999999999996" w="220" collapsed="false">Step 2: Send a request and wait the answer.</comment><script x="24.333333333333485" y="209.2"><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list><l></l></list></custom-block></script><comment x="24.333333333333485" y="152.2000000000001" w="239.99999999999997" collapsed="false">PubSub Hello World!</comment><script x="26.333333333333485" y="1139.1999999999978"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><list><l></l></list></custom-block><l>2</l></block></script><comment x="486.99999999999955" y="1138.6999999999982" w="219.00000000000023" collapsed="false">Step 2: Send a request (timer acts as idCall) and wait for the answer</comment><script x="27" y="803.0333333333335"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></script><comment x="29" y="736.6999999999998" w="372.0000000000004" collapsed="false">Asynchronous client-server Hello World! with static response topic (name2)</comment><comment x="25.333333333333485" y="935.2000000000012" w="356.99999999999994" collapsed="false">Synchronous client-server Hello World! with dynamic response topic (timer)</comment><comment x="28" y="431.36666666666673" w="361.99999999999994" collapsed="false">Synchronous client-server Hello World! with static response topic (name2)</comment><comment x="27" y="1243.6999999999966" w="352.0000000000003" collapsed="false">Asynchronous client-server Hello World! with dynamic response topic (timer)</comment></scripts></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="30,30,30,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="2391"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="2392"></list></costumes><sounds><list struct="atomic" id="2393"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="setBackgroundColor"><color>30,30,30,1</color></block></script><script x="20" y="93"><block s="receiveGo"></block><block s="doSwitchToScene"><l>Matchmaking</l><list><l><option>__shout__go__</option></l></list></block></script><script x="20" y="173"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="doIf"><block var="aiEnabled"/><script><block s="doChangeVar"><l>deathsToAI</l><l>1</l></block></script><list></list></block></script><script x="20" y="284.58333333333337"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="doIf"><block var="aiEnabled"/><script><block s="doChangeVar"><l>deathsToAI</l><l>-1</l></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="deathsToAI"/><l>-2</l></list></block><script><block s="doSetVar"><l>deathsToAI</l><l>-2</l></block></script><list></list></block></script><list></list></block></script></scripts><sprites select="0"><sprite name="Level" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="0,153,143.82,1" pen="tip" id="2450"><costumes><list id="2451"><item><ref mediaID="Level_cst_Main"></ref></item><item><ref mediaID="Level_cst_Alt"></ref></item></list></costumes><sounds><list struct="atomic" id="2452"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="goToLayer"><l><option>back</option></l></block><block s="gotoXY"><l>0</l><l>0</l></block></script></scripts></sprite><sprite name="P1" idx="1" x="-59.39999999999918" y="-119.49999999999733" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="2465"><costumes><list id="2466"><item><ref mediaID="P1_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="2467"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Load Server Details</l><list><l>data</l></list></block><block s="doSetVar"><l>identifierToken</l><custom-block s="generate token"></custom-block></block><block s="doSetVar"><l>positionHistory</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>queue</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>server</l><block s="reportListItem"><l>serverURL</l><block var="data"/></block></block><block s="doSetVar"><l>topicName</l><block s="reportListItem"><l>name</l><block var="data"/></block></block><block s="doSetVar"><l>amP2</l><block s="reportVariadicEquals"><list><block s="reportListItem"><l>P#</l><block var="data"/></block><l>2</l></list></block></block><block s="doSetVar"><l>startTime</l><block s="reportListItem"><l>startTime</l><block var="data"/></block></block><block s="doSetVar"><l>aiEnabled</l><block s="reportListItem"><l>ai</l><block var="data"/></block></block><block s="doSetVar"><l>players</l><block s="reportNewList"><list></list></block></block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><block var="server"/><list></list></custom-block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reifyScript"><script><block s="doAddToList"><block s="reportTextSplit"><l></l><l><option>json</option></l></block><block var="queue"/></block></script><list></list></block><list></list></custom-block><block s="doBroadcast"><l>Start Data Stream</l><list></list></block><block s="doBroadcastAndWait"><l>Game Load</l><list></list></block><block s="doBroadcast"><l>Delete Clones</l><list></list></block><block s="doBroadcastAndWait"><l>Wait for Players</l><list></list></block><block s="doBroadcast"><l>Game Start</l><list></list></block></script><script x="20" y="508.66666666666674"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="setScale"><l>100</l></block><block s="doSetVar"><l>xVel</l><l>0</l></block><block s="doSetVar"><l>yVel</l><l>0</l></block><block s="doIfElse"><block var="amP2"/><script><block s="gotoXY"><l>150</l><l>30</l></block></script><script><block s="gotoXY"><l>-150</l><l>-80</l></block></script></block></script><script x="20" y="715.3333333333335"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doDeclareVariables"><list><l>jumping?</l></list></block><block s="doSetVar"><l>jumping?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doForever"><script><block s="doIf"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>right arrow</option></l></block><block s="reportKeyPressed"><l><option>d</option></l></block></list></block><script><block s="doIf"><block s="reportVariadicLessThan"><list><block var="xVel"/><l>10</l></list></block><script><block s="doChangeVar"><l>xVel</l><l>1</l></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>left arrow</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></list></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="xVel"/><l>-10</l></list></block><script><block s="doChangeVar"><l>xVel</l><l>-1</l></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>left arrow</option></l></block><block s="reportKeyPressed"><l><option>a</option></l></block></list></block></block><block s="reportNot"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>right arrow</option></l></block><block s="reportKeyPressed"><l><option>d</option></l></block></list></block></block></list></block><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="xVel"/><l>0</l></list></block><script><block s="doChangeVar"><l>xVel</l><l>-0.2</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicLessThan"><list><block var="xVel"/><l>0</l></list></block><script><block s="doChangeVar"><l>xVel</l><l>0.2</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicAnd"><list><block s="reportVariadicLessThan"><list><block var="xVel"/><l>0.5</l></list></block><block s="reportVariadicGreaterThan"><list><block var="xVel"/><l>-0.5</l></list></block></list></block><script><block s="doSetVar"><l>xVel</l><l>0</l></block></script><list></list></block></script><list></list></block><block s="changeXPosition"><block var="xVel"/></block><block s="doIf"><block s="reportTouchingObject"><l>Level</l></block><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="xVel"/></block></block><block s="doSetVar"><l>xVel</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicOr"><list><block s="reportKeyPressed"><l><option>up arrow</option></l></block><block s="reportKeyPressed"><l><option>w</option></l></block><block s="reportKeyPressed"><l><option>space</option></l></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="yVel"/><l>0</l></list></block><script><block s="doIf"><block s="reportNot"><block var="jumping?"/></block><script><block s="doSetVar"><l>jumping?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>yVel</l><l>13</l></block></script><list></list></block></script><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="yVel"/><l>-10</l></list></block><script><block s="doChangeVar"><l>yVel</l><l>-0.5</l></block></script><list></list></block><block s="changeYPosition"><block var="yVel"/></block><block s="doIf"><block s="reportTouchingObject"><l>Level</l></block><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="yVel"/></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="yVel"/><l>0</l></list></block><script><block s="doSetVar"><l>yVel</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="yVel"/><l>0.5</l></list></block></block></block></script><script><block s="doSetVar"><l>jumping?</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>yVel</l><l>0</l></block></script></block></script><list></list></block></script></block></script><script x="20" y="1941.166666666666"><block s="receiveMessage"><l>Start Data Stream</l><list></list></block><block s="doForever"><script><block s="doWait"><l>1</l></block><block s="doAddToList"><block s="reportNewList"><list><block s="reportJoinWords"><list><block s="reportDate"><l><option>minute</option></l></block><l>:</l><block s="reportDate"><l><option>second</option></l></block></list></block><block s="getPosition"></block></list></block><block var="positionHistory"/></block></script></block></script><script x="20" y="2089.833333333333"><block s="receiveMessage"><l>Start Data Stream</l><list></list></block><block s="doSetVar"><l>gameEnd</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doForever"><script><block s="doWait"><l>0.2</l></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>position</l><block s="getPosition"></block></list></block><block s="reportNewList"><list><l>xVel</l><block var="xVel"/></list></block><block s="reportNewList"><list><l>yVel</l><block var="yVel"/></list></block><block s="reportNewList"><list><l>cursorPos</l><block s="reportMousePosition"></block></list></block><block s="reportNewList"><list><l>mouseDown</l><block s="reportMouseDown"></block></list></block><block s="reportNewList"><list><l>shots</l><block var="shootHistory"/></list></block><block s="reportNewList"><list><l>amP2</l><block var="amP2"/></list></block><block s="reportNewList"><list><l>gameEnd</l><block var="gameEnd"/></list></block><block s="reportNewList"><list><l>winner</l><block var="winner"/></list></block><block s="reportNewList"><list><l>identity</l><block var="identifierToken"/></list></block></list></block></block><list></list></custom-block><block s="doSetVar"><l>shootHistory</l><block s="reportNewList"><list></list></block></block></script></block></script><script x="20" y="2389.6666666666665"><block s="receiveMessage"><l>P1 Shot</l><list></list></block><block s="doIf"><block s="reportNot"><block var="gameEnd"/></block><script><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>-2</l><l>0.1</l><l>quadratic-in-out</l></custom-block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="getScale"></block><l>50</l></list></block><script><block s="doSetVar"><l>winner</l><l>P2</l></block><block s="doSetVar"><l>gameEnd</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="doTellTo"><l>P1 Gun Pointer</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P2 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doBroadcast"><l>Lost</l><list></list></block></script><list></list></block></script><list></list></block></script></scripts></sprite><sprite name="P2" idx="5" x="-150" y="-121" heading="90" scale="0.94" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="80,80,80,1" pen="tip" id="3081"><costumes><list id="3082"><item><ref mediaID="P2_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="3083"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="setEffect"><l><option>color</option></l><l>62</l></block><block s="setScale"><l>100</l></block><block s="doSetVar"><l>xVelP2</l><l>0</l></block><block s="doSetVar"><l>yVelP2</l><l>0</l></block><block s="gotoXY"><l>150</l><l>50</l></block></script><script x="20" y="180"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doForever"><script><block s="changeXPosition"><block var="xVelP2"/></block><block s="doIf"><block s="reportTouchingObject"><l>Level</l></block><script><block s="changeXPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="xVelP2"/></block></block><block s="doSetVar"><l>xVelP2</l><l>0</l></block></script><list></list></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block var="yVelP2"/><l>-10</l></list></block><script><block s="doChangeVar"><l>yVelP2</l><l>-0.5</l></block></script><list></list></block><block s="changeYPosition"><block var="yVelP2"/></block><block s="doIf"><block s="reportTouchingObject"><l>Level</l></block><script><block s="changeYPosition"><block s="reportMonadic"><l><option>neg</option></l><block var="yVelP2"/></block></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="yVelP2"/><l>0</l></list></block><script><block s="doSetVar"><l>yVelP2</l><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="yVelP2"/><l>0.5</l></list></block></block></block></script><script><block s="doSetVar"><l>yVelP2</l><l>0</l></block></script></block></script><list></list></block></script></block></script><script x="20" y="627.0833333333336"><block s="receiveMessage"><l>Load Server Details</l><list></list></block><block s="doSetVar"><l>P2CursorPos</l><block s="reportNewList"><list><l>0</l><l>0</l></list></block></block><block s="doSetVar"><l>P2MouseDown</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>P2Shots</l><block s="reportNewList"><list></list></block></block></script><script x="20" y="753.0833333333336"><block s="receiveMessage"><l>Start Data Stream</l><list></list></block><block s="doIf"><block s="reportNot"><block var="aiEnabled"/></block><script><block s="doDeclareVariables"><list><l>packet</l></list></block><block s="doSetVar"><l>queue</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>requestCounter</l><l>0</l></block><block s="doForever"><script><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doWaitUntil"><block s="reportNot"><block s="reportListIsEmpty"><block var="queue"/></block></block></block><block s="doSetVar"><l>packet</l><block s="reportListItem"><l>1</l><block var="queue"/></block></block><block s="doAddToList"><block s="reportListItem"><l>identity</l><block var="packet"/></block><block var="players"/></block><block s="doSetVar"><l>players</l><custom-block s="$flash remove duplicates from %l"><block var="queue"/></custom-block></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block var="players"/></block><l>2</l></list></block><script><block s="doBroadcast"><l>Back to Matchmaking</l><list></list></block></script><list></list></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>amP2</l><block var="packet"/></block><block s="reportNot"><block var="amP2"/></block></list></block><script><block s="doResetTimer"></block><block s="doChangeVar"><l>requestCounter</l><l>1</l></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportRelationTo"><l><option>distance</option></l><block s="reportNewList"><list><block s="reportListItem"><l>1</l><block s="reportListItem"><l>position</l><block var="packet"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>position</l><block var="packet"/></block></block></list></block></block><l>50</l></list></block><script><block s="doGlide"><l>0.1</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>position</l><block var="packet"/></block></block><block s="reportListItem"><l>2</l><block s="reportListItem"><l>position</l><block var="packet"/></block></block></block></script><list></list></block><block s="doSetVar"><l>xVelP2</l><block s="reportListItem"><l>xVel</l><block var="packet"/></block></block><block s="doSetVar"><l>yVelP2</l><block s="reportListItem"><l>yVel</l><block var="packet"/></block></block><block s="doSetVar"><l>P2CursorPos</l><block s="reportListItem"><l>cursorPos</l><block var="packet"/></block></block><block s="doSetVar"><l>P2MouseDown</l><block s="reportListItem"><l>mouseDown</l><block var="packet"/></block></block><block s="doSetVar"><l>P2ShootHistory</l><block s="reportConcatenatedLists"><list><block var="P2ShootHistory"/><block s="reportListItem"><l>shots</l><block var="packet"/></block></list></block></block><block s="doIf"><block s="reportListItem"><l>gameEnd</l><block var="packet"/></block><script><block s="doSetVar"><l>gameEnd</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doIfElse"><block s="reportVariadicAnd"><list><block s="reportVariadicEquals"><list><block s="reportListItem"><l>winner</l><block var="packet"/></block><l>P2</l></list></block><block var="amP2"/></list></block><script><block s="doTellTo"><l>P1</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P2</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P2 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun Pointer</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doBroadcast"><l>Victory</l><list></list></block></script><script><block s="doTellTo"><l>P1</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P2</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="doTellTo"><l>P1 Gun Pointer</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doBroadcast"><l>Lost</l><list></list></block></script></block><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block></script><list></list></block><block s="doDeleteFromList"><l>1</l><block var="queue"/></block></script><l>error</l><script><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doSwitchToScene"><l>Matchmaking</l><list><l><option>__shout__go__</option></l></list></block></script></custom-block></script></block></script><list></list></block></script><script x="20" y="2161.666666666667"><block s="receiveMessage"><l>P2 Shot</l><list></list></block><block s="doIf"><block s="reportNot"><block var="gameEnd"/></block><script><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>-2</l><l>0.1</l><l>quadratic-in-out</l></custom-block><block s="doIf"><block s="reportVariadicLessThan"><list><block s="getScale"></block><l>50</l></list></block><script><block s="doSetVar"><l>winner</l><l>P1</l></block><block s="doSetVar"><l>gameEnd</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doTellTo"><l>P1</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P2 Gun</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doTellTo"><l>P1 Gun Pointer</l><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script><list></list></block><list></list></block><block s="doBroadcast"><l>Victory</l><list></list></block></script><list></list></block></script><list></list></block></script><script x="20" y="2528.8333333333335"><block s="receiveMessage"><l>Start Data Stream</l><list></list></block><block s="doIf"><block s="reportNot"><block var="aiEnabled"/></block><script><block s="doResetTimer"></block><block s="doForever"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="getTimer"></block><l>5</l></list></block><script><block s="doIf"><block s="reportNot"><block var="gameEnd"/></block><script><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block var="requestCounter"/><l>10</l></list></block><script><block s="doBroadcast"><l>Lost</l><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script><script><block s="doSwitchToScene"><l>Matchmaking</l><list><l>Connection Lost</l></list></block></script></block></script><list></list></block></script><list></list></block></script></block></script><list></list></block></script><script x="20" y="2889.9166666666674"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doSetVar"><l>timeSinceLastShotAI</l><block s="reportVariadicProduct"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>.001</l></list></block></block><block s="doIf"><block var="aiEnabled"/><script><block s="doForever"><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportVariadicProduct"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>.001</l></list></block><block var="timeSinceLastShotAI"/></block><l>3</l></list></block><script><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportRandom"><l>1</l><l>99</l></block><l>49</l></list></block><script><block s="doRepeat"><block s="reportRandom"><l>1</l><l>30</l></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="xVelP2"/><l>9</l></list></block></block><script><block s="doChangeVar"><l>xVelP2</l><l>0.5</l></block></script><list></list></block></script></block></script><script><block s="doRepeat"><block s="reportRandom"><l>1</l><l>30</l></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicLessThan"><list><block var="xVelP2"/><l>-9</l></list></block></block><script><block s="doChangeVar"><l>xVelP2</l><l>-0.5</l></block></script><list></list></block></script></block></script></block></script><script><block s="doIfElse"><block s="reportVariadicLessThan"><list><block s="reportAttributeOf"><l><option>x position</option></l><l>P1</l></block><block s="xPosition"></block></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicLessThan"><list><block var="xVelP2"/><l>-9</l></list></block></block><script><block s="doChangeVar"><l>xVelP2</l><l>-0.5</l></block></script><list></list></block></script><script><block s="doIf"><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block var="xVelP2"/><l>9</l></list></block></block><script><block s="doChangeVar"><l>xVelP2</l><l>0.5</l></block></script><list></list></block></script></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportAttributeOf"><l><option>y position</option></l><l>P1</l></block><block s="reportVariadicSum"><list><block s="yPosition"></block><l>20</l></list></block></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block var="yVelP2"/><l>0</l></list></block><script><block s="doSetVar"><l>yVelP2</l><l>13</l></block><block s="doWait"><block s="reportRandom"><l>0</l><l>0.3</l></block></block></script><list></list></block></script><list></list></block></script></block></script><list></list></block></script><script x="20" y="3706.333333333335"><block s="receiveMessage"><l>Back to Matchmaking</l><list></list></block><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><block s="doSwitchToScene"><l>Matchmaking</l><list><l><option>__shout__go__</option></l></list></block></script></scripts></sprite><sprite name="AI Cursor" idx="11" x="-59.39999999999918" y="-119.49999999999727" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="81.14099999999998,94.35,0,1" pen="tip" id="3897"><costumes><list struct="atomic" id="3898"></list></costumes><sounds><list struct="atomic" id="3899"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="hide"></block></script><script x="20" y="89.83333333333334"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doForever"><script><block s="doGlide"><block s="reportVariadicSum"><list><l>0.3</l><block s="reportVariadicProduct"><list><l>0.15</l><block var="deathsToAI"/></list></block></list></block><block s="reportAttributeOf"><l><option>x position</option></l><l>P1</l></block><block s="reportAttributeOf"><l><option>y position</option></l><l>P1</l></block></block></script></block></script></scripts></sprite><watcher var="server" style="normal" x="10" y="10.000000000000014" color="243,118,29" hidden="true"/><watcher var="queue" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="topicName" style="normal" x="10" y="31.00000199999988" color="243,118,29" hidden="true"/><watcher var="xVel" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="yVel" style="normal" x="10" y="73.00000599999984" color="243,118,29" hidden="true"/><watcher var="positionHistory" style="normal" x="10" y="94.0000079999999" color="243,118,29" hidden="true"/><watcher var="xVel P2" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="xVelP2" style="normal" x="10" y="136.00001199999966" color="243,118,29" hidden="true"/><watcher var="yVelP2" style="normal" x="10" y="157.0000139999998" color="243,118,29" hidden="true"/><watcher var="shootHistory" style="normal" x="10" y="10.000000000000014" color="243,118,29" hidden="true"/><watcher var="P2CursorPos" style="normal" x="10" y="31.00000199999988" color="243,118,29" hidden="true"/><watcher var="P2MouseDown" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="P2Shots" style="normal" x="10" y="73.00000599999984" color="243,118,29" hidden="true"/><watcher var="amP2" style="normal" x="10" y="94.00000799999995" color="243,118,29" hidden="true"/><watcher var="P2ShootHistory" style="normal" x="10" y="10.000000000000014" color="243,118,29" hidden="true"/><watcher var="P2ClearingShootHistory" style="normal" x="10" y="31.000001999999995" color="243,118,29" hidden="true"/><watcher var="startTime" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="gameEnd" style="normal" x="10" y="73.0000059999999" color="243,118,29" hidden="true"/><watcher var="winner" style="normal" x="10" y="94.00000799999995" color="243,118,29" hidden="true"/><watcher var="requestCounter" style="normal" x="10" y="115.00000999999997" color="243,118,29" hidden="true"/><watcher var="aiEnabled" style="normal" x="10" y="136.00001199999988" color="243,118,29" hidden="true"/><watcher var="identifierToken" style="normal" x="20" y="20" color="243,118,29" hidden="true"/><watcher var="players" style="normal" x="10" y="160.00001399999996" color="243,118,29" hidden="true"/><watcher var="deathsToAI" style="normal" x="10" y="181.00001599999996" color="243,118,29" hidden="true"/><watcher var="timeSinceLastShotAI" style="normal" x="10" y="202.00001799999995" color="243,118,29" hidden="true"/><sprite name="P1 Gun Pointer" idx="4" x="-107.55963243584085" y="-89.48419819516755" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="0,135.15,29.73299999999997,1" pen="tip" id="3960"><costumes><list id="3961"><item><ref mediaID="P1 Gun Pointer_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="3962"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Load Server Details</l><list></list></block><block s="hide"></block></script><script x="20" y="89.83333333333334"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block></script><script x="20" y="163.83333333333337"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="show"></block><block s="doForever"><script><block s="doGotoObject"><l>P1 Gun</l></block><block s="changeYPosition"><l>30</l></block><block s="setEffect"><l><option>ghost</option></l><block s="reportDifference"><l>150</l><block s="reportRelationTo"><l><option>distance</option></l><l>P1</l></block></block></block></script></block></script></scripts></sprite><sprite name="P1 Gun" idx="3" x="-100.58691763743002" y="-116.42828544127406" heading="319" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="1.4790000000000012,73.94999999999999,0,1" pen="tip" id="3998"><costumes><list id="3999"><item><ref mediaID="P1 Gun_cst_Gun"></ref></item><item><ref mediaID="P1 Gun_cst_Bullet"></ref></item></list></costumes><sounds><list struct="atomic" id="4000"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Delete Clones</l><list></list></block><block s="removeClone"></block></script><script x="20" y="89.83333333333334"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="hide"></block></script><script x="20" y="159.66666666666669"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="hide"></block></script><script x="20" y="229.50000000000006"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block><block s="show"></block><block s="gotoXY"><l>-500</l><l>-200</l></block></script><script x="20" y="342.3333333333334"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doDeclareVariables"><list><l>pos</l><l>rl</l></list></block><block s="doForever"><script><block s="changeXPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><l>P1</l></block><block s="xPosition"></block></block><l>0.2</l></list></block></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>y position</option></l><l>P1</l></block><block s="yPosition"></block></block><l>0.2</l></list></block></block><block s="doFaceTowards"><l><option>mouse-pointer</option></l></block><block s="doSetVar"><l>pos</l><block s="getPosition"></block></block><block s="doGotoObject"><l>P1</l></block><block s="doSetVar"><l>rl</l><block s="reportRelationTo"><l><option>ray length</option></l><l>Level</l></block></block><block s="doGotoObject"><block var="pos"/></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportAskFor"><l>P1</l><block s="reifyReporter"><autolambda><block s="reportRelationTo"><l><option>distance</option></l><l><option>mouse-pointer</option></l></block></autolambda><list></list></block><list></list></block><block var="rl"/></list></block><script><block s="forward"><l>5</l></block></script><script><block s="forward"><block s="reportVariadicProduct"><list><block s="reportRelationTo"><l><option>distance</option></l><l><option>mouse-pointer</option></l></block><l>0.15</l></list></block></block></script></block></script></block></script><script x="20" y="745.6666666666667"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doForever"><script><block s="doIf"><block s="reportMouseDown"></block><script><block s="createClone"><l><option>myself</option></l></block><block s="doWait"><l>0.2</l></block></script><list></list></block></script></block></script><script x="20" y="905.0833333333335"><block s="receiveOnClone"></block><block s="doSwitchToCostume"><l>Bullet</l></block><block s="doDeclareVariables"><list><l>canDamage</l></list></block><block s="doSetVar"><l>canDamage</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doUntil"><block s="reportTouchingObject"><l>Level</l></block><script><block s="forward"><l>15</l></block><block s="doIf"><block var="canDamage"/><script><block s="doIf"><block s="reportTouchingObject"><l>P2</l></block><script><block s="doSetVar"><l>canDamage</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doAddToList"><block s="reportMousePosition"></block><block var="shootHistory"/></block><block s="doBroadcast"><l>P2 Shot</l><list></list></block></script><list></list></block></script><list></list></block></script></block><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>ghost</option></l><l>10</l></block></script></block><block s="removeClone"></block></script></scripts></sprite><sprite name="P2 Gun" idx="6" x="-167.05744301413392" y="-102.44290810647084" heading="317" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="1.4790000000000012,73.94999999999999,0,1" pen="tip" id="4194"><costumes><list id="4195"><item><ref mediaID="P2 Gun_cst_Gun"></ref></item><item><ref mediaID="P2 Gun_cst_Bullet"></ref></item></list></costumes><sounds><list struct="atomic" id="4196"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="hide"></block></script><script x="20" y="89.83333333333334"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="hide"></block></script><script x="20" y="159.66666666666669"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block><block s="show"></block><block s="gotoXY"><l>-500</l><l>-200</l></block></script><script x="20" y="272.50000000000006"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doDeclareVariables"><list><l>pos</l><l>rl</l></list></block><block s="doForever"><script><block s="changeXPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>x position</option></l><l>P2</l></block><block s="xPosition"></block></block><l>0.2</l></list></block></block><block s="changeYPosition"><block s="reportVariadicProduct"><list><block s="reportDifference"><block s="reportAttributeOf"><l><option>y position</option></l><l>P2</l></block><block s="yPosition"></block></block><l>0.2</l></list></block></block><block s="doFaceTowards"><block var="P2CursorPos"/></block><block s="doSetVar"><l>pos</l><block s="getPosition"></block></block><block s="doGotoObject"><l>P2</l></block><block s="doSetVar"><l>rl</l><block s="reportRelationTo"><l><option>ray length</option></l><l>Level</l></block></block><block s="doGotoObject"><block var="pos"/></block><block s="doIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportAskFor"><l>P2</l><block s="reifyReporter"><autolambda><block s="reportRelationTo"><l><option>distance</option></l><block var="P2CursorPos"/></block></autolambda><list></list></block><list></list></block><block var="rl"/></list></block><script><block s="forward"><l>5</l></block></script><script><block s="forward"><block s="reportVariadicProduct"><list><block s="reportRelationTo"><l><option>distance</option></l><block var="P2CursorPos"/></block><l>0.15</l></list></block></block></script></block><block s="doIf"><block var="aiEnabled"/><script><block s="doSetVar"><l>P2MouseDown</l><block s="reportNot"><block s="reportVariadicGreaterThan"><list><block s="reportAskFor"><l>P2</l><block s="reifyReporter"><autolambda><block s="reportRelationTo"><l><option>distance</option></l><block var="P2CursorPos"/></block></autolambda><list></list></block><list></list></block><block var="rl"/></list></block></block></block></script><list></list></block></script></block></script><script x="20" y="772.25"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doForever"><script><block s="doIf"><block s="reportNot"><block var="P2ClearingShootHistory"/></block><script><block s="doIf"><block var="P2MouseDown"/><script><block s="doSetVar"><l>timeSinceLastShotAI</l><block s="reportVariadicProduct"><list><block s="reportDate"><l><option>time in milliseconds</option></l></block><l>.001</l></list></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doWait"><l>0.2</l></block></script><list></list></block></script><list></list></block></script></block></script><script x="20" y="1003.25"><block s="receiveOnClone"></block><block s="doSwitchToCostume"><l>Bullet</l></block><block s="doUntil"><block s="reportVariadicOr"><list><block s="reportTouchingObject"><l>Level</l></block><block s="reportTouchingObject"><l>P1</l></block></list></block><script><block s="forward"><l>15</l></block></script></block><block s="doIf"><block var="aiEnabled"/><script><block s="doIf"><block s="reportTouchingObject"><l>P1</l></block><script><block s="doBroadcast"><l>P1 Shot</l><list></list></block></script><list></list></block></script><list></list></block><block s="doRepeat"><l>10</l><script><block s="changeEffect"><l><option>ghost</option></l><l>10</l></block></script></block><block s="removeClone"></block></script><script x="20" y="1304.25"><block s="receiveMessage"><l>Start Data Stream</l><list></list></block><block s="doSetVar"><l>P2ShootHistory</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>P2ClearingShootHistory</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doForever"><script><block s="doForEach"><l>item</l><block var="P2ShootHistory"/><script><block s="doSetVar"><l>P2ClearingShootHistory</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doDeleteFromList"><l>1</l><block var="P2ShootHistory"/></block><block s="fork"><block s="reifyScript"><script><block s="doTellTo"><block s="newClone"><l><option>myself</option></l></block><block s="reifyScript"><script><block s="doStopThis"><l><option>other scripts in sprite</option></l></block><block s="doSwitchToCostume"><l>Bullet</l></block><block s="doUntil"><block s="reportTouchingObject"><l>P1</l></block><script><block s="doFaceTowards"><l>P1</l></block><block s="forward"><l>15</l></block></script></block><block s="doBroadcast"><l>P1 Shot</l><list></list></block><block s="removeClone"></block></script><list></list></block><list></list></block></script><list></list></block><list></list></block><block s="doWait"><l>0.2</l></block></script></block><block s="doSetVar"><l>P2ClearingShootHistory</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><script x="20" y="1784.4166666666667"><block s="receiveMessage"><l>Delete Clones</l><list></list></block><block s="removeClone"></block></script><script x="20" y="1854.25"><block s="receiveMessage"><l>Game Start</l><list></list></block><block s="doIf"><block var="aiEnabled"/><script><block s="doForever"><script><block s="doSetVar"><l>P2CursorPos</l><block s="reportAttributeOf"><l><option>position</option></l><l>AI Cursor</l></block></block></script></block></script><list></list></block></script></scripts></sprite><sprite name="Dark" idx="7" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="97.91999999999997,122.39999999999999,0,1" pen="tip" id="4522"><costumes><list id="4523"><item><ref mediaID="Dark_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="4524"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 2</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 3</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 4</l><list></list></block></script><script x="20" y="138"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 2</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 3</l><list></list></block><block s="doBroadcastAndWait"><l>End Game Layer Fix 4</l><list></list></block></script><script x="20" y="256"><block s="receiveMessage"><l>End Game Layer Fix 2</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block></script><script x="20" y="330"><block s="receiveMessage"><l>Wait for Players</l><list></list></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="clearEffects"></block><block s="show"></block><block s="doIfElse"><block s="reportNot"><block var="aiEnabled"/></block><script><block s="doUntil"><block s="reportVariadicEquals"><list><block var="startTime"/><block s="reportDate"><l><option>second</option></l></block></list></block><script><block s="goToLayer"><l><option>front</option></l></block></script></block></script><script><block s="doWait"><l>4</l></block></script></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>100</l><l>0.5</l><l>linear</l></custom-block><block s="hide"></block><block s="clearEffects"></block></script><script x="20" y="630"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="setEffect"><l><option>ghost</option></l><l>100</l></block><block s="show"></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>-75</l><l>1</l><l>quadratic-in-out</l></custom-block><block s="doWait"><l>3</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>-25</l><l>1</l><l>linear</l></custom-block></script><script x="20" y="786.8333333333334"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="setEffect"><l><option>ghost</option></l><l>100</l></block><block s="show"></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>-75</l><l>1</l><l>quadratic-in-out</l></custom-block><block s="doWait"><l>3</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>-25</l><l>1</l><l>linear</l></custom-block></script></scripts></sprite><sprite name="Game Over Edges" idx="8" x="0" y="2.842170943040401e-14" heading="90" scale="1.6" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="163.20000000000002,117.50399999999999,0,1" pen="tip" id="4645"><costumes><list id="4646"><item><ref mediaID="Game Over Edges_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="4647"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>End Game Layer Fix 3</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block></script><script x="20" y="94"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="clearEffects"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setScale"><l>160</l></block><block s="hide"></block></script><script x="20" y="223.66666666666669"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="show"></block><block s="setEffect"><l><option>color</option></l><l>50</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>-50</l><l>0.5</l><l>quadratic-in</l></custom-block><block s="doWait"><l>3.5</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>50</l><l>1</l><l>quadratic-out</l></custom-block></script><script x="20" y="380.5"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="show"></block><block s="setEffect"><l><option>color</option></l><l>0</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>-50</l><l>0.5</l><l>quadratic-in</l></custom-block><block s="doWait"><l>3.5</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>50</l><l>1</l><l>quadratic-out</l></custom-block></script></scripts></sprite><sprite name="Game Over Icon" idx="9" x="0" y="0" heading="120" scale="1.51" volume="100" pan="0" rotation="1" draggable="false" costume="2" color="2.7540000000000027,137.70000000000002,0,1" pen="tip" id="4708"><costumes><list id="4709"><item><ref mediaID="Game Over Icon_cst_Trophy"></ref></item><item><ref mediaID="Game Over Icon_cst_Broken Heart"></ref></item></list></costumes><sounds><list struct="atomic" id="4710"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>End Game Layer Fix 4</l><list></list></block><block s="goToLayer"><l><option>front</option></l></block></script><script x="20" y="94"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="clearEffects"></block><block s="hide"></block></script><script x="20" y="202.66666666666669"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="setScale"><l>0</l></block><block s="doSwitchToCostume"><l>Trophy</l></block><block s="setHeading"><l>60</l></block><block s="show"></block><block s="fork"><block s="reifyScript"><script><custom-block s="animate %s by %n in %n secs easing %s"><l>direction</l><l>60</l><l>1</l><l>quadratic-in-out</l></custom-block></script><list></list></block><list></list></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>150</l><l>1</l><l>quadratic-in-out</l></custom-block><block s="doWait"><l>3</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>100</l><l>1</l><l>linear</l></custom-block></script><script x="20" y="436.5"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="setScale"><l>0</l></block><block s="doSwitchToCostume"><l>Broken Heart</l></block><block s="setHeading"><l>60</l></block><block s="show"></block><block s="fork"><block s="reifyScript"><script><custom-block s="animate %s by %n in %n secs easing %s"><l>direction</l><l>60</l><l>1</l><l>quadratic-in-out</l></custom-block></script><list></list></block><list></list></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>150</l><l>1</l><l>quadratic-in-out</l></custom-block><block s="doWait"><l>3</l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>ghost effect</l><l>100</l><l>1</l><l>linear</l></custom-block></script><script x="20" y="670.3333333333334"><block s="receiveMessage"><l>End Black Screen</l><list></list></block><block s="doStopThis"><l><option>other scripts in sprite</option></l></block></script></scripts></sprite><sprite name="Retry" idx="10" x="-1.1368683772161603e-13" y="0" heading="90" scale="1.01" volume="100" pan="0" rotation="1" draggable="false" costume="1" color="86.7,0,57.222000000000016,1" pen="tip" id="4809"><costumes><list id="4810"><item><ref mediaID="Retry_cst_Untitled"></ref></item></list></costumes><sounds><list struct="atomic" id="4811"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveMessage"><l>Game Load</l><list></list></block><block s="hide"></block><block s="gotoXY"><l>0</l><l>0</l></block></script><script x="20" y="110.83333333333334"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="doForever"><script><block s="goToLayer"><l><option>front</option></l></block></script></block></script><script x="20" y="211.66666666666669"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="doForever"><script><block s="goToLayer"><l><option>front</option></l></block></script></block></script><script x="20" y="312.5"><block s="receiveMessage"><l>Victory</l><list></list></block><block s="doWait"><l>5</l></block><block s="setScale"><l>0</l></block><block s="show"></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>100</l><l>0.5</l><l>quadratic-in</l></custom-block></script><script x="20" y="446.33333333333326"><block s="receiveMessage"><l>Lost</l><list></list></block><block s="doWait"><l>5</l></block><block s="setScale"><l>0</l></block><block s="show"></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>100</l><l>0.5</l><l>quadratic-in</l></custom-block></script><script x="20" y="580.1666666666666"><block s="receiveInteraction"><l>clicked</l></block><block s="doStopThis"><l><option>all but this script</option></l></block><custom-block s="animate %s by %n in %n secs easing %s"><l>size</l><l>-100</l><l>0.5</l><l>quadratic-out</l></custom-block><block s="hide"></block><block s="doSwitchToScene"><l>Matchmaking</l><list><l><option>__shout__go__</option></l></list></block></script></scripts></sprite></sprites></stage><variables><variable name="server" transient="true"/><variable name="queue" transient="true"/><variable name="topicName" transient="true"/><variable name="xVel" transient="true"/><variable name="yVel" transient="true"/><variable name="positionHistory" transient="true"/><variable name="xVelP2" transient="true"/><variable name="yVelP2" transient="true"/><variable name="shootHistory" transient="true"/><variable name="P2CursorPos" transient="true"/><variable name="P2MouseDown" transient="true"/><variable name="P2Shots" transient="true"/><variable name="amP2" transient="true"/><variable name="P2ShootHistory" transient="true"/><variable name="P2ClearingShootHistory" transient="true"/><variable name="startTime"><l>26</l></variable><variable name="gameEnd" transient="true"/><variable name="winner" transient="true"/><variable name="requestCounter" transient="true"/><variable name="aiEnabled"><bool>false</bool></variable><variable name="identifierToken" transient="true"/><variable name="players" transient="true"/><variable name="deathsToAI" transient="true"/><variable name="timeSinceLastShotAI" transient="true"/></variables></scene><scene name="Matchmaking"><notes>I used the MQTT library to make a small online game.&#xD;&#xD;CONTROLS:&#xD;Arrow keys or WASD to move the player. The green player is you.&#xD;&#xD;GOAL:&#xD;Kill the other player. Just shoot the enemy (red square) enough times.&#xD;&#xD;MATCHMAKING:&#xD;It might take a while to find someone to play with (if someone is online at all). Just wait. The screen might flicker a few times. That&apos;s normal.&#xD;&#xD;Everything in the game was made in Snap! (Including the artwork. You have no idea how long it took to make all the graphics.)</notes><palette><category name="MQTT" color="143,0,100,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="center write %&apos;TXT&apos; size %&apos;NUM&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%n"></input></inputs><script><block s="doDeclareVariables"><list><l>y</l><l>x</l></list></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="gotoXY"><l>0</l><l>300</l></block><block s="write"><block var="TXT"/><block var="NUM"/></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicProduct"><list><block var="x"/><l>0.5</l></list></block></block><block var="y"/></block><block s="write"><block var="TXT"/><block var="NUM"/></block></script></block-definition><block-definition s="message %&apos;TXT&apos;" type="command" category="pen"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="clear"></block><block s="setYPosition"><l>0</l></block><block s="setColor"><color>180,180,180,1</color></block><custom-block s="center write %s size %n"><l>Matchmaking</l><l>30</l></custom-block><block s="setYPosition"><l>-15</l></block><custom-block s="center write %s size %n"><block var="TXT"/><l>12</l></custom-block></script></block-definition><block-definition s="generate token" type="reporter" category="MQTT"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><block s="reportMap"><block s="reifyReporter"><autolambda><block s="reportListItem"><l><option>random</option></l><block s="reportTextSplit"><l>qwertyuiopasdfghjklzxcvbnm1234567890</l><l><option>letter</option></l></block></block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><l>128</l></block></block></block></block></script></block-definition><block-definition s="none" type="command" category="control"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="$cloudOutline MQTT connect to %&apos;broker&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="416.6666666666666" collapsed="false">Connect to a broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. username (some brokers need this)&#xD;2. password (some brokers need this)&#xD;3. keepalive (default time is 60 seconds but some brokers need a shorter time)&#xD;4. connection callback (ringed set of scripts to be run when connection is made or remade)&#xD;&#xD;Note: The connection callback doesn&apos;&apos;t have to be the 4th option - it just has to be the last (or only) option.&#xD;&#xD;ADVANCED: The brokers offered in the menu are accessed using default ports and  basepaths (if needed).  If accessing other brokers, the complete urls should be formed like this:&#xD;&#xD;siteURL:port/basepath &#xD;e.g mqtt.eclipseprojects.io:443/mqtt&#xD;&#xD;It is possible to have more than one connection to the same broker, for instance, using two different user/pass accounts simultaneously. To do this, add a connection id at the end of the broker:&#xD;&#xD;e.g mqtt.eclipseprojects.io:443/mqtt|1&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doDeclareVariables"><list><l>connection status</l><l>callback</l></list></block><block s="doSetVar"><l>connection status</l><l>connecting</l></block><block s="doSetVar"><l>callback</l><l></l></block><block s="doIf"><block s="reportIsA"><block s="reportListItem"><l><option>last</option></l><block var="options"/></block><l><option>command</option></l></block><script><block s="doSetVar"><l>callback</l><block s="reportListItem"><l><option>last</option></l><block var="options"/></block></block><block s="doDeleteFromList"><l><option>last</option></l><block var="options"/></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>username</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>password</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>keepalive</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_connect(broker,callback,options)</l><list><block var="broker"/><block var="callback"/><block var="options"/></list></block><block s="doWaitUntil"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connecting</l></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block var="connection status"/><l>connected</l></list></block></block><script><block s="doApplyExtension"><l>err_error(msg)</l><list><block var="connection status"/></list></block></script><list></list></block></script></block-definition><block-definition s="$cloudOutline MQTT subscribe to %&apos;broker&apos; topic %&apos;topic&apos; $nl on each message run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="239.99999999999977" collapsed="false">Subscribe to a topic on a broker&#xD;&#xD;Make sure you have already run an MQTT connect block before using this one&#xD;&#xD;You should add a script to be run inside he grey ring.&#xD;&#xD;It will be run each time a message is received&#xD;&#xD;If you click on the arrow on the grey ring twice, you can use #1 and #2 inside your script.&#xD;&#xD;#1 will contain the received payload&#xD;&#xD;#2 will contain the received topic name&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;There is only 1 option at present&#xD;1. Buffer mode (boolean) Default (false) - payload is returned as text&#xD;&#xD;If true, payload returned as single column list of values in the range of 0 to 255..  </comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block></list></block></block></block><block s="doApplyExtension"><l>mqt_sub(broker,topic,callback,options)</l><list><block var="broker"/><block var="topic"/><block var="callback"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT publish to %&apos;broker&apos; topic %&apos;topic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="310" collapsed="false">Publish a message to an MQTT broker&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1. qos (quality of service 0,1 or 2)&#xD;&#xD;2. retain flag (boolean)&#xD;&#xD;3. Buffer mode (boolean).    Default (false) - the payload is published as text&#xD;&#xD;If set to true then payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text.&#xD;&#xD;</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doIf"><block s="reportNot"><block s="reportJoinWords"><block var="options"/></block></block><script><block s="doSetVar"><l>options</l><block s="reportNewList"><list></list></block></block></script><list></list></block><block s="doSetVar"><l>options</l><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><block s="reportNewList"><list><l>qos</l><block s="reportListItem"><l>1</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>retain</l><block s="reportListItem"><l>2</l><block var="options"/></block></list></block><block s="reportNewList"><list><l>mode</l><block s="reportListItem"><l>3</l><block var="options"/></block></list></block></list></block></block></block><block s="doIf"><block s="reportNot"><block s="reportListItem"><l>2</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="options"/><l><option>json</option></l></block></block></block></block><script><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>list</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportListAttribute"><l><option>json</option></l><block var="payload"/></block></block></script><list></list></block><block s="doIf"><block s="reportIsA"><block var="payload"/><l><option>number</option></l></block><script><block s="doSetVar"><l>payload</l><block s="reportJoinWords"><list><block var="payload"/></list></block></block></script><list></list></block></script><list></list></block><block s="doApplyExtension"><l>mqt_pub(broker,topic,payload,options)</l><list><block var="broker"/><block var="topic"/><block var="payload"/><block var="options"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT unsubscribe from %&apos;broker&apos; topic %&apos;topic&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_unsub(broker,topic)</l><list><block var="broker"/><block var="topic"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT disconnect from %&apos;broker&apos;" type="command" category="MQTT"><header></header><code></code><translations></translations><inputs><input type="%s">all<options>all&#xD;broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input></inputs><script><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqtt.js</l></list></block><block s="doApplyExtension"><l>src_load(url)</l><list><l>libraries/mqttExtension.js</l></list></block><block s="doApplyExtension"><l>mqt_disconnect(broker)</l><list><block var="broker"/></list></block></script></block-definition><block-definition s="$cloudOutline MQTT response %&apos;broker&apos; topic %&apos;topic&apos; $nl reply %&apos;reply&apos; $nl $options-1-192-192-192 %&apos;$options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="292.22207031250036" collapsed="false">1. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  Default (false) - it is returned as text&#xD;&#xD;2.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name/#</input><input type="%repRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>callbackTopic</l><l>error</l></list></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topic"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="reportApplyExtension"><l>txt_indexof(sub, txt)</l><list><l>/@</l><block var="received topic"/></list></block><l>0</l></list></block><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list><block var="received payload"/><block var="received topic"/></list></block></block></script><list></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block s="evaluate"><block var="reply"/><list></list></block></block></script><list></list></block><block var="error"/></list></block><block s="doApplyExtension"><l>err_reset</l><list></list></block><block s="doSetVar"><l>callbackTopic</l><block s="reportListItem"><l><option>last</option></l><block s="reportTextSplit"><block var="received topic"/><l>@</l></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="callbackTopic"/><block var="resp"/><list><l></l><l></l><block s="reportListItem"><l>2</l><block var="$options"/></block></list></custom-block></script><list></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="$options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl on response run %&apos;callback&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="command" category="MQTT"><comment x="0" y="0" w="243" collapsed="false">The options are not required but can be filled if needed.&#xD;&#xD;1. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  &#xD;&#xD;2. Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.&#xD;&#xD;3.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%cmdRing"></input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>error</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>2</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>2</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doApplyExtension"><l>err_try(cmd, catch, err)</l><list><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list><block var="received payload"/><block var="received topic"/></list></block></script><list></list></block><block s="reifyScript"><script><block s="doRun"><block var="callback"/><list></list></block></script><list></list></block><block var="error"/></list></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>1</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l><l></l><block s="reportListItem"><l>3</l><block var="options"/></block></list></custom-block></script></block-definition><block-definition s="$cloudOutline MQTT example response reporter payload %&apos;payload&apos; topic %&apos;topic&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="90" collapsed="false">This is a simple echo example.&#xD;Topic can be used to filter the response.</comment><header></header><code></code><translations></translations><inputs><input type="%mlt">hello</input><input type="%txt">name</input></inputs><script><block s="doReport"><block var="payload"/></block></script></block-definition><block-definition s="$cloudOutline MQTT request %&apos;broker&apos; topic %&apos;topic&apos; $nl response topic %&apos;rtopic&apos; payload %&apos;payload&apos; $nl $options-1-192-192-192 %&apos;options&apos;" type="reporter" category="MQTT"><comment x="0" y="0" w="343" collapsed="false">The response topic should be a unique value for each call e.g. use timer&#xD;&#xD;The options are not required but can be filled if needed&#xD;&#xD;1.  Timeout value - default is 3 seconds&#xD;&#xD;2. Subscribe buffer mode (boolean) Default (false) - received payload is returned as text. &#xD;&#xD;If true, subscribed, received payload returned as single column list of values in the range of 0 to 255..  Default (false) - it is returned as text&#xD;&#xD;3.  Inform response topic (boolean): If true, the response topic is added at the end of the call topic after @ sign. The default condition (true) response topic is added.&#xD;&#xD;4.  Published buffer mode (boolean).  Default (false) - the payload is published as text.&#xD;&#xD;If set to true then published payload is expected to be a single column list of values in the 0 to 255 range and is published to the broker as a buffer of bytes.&#xD;&#xD;Note:  If the payload is a list and you don&apos;t set the buffer mode option, it will be automatically be converted into JSON and sent as text</comment><header></header><code></code><translations></translations><inputs><input type="%s">broker.emqx.io<options>broker.emqx.io&#xD;mqtt.eclipseprojects.io&#xD;test.mosquitto.org&#xD;broker.xmqtt.net</options></input><input type="%s">name</input><input type="%s">name2</input><input type="%mlt">hello</input><input type="%mult%s"></input></inputs><script><block s="doDeclareVariables"><list><l>resp</l><l>semaphore</l><l>timer0</l><l>timeout</l><l>informTopic</l><l>topicCall</l></list></block><block s="doSetVar"><l>semaphore</l><l>0</l></block><block s="doSetVar"><l>timeout</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>1</l><block var="options"/></block><l><option>number</option></l></block><block s="reportListItem"><l>1</l><block var="options"/></block><l>3</l></block></block><block s="doSetVar"><l>informTopic</l><block s="reportIfElse"><block s="reportIsA"><block s="reportListItem"><l>3</l><block var="options"/></block><l><option>Boolean</option></l></block><block s="reportListItem"><l>3</l><block var="options"/></block><block s="reportBoolean"><l><bool>true</bool></l></block></block></block><block s="doSetVar"><l>resp</l><l>timeout</l></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block><block s="reifyScript"><script><block s="doSetVar"><l>resp</l><block var="received payload"/></block><block s="doSetVar"><l>semaphore</l><l>1</l></block></script><list><l>received payload</l><l>received topic</l></list></block><list><block s="reportListItem"><l>2</l><block var="options"/></block></list></custom-block><block s="doIfElse"><block var="informTopic"/><script><block s="doSetVar"><l>topicCall</l><block s="reportJoinWords"><list><block var="topic"/><l>/</l><block s="reportJoinWords"><list><l>@</l><block var="rtopic"/></list></block></list></block></block></script><script><block s="doSetVar"><l>topicCall</l><block var="topic"/></block></script></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="broker"/><block var="topicCall"/><block var="payload"/><list><l></l><l></l><block s="reportListItem"><l>4</l><block var="options"/></block></list></custom-block><block s="doSetVar"><l>timer0</l><block s="reportDate"><l><option>time in milliseconds</option></l></block></block><block s="doWaitUntil"><block s="reportVariadicOr"><list><block s="reportVariadicEquals"><list><block var="semaphore"/><l>1</l></list></block><block s="reportVariadicGreaterThan"><list><block s="reportDifference"><block s="reportDate"><l><option>time in milliseconds</option></l></block><block var="timer0"/></block><block s="reportVariadicProduct"><list><block var="timeout"/><l>1000</l></list></block></list></block></list></block></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="broker"/><block s="reportJoinWords"><list><block var="rtopic"/></list></block></custom-block><block s="doReport"><block var="resp"/></block></script></block-definition><block-definition s="MQTT Extension Examples" type="command" category="MQTT"><comment x="0" y="0" w="277" collapsed="false">Open (edit) this block to look at examples how to use the MQTT Extension blocks&#xD;&#xD;Background documentation:&#xD;https://github.com/pixavier/mqtt4snap&#xD;&#xD;Last source code version (mqtt.xml and mqttExtension.js):&#xD;https://gitlab.com/cymplecy/Snap/-/tree/master/libraries</comment><header></header><code></code><translations></translations><inputs></inputs><scripts><script x="24.333333333333485" y="371.8666666666658"><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><l>hello</l><list><l></l></list></custom-block></script><script x="22.333333333333485" y="271.19999999999976"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><comment x="525.9999999999995" y="140.2" w="191" collapsed="false">To execute the examples, single click on blocks, following the corresponding steps.</comment><script x="28" y="1315.0333333333292"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="24.333333333333485" y="1013.2000000000016"><custom-block s="$cloudOutline MQTT response %s topic %s %br reply %repRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name/#</l><block s="reifyReporter"><autolambda><custom-block s="$cloudOutline MQTT example response reporter payload %mlt topic %txt"><block var="payload"/><block var="topic"/></custom-block></autolambda><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="28" y="498.6999999999993"><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><block s="reifyScript"><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name2</l><block var="payload"/><list><l></l></list></custom-block></script><list><l>payload</l><l>topic</l></list></block><list><l></l></list></custom-block></script><script x="30" y="633.0333333333344"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><list><l></l><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block><l>2</l></block></script><comment x="487.99999999999955" y="1311.6999999999966" w="224" collapsed="false">Step 2 bis: Send a request (timer acts as idCall) and do not wait for the answer</comment><comment x="487.99999999999955" y="1013.7000000000012" w="220" collapsed="false">Step 1: Activate the responder</comment><comment x="483.66666666666697" y="805.3666666666666" w="224" collapsed="false">Step 2 bis: Send a request and do not wait for the answer</comment><comment x="487" y="495.6999999999983" w="220" collapsed="false">Step 1: Activate the responder as a simple subscription</comment><comment x="484.99999999999955" y="374.1999999999991" w="222" collapsed="false">Step 2: Publish a message</comment><comment x="485.99999999999955" y="293.1999999999993" w="222" collapsed="false">Step 1: Subscribe to a topic</comment><comment x="482.99999999999955" y="215.2" w="223" collapsed="false">Step 0: Connect to the broker</comment><comment x="485" y="635.6999999999996" w="220" collapsed="false">Step 2: Send a request and wait the answer.</comment><script x="24.333333333333485" y="209.2"><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><list><l></l></list></custom-block></script><comment x="24.333333333333485" y="152.2000000000001" w="239.99999999999997" collapsed="false">PubSub Hello World!</comment><script x="26.333333333333485" y="1139.1999999999978"><block s="doSayFor"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name</l><block s="getTimer"></block><l>hello</l><list><l></l></list></custom-block><l>2</l></block></script><comment x="486.99999999999955" y="1138.6999999999982" w="219.00000000000023" collapsed="false">Step 2: Send a request (timer acts as idCall) and wait for the answer</comment><script x="27" y="803.0333333333335"><custom-block s="$cloudOutline MQTT request %s topic %s %br response topic %s payload %mlt %br on response run %cmdRing %br $options-1-192-192-192 %mult%s"><l>broker.emqx.io</l><l>name1</l><l>name2</l><l>hello</l><block s="reifyScript"><script><block s="doSayFor"><block var="payload"/><l>2</l></block></script><list><l>payload</l><l>topic</l></list></block><list><l></l><block s="reportBoolean"><l><bool>false</bool></l></block></list></custom-block></script><comment x="29" y="736.6999999999998" w="372.0000000000004" collapsed="false">Asynchronous client-server Hello World! with static response topic (name2)</comment><comment x="25.333333333333485" y="935.2000000000012" w="356.99999999999994" collapsed="false">Synchronous client-server Hello World! with dynamic response topic (timer)</comment><comment x="28" y="431.36666666666673" w="361.99999999999994" collapsed="false">Synchronous client-server Hello World! with static response topic (name2)</comment><comment x="27" y="1243.6999999999966" w="352.0000000000003" collapsed="false">Asynchronous client-server Hello World! with dynamic response topic (timer)</comment></scripts></block-definition></blocks><stage name="Stage" width="480" height="360" costume="0" color="30,30,30,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="5808"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3X2UpNldF/B7q2Yn7g6+ERDBVziAeHwjZzNHcRGTcFZmp6pmYpSREN4SAqISxEgC0QU2OUHIGiPBHEUSCEIMuiaBSVfNbuQgGFledmYPHJHjGgUUNBp1TdSdXrOZ6mvfOU/NeaamX6rv7Z7bnf7UX9M99av71Oe5Xd967nOf+8TgQYAAAQIECNx2gXjbW9QgAQIECBAgEASwTkCAAAECBBoICOAG6JokQIAAAQICWB8gQIAAAQINBARwA3RNEiBAgAABAawPECBAgACBBgICuAG6JgkQIECAgADWBwgQIECAQAMBAdwAXZMECBAgQEAA6wMECBAgQKCBgABugK5JAgQIECAggPUBAgQIECDQQEAAN0DXJAECBAgQEMD6AAECBAgQaCAggBuga5IAAQIECAhgfYAAAQIECDQQEMAN0DVJgAABAgQEsD5AgAABAgQaCAjgBuiaJECAAAECAlgfIECAAAECDQQEcAN0TRIgQIAAAQGsDxAgQIAAgQYCArgBuiYJECBAgIAA1gcIECBAgEADAQHcAF2TBAgQIEBAAOsDBAgQIECggYAAboCuSQIECBAgIID1AQIECBAg0EBAADdA1yQBAgQIEBDA+gABAgQIEGggIIAboGuSAAECBAgIYH2AAAECBAg0EBDADdA1SYAAAQIEBLA+QIAAAQIEGggI4AbomiRAgAABAgJYHyBAgAABAg0EBHADdE0SIECAAAEBrA8QIECAAIEGAgK4AbomCRAgQICAANYHCBAgQIBAAwEB3ABdkwQIECBAQADrAwQIECBAoIGAAG6ArkkCBAgQICCA9QECBAgQINBAQAA3QNckAQIECBAQwPoAAQIECBBoICCAG6BrkgABAgQICGB9gAABAgQINBAQwA3QNUmAAAECBASwPkCAAAECBBoICOAG6JokQIAAAQICWB8gQIAAAQINBARwA3RNEiBAgAABAawPECBAgACBBgICuAG6JgkQIECAgADWBwgQIECAQAMBAdwAXZMECBAgQEAA6wMECBAgQKCBgABugK5JAgQIECAggPUBAgQIECDQQEAAN0DXJAECBAgQEMD6AAECBAgQaCAggBuga5IAAQIECAhgfYAAAQIECDQQEMAN0DVJgAABAgQEsD5AgAABAgQaCAjgBuiaJECAAAECAlgfIECAAAECDQQEcAN0TRIgQIAAAQGsDxAgQIAAgQYCArgBuiYJECBAgIAA1gcIECBAgEADAQHcAF2TBAgQIEBAAOsDBAgQIECggYAAboCuSQIECBAgIID1AQIECBAg0EBAADdA1yQBAgQIEBDA+gABAgQIEGggIIAboGuSAAECBAgIYH2AAAECBAg0EBDADdA1SYAAAQIEBLA+QIAAAQIEGggI4AbomiRAgAABAgJYHyBAgAABAg0EBHADdE0SIECAAAEBrA8QIECAAIEGAgK4AbomCRAgQICAANYHCBAgQIBAAwEB3ABdkwQIECBAQADrAwQIECBAoIGAAG6ArkkCBAgQICCA9QECBAgQINBAQAA3QNckAQIECBAQwPoAAQIECBBoICCAG6BrkgABAgQICGB9gAABAgQINBAQwA3QNUmAAAECBASwPkCAAAECBBoICOAG6JokQIAAAQICWB8gQIAAAQINBARwA3RNEiBAgAABAawPECBAgACBBgICuAG6JgkQIECAgADWBwgQIECAQAMBAdwAXZMECBAgQEAA6wMECBAgQKCBgABugK5JAgQIECAggPUBAgQIECDQQEAAN0DXJAECBAgQEMD6AAECBAgQaCAggBuga5IAAQIECAhgfYAAAQIECDQQEMAN0DVJgAABAgQEsD5AgAABAgQaCAjgBuiaJECAAAECAlgfIECAAAECDQQEcAN0TRIgQIAAAQGsDxAgQIAAgQYCArgBuiYJECBAgIAA1gcIECBAgEADAQHcAF2TBAgQIEBAAOsDBAgQIECggYAAboCuSQIECBAgIID1AQIECBAg0EBAADdA1yQBAgQIEBDA+gABAgQIEGggIIAboGuSAAECBAgIYH2AAAECBAg0EBDADdA1SYAAAQIEBLA+QIAAAQIEGggI4AbomiRAgAABAgJYHyBAgAABAg0EBHADdE0SIECAAAEBrA8QIECAAIEGAgK4AbomCRAgQICAANYHCBAgQIBAAwEB3ABdkwQIECBAQADrAwQIECBAoIGAAG6ArkkCBAgQICCA9QECBAgQINBAQAA3QNckAQIECBAQwPoAAQIECBBoICCAG6BrkgABAgQICGB9gAABAgQINBAQwA3QNUmAAAECBASwPkCAAAECBBoICOAG6Jok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OgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgAAuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE5AANf5qSZAgAABAkUCAriITREBAgQIEKgTEMB1fqoJECBAgECRgABmyihBAAAAQ0lEQVQuYlNEgAABAgTqBARwnZ9qAgQIECBQJCCAi9gUESBAgACBOgEBXOenmgABAgQIFAkI4CI2RQQIECBAoE7g/wOyto4dWJseKQAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="5809"></list></costumes><sounds><list struct="atomic" id="5810"></list></sounds><variables></variables><blocks></blocks><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="setBackgroundColor"><color>30,30,30,1</color></block></script></scripts><sprites select="0"><sprite name="TXT" idx="1" x="32.98828125" y="-15" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="180,180,180,1" pen="tip" id="5818"><costumes><list struct="atomic" id="5819"></list></costumes><sounds><list struct="atomic" id="5820"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="10"><block s="receiveGo"></block><block s="hide"></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="playedWith"/><l>0</l></list></block><script><block s="doSetVar"><l>playedWith</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>token</l><custom-block s="generate token"></custom-block></block><block s="doSetVar"><l>playWithAI</l><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><list></list></block><custom-block s="message %s"><l>Connecting to server...</l></custom-block><block s="doSetVar"><l>server</l><l>mqtt.eclipseprojects.io</l></block><block s="doSetVar"><l>topicName</l><l>onlineShooterGameJoecooldooMatchmakingSystemPlayerList_HuhoiUH9y8wef&amp;kjns8lrg676t5hdR</l></block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><block var="server"/><list></list></custom-block><custom-block s="message %s"><l>Populating player list...</l></custom-block><block s="doIf"><block var="playWithAI"/><script><block s="doBroadcast"><l>AI</l><list></list></block></script><list></list></block><block s="doSetVar"><l>playerList</l><block s="reportNewList"><list></list></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><l>server</l></list></block><script><block s="doAddToList"><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block var="playerList"/></block></script><list></list></block></script><list><l>#1</l></list></block><list></list></custom-block><block s="doWait"><l>5</l></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="server"/><block var="topicName"/></custom-block><block s="doIfElse"><block s="reportListIsEmpty"><block var="playerList"/></block><script><custom-block s="message %s"><l>Creating new server...</l></custom-block><block s="doSetVar"><l>connectionLostCounter</l><l>0</l></block><block s="doSetVar"><l>playWithAI</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSetVar"><l>playerJoiningThisServer</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reifyScript"><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><l>join</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block var="token"/></list></block><script><block s="doSetVar"><l>startTime</l><block s="reportListItem"><l>3</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block></block><block s="doSetVar"><l>playerJoiningThisServer</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block></script><list></list></block></script><list><l>#1</l></list></block><list></list></custom-block><custom-block s="message %s"><l>Waiting for players...</l></custom-block><block s="doResetTimer"></block><block s="doUntil"><block s="reportVariadicOr"><list><block var="playerJoiningThisServer"/><block s="reportVariadicGreaterThan"><list><block s="getTimer"></block><l>10</l></list></block></list></block><script><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>server</l><block var="token"/></list></block></block><list></list></custom-block><block s="doWait"><l>1</l></block></script></block><block s="doIf"><block s="reportVariadicGreaterThan"><list><block s="getTimer"></block><l>10</l></list></block><script><block s="doBroadcast"><l>AI</l><list></list></block><block s="doStopThis"><l><option>this script</option></l></block></script><list></list></block><custom-block s="message %s"><l>Found player!</l></custom-block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="server"/><block var="topicName"/></custom-block><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><custom-block s="message %s"><l>Joining...</l></custom-block><block s="doSetVar"><l>connectionLostCounter</l><l>0</l></block><block s="doSetVar"><l>playWithAI</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doSwitchToScene"><l>Online Shooter</l><list><l>Load Server Details</l><block s="reportNewList"><list><block s="reportNewList"><list><l>serverURL</l><block var="server"/></list></block><block s="reportNewList"><list><l>name</l><block var="token"/></list></block><block s="reportNewList"><list><l>P#</l><l>1</l></list></block><block s="reportNewList"><list><l>startTime</l><block var="startTime"/></list></block><block s="reportNewList"><list><l>ai</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block></list></block></script><script><custom-block s="message %s"><l>Found player!</l></custom-block><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><custom-block s="$cloudOutline MQTT connect to %s %br $options-1-192-192-192 %mult%s"><block var="server"/><list></list></custom-block><block s="doDeclareVariables"><list><l>jointoken</l></list></block><block s="doSetVar"><l>jointoken</l><block s="reportListItem"><l><option>random</option></l><block var="playerList"/></block></block><custom-block s="$cloudOutline MQTT subscribe to %s topic %s %br on each message run %cmdRing %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reifyScript"><script><block s="doSetVar"><l>debug</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><l>join</l></list></block><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>2</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block var="jointoken"/></list></block><script><block s="doIf"><block s="reportNot"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>4</l><block s="reportTextSplit"><block var="#1"/><l><option>json</option></l></block></block><block var="token"/></list></block></block><script><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><block s="doBroadcast"><l>Restart</l><list></list></block></script><list></list></block></script><list></list></block></script><list></list></block></script><list><l>#1</l></list></block><list></list></custom-block><block s="doSetVar"><l>startTime</l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>second</option></l></block><l>49</l></list></block><block s="reportDifference"><l>10</l><block s="reportDifference"><l>60</l><block s="reportDate"><l><option>second</option></l></block></block></block><block s="reportVariadicSum"><list><block s="reportDate"><l><option>second</option></l></block><l>10</l></list></block></block></block><custom-block s="$cloudOutline MQTT publish to %s topic %s payload %mlt %br $options-1-192-192-192 %mult%s"><block var="server"/><block var="topicName"/><block s="reportListAttribute"><l><option>json</option></l><block s="reportNewList"><list><l>join</l><block var="jointoken"/><block var="startTime"/><block var="token"/></list></block></block><list></list></custom-block><block s="doWait"><l>3</l></block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="server"/><block var="topicName"/></custom-block><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><custom-block s="message %s"><l>Joining...</l></custom-block><block s="doSwitchToScene"><l>Online Shooter</l><list><l>Load Server Details</l><block s="reportNewList"><list><block s="reportNewList"><list><l>serverURL</l><block var="server"/></list></block><block s="reportNewList"><list><l>name</l><block var="jointoken"/></list></block><block s="reportNewList"><list><l>P#</l><l>2</l></list></block><block s="reportNewList"><list><l>startTime</l><block var="startTime"/></list></block><block s="reportNewList"><list><l>ai</l><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></list></block></list></block></script></block></script><script x="20" y="2146.2499999999995"><block s="receiveMessage"><l>AI</l><list></list></block><custom-block s="message %s"><l>Found player!</l></custom-block><custom-block s="$cloudOutline MQTT unsubscribe from %s topic %s"><block var="server"/><block var="topicName"/></custom-block><custom-block s="$cloudOutline MQTT disconnect from %s"><l>all</l></custom-block><custom-block s="message %s"><l>Joining...</l></custom-block><block s="doSwitchToScene"><l>Online Shooter</l><list><l>Load Server Details</l><block s="reportNewList"><list><block s="reportNewList"><list><l>serverURL</l><block var="server"/></list></block><block s="reportNewList"><list><l>name</l><block var="token"/></list></block><block s="reportNewList"><list><l>P#</l><l>1</l></list></block><block s="reportNewList"><list><l>startTime</l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>second</option></l></block><l>49</l></list></block><block s="reportDifference"><l>10</l><block s="reportDifference"><l>60</l><block s="reportDate"><l><option>second</option></l></block></block></block><block s="reportVariadicSum"><list><block s="reportDate"><l><option>second</option></l></block><l>10</l></list></block></block></list></block><block s="reportNewList"><list><l>ai</l><block s="reportBoolean"><l><bool>true</bool></l></block></list></block></list></block></list></block></script><script x="20" y="2482.5833333333335"><block s="receiveMessage"><l>Connection Lost</l><list></list></block><block s="doChangeVar"><l>connectionLostCounter</l><l>1</l></block><block s="doIf"><block s="reportVariadicEquals"><list><block var="connectionLostCounter"/><l>3</l></list></block><script><block s="doSetVar"><l>playWithAI</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><list></list></block><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block></script><script x="20" y="2651.166666666667"><block s="receiveMessage"><l>Restart</l><list></list></block><block s="doStopThis"><l><option>all but this script</option></l></block><block s="doBroadcast"><l><option>__shout__go__</option></l><list></list></block></script></scripts></sprite><watcher var="server" style="normal" x="9.999999999999545" y="10" color="243,118,29" hidden="true"/><watcher var="playerList" style="normal" x="9.999999999999545" y="31.00000200000008" color="243,118,29" hidden="true"/><watcher var="topicName" style="normal" x="9.999999999999545" y="52.000003999999734" color="243,118,29" hidden="true"/><watcher var="playerJoiningThisServer" style="normal" x="9.999999999999545" y="73.00000599999987" color="243,118,29" hidden="true"/><watcher var="token" style="normal" x="9.999999999999545" y="94.00000799999995" color="243,118,29" hidden="true"/><watcher var="startTime" style="normal" x="9.999999999999545" y="115.00001000000003" color="243,118,29" hidden="true"/><watcher var="playedWith" style="normal" x="9.999999999999545" y="10.000000000000014" color="243,118,29" hidden="true"/><watcher var="connectionLostCounter" style="normal" x="9.999999999999545" y="31.000002000000052" color="243,118,29" hidden="true"/><watcher var="playWithAI" style="normal" x="9.999999999999545" y="52.00000400000005" color="243,118,29" hidden="true"/><watcher var="identity" style="normal" x="9.999999999999545" y="76.0000060000001" color="243,118,29" hidden="true"/><watcher var="debug" style="normal" x="20.000000000000227" y="20.00000000000003" color="243,118,29" hidden="true"/><sprite name="Thumbnail" idx="2" x="0" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="118.57499999999997,191.25,0,1" pen="tip" id="6436"><costumes><list id="6437"><item><ref mediaID="Thumbnail_cst_Online Shooter Thumbnail"></ref></item></list></costumes><sounds><list struct="atomic" id="6438"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="receiveGo"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>100</l></block></script><script x="20" y="155.83333333333337"><block s="receiveInteraction"><l><option>stopped</option></l></block><block s="setEffect"><l><option>ghost</option></l><l>0</l></block></script></scripts></sprite></sprites></stage><variables><variable name="server" transient="true"/><variable name="playerList" transient="true"/><variable name="topicName" transient="true"/><variable name="playerJoiningThisServer" transient="true"/><variable name="token" transient="true"/><variable name="startTime" transient="true"/><variable name="playedWith" transient="true"/><variable name="connectionLostCounter" transient="true"/><variable name="playWithAI"><bool>false</bool></variable><variable name="identity" transient="true"/><variable name="debug" transient="true"/></variables></scene></scenes></project><media name="Online Shooter" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><costume name="Main" center-x="239" center-y="179" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAd4AAAFmCAYAAADDB/vbAAAAAXNSR0IArs4c6QAAEpNJREFUeF7t2LGOHFUUBNBpnI/knMD7d/YXjf9uHZBbcoxZBCLAyHK31eyrq65DOr193z316BJst/ef391e858/Xn795vW/bL+95jjvJkCAAAEC3wj8t4f2eL7XU0fe8dff/ajzPr799Nfo7fbhy8veGfxOgAABAgQInBR43DfFe9LQnxMgQIAAgcMCL1+fbh/ffvJfvIfFPEiAAAECBE4KPO6b4j1p6M8JECBAgMBhAcV7mMqDBAgQIEDgvIDiPW/oDQQIECBA4LCA4j1M5UECBAgQIHBeQPGeN/QGAgQIECBwWEDxHqbyIAECBAgQOC+geM8begMBAgQIEDgsoHgPU3mQAAECBAicF1C85w29gQABAgQIHBZQvIepPEiAAAECBM4LKN7zht5AgAABAgQOCyjew1QeJECAAAEC5wUU73lDbyBAgAABAocFFO9hKg8SIECAAIHzAor3vKE3ECBAgACBwwKK9zCVBwkQIECAwHkBxXve0BsIECBAgMBhAcV7mMqDBAgQIEDgvIDiPW/oDQQIECBA4LBApHi37ffDB/QgAQLzBF5ub+YdyokI/KzAy/azf/G/PB8p3sc9s+z/IuYlBAgQIHAJgQ9fXiJ7KN4Iu6EECBAgkBZQvOkEzCdAgACBKgHFWxW3ZQkQIEAgLaB40wmYT4AAAQJVAoq3Km7LEiBAgEBaQPGmEzCfAAECBKoEFG9V3JYlQIAAgbSA4k0nYD4BAgQIVAko3qq4LUuAAAECaQHFm07AfAIECBCoElC8VXFblgABAgTSAoo3nYD5BAgQIFAloHir4rYsAQIECKQFFG86AfMJECBAoEpA8VbFbVkCBAgQSAso3nQC5hMgQIBAlYDirYrbsgQIECCQFlC86QTMJ0CAAIEqAcVbFbdlCRAgQCAtoHjTCZhPgAABAlUCircqbssSIECAQFpA8aYTMJ8AAQIEqgQUb1XcliVAgACBtIDiTSdgPgECBAhUCSjeqrgtS4AAAQJpAcWbTsB8AgQIEKgSULxVcVuWAAECBNICijedgPkECBAgUCWgeKvitiwBAgQIpAUUbzoB8wkQIECgSkDxVsVtWQIECBBICyjedALmEyBAgECVgOKtituyBAgQIJAWULzpBMwnQIAAgSoBxVsVt2UJECBAIC2geNMJmE+AAAECVQKKtypuyxIgQIBAWkDxphMwnwABAgSqBBRvVdyWJUCAAIG0gOJNJ2A+AQIECFQJKN6quC1LgAABAmkBxZtOwHwCBAgQqBJQvFVxW5YAAQIE0gKKN52A+QQIECBQJaB4q+K2LAECBAikBRRvOgHzCRAgQKBKQPFWxW1ZAgQIEEgLKN50AuYTIECAQJWA4q2K27IECBAgkBZQvOkEzCdAgACBKgHFWxW3ZQkQIEAgLaB40wmYT4AAAQJVAoq3Km7LEiBAgEBaQPGmEzCfAAECBKoEFG9V3JYlQIAAgbSA4k0nYD4BAgQIVAko3qq4LUuAAAECaQHFm07AfAIECBCoElC8VXFblgABAgTSAoo3nYD5BAgQIFAloHir4rYsAQIECKQFFG86AfMJECBAoEpA8VbFbVkCBAgQSAso3nQC5hMgQIBAlYDirYrbsgQIECCQFlC86QTMJ0CAAIEqAcVbFbdlCRAgQCAtoHjTCZhPgAABAlUCircqbssSIECAQFpA8aYTMJ8AAQIEqgQUb1XcliVAgACBtIDiTSdgPgECBAhUCSjeqrgtS4AAAQJpAcWbTsB8AgQIEKgSULxVcf942fef39EoFvj49lPx9lYnsE5A8a6zHj8pdRnGw5Qc8HHfSja1JoGsQOpb+7hv2231cB+WH1+21Xlkr77p/xXw74c7QWCNQOpbq3jX5PtTU1KX4acO6eFXE1C8r0brxQS+EUh9axXvwIuYugwDKSqPpHgrY7d0QCD1rVW8gbD3RqYuw965/L5GQPGucTaFQOpbq3gH3r3UZRhIUXkkxVsZu6UDAqlvreINhL03MnUZ9s7l9zUCineNsykEUt9axTvw7qUuw0CKyiMp3srYLR0QSH1rFW8g7L2Rqcuwdy6/rxFQvGucTSGQ+tYq3oF3L3UZBlJUHknxVsZu6YBA6lureANh741MXYa9c/l9jYDiXeNsCoHUt1bxDrx7qcswkKLySIq3MnZLBwRS31rFGwh7b2TqMuydy+9rBBTvGmdTCKS+tYp34N1LXYaBFJVHUryVsVs6IJD61ireQNh7I1OXYe9cfl8joHjXOJtCIPWtVbwD717qMgykqDyS4q2M3dIBgdS3VvEGwt4bmboMe+fy+xoBxbvG2RQCqW+t4h1491KXYSBF5ZEUb2Xslg4IpL61ijcQ9t7I1GXYO5ff1wgo3jXOphBIfWsV78C7l7oMAykqj6R4K2O3dEAg9a1VvIGw90amLsPeufy+RkDxrnE2hUDqW6t4B9691GUYSFF5JMVbGbulAwKpb63iDYS9N/LDl+e9R/x+YYHH/enC21mNwBwBxTsnCychQIAAgQIBxVsQshUJECBAYI6A4p2ThZMQIECAQIGA4i0I2YoECBAgMEdA8c7JwkkIECBAoEBA8RaEbEUCBAgQmCOgeOdk4SQECBAgUCCgeAtCtiIBAgQIzBFQvHOycBICBAgQKBBQvAUhW5EAAQIE5ggo3jlZOAkBAgQIFAgo3oKQrUiAAAECcwQU75wsnIQAAQIECgQUb0HIViRAgACBOQKKd04WTkKAAAECBQKKtyBkKxIgQIDAHAHFOycLJyFAgACBAgHFWxCyFQkQIEBgjoDinZOFkxAgQIBAgYDiLQjZigQIECAwR0DxzsnCSQgQIECgQEDxFoRsRQIECBCYI6B452ThJAQIECBQIKB4C0K2IgECBAjMEVC8c7JwEgIECBAoEFC8BSFbkQABAgTmCCjeOVk4CQECBAgUCCjegpCtSIAAAQJzBBTvnCychAABAgQKBBRvQchWJECAAIE5Aop3ThZOQoAAAQIFAoq3IGQrEiBAgMAcAcU7JwsnIUCAAIECAcVbELIVCRAgQGCOgOKdk4WTECBAgECBgOItCNmKBAgQIDBHQPHOycJJCBAgQKBAQPEWhGxFAgQIEJgjoHjnZOEkBAgQIFAgoHgLQrYiAQIECMwRULxzsnASAgQIECgQULwFIVuRAAECBOYIKN45WTgJAQIECBQIKN6CkK1IgAABAnMEFO+cLJyEAAECBAoEFG9ByFYkQIAAgTkCindOFk5CgAABAgUCircgZCsSIECAwBwBxTsnCychQIAAgQIBxVsQshUJECBAYI6A4p2ThZMQIECAQIGA4i0I2YoECBAgMEdA8c7JwkkIECBAoEBA8RaEbEUCBAgQmCOgeOdk4SQECBAgUCCQKt6Xr0/bbfXwx30riNSKBAgQIDBZYHX3/ctC8U6+GM5GgAABAq8joHhfx9VbCRAgQIDAdwUUr4tBgAABAgQWCijehdhGESBAgAABxesOECBAgACBhQKKdyG2UQQIECBAQPG6AwQIECBAYKGA4l2IbRQBAgQIEFC87gABAgQIEFgooHgXYhtFgAABAgQUrztAgAABAgQWCijehdhGESBAgAABxesOECBAgACBhQKKdyG2UQQIECBAQPG6AwQIECBAYKGA4l2IbRQBAgQIEFC87gABAgQIEFgooHgXYhtFgAABAgQUrztAgAABAgQWCijehdhGESBAgAABxesOECBAgACBhQKKdyG2UQQIECBAQPG6AwQIECBAYKGA4l2IbRQBAgQIEFC87gABAgQIEFgooHgXYhtFgAABAgQUrztAgAABAgQWCijehdhGESBAgAABxesOECBAgACBhQKKdyG2UQQIECBAQPG6AwQIECBAYKGA4l2IbRQBAgQIEFC87gABAgQIEFgooHgXYhtFgAABAgQUrztAgAABAgQWCijehdhGZQTef36XGWwqAQIEviOwvXlOuWy31a3/uG+pZc0NCqy+Z8FVjSZAgMCPBBSv+7FGQPGucTaFAIHxAop3fEQXOaDivUiQ1iBA4KyA4j0r6O+PCSjeY06eIkDg8gKK9/IRD1lQ8Q4JwjEIEEgLKN50Ai3zFW9L0vYkQGBHQPG6ImsEFO8aZ1MIEBgvoHjHR3SRAyreiwRpDQIEzgoo3rOC/v6YgOI95uQpAgQuL6B4Lx/xkAUV75AgHIMAgbSA4k0n0DJf8bYkbU8CBHYEFK8rskZA8a5xNoUAgfECind8RBc5oOK9SJDWIEDgrIDiPSvo748JKN5jTp4iQODyAor38hEPWVDxDgnCMQgQSAso3nQCLfMVb0vS9iRAYEdA8boiawQU7xpnUwgQGC+geMdHdJEDKt6LBGkNAgTOCijes4L+/piA4j3m5CkCBC4voHgvH/GQBRXvkCAcgwCBtIDiTSfQMl/xtiRtTwIEdgQUryuyRkDxrnE2hQCB8QKKd3xEFzmg4r1IkNYgQOCsgOI9K+jvjwl8+PJ87EFPESBAYInAuyVTvjNE8abkzSVAgACBnEDw/8Ip3lzsJhMgQIBASkDxpuTNJUCAAIFKAcVbGbulCRAgQCAloHhT8uYSIECAQKWA4q2M3dIECBAgkBJQvCl5cwkQIECgUkDxVsZuaQIECBBICSjelLy5BAgQIFApoHgrY7c0AQIECKQEFG9K3lwCBAgQqBRQvJWxW5oAAQIEUgKKNyVvLgECBAhUCijeytgtTYAAAQIpAcWbkjeXAAECBCoFFG9l7JYmQIAAgZSA4k3Jm0uAAAEClQKKtzJ2SxMgQIBASkDxpuTNJUCAAIFKAcVbGbulCRAgQCAloHhT8uYSIECAQKWA4q2M3dIECBAgkBJQvCl5cwkQIECgUkDxVsZuaQIECBBICSjelLy5BAgQIFApoHgrY7c0AQIECKQEFG9K3lwCBAgQqBRQvJWxW5oAAQIEUgKKNyVvLgECBAhUCijeytgtTYAAAQIpAcWbkjeXAAECBCoFFG9l7JYmQIAAgZSA4k3Jm0uAAAEClQKKtzJ2SxMgQIBASkDxpuTNJUCAAIFKAcVbGbulCRAgQCAloHhT8uYSIECAQKWA4q2M3dIECBAgkBJQvCl5cwkQIECgUkDxVsZuaQIECBBICSjelLy5BAgQIFApoHgrY7c0AQIECKQEFG9K3lwCBAgQqBRQvJWxW5oAAQIEUgKKNyVvLgECBAhUCijeytgtTYAAAQIpAcWbkjeXAAECBCoFFG9l7JYmQIAAgZSA4k3Jm0uAAAEClQKKtzJ2SxMgQIBASkDxpuTNJUCAAIFKAcVbGbulCRAgQCAloHhT8uYSIECAQKWA4q2M3dIECBAgkBJQvCl5cwkQIECgUkDxVsZuaQIECBBICSjelLy5BAgQIFApoHgrY7c0AQIECKQEFG9K3lwCBAgQqBRQvJWxW5oAAQIEUgKKNyVvLgECBAhUCijeytgtTYAAAQIpAcWbkjeXAAECBCoFFG9l7JYmQIAAgZSA4k3Jm0uAAAEClQKKtzJ2SxMgQIBASkDxpuTNJUCAAIFKAcVbGbulCRAgQCAloHhT8uYSIECAQKWA4q2M3dIECBAgkBJQvCl5cwkQIECgUkDxVsZuaQIECBBICSjelLy5BAgQIFApoHgrY7c0AQIECKQEFG9K3lwCBAgQqBRQvJWxW5oAAQIEUgKKNyVvLgECBAhUCijeytgtTYAAAQIpAcWbkjeXAAECBCoFFG9l7JYmQIAAgZSA4k3Jm0uAAAEClQKKtzJ2SxMgQIBASqCqeF++PqWczSVAgAABAn8LbG+eUxLbLdj6qaXNJUCAAAECKQHFm5I3lwABAgQqBRRvZeyWJkCAAIGUgOJNyZtLgAABApUCircydksTIECAQEpA8abkzSVAgACBSgHFWxm7pQkQIEAgJaB4U/LmEiBAgEClgOKtjN3SBAgQIJASULwpeXMJECBAoFJA8VbGbmkCBAgQSAko3pS8uQQIECBQKaB4K2O3NAECBAikBBRvSt5cAgQIEKgUULyVsVuaAAECBFICijclby4BAgQIVAoo3srYLU2AAAECKQHFm5I3lwABAgQqBRRvZeyWJkCAAIGQwCfFG5I3lgABAgQKBR73TfEW5m5lAgQIEAgJKN4QvLEECBAg0CmgeDtztzUBAgQIhAQUbwjeWAIECBDoFFC8nbnbmgABAgRCAoo3BG8sAQIECHQKKN7O3G1NgAABAiEBxRuCN5YAAQIEOgUUb2futiZAgACBkIDiDcEbS4AAAQKdAoq3M3dbEyBAgEBIQPGG4I0lQIAAgU4BxduZu60JECBAICSgeEPwxhIgQIBAp4Di7czd1gQIECAQEvineJ9D440lQIAAAQJdAo/7059Ki6R1fXAbNgAAAABJRU5ErkJggg==" mediaID="Level_cst_Main"/><costume name="Alt" center-x="239.5" center-y="180" image="data:image/png;base64,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ECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC4usNECBAgACBsID4hsGNI0CAAAEC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" mediaID="Level_cst_Alt"/><costume name="Untitled" center-x="22" center-y="22.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAtCAYAAADV2ImkAAAAAXNSR0IArs4c6QAAAHhJREFUaEPt1sEJgDAMQNF0E8cQOrQHu4+j6N2DF0kg8FzA8vyNGXHsWzR6RpzzbnTecODsr0WY8EtAEpKQRHYDhAl/C5jD2YUQJmwOZzdAmLA/XXEDLl0xuF0iG5wwYWMtuwHChG1rxQ24dMXgDXeJNa9ipF+vewA8plXSwzKOMAAAAABJRU5ErkJggg==" mediaID="P1_cst_Untitled"/><costume name="Untitled" center-x="22" center-y="22.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAtCAYAAADV2ImkAAAAAXNSR0IArs4c6QAAAHhJREFUaEPt1sEJgDAMQNF0E8cQOrQHu4+j6N2DF0kg8FzA8vyNGXHsWzR6RpzzbnTecODsr0WY8EtAEpKQRHYDhAl/C5jD2YUQJmwOZzdAmLA/XXEDLl0xuF0iG5wwYWMtuwHChG1rxQ24dMXgDXeJNa9ipF+vewA8plXSwzKOMAAAAABJRU5ErkJggg==" mediaID="P2_cst_Untitled"/><costume name="Untitled" center-x="14" center-y="9" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAATCAYAAACDW21BAAAAAXNSR0IArs4c6QAAAkJJREFUSEu1lT1oVFEQhb/zNGBiVBAVCxHUUgwIxt0NaWMfC0t3n+sPCoKgIZWFxCpsk0ptNkYs7WwCFoIg5EcRsQiChVgEDShKojG7yR3z3tt97C77q3Gq9+6dmTNzZg5XAJPzNoRjPPjeEjM8PPZhLJXz+QmdDL41NWvDDm4BA1VgAmxL4KMkxnkrMK3JWbsPXImTix/AnvA/AO3QasJWMbrDFOKprZHVwxk7Y5ADToSFGAvyOATs6hArasRAAhkLJg5j7ET8wrjuJ5UPe5ics7NYCHrkb0DKMY2mIPF4o8C17KCWY9Lyc3ZVxh1gf4nz34gd7RZQRWXUUU80Ot5oG2n/lN5FzJbswSvr6XKMyhgBus1YUeCvNqmtQBSsbI6pF/jueVxK9+tJJQtxE4/e2oH1NcZkXC4dfjY42Gp3GlIJ93p6uXHuuAp1AYPD/LwdxZETDMdOQavBMrRQisG6YHspbsZ5ZLL9el85lrrFT722PlckhxiqnWF5CxvMtgh0AV/YIOMPaLrWryFb+TkbCDZXkCoH1UqzCZXjmYRG6xXVdDyxRhVptBKgCb0vcKT9lD52DNixRsUn58hkk3reSE6tFjCMq9WoQVHRrKrMxO0Lp3W3mXbbAqyn0ZBihVqLTDxzBTLZQS3+M2CQINToKmNSrNFvwN7gzowPzshcTOllM7DyHrTyie/raRRjA7jpJzXRTqK2KK1MNDVjfS56XZYRP4HdHmTTCX39L4Dh5s7ayCa1i+ZYQhzzEwre1LbsD4oAz/x3zGWKAAAAAElFTkSuQmCC" mediaID="P1 Gun Pointer_cst_Untitled"/><costume name="Gun" center-x="10" center-y="12.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAAAXNSR0IArs4c6QAAAF5JREFUSEtj/P//vwIDkYCRkfEBIaWM/////09IEUyekZGRkZDaUQPxh9AIDEMGBgZFqiYbQoaB5ElKh6MGYg2BAQ/D0eILM15IipQRWNoMmJfvE1OKgIsmRkaC5SEAZx5k+3jxkJ0AAAAASUVORK5CYII=" mediaID="P1 Gun_cst_Gun"/><costume name="Bullet" center-x="9.5" center-y="6" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAMCAYAAACA0IaCAAAAAXNSR0IArs4c6QAAACpJREFUOE9j/P///3wGKgHG/////6eSWQyjhpEekqNhNgjCLIF0N2DXAQCcsC7eF0JqhwAAAABJRU5ErkJggg==" mediaID="P1 Gun_cst_Bullet"/><costume name="Gun" center-x="10" center-y="12.5" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAYAAAAxFw7TAAAAAXNSR0IArs4c6QAAAF5JREFUSEtj/P//vwIDkYCRkfEBIaWM/////09IEUyekZGRkZDaUQPxh9AIDEMGBgZFqiYbQoaB5ElKh6MGYg2BAQ/D0eILM15IipQRWNoMmJfvE1OKgIsmRkaC5SEAZx5k+3jxkJ0AAAAASUVORK5CYII=" mediaID="P2 Gun_cst_Gun"/><costume name="Bullet" center-x="9.5" center-y="6" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAAMCAYAAACA0IaCAAAAAXNSR0IArs4c6QAAACpJREFUOE9j/P///3wGKgHG/////6eSWQyjhpEekqNhNgjCLIF0N2DXAQCcsC7eF0JqhwAAAABJRU5ErkJggg==" mediaID="P2 Gun_cst_Bullet"/><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADotJREFUeF7t1cEJADAMxLBk/6Fb6BD1R1ngQAS8M3PGESBAgAABAl8FVoC/ehsjQIAAAQJPQIA9AgECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBATYDxAgQIAAgUBAgAN0kwQIECBAQID9AAECBAgQCAQEOEA3SYAAAQIEBNgPECBAgACBQECAA3STBAgQIEBAgP0AAQIECBAIBAQ4QDdJgAABAgQE2A8QIECAAIFAQIADdJMECBAgQECA/QABAgQIEAgEBDhAN0mAAAECBC5oYGgQUTbVPQAAAABJRU5ErkJggg==" mediaID="Dark_cst_Untitled"/><costume name="Untitled" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3QmcXFWZ9/HfqU5ISLpuJZCkbjeriCi4gMskggvgiKLCuOGogzAqqCOjjuICsihuqKgwbvPihjrwMqCoM06QN1HcZRQ3REB5eQVkSd/KXrc6LEl3nTf3dnXodDpJL1V17zn3X58PHzG595zn+Z7TPF1V59xj4hCLXhKQgAQkIAEJdFXAqAB31VudSUACEpCABFIBFWBNBAlIQAISkEAGAirAGaCrSwlIQAISkIAKsOaABCQgAQlIIAMBFeAM0NWlBCQgAQlIQAVYc0ACEpCABCSQgYAKcAbo6lICEpCABCSgAqw5IAEJSEACEshAQAU4A3R1KQEJSEACElAB1hyQgAQkIAEJZCCgApwBurqUgAQkIAEJqABrDkhAAhKQgAQyEFABzgBdXUpAAhKQgARUgDUHJCABCUhAAhkIqABngK4uJSABCUhAAirAmgMSkIAEJCCBDARcLcCDQK9NzlOEuy1cZ6AXm/5ZrzH0tv6+N/3zkX/2zMBXXUpAAhKQgAQmFHC1AG+XjDF8pjzAv+xqjC2U1u9F79wSvcNz6G026e2B3qalt5QU89HinRTr0sj/Hy3eaVEfKfi9xtKLaf37SGE33Z5bxvAHazm82/2qPwlIQAISaJ+AFwU44TCGN5cHuLR9NJNryfYzb3CY3mHonWXpbSZFfRa9Pcm/J8V6fPFOCnmpVchHi3rrf9NrRwr87J31bmCzhT0mF52ukoAEJCCBvAp4U4DTIgzHlCN+klfsycZlD2OPOKZ3jya9Q82Rol5qvUPHcLSFQwycML49C5sMzJ9sP7pOAhKQgASyE/CqAAN3GsuR5RqrsyPtTs+NkMdjOd0aTm99x92djtWLBCQgAQm0RcCXAlwHKi2Ra4Nox3eHbdHKYSN3HcjcvR7i9JLhNGs5IochKiQJSMA/gbuBA/1Lq7sZ+VKAx6t9Moh4d3cps+9tsI/jmzZ9R/zy8dEY2GLZ+XfL2UevCCQgAQkUS8DXAgyW04IalxVrOEeyrS/mMaYnLcSnAXsX0UA5OyRg+INpcqc1vNShqIsbquUOWwJjeUyKYLkfwz7FBZl+5v4W4MSkyVHBav5n+jxu32nBNPo4PfmuGFjqdjaKvkACNwNPKlC+uU/VWFaaEis2N1m5V41b4n4W0eQPQH/ug89xgN4VYAO/s/CUxNzAn4fmcuTCu9mY4zHoSmgbqzzHlDjdWF7dlQ7ViQSmImAZxtAz5pYaUJ1KE7q2fQIW/rp1QeuKpOj2Nllhamwa33qjj5dZy7fa12vxWvKuALcK74N29MlXlu8ENV5WvKGdOOMH+9l/qMnplvRdcZ9cJJCBwH3AvmP6/ZmxnNEscYSxXJ5BPOpyRODHWFY0S6xcMMDvJoPS6OMSa3l767+7QxZmTeY+XTMi4GUB3mFwDRcGA5yrQd9eIA75R0YK8TNlI4GMBC4KIs4a7XvjEo4rlbgK2CujeIrU7QCwwlpW2DmsWHAPG6aTfCPkt6OfOk7n/iLfU4wCDJQMp/QOcEWRB3tnucf9PINmWohf66DPGmCxg3EXPeQIwxnBAN8ZD7F+CU+aNVKEDy06UtvzN9yQfLTctKys1PhlO9qPl3AUJX7RjraK1kZhCjAw1GN4+vwBflu0QZ5svoOLCYdnjSzaMnDAZO/L8rrWgRxZhqC+dyNg4AEL87ZdZvnPnmHOmL+W5B3YhK/BJVRtiassHCPgGQmstZaVGFb0NFnRu5rku/W2v+IqZ2P4aNsb9rzBIhTgW4AntMbxj+USTzereMDzcZ1xeo0qr8Kk3xX/7Ywb60wDzeSDjc40rVY7KHB2EPHxybbfCNMi/MrJXl+E6ybxPPjfJB8rJwuoggF+1i2Tesj3DLyg1d9twGHd6tvVfopQgJOxGYaRFZYGri5HvMrVAet23PWQvzHJNqaRR17msuAlx1El74T1ypGA4Q9sf2LXrcPwzwun8az2Rh+ftpa3jcnuRm2r226sY2BlsoBqSw8r9l7FvVnMhIeqHLQ5GfeRU+L0moRAUQrwdhRb/4N9QTniA5Pw0SUtAbs/Cxub0yKc/HNIzmCSjzIDdBBFzoalFY7hK+WFnGFuY/N0A4z7OAfLR8bc/1cc+Zpkujnv5r5kr/SKkmVFb43rO9THlJuNw3QdyVenfGNBbyhkAW69E35lOeIbBR33GaWd7P9LHnk55uOmbe1ZiM1IMezqq9nkpFIPp2B5cVc7Vme7EtiC5YygxpfbwRRXOQ2zXVsPAXPb0Xbe2zDwkDXpiuWVtsmKBav5S15jjsP0CYSva8W3Xivadz5ShS3AFh7osTy9t8Yf8zqR8x7X4BKeZEsj74q37bvOLuiLg4h31kPeYuAStB+xqyNh4F4L+43pNN3bW66RrMFo22tTlROahqu3W9TVttZz19CfjUlXLK8IIlaY5Nl+DryiKvP3TB4vCo92INxMQyxiAf6/ox+hWvhtEPF0A0OZjoLjnac/cHC6GfmeeHTBW1ezsnBvJWL/pNO4n8fSTIvw6IKQrsaizvhEEPGeTjlsCvmbYbgaeFSn+sio3aTArrCGlSVYUR7gTxnFMeNuWwfDXDfjhjxvoIgFeLshtZYrKjVO8Xycu5beppAXDY8s2nrJBJ129CPDUonn9a7i+6P9xn2cieVTXUt+Jx0ZWNGEQw0jvyB4/Nrp3t5255w80W1LMy3CT293291sz8KdSdFN9uaW92SFuZvkZ8SLV9zHhVje60UyHUqi8AU4cW1azl1Q48IOGRey2bifx7Ue7pG8Kx49q7mzFpYvBjXeNLaT1kMdknfDz+ls5xO2/jAwJ/kb3/YrT2dvb7v97cHMaWziate+9zdwvYUVw01WLlydrhr29hVX+TmGZ3ib4AwTUwFuAQ4bXrZwgqfyzNC38Lcnz4YdbJ3IZOGpnQSxsKESTfwIw4wfFJCs/t1jNHcDjzyrvJMg3Wt7Snt72x1WXOULGN44pt2fAs9udz8zaO++5EEYybvczZtZsfd6km1DhXht6OfJPc3JPVe6ECDjklQBHgWxbKSHI4NV/LmIE6EbOSfP+U1PZIK/H99fssDEtmOfseFlEz3eMOlvYx9PK9n0u+Ftz75uW7+7ABwynDLbcqSFM7rh3LE+xu3tNXDr0DT39rY7xnrIBw2cP6bd24HHtrufKbT3s9YCqpWViF9P4T7vLm1UeZs1fNq7xNqQkAow3A0c2LL8nyDiqDa4qoldCDxY5VFDJU63I+cUL2knljFcWR7g5F212Qh539azkruyD9zC9ZWI5ybxDPbzvOFhPm4MR7Qz50zaasPe3nbH3Qj5Zwuf29auYSOWBe3uZyftrU4+Vk7f6RpWBKtY26V+negmDrkGeHkr2LH/zXUi/k4FqQK8o+xlQcRpnQJXu9sLxFVe33rK1pFtsbFsKc+mYu7jwV2113qAfPJueOnodeleyzbvK21ajltQ4wdjY6mHXGDg/W3Jt/uNtHVvb7vDb4ScZEdWSM/4qW1b31EP29YT9HYS56+SBXbJvtxgNTe0Oxef2tu0iL7hWen33To4ZczAqgBPPMvfHUR80qcfgLzn0ujj2a13xDNekV4ynNo7MLlzZeMqH8FwTod8vh1E237r366L5LuxWcN8zBqe16G+Z9xst/b2zjjQcQ3EfTwLmxbhdp93vcHCyqTo9gyxYv5aVrU7dp/b21jllSWTnnKlV0tABXgnU8HCCZWIazVTuivwwL7ss2Uo/Z44+Xh67KHtUwnku0E0+SdiNUKOaVouGffRcLJQZkZP9LKwdHff/zVCzmjCx832z89NTqypTiXhLlzb0b297Y4/3odD7BBX7+7j/t0tiLPw++Qj5XSbUMSP2x1n0dqrh3zePLIWoqPbEl2wVQHe+Sit3voEmiMX1NJ9enplIDDYx8nJu+LpHElnYEk5IjkreNKvOOQTW7+qfdekb9j1hV8NIl4/mbbSXzq2pN8N7/K768m01YFrura3t92xr19IpWcOVxt4/hTa3oRlZbM0clD9wihdI6JXmwS2rr0wjTD9KPqJbWrS6WZUgHccvuRjpf7WH/8kiHQeadYzvF7l6cnqaezOv5tvWp5bMrxvdPtJ8lt2OeJ/TTX2eh/PN5aLxx2lliyoWTSltnp4bHA/yVPXJv3aGPKKEnwMOGj0pm6s0h7T15TP7Z10chleGId8HTh1FyHcmh5sUGJF7ypWZhhqIbpuhBy99ZdqfZqQnM4XhzrJbdysT1brnZT8mTWcXxngw4X4qXAgyYGQxXsmh0CY9CPqbUVqTOjbTsgx8MNyNL2zjJPtUIN9XDLuCLxJC1nLv1ZqvGPSN4y58NbD2GO/dXwMM737p9PnTu7JdG9vG/NIm4pDLgLWWnhVCZ6QrFhODjYws1gx1V+U2h1bEdurh5xv4INFzH1szirA28+A7R5YtHWf4yvKUbp8Xq+cCTRCXkHy8fQuFjHNthy0Z427pht6XOVETPpu+OAxbYz9hGSiph8uNTmgdzXJ97jTfiXvElrfDS+bdiOTuNEYbrJ2u21Rtw3DGdM5t3cS3WV+SVzlhHItPdhgS+bBFDyARh8rreW4IjOoAI+M/o5PCrT8wpS4uDzAt4s8QfKe+8Y+nmKSd8Ujz5+ePSbeH1vDVyoDXDGTHO7dlz2DIS428E+TaSfZX1yJuGAy107mmo1V3lsy2z8m1VruMIbHTOb+KV2Tw729U4pfFzsl0Do0Jfk+OH1caxFfRS/AKryezPp1exHMnsPpNHmnNfxp9OEX7Uqv0cfLsVxsxxyoYOFu88hDXJKuVq+bywGPavMD9deFHDZ75LvhE9uVz7h2cr23t0M5q9kcCMR9vAHLF3MQSiYhFLUAq/BmMt2602kj5NhyxI/a3VuyqnbWnPQj6QlXN1vDmZWB9FGXHXm1DqRPCvEjC8Km+LSnifb2DlnO2KvN5/Z2BECNeilQr3K5MbwmSc5AzeZvC17H3ItWgFV4OzaVitPwYJVXN01aaNO9uib5DsNyR1DjkE4rxP0sKlk+1tzFivApxHBREHHWFK7XpRJou8CGBSzomctNwAFtbzznDRalAKvw5nwiuhZeI2SxTT6SLrGuZ5ivNg1PDWpc1q08NlU5cdjwceDQafTp7N7eaeSqWxwQaM3n7zoQaltD9LoAT7iHUour2jqBit5Y8mCBrc91Tn7By+QV9/FRLGfvrHMLDxiYt+3vLf/ZM8wZ89cykEnA6lQCOxFo84NwnHD2sgCr8Dox9xRkmwSSB5WUDB+zcPTYJnf82Aev9va2iU/N5EigHpIccLHtgJQchdaRULwqwCq8HZkjatQRgcE+3tG06cfSY7djJdHfZgxvLg+QHFSvlwRyK1APWWrgV7kNsM2B+VKAmzscP6aPmts8VdScCwIPVTlos+HjFtYYaGDYu7yQM8xtbHYhfsUogTjknVCM0+hcL8AqvPp5lcAEAnYRZbOWhnAk4KJAHPJfwN+lsRvuwHbgwTM5gHG1AO9QeK3lhlKJT+nJVTmYVQpBAhKQwAwEHuxn/y3NdGvSwhk0k/tbXSvAE73jvcGo8OZ+oilACUhAAlMRqPfxGmO5fCr3uHatKwVYhde1maV4JSABCcxQIK7yBQxvbDWTfKVSnmGTubo97wV4x8JruMGgj5pzNYsUjAQkIIEOCNjD2KOxnuTAhsd1oPnMm8xrAVbhzXxqKAAJSEAC2QsMVnlu0/D97CNpfwR5K8AqvO0fY7UoAQlIwGmBRsgHLLzP6SQmCD4XBdiCNSPPtH/kZdHiKt9mm/KRgAQkME2BOExPODtmmrfn8rZcFOCxMsZyZ9Okh5r/ey7FFJQEJCABCXRdoFHlCdZwc+sAsq7334kOc1eAR5O0cJWxXBnU+O9OJK42JSABCUjALYGNVW4qGQ5PTgD1oRDntgCPmRb3AVeWmlzZuzpdDaeXBCQgAQkUUKARMmAh9CV1FwrwI9bJFiTLlcN7cOWCe9jgyyAoDwlIQAIS2LXAupDDZsOtPjm5VYDHyOsjap+moXKRgAQksGuBuMppGL7sk5OzBVgfUfs0DZWLBCQggd0U4JCvAK/3ycmHAqyPqH2akcpFAhKQwAQCcciffHsill8FWB9R6wdXAhKQgHcCmxbRNzyLVa3EtgCzfUjS2wI8OjjGEgOfKdc434cBUw4SkIAEiibQ6OPl1nKNb3l7VYANvAXDadby5LEDZeDx5YjbfBs85SMBCUigCAL1kE8ZONO3XL0pwNZwpoGTsBy1wyCVeFawip/7NnjKRwISkEARBOKQG4AjfcvVmwI80cAYeADDDbbJZ/RELd+mrvKRgASKIHDvvuxZGeIBH3P1tQB/O/m+4I4a1zwNki/s9ZKABCQgAQcFGlWeYw3XOxj6bkN2qgAn72gtzJvw3a5lpYVrmnO4Rk/J2u246wIJSEACTgg0+jjPWj7kRLBTDNKpArxDbsnHy3DNkOGavVdx7xRz1+USkIAEJJBzgTjke8ALch7mtMJzsQDfnBTdkuGa8kC6MVsvCUhAAhLwVCAO2QhUfEwvtwXYtM6baqHfCVyTFN5KxK99HAjlJAEJSEAC2wts7OMpJctvfXXJbQEGHrJwWQmuKUf8yNcBUF4SkIAEJDCxQD3kLQY+66tPbguwtdxQqfEMX+GVlwQkIAEJ7Fqg0cf/tpZ/8NUptwUYWBdELPIVXnlJQAISkMCuBeKQu4ADfXXKcwGm1CTsXU3NV3zlJQEJSEACEws8WOVRWwzJ+h9vX7kuwAaOKUf8xFt9JSYBCUhAAhMK1Ps42Viu8Jkn1wW4afinBQN8wecBUG4SkIAEJLCjQD3k8wbO8Nkm1wUYyyVBzb8TMHyeUMpNAhKQQDsE6lV+bwxHtKOtvLaR6wJs4bpKxAvziqe4JCABCUig/QIb92dhaTPr299yvlrMdQEG7gwiHp0vMkUjAQlIQAKdFKiHvMjA8k72kYe2816Aqc9i3n738WAesBSDBCQgAQl0XqBR5cPWcG7ne8q2h9wX4FIPT+69n5uyZVLvEpCABCTQLYFGyA8tHNut/rLqJ/cF2FpeXalxVVZA6lcCEpCABLorEIc8BMzpbq/d7y33BXjroQwXlCM+0H0a9SgBCUhAAt0WiJdwFCV+0e1+s+gv9wXYwlWViFdngaM+JSABCUiguwJxyLuAE4BnAj3d7b27veW+ABv4fTniKd1lUW8SkIAEJJCFQBzyWiwfxrBPFv13s8/cF2DgwSBiXjdR1JcEJCABCWQjYME0QtYBC7OJoHu9ulCAmW05aM9aeiqGXhKQgAQk4LlAo8ol1vB2z9PEiQJs4YWViOt8HwzlJwEJSEACMLgPRzSH+b3vFk4U4JLhHb0D/Kvvg6H8JCABCUhgRKAIe4GdKMBYvhDU+CdNTAlIQAISKIZAuhgLvupztk4U4K3nAv9467nA3j8VxeeJptwkIAEJTEUgWYwVh6wzHi/GcqIAA1EQ0TeVwdO1EpCABCTgtoDvi7FcKcDJduxFwf3p0nS9JCABCUigAAK+L8ZypwA3eUawmhsKMOeUogQkIAEJtAR8XozlTgG2nBbUuEyzUgISkIAEiiPg82IsdwowXBREnFWcaadMJSABCUjA58VYLhXg7wYRL9Z0lIAEJCCBYgn4uhjLpQJ8exDxuGJNO2UrAQlIQAK+LsZyqQBTjphtYEjTUQISkIAEiiXg42IspwqwgSeUI24t1rRTthKQgAQk4ONiLLcKsOGk8gDf0lSUgAQkIIFiCfi4GMupAozh3GCAC4s17ZStBCQgAQkkAr4txnKqAFu4vBJxqqaiBCQgAQkUT8C3xVhOFWDgxiBiWfGmnTKWgAQkIIH0XXDIDy1+HM7jWgGOg4iKpqEEJCABCRRTwKfFWK4VYLaU2H/vVdxbzKmnrCUgAQkUW8CnxVjOFeCS5bjeGj8o9hRU9hKQgASKK+DLYiznCrCFt1YiPlfcqafMJSABCRRbwJfFWC4W4M9VIt5a7Omn7CUgAQkUW8CHxVjOFWBj+H55gOcVe+opewlIQALFFvBhMZZzBdjCvZWI/Ys99ZS9BCQggWIL+LAYy7kCnEy5LZup7L2euNjTT9lLQAISKLaA64uxnCzAPbB0fsSviz31lL0EJCCBYgu4vhjLyQJsDadWBri82FNP2UtAAhKQgMuLsdwswJaPVGqcp6knAQlIQALFFnB5MZaTBRj4VhBxUrGnnbKXgAQkIAGXF2O5WoBvCSKeqKknAQlIQAIScHUxlqsFeCiImK1pJwEJSEACEnB1MZarBRhKPC5Yxe2aehKQgAQkIAEXF2O5W4AtLw5qfFfTTgISkIAEJODiYiznCrCFhw3cDHwziPiEpp0EJCABCUggWYzVCFkL7OWKhnMFuAX7y5LlvN4a17sCrTglIAEJSKCzAq4txnKyAFu4vhLx3M4OpVqXgAQkIAGXBFxbjOVkAZ5lOXJejV+6NDEUqwQkIAEJdF7ApcVYrhTgvwCPTobOGj5dGeDtnR9G9SABCUhAAq4JuLQYy5UCPDoHooeHOGTxWhquTQrFKwEJSEACnRdwaTGWWwXY8oagxpc7P4TqQQISkIAEXBVwZTGWMwXYGH5QHuA4VyeE4paABCQgge4IuLIYy5kCbC1HVrTwqjuzV71IQAIScFygHvIXAwdZ+IaBv89jOnkuwFp4lccZo5gkIAEJOCAQh6wBFgF3AwfmMeQ8F+BRLy28yuPMUUwSkIAEcipQ7+NkY7kip+FtCyv/BVgLr/I+hxSfBCQggVwJxCE/Bo7OVVATBJPrAqyFV3mfPopPAhKQQL4E4n6eSZOf5SuqiaPJdQHWwisXppBilIAEJJAfgTjk68Cp+Ylo55HkrQBr4ZULs0YxSkACEsihwLp+9pvd5J4chjZhSHkrwKNBRuVhHmPWMOgKpOKUgAQkIIFsBepVPmQM52UbxeR7z2cB1sKryY+grpSABCQggVQgDomAqiscuSvAWnjlytRRnBKQgATyIxBXOR3Dl/IT0e4jyV0B1sKr3Q+arpCABCQgge0F4pBfAUtdcslDAdbCK5dmjGKVgAQkkDOBwSUc1yyxMg3LsgXD7JyFOGE4mRdgY/i0tfwL0CgP06+FVy5MG8UoAQlIID8Cccg3gZPyE9HkIsm+AMNqC0ss3FOJOGByYesqCUhAAhKQAMT7cAjD3O6iReYFGHgImJvgzYJl8yJudBFSMUtAAhKQQPcF4pBPbv0E9Z3d73nmPeahAD+SheWSoMaZM09LLUhAAhKQgO8C9mDmNAZZDQQu5pqvAgwDQUS/i5CKWQISkIAEuivQqPJWa/hMd3ttX295K8DJCraXBDX+q30pqiUJSEACEvBRIA75I/AEV3PLXQG2cFUl4tWugipuCUhAAhLovEBc5e8w296s1YFK53ttbw+5K8BJesMPsXDhRja2N1W1JgEJSEACvgjEIcuBF7mcTy4LcNPw5gUDXOoyrGKXgAQkIIHOCGxYzBE9Pfy+M613r9VcFmADPy5HHNs9BvUkAQlIQAKuCDRCPm/hDFfi3VmcuSzAabAlDg1W8WfXgRW/BCQgAQm0T2Dj/iwsbU63Hs1qX6vZtJTbAmzgA+WIC7JhUa8SkIAEJJBHgTjkPcDH8xjbVGPKbQEGbg8iHjfVhHS9BCQgAQn4KxCH/D/g0T5kmOcCjIHnlCN+5AO0cpCABCQggZkJ1Ku8yhj+Y2at5OfuXBdgLF8MarwpP1yKRAISkIAEshKIQ64HnpNV/+3uN9cF2EIcRCw00Gx34mpPAhKQgATcEYiXcCQlbnAn4t1HmusCnIRvLSdXaly5+1R0hQQkIAEJ+CoQh1wGvM6n/HJfgIHvBhEv9glduUhAAhKQwOQFNi2if3gW90/+DjeudKEA0zPEPvPXssoNUkUpAQlIQALtFKiHXGDg/e1sMw9tOVGAMbwzGODiPIApBglIQAIS6K5AHKbvfr07qtaNAgy/DiKWdnfI1ZsEJCABCWQtEIfp977J97/evfJegIdGHzfWNDxtwQC/9W4ElJAEJCABCexUIA7Tlc9H+kiU9wI81vyTQcS7fRwE5SQBCUhAAjsKNKo8x5p072/ySrajlnxycqkA3xdE7OcTvnKRgAQkIIGdC9RDrjLwSl+NXCrAYDkxqKWHMOslAQlIQAIeC2xcwqNLpfS5z96+XCvAVwQ1TvF2NJSYBCQgAQmkAnGYnniUnHzk7cupAmxgqHeYhWYNg96OiBKTgAQkUHABC7MaYXrm70KfKZwqwOlAWN4Q1Piyz4Oi3CQgAQkUWWBr8T3Dwud9N3CuAFu4vhLxXN8HRvlJQAISKKpA3MdNWA73PX/nCnD6JniYQypruMP3wVF+EpCABIomUA95kWFksa2FTQbm+2rgZgGG91UiPuTroCgvCUhAAkUViEP+C/i7IuTvZAEGbgsiHl+EAVKOEpCABIoisL7KE2cZbi5Kvq4V4DpQSQZn2HD0wgF+WpSBUp4SkIAEfBdohHzGwlt9z3M0P9cK8LZxMfBv5Yh/LspAKU8JSEACPgus24tgjz2oWZjrc55jc3O2AAPrg4i9izJQylMCEpCAzwJxyDuBT/qc4/jcXC7AJM8ILUd8o0gDplwlIAEJ+CgQh9wOHOJjbjvLyekCvHWf2HeCGi8r0oApVwlIQAK+CWwMeUWJbW+m1gCLfctxonzcLsDJ2VRNwt7V1IowWMpRAhKQgI8C9T5WGstxPua2q5ycL8DW8vZKjU8XbeCUrwQkIAEfBOohSw38yodcppqD8wUY+GUQceRUE9f1EpCABCSQvUDcx5ewnJ59JN2PwOUCbCFZhwXDwzx54Rpu6j6fepSABCQggekKDC6h2iwRTfd+1+9zuQA/Ym/4WDDAe10fDMUvAQlIoEgC9ZDzDXywSDmPzdWPAgx3BxGPKuogKm8JSEACLgrUQ+4xsJ+LsbcjZl8KMCXDC3oH+D/tQFEbEpCABCTQWYF6yKkGvt7qHf3oAAAYM0lEQVTZXvLdujcFGPh6EPHafHMrOglIQAISSATikJ8Bzyyyhk8F+OHyLBaa+3iwyAOq3CUgAQnkXaARcrSFH+c9zk7H51MBTqxeH0R8tdNoal8CEpCABKYv0KhyhTWcPP0W/LjTqwJsLSsrNZ7vx9AoCwlIQAL+CTwYcuAWuMu/zKaekVcFOEm/aXn0ghp3Tp1Cd0hAAhKQQKcF4j4uxGrbaOLsXQHGck5Q46OdnkRqXwISkIAEpiZwAZTODNNn9y+a2p1+Xu1dATZwcznicD+HS1lJQAIScFeg0cebrOVSdzNob+Q+FeDBrYc596Y8TZ4RrOaG9lKpNQlIQAISmIlAI+Q3Fp46kzZ8utenArxtXAx8thzxNp8GSrlIQAIScFlgsI/jm5brWjk8BMx1OZ92xO5lAQbWBBFL2gGkNiQgAQlIYOYCcZVvY3jpzFvypwVfCzDGcFJ5gG/5M1TKRAISkICbAutCDpsNt7oZfeei9rYAA9cEEa/oHJ1aloAEJCCByQg0qlxiDW+fzLVFusbnAgwlFgerWFukAVWuEpCABPIkEFWZP8+kW4/m5ymuPMTidQE28JZyxOfzAK0YJCABCRRRoN7H243lkiLmvrucvS7AwM+DiGftDkF/LwEJSEACnRGIQ24DDu1M62636nsBxlieWK5xi9vDpOglIAEJuCcQ9/FSLN9OIrewwcBC97LoXMTeF2Br+UilxnmdI1TLEpCABCQwkUA95DoDx0tnYgHvCzDwlyDiYE0ACUhAAhLonsDGPp5asvymez2611MRCjDNJs9bsJrvuzc8ilgCEpCAmwJxlUsxvMnN6LsTdSEKMHBZEHFad0jViwQkIIFiC8T9LKKZbj0qFVti19kXpQBvuncv9nr8bWzWZJCABCQggc4KNEKOblreaAz/0Nme3G69KAWYkuHU3gEud3u4FL0EJCCB/AvEVV6P4XPAnvmPNrsIC1OAge8FES/Kjlo9S0ACEiiGwLp+9pvd5J5iZDv9LItUgJld4oA9V2lSTH+66E4JSEACkxPQ2b+7dypOAbZ8xxj+oxzxzd2z6AoJSEACEpiJQNzHR7GcPZM2fL+3MAXYwL0W3hdEfM33QVV+EpCABLIWaIQca+GHWceR5/4LU4CBNUHEkjwPhmKTgAQk4JNAHFIHAp9yamcuRSrAFwURZ7UTT21JQAISkMDOBRoh37RwkowmFihOAS5xaLCKP2siSEACEpBAdwQafbzRWr7Qnd7c66UoBXh5EHGie8OjiCUgAQm4K/BgyIFb4K5WBkPALHezaX/khSjAxvDy8sDIkVh6SUACEpBA9wQafdxkLYd3r0d3eipCAdZpSO7MR0UqAQl4JrAx5BMleJdnabUlHe8LsDGcVx7gI23RUiMSkIAEJDAlgY1LOK5UYuWUbirIxd4X4J4h9pm/llUFGU+lKQEJSCB3AvWQTQbm5S6wjAPyugAbw5XlAU7O2FjdS0ACEii0QFzlOxheUmiECZL3sQBvAuYnuTYtxy2o8QMNugQkIAEJZCdQDznDwOeziyCfPftYgFNpa7mpUuPJ+WRXVBKQgASKI1BfzMGmhztaGT8MzClO9jvP1NsCbCxvK9f4rAZZAhKQgASyF4hDbgEen30k+YnA1wL8cHmYRWYNg/mhViQSkIAEiisQV7kYwzuKK7Bj5l4WYAuXViLerIGWgAQkIIF8CNRDXmDge/mIJh9R+FqAl1UibswHsaKQgAQkIAELPYMhm6y+/902GXwswD8NIo7WdJeABCQggXwJxCH/DZyQr6iyi8a7AlyC1/ZGfD07UvUsAQlIQAITCTSqvNUaPiOdEQHfCvCaIGKJBlcCEpCABPInEPfzOJr8KX+RZRORbwX4oiDirGwo1asEJCABCexOIA7Tc9kfu7vrivD3fhXgEocGq9LB1UsCEpCABHIo0Aj5jIW35jC0rofkUwFeHkSc2HVBdSgBCUhAApMW2FTlhGGTLsYq/MubAjxsePnCAb5d+BEVgAQkIIEcC9iDmdMYJHlmf0+Ow+xKaL4U4L8EEQd3RUydSEACEpDAjATqIdcZOH5GjXhwsxcF2BjOKw/wEQ/GQylIQAIS8F6g3sc7jOVi7xPdTYJeFOCeIfaZv5ZVRR9M5S8BCUjABYH1VZ4wy/BHF2LtZIzOF2BruLIywMmdRFLbEpCABCTQXoE4TI8nLPRXh04WYAsPGJiXTIem5bgFNX7Q3qmh1iQgAQlIoJMC9ZB/MxT70BwnC/DopDDw+3LEUzo5SdS2BCQgAQm0XyDu5yU0+U77W3anRbcLsOVt5RqfdYdbkUpAAhKQQCIQVZk/zxT7zHaXC/DD5WEWmTXFHkD9KEtAAhJwVaDRx0prOc7V+Gcat7MF2MKllajY3x/MdPB1vwQkIIEsBeKQdwMXZRlDln27XICXVSJuzBJPfUtAAhKQwPQFBpdweLPETdNvwe07nSzABn5SjjjGbXpFLwEJSEAC9ZC7DBxYRAknCzDwuiDia0UcMOUsAQlIwCeBRpUvWMMbfcppsrm4WIDXBBFLJpugrpOABCQggfwKNEJOsvDN/EbYuchcLMAXBRFndY5ELUtAAhKQQLcE7F4EjT2od6u/PPXjXgEucWiwij/nCVGxSEACEpDA9AXikB8Cx06/BTfvdKoAW1heiTjRTWpFLQEJSEACEwlsrPLekuHCouk4VYCN4eXlAb5dtEFSvhKQgAR8FtjYx1NLlt/4nONEublUgP8SRMU+OaNok1P5SkACxRGIQ+4F9i1OxuBMATaG88oDfKRIg6NcJSABCRRFIA75CvD6ouSb5OlMAe4ZYp/5a1lVpMFRrhKQgASKIlCv8ipj+I+i5OtMAbaGKysDnFykgVGuEpCABIokUN+XvcwQ64qUc27fAVt4wMC8ZDCaluMW1PhBkQZGuUpAAhIomkAc8lPgWUXJO7cFeHQADPy+HPGUogyI8pSABCRQVIFGH+dZy4eKkn/+C7DlbeUany3KgChPCUhAAkUVqFdZZgy/LEr+eS/ADz88xOLFa2kUZUCUpwQkIIEiC8Rhuti2rwgGuS7AFi6tRLy5CAOhHCUgAQlIAOKQrwOnFsEi7wV4WSXixiIMhHKUgAQkIAEY7OPkpuWKIljkrgAbuMrCq4BaEBEWYRCUowQkIAEJjAg0qiyxhloRPHJXgMeh6+jBIsxC5SgBCUhgjEDcxy+wHOU7St4LcOL/riDiU74PhPKTgAQkIIERgXrIBQbe77uHCwWYkuGU3oFifCfg+4RTfhKQgAR2JxD3cxRNfrG761z/eycKcILcLPH8BatY6Tq44peABCQggd0LxCGrgcW7v9LdK/JdgA1/wHJ4wmstG3ssx/Su5g/ucityCUhAAhKYjECjyhXW+H0GQL4L8MgoDYzZlH17zxDHzl+b/pleEpCABCTgqUAc8o/A1zxNL03LhQKMgWELPWnA8NPeiOckf+bzwCg3CUhAAkUWWLOI/jmzuN9nAycK8AQDcE0Q8QqfB0a5SUACEii6QBzyK2Cprw6uFuDknfDnyxFv8XVglJcEJCCBogvUq3zYGM711cHZAtz6OPr95YgP+jo4yksCEpBAkQUafTzbWn7iq4HTBTgZlKbhzQsGuNTXAVJeEpCABIosUA9Zb2ChjwbOF+B0UAwvCwb4jo8DpJwkIAEJFFVgwwIWzJrLn4CwaVlpDM/zycLdAmy5AdN6VqhlCz0cG6zy/8kpPk0+5SIBCUhgZwLxPhxih7i6ZDiiObIDxruXuwV4ZCj+H3Bwa1Tu22OYY+euSf9MLwlIQAIScFRgfT/PnNXkaqDf0RQmFbbrBThJMgaC5F8s/G5oM8fuvT79M70kIAEJSMAxgbiPl2L5BjDLsdCnHK4PBXh80tcFES+csoRukIAEJCCBTAUafbzJ2u0W1W57g5VpYB3q3LsC3DRcaC1fWhhxd4fM1KwEJCABCbRZoBFyvmW7baVjv2Jsc2/5aM67Atz6KPoDlYgL8kGsKCQgAQlIYFcC9ZDPGsY8WMlwA7a1yNZjOhVgjwdXqUlAAhLIu0A95GoDf5/3ODsRnwpwJ1TVpgQkIAEJ7FKgEaZn/V5t4diiUqkAF3XklbcEJCCBjAQaIY9vFd/kfwv7UgEu7NArcQlIQALdF2iEHGtJ9/gm74AL/VIBLvTwK3kJSEAC3RPYWOWVJcNV3esx3z2pAOd7fBSdBCSQQ4E45CJjWF4e4Kc5DC+XITVC3mLhs2OCWwfsnctguxSUCnCXoNWNBCTgtsD6hVRmz0kXDQ0AzwYOAgaSQmybXFuusdzAsNtZdib6RsgHLZw/pvXkgIVDO9ObO62qALszVopUAhKYpsCGkANnwdImLKtEvHOqzdQXczA9fMPAk3dx70PAcuBaSiwPVrF2qv34eH1c5VIMb/Ixt5nmpAI8U0HdLwEJ5ErAHsjcwYdYZmEpsMzAUgv7tYKsBxELphJwvIQjKaXPJt53KvdZuL7HsHx4iGsra7hjKvf6cO1vYPYhVa7G8FIf8ulEDirAnVBVmxKQQNcE4n4ea5ssK7Xe4Rp42q46N3BP03BeZYDLdxdkXOXFmHTF7pzdXburv08OiinB8uSf+RG/nklbLty7aRH9wz18A8MzXIg3qxhVgLOSV78SkMCUBTYcyILZm1maFNzRd7iT3M6SfDw8N+nQQK0cEe6u87jK6Ri+NOa6BlDe3X2T+Ps7LVzbU2J57ypWTuJ6py4Z3Icjmk2+geUxTgWeQbAqwBmgq0sJSGByAoNLOHyoZ+TdLZZlwBMmd+cjVw03OWJWia/aR76/fU8Q8YldtRNXeS+GC8dcc2dr0dVUu0+uT86TL+3kxg3Wcm3yzrgXlpsam6bTQV7uGezneWnxhUpeYspzHCrAeR4dxSaBAgkMLiZsllrf25ZY2rTp97fteMc5VnGwbAl3VejiKhdjeMeYm36VfJfcpaFY3jRcu0eJ5fPu574u9dmWbup9vMbY7T7WT1aE97SlcU8bUQFu88Amzze1lmU9JaJGkz+Fjv9G22aeSTe3cX8W8jBPXVDjB5O+SRc6JVCvjvneNim83fnI8hNBxHt2BhVXuRzDa3IBaflFE66dlbw7rvHHXMS0kyDiPs7E8qkxf51s1erLc8x5iE0FuE2jYA9mTjzI2SU4y8JvjeFB2+QwazinEvHvbeqmEM3EIe8CzgNuMnBz8h1fOeLVhUje0yRHtwGNW5m8R7fTnQ2P2nOCs8LH7PF9frdjmmR/tyVbnIzh2rw9/CMO+Rhw1mgexvAHazl8knkV+jIV4DYMf+u3v2QCLtlJc/9tLOeUa9zShu68baJe5R+MSQvvRBv0vxZEvM7b5D1KLNkGtPEhlvVMvA0oy0wnnEOT3OObZdzj+x7Ajuw3zvrhH3HIZaCfy+lODhXg6coBrVWSZwOPnqCZNeNXZ1r4QCXighl06eWtjZBjkne8Fv52VwlauLQS8WYvERxOaqrbgLJKNfmFYPwWoAeWcOTQNPb4djmHZGHW/In6NPBgsqI6fQBIiWu79fCPVf3Mm99MH0zyoi5beNWdCvA0hrNR5ZVNONsYjpjq7QZusZZzgxrfneq9vl0f78MhDKfveE8Zl9vOnxFruSSocaZvFq7ks2EBC2bPm9Y2oKxTvDaIOGFsEO3a45t1YmP7Tx7+gWE5HXz4R/J1Qs/IaUbJg070moGACvAU8OohL2x9x5s8B3bsazoLDv591izOmXcf908hBC8uXb2Y3rk96XNhd7oYZpeJGj4aDHCOFxg5T2LsNiBj0ydKPTHnIY8NbzOQfs9s4YRKlL5TTF8d3OObGx4Dvx1dxNWuh3/UQ5aakeJ7YG4SdTgQFeBJDF7cx7Ow6SKD8R+3DAK9k2hi9JL62P1xFh7Ack6lxqen0IbTl9ar/Evre95FM0nEwPvKER+aSRu6d3uB1YsJ547ZBmRt+g4n8MDpxiB6ZBtRm/f4usIz44d/xFVOMCY9jGKeK0nnPU4V4F2M0IbFHFHq4SwDr+rwQP4cwznBAD/rcD+ZNb8x5BWlkZXNT2pjELt9oEIb+/KuqYy2AWXh+Log4mutd75Z7vHtZu67fPhH8p1x03JtZZIP/4jDdKFVsuBq9LXtyWLdTMq3vlSAJxjRh6octBnOxvCGbg64MXx6U5Nzfdo7HPfzDJpp4T2+E5bW8rZKbbszRjvRjfNtPtjHAUN2hwMKur4NKAPIu4IoPTYw+dg5P3t8M4DYRZe7fPhHHKaf/iVbjdKXhXsM7J+vFNyMRgV4zLglD9FIF1eR4SIfy/0+7B3eWOVRpZEtRa8f96MRt/1jTcsbghpfdvNHsP1Rj90GlJwElBzBZx45Daj9Hea7xfcMPcwXW+f45nWPb34ELb9I3h2X4Nrk4R9xmD5cY+yix99s/ftdHnaRn2TyH4kKcPIb3cjxZclveclDNPbMybA5uXc4eSDJYIPz7Ejx7djLwI8sHLvtt3LDKZUBruhYhzlu2JVtQBkQDs6xHLXZ8DULT8mgf7e7tNQxeqZzJwex8AV4Eg/R6KT/dm1b+KuBA8b+oUt7h+shZ5iR73m79Qi6XwJPH/UyhpPKA3yrawOWQUej24CGmyPn3LaeUbw4g1By36W1XFkyPGvMWcC5jzlPAZqRj5v16qBAYQtwXOUNmPRd70QP0egg+bSavoUc7x2Ol/ASU0ofpPHUaWU3g5uM4SZrH9mPPX67yQyazsWtyTagZk/rgAL3tgFlbbhtG1LWgbjWf7JDw8CtW5+29Teuxe5SvIUrwPVquqL5rOk8RCMHA5urvcOtPYHJO94TM7a5HXhsK4ahpuX4BTWuzzimKXc/dhuQLbE02Xfb9u/LpxyVFze06xxfLzCURH4EClOAN4W8cDhZ2QzPGsc/nYdodG0ELcRmzF7MPOwdXrcP+84e4jwMbxoHkeXWhL/S+vjewqBp8vxgNTd0baCm0VGBtgFNQ6dtt8zkHN+2BaGGJDCRgPcFuI0P0cjVDDLwM2s4t5t7hy2UBsP0o+bkKVazcgUCGKhZqLbiWtM0HL9ggN/lIc5kG9DDtnWw/MjZssm72yJsA8qSv5vn+GaZp/p2VMDbAtzTw3/a4XRVc6cfopHp0Hdr73Dy6D5rOD/v+//GfmJg4d4hOH7viOQot6690lX1D7M0ORda24C6xG5pYih1qTd1I4G2CPhagH9nirTtoIN7h1sf3SfveLetNm7LzOtsI488A9hyxx7w/D1r3NWpLke3ASXvalsrk7VwpVPYalcCHgl4WYA9Gp+pptK2vcMb+nlyz8gTrF42NojkXaWDD3W4uWeI4+evJfm+f0av8duAkoJrd34O9Iz60s0SkIDfAirAjo9vu/cODy6hOlziPANvGUczDPQ4zHVjcw+OX3APG6aSw4YlHN7T2gbEyKpkl04DmkqqulYCEuiygApwl8G72N2U9w4np8QkJxX5etqJgZ/0zuV4czfJau0dXqPbgNLvbUss0zagLs5WdSWBAgqoAPs/6LvdOxyH/CMjT7A62HcOAyvK0cjBEMk2oDHf2y7D8Bjf81d+EpBAfgRUgPMzFm2LZLJ7hwf7Oa7ZTLcUjd8b3bZY8tiQgXUWytoGlMfRUUwSKI6ACnBxxjrJND132FjWN0m3FL1yXPoREBaLRNlKQAISyEZABTgbd/WapYDlDn3cnOUAqG8JSCARUAHWPJCABCQgAQlkIKACnAF6pl1avohhLnBqpnGocwlIQAIFF1ABLvgEUPoSkIAEJJCNgApwNu7qVQISkIAECi6gAlzwCaD0JSABCUggGwEV4Gzc1asEJCABCRRcQAW44BNA6UtAAhKQQDYCKsDZuKtXCUhAAhIouIAKcMEngNKXgAQkIIFsBFSAs3FXrxKQgAQkUHABFeCCTwClLwEJSEAC2QioAGfjrl4lIAEJSKDgAirABZ8ASl8CEpCABLIRUAHOxl29SkACEpBAwQVUgAs+AZS+BCQgAQlkI6ACnI27epWABCQggYILqAAXfAIofQlIQAISyEZABTgbd/UqAQlIQAIFF1ABLvgEUPoSkIAEJJCNgApwNu7qVQISkIAECi6gAlzwCaD0JSABCUggGwEV4Gzc1asEJCABCRRcQAW44BNA6UtAAhKQQDYCKsDZuKtXCUhAAhIouIAKcMEngNKXgAQkIIFsBFSAs3FXrxKQgAQkUHABFeCCTwClLwEJSEAC2QioAGfjrl4lIAEJSKDgAirABZ8ASl8CEpCABLIRUAHOxl29SkACEpBAwQVUgAs+AZS+BCQgAQlkI/D/AaUBk/LODU4zAAAAAElFTkSuQmCC" mediaID="Game Over Edges_cst_Untitled"/><costume name="Trophy" center-x="40.5" center-y="35" image="data:image/png;base64,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" mediaID="Game Over Icon_cst_Trophy"/><costume name="Broken Heart" center-x="35" center-y="32" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABACAYAAACndwGZAAAAAXNSR0IArs4c6QAACf9JREFUeF7Vm3uMXFUdxz9ndufe2S5tob4KpUFEi0hIAaEaqTRapBGtLQ+FmlKqsQXbSApFllRttRi1qMhDTWsbCTRYq9Qg1gbkpenDCCQIqRJRQo1iilroe+bOduZ4f3vObIfpfZx7Z3Y3nr929v5e53t+5/X7/Y4iR9Mwpgyju2BsDcZ0wXjgOCvqYA12d8H+GuzrgQMK9udQ48yiYRRQOgRFBV3CqKHWC4eBQwrqzsIsoXJl0OAdgQ/U4DwFU4BJwOQU/ueAFzU81QXPdMMOBVVXnUl0FZik4GzgDOAU4G3A8QpKwJFw8G73YWNeXU7ABHAZsFLDWxS8CTsqGZTWNOxR8B9guQ+/yMD7BtJ+uLAON9pBGQeMaZG1SUNfCV7Kq0P4YoHRoMowoQvuAC5vR0kE76YaLOmBV9SA1yc3Dd0VmFCAbwJzoqgVvAr0eXBvmrzGd20HWEGtlScWmCrM07AcOM1VUUa6lxSs9OC+JL7d0Hs8LFBwM3BiFK2GtT70KXjd1YYqLNBwo4Y1e2HteDjUzBsJTADLgFuA0a6KctIdCBfNb/nwjTj+AB4ALgF6ImhesNPmV676A7MmrQJmWp4ysMWHKxKBqcASBd9zVdQJOg03lMyUHWwaSv3wAw2fjdGxyjeD59wC6JOBiGG4x4NFCiry/Q0eU4UpGv7grKmDhLLTefB0Q2QZlhfga60qNGzvgr4ibHdV3w8X1GCVgguSeOqwogdWRgGzTacwuxqTlU7Bdg+mCl8VJmvY1nQ2aojr8+G2LLID4yHiKS7toIKpHjw36DEV+LgC57nqoiUrjYaZJdhchfs0XN3EL3YJKC+4yqzATGXWEllTnJuC9R7MGwQmgJ/EbYXOUtsn3ODB4iq8ZkW9LruRB+tcRWs4ITDTZoErTyudB+MGgamaY/vo1ENFXm0OfAoO1OHKcL3ZAtzbD33HmfOJU6vCNbLjaHMKzt3Ck/olKjDblMzbU3NL6iBjNyw6Av/2YZOr2AqcZqdNRw6iCm4Y8JgAHgEudjVkqOjkmFCEL0adRON0VkwnZC0ptmuXzBYBROwYAKYKZ2t4tl3BbfA/XYe+HnjSVUYVzrfT5kOuPHF0DUAa3+uwrHnxlVtv26jnMPIrPnw9C18At4Y36C9n4clCW4CLB4Epw/0F+HQWAW3SPqLMpU9CE06tAjPstEkLdzjJEyIBoGXDOezBSc3ATC/AY84S8xNK4Ei24B+6itDQG8BtCha58uSlU7DOM5fWo60Cjyq4KK9QB74NNegbBf9woB0gCUyYQRbXia48bdAFdTijB15uvSudr+FB4KQ2hCexOq8nh2FilwEkMv7Srn2tC66dVosbnnxM2CGAuWEMZr0QRh32nEJ+yVZP9uH5JJIKLLZrSW+7AETxR6wr0tfv++aocOztuiGkCqs1XDsURgEP+/DRKNn28iheMmOIdA8Mdsvg9ofh2rs9WNqsM9IBKnCtgtVDZNxcH+5vlV2GeYUMYUkX26I8o4XvL3X4bg+sbZUXCYyGcf0wtw4LgTOjkIyao0nGSky2BnPiDnEHYXwRfguc7tLpdmkkrqPgujBytzNuusXqOGyC4buAbrvmaGU9MSswGtaVUm68VThHw+8cQ6qJJjR/1DBot+3s38NY8zuS8k2pa2kFlir4jhW4B5M+iZqrLoO40ocVKQvvxxRsdhHmSlM3eS0JfvnAPg1XlFLObKnAvAZje+HhcNF8f8soxOdeEiwW9/VgTVKnqvA5ify7djyJzu6suxS83dLd6pvsR2JLBUa4yyCn4kcl19RgyDqVmq0IL6yzSvBQkmWBMf6YmG/ceuAYR9rhO4ZunYARYwL4MfAZ+VvSrJKyTUM94fthBdM8eCZlWq1WDseGqEFq/Z+G3QWYmaazYY8zMHISLcDvFUwA+jtwE//bEZjWC/9K8ZxfAp9wGYSG10R1KtwVP+9lOII4AyOGVeALCu5yMdKFRsNWH6YlpWmlkqFqdqrzXGTG0Dzgwyez8GcCRnK9VZPPeV8WJSm0G324KmVKvVMZcDLf4TTs8uEilTHJnwkYMb4fptZhaweBGQgleqaCIbbZKgc5AGa1ebYPMh0ztaxKBoRXwGlRzGKJhptL8O2U9eZK4Keucu0d6HpX+ma6XMCU4ZSCmVKyEHeyRd6jmhXY4PftDkr/XIEPjj2ao3JgOUqSCxhhr8JCKaHIpM2BuA4fjrtPuYKi4CAw3YOnHFRGkuQG5qtQuAWeVHBhXuVRfHLZLMLpYW5nX/P3wEyzmxJ0/RM42X5f5psio9wtNzCisQxTCyZrKHU0UnjTicDSHD9iHanA9QrujOnp4LkqTMo/5sFHciNiGdsCxk6pOzXkWuAijL/UN6HVyBaYqioJZLU2Sf14GsRrppfgxREHRurj+uEVDW9tw5jA3p8kI5rYArgHmN9EJKWqBfmtYH6WGrwkRW17jPWa+drcpfLI21uA2UVzgEsDRbZq2bKj2nof5qXJcP2epyPHyJaysAA2K5juqtjS7VYw23Oo4grMFJsVJT+Mr+z0pUIhQ1omzc6OAGO9RgJBf0xT2PT9ZUBOpYkZAwE9zK0LKLEBcg0zSvCbDLpTSTsGjGhy2FIbBkm15ey0RdIWAT2YciTIXKSYikrONSFW7iE4sRueCI/t705Q/mwNZqVlI60s8RQpz49sYdZ0WwUuHQP/delsFpqOeoz1GskcStmaNDmBNh5fyO8dHsy2pfOxdpbh1IK5+J2V0pmz4qL8WUCIou04MKKkAltUS1ItnA5PFA0oUvQc2wJ4D2ZNeVcCWV2qukvxB752ccm1vaYqPQBnhqdPuWSOtcS/tp5yJIm5Cudq4ymNo30c+UMeXBWWkUhV95C0IfEYO6WkGOhL4XTY1FqOHtUTW6QsC+2bU3q6xzNPchqVnf9fwOyBMaPNI4olaZbbLIRMn+b1qJmtkc+qdME13fCzNJntfh8yj3E1zBZeCygDL9MiWoBJlEmSb00JrnOV3Q7diAJjS2l/ntKBRibkTx5MCaux5DnfkLcRA6a5Dsehl/sLcFkRHneg7QjJiABjH1H9yLUHBVhRtK9CXHnapRt2YLLmphQ8/irMnDiEW3MUiMMKTEvlROqgKpDdSGK3ziWvqUIdCYYVmDJsLMCnHG2T0+dCr0NVD646G3TDCkxYPHRyFf4qj8fTDK3DhhLM79Q77TR9rd+HFRhRLk9t6vHvEgfss5mCc0OPSUz4Z+1sFvphB2YvnNBjtt1zrKES3JIX940mJSaXy0u3LB3pNO2wAyMdsG8CpEpLvGN/HeQt4kDCXsMdPtyU5WlOp0Gxdg2F2HSZgXmIfrWMTFM11PMevFdB4i08XXr7FCPiMdZrJN6yVR19prevBjNGOQTG2+92uoQRA8aCs7QLdtahpwCTihmfDqd3Lz/F/wCk205g78RfwgAAAABJRU5ErkJggg==" mediaID="Game Over Icon_cst_Broken Heart"/><costume name="Untitled" center-x="42" center-y="42" image="data:image/png;base64,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" mediaID="Retry_cst_Untitled"/><costume name="Online Shooter Thumbnail" center-x="240" center-y="180" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAIABJREFUeF7tfWnQHsV1boOQWAWWbBML24AWIIn3gAEDxthgME4cO3Fc5crFTjl2FkzsOKmUy3WTe3/dzVscL/l1iZ2kXEVccQzEZovNdkFgsjisRkgCAQKBkPRpBwlhuHVeaT73N+/MnKdnenq6p5+pegvx9XlPn/Oc0/28p7tn5qAvfOELLxljzEsvTf7TeMUmg9iN2BxSTxngOvsQu2OTCYkj4nvO9iC+h5ZB+htrXBHfc5dB/B9bfhxUEDDifGgZpL9UA1IQcZP9iG8hZcYcj5A4jrUv5kd6RUzIXGR+TOfHLAEjgSCAfgaYXQV3qYBzjkds+YrEIrQM0l9sOPqyB/E9dxnEf1/xiE0P4nsImTkVMNJhbED6sgfx3acMQsJIf778j00P4nvuMoj/scXVlz2I77nLIP77ikdsehDfQ8tU9edUASMgh5RBAETsCanHJt6mfhG7Y5MJiSPie872IL6HlkH6G2tcEd9zl0H8H1t+cA/4ACOGDmxBxNwDLv8k2f//oeOB9EeZ6lihqzkxxhWJKWo3oitnGQRHBJ8U9dTZ7FQBp+i4r4AivqMyyITly27qad6394UPGnukP18yiE1IXynqQWzOXQbxn/nh59xPHY7cA7bYEEk2XzIICXOA9Jv8aAyQ1YohZJgfzA9tTUKbr7R2NK9j04OMjdAyVf05VcAIyCFlEAARe0LqKQ+YOvsQu2OTCYkj4nvO9iC+h5ZB+htrXBHfc5dB/B9bfnAP+AAjhg4s8ssSsSmkTI4DJPUqmfmR7xZEyNgjfXH+4H3AtSs2SAL5kkEmdaSvnBM6NnyQWISWQfqLDUdf9iC+5y6D+O8rHrHpQXwPIcM9YIsNkSTxJYOQMJIAiD0p6kFszl0G8Z/5ke8+MfMjrthXxYN7wOAStK+JrFyCcw+4elFCw1trR5b4kQkqVT2obwiOvmQQm5C+UtSD2Jy7DOL/2PKDe8AgAfueiBF9SLKFlMlxgKArFUg8xy7D/Iir4go5NyB9MT+4B1xdboEPfkCSDJFBJnVUjyantaOkQD3pTa6c8NKLGTLOfMkwP4bPD+4BW2zoK7ERPQgJc4AMP0DQOKE/ZJCYojKIHJqLmpzWjvrvSw/ie+4yiP++4hGbHsT30DJV/XEPGFyC9pVg5RKce8DVixIa3lp7aEKIzZ7Qk0ts/sdmT4zxQDAKKYNghNiTkh7uAYME7HtCR/QhyRZSJqXERvCNuboNGVdffTE/uGJT/XP653/Vck1rR8d1bHrqxoZTBcwB5meAIRN/bAlEe/zEHsHRlwzHa3ox8xV7RA/zY/j84B6wxYZI0vqSQUiYA2T4AYLGCf1ljsQUlUHkkHxNUQ9ic+4yiP/Mj3BzTFU8nCpgJFghZUIn2H///vfNoy9/ufl/p5wy+W/VhfiPTOqInthkQsdDW+7K2R7E99AySH9ITqeoB7E5dxnE/7HlB/eAD8ziWmBP2LzZfPSOO2bn/Doi1vSUSaNJHtEVUibHAYL8WKLMzxHQ8lFrR1cSYtODjI3cZRD/Y4urL3vqfHeqgHMG8CMrV5oTt2yZKrqEiG895RTz2IGKGA2YNtGgejQ5rV2zA21H5cZqDzI2Qssg/TEe4ZYgEaxDyjA/ho8994AtSq1L/nL1W7X0aRMxMojQqknTpbWnSozI5JC7DOI/82P4SRYd6+hYReKO6mJ+hMuPqrg5VcBIsELKIImI2KPpqat+a4n45JNr94jL36mzD7E7NhkNR6Q994kDiSmKI6IrpAxiN2JPinoQm3OXQfwfW35wD/jAjN+l+u1CxE0JhSRbSJkcB8hQ1UvIuPrqi/kRrpryFbOQepgffBZ0FVdO/laXiB9dudKcULH3W6uoouGWk082t558cuVXulTAOSc0MnGExAfpK7QM0l9sOPqyB/E9dxnEf1/xiE0P4nsIGe4BW7RYThJk79cHEXepgmNLbF/2hEj+1KtbBCNf8YhND+J77jKI/7HF1Zc9iO+hZar64x7wgVm4KvA+qt8qgr7lpJMmJ6ebEgBJxNhkkIRGbKYe/WcdgmNsMjnHFfE9dxnEfySnU9LDPeAaAvZd/dYRsSxP111IsoWUSSmxC0wRfBC/KKPvbyIY+YpHbHoQ33OXQfyPLa6+7Knz3akCzgnAvqpflIh9BZ56monDFz7I2Agtg/Tny//Y9CC+5y6D+B9bXH3Zg/geQoZ7wBYjFsGVQ1dCwKEvWZouV8RawmntaCUYm54QyW/HF/E/NhkEI8TmFPUgNucug/jP/NBXdhCMEJmqeDhVwEgnIWX6SrCQ1W9dRXzzSSep/B8Sa6SvvuJRBQTtCTdxIFgjMjnnB+J77jKI/2PLM+4BH5jdh65+q0hGSFiq4qYLSUhfMjkOkNSrZF+xR/QwP9L7UYTE1ZcM84P3AddyWZFkQ1e/dUT86OLFlU/X0gaH1p7qEnVsfiGTS2gZpL/YcPRlD+J77jKI/77iEZsexPcQMtwDthjveHnj0QB7v+pa8wEBIWGpiu1XIcaW2L7sCZH8qVe3CEa+4hGbHsT33GUQ/2OLqy97EN9Dy1T1xz1gawk6xuq3ipwLIl63eLHK3UhC+5JBEhrpi3rUsNY+uS3mHxU5xxXxPXcZxP+xzR/cAz4wY8Ve/XYhYiRpEZkcB0jMhIbELKQM84N7wNpPRy0ftfZCvyantYfWUzc2nCrgMQ+wj9x+e+dnPmvJ11e7VMJyWKuqIo4tEcdqDzI2Qssg/TEe+ZIm82P42HMP+AAr/sXVV/fFj8H0CgFP9ogrlqa1iVZrj+UXYxlMxO6xynACHX4CjXmFhPkRV35UxcOpAo5tIvOVYOeuWmXOfeihYETZd0cTIl6xYnJYK2TMfMWDevQMCRlXX33lHFfE99xlEP+RXExJD/eAjTFjqH6rpuyCiH0d1kopsdGK3UUOGfw5yzA/4qq4YstF5gfvA57iqbFVv22JWBusWjtKZGPVg0wuoWWQ/hiPfEmT+TF87LPfAx5r9Vu3iHnTihWT5ek2e6khByzSV+4yiP8k2OEnWXusIfHwJcP8iCv2VfHIeg84h+oXIWIO+O57rgiGISdEpK/QMkh/seHoyx7E99xlEP99xSMWPVnvAedW/VbRTFERx5KQ6FI2KufLL2RyyF0G8d9XPGLTg/ieuwzif2xx9WVPne9OFfCYAMy5+q0k4uXLjZBx3eUrEceqBxkboWWQ/hiPuJYpkXj4kmF+DB/7bPeAWf1WU+1NHYkYmRyQgU8ZfXJAMPIVj9j0IL7nLoP4H1tcfdmD+B5apqo/pwoYASekDAJglT2sfmsL3dmGMhEjcW0bjyprtP609tBL1LHZg8QitAzSX2w4+rIH8T13GcR/X/GIRU+We8CsfnUCLiRciTiWxEYJ2EUO8S1nmRwnUHsk5Rx7xHfmB+8DNqx+cfK1JW+Upenly9UvawNRa0cJMTY9yOQSWgbpLzYcfdmD+J67DOK/r3jEpgfxPYRMdnvArH5VDm0U0IjY10ALkfypVy8IRr7iEZsexPfcZRD/Y4urL3sQ30PLVPWX1R4wq99u5Gt/e92iRUbIuPyYS20Aae2pVsCx+RV6conN/9jsiTEeCEYhZRCMEHtS0pPVHjCrX38EXGgqE/HYBkjqVTISD18yKU186A89FzlfOI5VD/Mj4z1geduRVMC8+kGgIOJHFi1q7ACZXFIcqIjNoWWQ/hgP/XYvBKMUZZgfw8c+mz3gP7/qqn6Yh1rnICAELIe1fBBxipNaSJs5gQ4/gca8QsL8iCs/st0DZvUb/ldCHREjBJXzxOELHwTD0DJIf778j00P4nvuMoj/scW1qz1Z7AFfcvvt5oTNm8OzUOY9yrL0/z3ttEoUtMTV2tG9OV96kMkhdxnEf1/xiE0P4nvuMoj/scXVlz11vjudgk4RwOM3bTIfWbkycyocxv3LTzttainaV0LHpgcZG6FlkP5iw9GXPYjvucsg/vuKR2x6EN9DyIx+D5jV7zDk21T9hkhs22tk8Kcog+CI+JWiHsTm3GUQ/5kf4faJq+LhVAEjwQopoyXY8Zs3m4/cfvswDJR5r1XVrxYvF9JE8gzpb6x6EN9DyyD9MR7hCAHBOqRMjvkx6j1gVr/D/ArQqt8UBxpic+4yiP/IhJ6iHsTm3GUQ/3PLD6cKOCUA5dCVEDCv8AjUVb9I/hTWagNRaw+tB/UNsduXDGIT0leKehCbc5dB/Gd+9LsiMdo9YFa/4YlXekSqX2TgU0Yf+AhGnEB1HBGMUpRhfsQV+6p4OFXAsSVhXYKx+h2GfKXXpuoXmRBCV65ITiN2x6YHsTm0DNJfbDj6sgfxPXcZxH9f8YhFzyj3gFn9DkPAaPWb4kBDbM5dBvE/lokP/aHnIof4lrMM8yODZ0Gz+h2GfJHqFxmA6ISHTGRIf770IH2FlkH68+V/bHoQ33OXQfyPLa6+7EF8DyEzuj1gVr/DELBUv5e/9a1mbAPERhPxLaQMMkEg9qSoB7E5dxnEf+ZHuH3iqniMag+Y1e8w5FtUv/JuYG1Aa+2pVsCx+YVMvqFlkP5iw9GXPYjvucsg/vuKRyx6RrUHzOp3GAIuql9kAKVKsKhvyMAeqwyCEeJ7inoQm3OXQfzPLT+cKuCYAWT1Owz52tVvzPlRh46vAY/4HloG6c+X/7HpQXzPXQbxP7a4+rIH8T2EzGj2gFn9DkPAdvWLJiwqhwy2nGUQHBF8UtSD2Jy7DOI/84N7wJXM4ZIYrH6HId9y9ZvzgHfJ16Zo+dKDxCK0DNKfL/9j04P4nrsM4n9sce1qzyj2gFn9DkPAcuhKHrxhX10TstAVmx5kcshdBvE/trj6sgfxPXcZxH9f8YhNT53vo9gD/vOrrhqGgTLv9cbly81Ny5c7EXBsA8OXPcjkEloG6c+X/7HpQXzPXQbxP7a4+rIH8T2ETPJ7wG9/8EHz9lWrMqfCYdz/8wsvnOp4bAPEtbpH/Pclg0wQSF8p6kFszl0G8Z/5wT3gSvZAE+O/XnnlMOyTea9V1W/OAx7NV01Oa3dZokd0hZTJOT8Q33OXQfxH8jUlPUnvAbP6He5XQFX1iyQ+SiCxDTTUN8TuscogGCG+p6gHsTl3GcT/3PIj6T1gVr/DELDs+0oFXHVpA0hrJ0Eb9WliyESWKo6+8gPFCOlvrDIIRojvKepBbA4hk+weMKvfYchXeq2rftGEReWQwZ+zDIIjgk+KehCbc5dB/Gd+cA+4VSXF6ncYAm6qfnMe8LFNZEgsQssg/cWGoy97EN9zl0H89xWPWPQkuQfM6ncY8tWqX2QApbo0ivqGDOyxyiAYIb6nqAexOXcZxP/c8iPJPWBWv8MQsFb9coCFW84a60Tlyy8kF3OXQfz3FY/Y9CC+h5BJbg+Y1e8w5Cu9/sVFF6kHhHwNtBDJbyOJ2B2bDIIRYnOKehCbc5dB/Gd+hPvRXBUPpwoYCVbfMqx+hyFgpPrNecAjeR8SH6Sv0DJIf7Hh6MsexPfcZRD/fcUjFj1J7QGz+h2GfIvqN8cBknqVjEw0vmSYH+GqKV8xC6mH+TGdH04V8NAAsvodhoDR6nfo/KhCR5tgtPZCJyIXmwzjQULUZgwtZ7V2dHzEpgcZGyFkktkDZvWrDaX+2mXvN/RAC5H8qVe3CEaxTXy+7EF8z10G8d9XPGLTg/geWqaqP6cKGAG5LxlWv/0RbJNmqX5vWrFCPXwVmqCRPEMG2Fj1IL6HlkH6YzzyrdpzzI8k9oDlbUdSAfMKj4Bd/eY4QFKvkhFC8yXD/MiXPJEcYn4kugfM6jc88UqPRfWLDJzcK2AUI2Si8iWD2IT0laIexObcZcT/3RfuNc8v/5k58l8WmPlr501NNMyPfn9URb8HfI6875fV7yAMXK5+kQnL14BF+spdBvHfVzxi04P4nrsM4v/WS581+1b8bHZ+OeKGBebIGxY4EzHzQyfqqnhEvwfM6ncQ7jXrFi82f/PWt852HtsAoz36gEcwCimDEAJiT4p6EJtDyzy//AWz7ZPPVU4wUg0LGc9fe7A6ASExQ2QQ/8emJ+o94OM3bTL/5bbb1ASggH8EhHyFhMuXNgC09kKfJqe1h9aDTA65yyD+xxZXX/YgvscmI8vPuy96Xp08jrh+/oSMmy5fOI5VT13snSpgJIF8Aijke8LmzWqCUMAvAuXqF4l7aEL0mWcIekh/sckgcUNsTlEPYnPuMs98eSeS+rMy+6vi+a32imPLs1hiH+0eMKtfp7HhVbiu+kWS1tdAQ/rKXQbx31c8YtOD+J67TJP/aPVbN7GUq2Lmh74lVBUPpwoYAdmXjBCwHL46nhWwV3LVlFVVv+hEhsgh+UE9WpQMdF82gnVImZzjivgeUqZ8+ErPuGoJqYoPv16q4ua9YiTPEP/HpifqPWAJCIm47dBo972/Of10s27RotovawNAay8Ua3Jae2g9yOSQuwzif2xx9WUP4nssMnLb0bZPPttugmj4lhCxVMZNl4a31h563Puypy72ThUwkkC+DC7rkb1guSWJe8Lex82swrrqF4l7qgPDV76iGCH9+ZJBbEL6SlEPYnOuMl2Xn7UZqKiI7fuKY8uzWGIf7R5w3YQuS9KyNE0i1oaBe7tW/SJJ62ugIX3lLoP47yseselBfM9dps5/18NX7jPJ/m/IsvQhcnDLqoq1PNLa0R/6Mca+yianChgBJ5TMZGl61SoScdvRUfpeU/WLJjMih+QH9ehBRXCMTSbnuCK+h5Dpu/qty9zDrztkcnr6kI57xUhOIzjGoif6PWANKBKxPlkjEkj1m1Jiu/xSRvyiTLtTnuXc08YzGrfY9KSSH1s/+azZt/znT75C5gafMkLA89ccPDm4VXXFFldf9tTlh1MFjCSZL4Nd9bz9iCPMuatWGfOTn/jMlyx0adUvEvdUJ07XPGtKCERXSBkkbog9KepBbM5Npq/DV20nSamKZYnaPkGt5aPWjs5DscQ+uT3gul/Un/vc52abDrr8cnPw5Ze3zYvsvvfN0083jzScfLYB0QaA1p7aAHHxPfSgRvrzFY/Y9CC+5y5T9n+o5WdtQrWrYl95FmPsq2xyqoARcELKFA6dc8455uyzz54TZ7Hjzt/93f1VMa9aBJDqF01mRA7JD+rRExbBMTaZnOOK+N63TKjDV3r21kscNtkrPtgcsqb6vmIkpxEcY9GT/B6wAPnZz352NqIFsHfccYdZuXLl5O9yWItEXJ30Uv0KCceSkC4VcsiBhvSVuwzi/1jzDPF9SJlYq986KhYCPvz6Q1oTcWx5Vhd7pwoYSaDQjp911llGPuV+v/SlL01ia//93IceIhFbGS/EKwQcY1y1PNLaUSL3pQfBMLQM0p8v/2PTg/iek0wK1W8dGUtVLPvFaLxQOSRn+5ZJfg/4T//0T6fidueddxqpgO2LRDyd3kX1iyYsIockLKKHMjx1XDchoz+ucs+hwn859Synn1O/pCoulqiReSY2map8dKqAY3PozDPPNG9729tm86qw7ytf+crU36qST5alpSrO8XKpftGJDJFDcoh69IxEcIxNJue4Ir73JTP0rUd6NrtLHHbtvAkZ111a7mvt6I+8rnqS3gP+zGc+M8HJBuHHP/6xkU/5agIqRyK2q1904CNyXRMSTXxUzpc9iO+5yyD++4pHbHoQ34eSSXn5WaPm/VXxvKm94lTyw6kCRhIolONnnHGGkc9BBx00h4S/+tWvzomZiz3vkD3iTCri//ae9zjh5IJj06AZqx5kbISWQfpjPPSlfgSjWGV2X/S8kQNYOVx2VRxrPMpxSHYP+NOf/vRU9XvXXXcZ+VRdLgEZOxHfvGKFuWnFCicCZsUZ3ysASbDjJk8fP2Q3fmlHDtw7x8dJVXztPDNvzf7irCuOLtzh2p9TBezLkK56Tj/9dCMfmxSkEv7e975nnnzySW/EIi98EDI+YcsWDdek2l2rX2SiD03QSA4hdo9VD+J7aBmkP8bD34+KsRy+6jK5Hip7xdfOm1IRS54luQd82WWXTQEqxHvllVfWxkoDvKl9TERcVf0iE2PuBItipOXZmPUgviH4pKgHsTm0zMyluwd97nMX4vT9XSFiqYwPKVXFWj5q7ei8WBd7pwoYSSBfBtfpOe6448wHPvCBOdWv/M/VV189Vf0i9qIAfuITnzAL7rvPHHXFFebQ++/3nR/B9JWrX9T/vuNaBkDrT2sP7Reaa4jdvmQQm5C+UtSD2Dx2mTEfvmo7YQoBzzuwRI3kft8yye0Bv//97zdCwjYwGzZsmBBw09UFyLe85S1GPsW14P77zdH/8A/JEXFd9YtORIgcgjOihzL6UiSCka94xKYH8T1nmV0X7s3m8FVbMp5UxauFkJv3ipHcR2Sq8tGpAkY66VNGiPd973vfFN7//M//bISEqy7EHm2gfuxjH5ujWnTefffdZuZHP5rsEZ+YyB5x2+pXw8cGR8Nbaw9duY7VHjRmiP++ZBCbkL5S1IPY7FMmx8NXbYlYCFiIWAi5fGn5qLVr81lSe8BCvkuWLJnFSJx/6qmnzPe//30Vew2ouvY3v/nNRj5lIP/2b/929m9ySCt2Im6qftGBj8hpOGsJibajcr7sQXzPXQbx31c8YtOD+B5K5vnlL5itl6b/5Ct1Uu9B4NBrDp4sURd7xb7yrC72ThUwkkC+DC7rEeL9tV/7tQnkdts111xTW/0i9moT+e/8zu/M6U/6vvfeeycVcPmaHNZavTrKiriu+tX8R9tRub7yo24sav1p7ahfaK4h/fmSQWxC+kpRD2LzWGV4+Ko7MxdV8YJrqt/KZPeAjKE6mWT2gH/1V3+1svoVAkauNiC96U1vMm984xun1P/93/99Y5exEbFW/aITESKH4IzooQz3gLVxjeRajjJcftYyx61dSHhyeGt1/V4xkmdVc5pTBYx00oeMVL/vfe97p6rfa6+9drIE3XQh9tRN9pdccskc1aJr48aN5oc//GFtl3Z/sjcsy9PnrV7tFnHP0l2rX5QMEbku8XD91ZmzPYjvoWWQ/saaH4jvPmR4+Mrz5GmpEwKWyliWqYura74msQd88cUXm1e96lVzkH366afNdddd19t7bN/whjfMVr82yD/60Y8mJFx31QVElqaHIGKk+kUHPiLXNSF9JbZvPYjvucsg/jM/9JUNBKM6GVa//RGwrVmqYlciroqZUwU8xAAT4n1PxXOLb7jhBiMkrCWr1l43Uf/2b//2lO5nnnnGCAE3XVp/oYlYq35RotL8yl0PMjZCyyD9jTWuiO9jk+HhqzDka/ciVfGCa5qXp5vyLPo94AsvvHC2+rUni2If1tcEYoN07LHHmvPPP3+KgG+66abG6hclIZELQcRS/d580kkTszSctHbUN196EJtzl0H89xWP2PQgvucms/XS3eb55T8Lz0LscYLAgh8IGTcf2iqPI6cKGBmEPmWk+hUCFp3yrOdC9z333DM5iYwMMMSesp53vvOdRkjY/rtUvzfffLOaamh/haI+ifi/X3yxSrwIhqgMIofio8lp7aF/MMRmDxKL0DJIf7Hh6MsexPeuMlx+VqfnIAJVVXFdHkW9BywnkItTyLYD3/72t2eB9DVACj1CvOedd94Uud9yyy1m06ZNKqGh9hQOnHPOOebcc881B19+uZn3zW96SxCX6hcd+Igc6r8mp7WHJljE99xlEP9ji6svexDf+5Th4StvU6dXRXZVXJVrThUwkkC+Elr0yClkW5/8+7777pt8+pqA3/GOd0yqX7tfId5bb71VJV8En3J0P/e5z82p7oWED/FAxFL9utijxU1r7ysedaMhNntQrBG7fckgNiF9pagHsXlMMqx+vfKmd2XzVhsz/wcHG/mvfUW7B/z617/eyElk+5LJ4oorrpj6G4IWMtG84hWvMELAZdK/7bbbJtWvzwEruqT6lU+5v89//vOTE9PnrVmDuDYlY1e/qRKjjfXLX/7yiRtbKh75icR1rDJIPiK+p6gHsTkXGVa/rabJwb40X/aKf7D/nmKnChgZzL5kPvzhD88CVOi8//77jXzKpNyEJGJPMVDf/va3m1e+8pVziHbz5s1GCNhFDxrZz372s1M+rly50sin6O+da9Y4E/E3zzjDPLp4sdcfDL78b6NHHsIi149//ONZEm6jpyouY9UTI/kgNjEe7rcp8fAVOuPGJSfVcJR7wK973euMVMDlAfud73xnCkFfA1aqLCFg0Wcf+Lr99tuNkLDvSvKss84yZ5999lR/X/ziFyv7EiKWB3ucODPTmEXrFi823zrjDKcfKcjE6Nt/LW5F+5lnnmmKCrhMwojdWj+oX0hfucsg/vuKR2x6EN/7kOGtR3GRqqs1ThUwkkA+BsaHPvShKT8eeOABI5/ypfWntRf6hAxlCdqWF+KVatT3JC36/uzP/mzqB4b0deedd0793fZZSHhCxjVEbFe/SLxQ31AcNTmt3banTL5F2+rVq418kEvrT2tH8UGxRvrzJYPYhPSVoh7E5jHIcPkZmQXilYluD/iXf/mXjXzK1z/+4z9WouhjApEKq6hG7QlXyNCufn0N2Le97W1GPvYlfoiP69evn/p7leNVRCzLzkLAVZeGk9aOEpEvPWecccacyrfsk+wHy5I00t9YZZB8RHxPUQ9icw4yPHwVL7kiljlVwMhg7irzwQ9+cNbuYjn4pz/9qZFPX8QiZFgsc9pL0D/4wQ/m2IIAivj/J3/yJxNVdl9PPPHEhIBRoiu+v3RmZrYilqVnWYIuE7tmN2IzIoNMeIiek046ychHu4SEixWDOlmtP60djUdsepBYhJZB+osNR1/2IL67yuy+cK+RCphXughEtQf8S7/0S0Y+ZQL53ve+V4tw1wEixCtLneWJds2aNZXLnFp/WvtrXvMa81u/9VtT/X33u981QsJtyVOIuEy+KHmgAx+R0/zXbFq8ePGceGhDSyPhrva0jUeT3YhNKcrQJy8PAAAgAElEQVSEyA8tf8q4azhq7S79Ibp8yvDwlTY7xN/uVAH3PcB+4zd+Y4qYHnzwQbNq1arWBKwlfFFtleXkTUuugxnBRyp8IWG7PyHef/qnf3ImX6Q/zX90ggmhx5V8bcCkEm5zm5Ivv5BYhJZB+vPlf2x6EN9TlpFHTgoB80obgWj2gH/xF3/RyKc8kK+66qpGhLsO/PKLHqSztWvXGqmAqy6kvzqZV7/61eY3f/M3p9RKhV+ufmMiRpcqEMGnauLrQr6FfW1JONWJGLG7bTza/PgMaQ/S15hldr17D5ef0+beifVOFTAymNvK/Pqv//oUnOVTyG0IscmeFStWmOXLl09VnvKmpT4mIKnwjzvuuMltTsXk8OSTT5orr7yyVX9tsW7jG9IXMuHV6Sne99x1TJVJWLNba0/1hxASi9AySH+MB3YfMA9fdZ0p4vh+FHvAp5xyijn55JNnESkGYdUp5DbkUTfw5UUP5evhhx+eVMB1lzZBNFW/H/jAB2aJt9AvFb6QcJsfF8iE5lMG0aXhU0Vo2oln16Fi36bUxp62sUfwGbMM4puveMSmB/HdlwyrX9cZIV55pwoYSaA2A6M4hWx/Vztc07Uykcp32bJlU6T/wx/+sDX5NuHz/ve/f1L92nY/9dRTpm6JvQ2ObUm8r7gi9vgm36LPIn80HLV2NM8QDEPLIP358j82PYjvqcrM/OEuvnYwXk51smzwPeC6U8hyj+fMzIx6n2fbgX/BBRdMke8jjzxi5NN0If2VZYR4q5bYr776aiMk3KRT609rRwlkCD19ka8rCac6ESN2DxHXruMH8StXmeeXvWBmePjKieRiFnaqgJHB7CpTTMLl6veuu+6CcNP6q2pfunSpkU/5uvHGGztVv3WTwvve976p6nfDhg1G7jOus1/zK8YJCLGp8Au91xdKggYhqYTvuOOOXuJqK0Xi5YKP5jfSX2wyIf1HfA9pD9IXIsPlZ21kpNU+6B6wnHwVAi4n3r/+679Oql8kIdsMtHe9611TxLdu3TojH+3S+iu3L1myxAgBl30R8u1a/SL4+JRBdGn4iA477hrevtqFhKtuUyr0I3ZTRo+GhpHWjsYjNj3I2PAh8/QXt+tBoEQyCDhVwEgCuQyM008/3SxatGgOWEK8//Zv/6YuPbcdqCeeeKKRT/n7t9xyixo0xLeyjLzJR0i4fF1++eWNPzCQvnzHowkAX/YMQb6FX1Uk7MsvJBahZZD+fPkfmx7E99RkWP2qU3RyAoPtAQvxnnbaaXOIUG7PEfLdunXrFEHWIes68OV9v+WB99hjjxn5ILpcZIR4q26v+clPfmL+8z//E/JR609rb/tDpS3emj0XX3zxoIOkrhLW7I5xskZsQvxKUQ9i89hkZv5wt5G3H/EaDwJOFTAymFEZIV+7+pXvCfH+x3/8R2NlWIZe689uP+GEE8zxxx8/Fb17773XbNu2rTGqWj9VRPeWt7zFyKc8EXzrW99SyRfpLzYZZMIbsgIuQH/ooYdmHzOKYIj4FZsexObQMkh/seHoyx7E9yYZIV4hYF7jQmCQPeCXvexl5tRTT50iJiHfMhFqA0Brt4mxeN+vHULp7/7774eqX2QQ2fZ87GMfm9J79913G/lUEbbrjwvEHp8yiC4kHjGQcPlwFmI3ZfTJT8NIa0fGBZKHofWgNiH+V8mw+tVzL0UJpwoYSTIkwaQqFBK2B4kQIbosawOt9Ve0H3PMMeb1r3/9FOkL+e7YsQMiYK0vG583velN5s1vfvNUTvzd3/3dnL/V6UT68hWPIfTI7WfFAbyhBo6QsP2+5yY7kHjEJjNEXLVYahhp7SixIr6nJMPDV1pmpdkefA9YiLeKmOQE8qOPPjqFojYgtfZCobxjWEjYHsBCvA888MCcv2lhRPoTmY9+9KNTRCtL3ffcc4+Tj1p/Wjs6YQ2lp+97gbV4FpUw4n9sMgiBIDanqAexeSwyPHyljeJ0250qYGQwazJSGZarXzl8VT6FrOlxIZajjz7avO51r5uqfuUdw0LCyEB1sUd8fOMb3zil99vf/jZMvkh/scm0xXFoEha75XCWPHu87tKw1tpd8hWZTpD+YpNpmx9VeGi+ae0pxYPVLzIi0pQJvgd87rnnTiElla+cQu5roMk7hhcuXDin0t25c6eRVx2iAxGVk4F/ySWXTC1pS/V73333wQSMTFahZZD+2k58YyBhBJ8xyyC+tc2P8sCJTQ/iexsZHr5Kk1hRq50qYCSBmgaGfQrZlrvtttuciMkW1gaiEK+85rD8HXnHsJAwSqyI7yIj+8xveMMbpvq74oornH5gaH6hdqekJ9TTsZoGR10ljOAYmwySs4jNKepBbE5BhoevUCpLUy7oHvA555wzVRk+/vjjRj51lzZBaO3ypqVy9btr1y4jBNzmV7XW34c//OEpUpeDXvJp46PWn9aeGlH7eC9w16EotynJp4/88DnpI7rGlh8uP74RfGKX4fJz19Ec9/edKmBkMNfJvPa1rzXyKRK+eCdu3SlUpC9t8Bx11FFGCLg8aOV1dXb1q+lB2kVG9pmlAi7b/p3vfMeZfBH/Y5NBcEJsjpGENbu19tA/hJBYhJZB+osNR1/2IL6XZXj4Km7y9GFdsD1geeVgmQifeOIJs379+kY/tAHQ1C7vGBYSthNbql8h4DbVjTaIPvShD03plVPW9klrl3413zV70Ekf1YPIITYjeoYk4brbkxDfcpZB4orgk6IexGZXGVa/Pigubh1OFTCSQFUD7DWveY2RT/F9qX5FTl45WHd1HahCvLKnaOuRf69du9YICbsQIUJkcpuTfMo/Mr773e+2+oHR1X/E5rKtTYYOZc+ZZ55p5J7hUNeYyLfteK3CWou/1o7moy89iO8xy/DwVagRP2w/QfaAyw9ckEH25JNPGqmAtUsbkHXty5cvn61+iz6EeIWAu5B+XX8f/OAHp9Ru2rTJ3HrrrZqL2b4PWAOmwDokCTfdjqTlYugJHekPsTlFPYjNKcvw8JU2O4yj3akCRgZzWebVr361kU/57/LKwb4qriOPPNIIAZcrvI0bNxr5+P6FL7c5yaf8K19OdwsJt/GzDdZt/PI5SSG6EL+q9IQg4S7k29avcsx86UFiEVoG6c+X/7HpQXy3Zbj8PA6C1bzofQ/4rW996xT5ysvopQJGLm0gVbUvW7bMCAmXk77qPtwyaWo2VfUnz5h+xSteMac/eahD1e1VLhOu5rvroG7zQ8DFXtQeRK7Kd9lSkH39Pi7tQRyIzbnLIP4jOZ2iHsRmVGbnu/cYOYDFa/wIOFXASALZA+y4444z8invw8rr+LSBqLU3EWfVSeRnnnnGyKfuQvqrkhHiPfvss2fViozscd9+++2NT1bSiB+xxzUeXQg4FntkP1iqYZ/XWMk3x/yw8wLJ2RhlWP36HN1x6+p1D/hXfuVX5hCT/I/sw65Zs0YlYI2g6tpf+cpXmmOPPXZKf9NJZLSvqglNyLd8SEiqX/Qh/9okqU0QWjvqW2x6mnDxScJ8FvT+DNHir7WHzjPE5hRl9i6T1w5OHxKNm0ZoXVsEnCpgZBAWMvIy+le96lVTA1sOQZXvwa0yHumraoDZe7FFuxBi273YpolFiOCss86a+pFx5513QtVv0wSB+B+bDDLhITYjeuQ2pfKtba6DwOfbkHz55UsPgmFoGaQ/X/7HpgfxXWS2/MEuIyegeeWBQG97wCtWrJi6B3f37t2zp5D7GCBS/cqScHnJW55qpPWntVcRsRCAkLD9XZnUhYDRq6lfxKaQMsgkgtjjU0/bw1l8H/DPMxSJGSLjM65af1p7qhX5U1/Yhk4dlBsBAk4VMDrA5B5cOYUsg6S451e++/DDDxshYVQPgq89EO2nXhV/l4m26S036EAt21z3Plu5t1n6RK+6iSS2CSZme4ofQijmNvn68gvJ6dAySH++/I9ND+J7bDI8fIWO4PHI9bIHvHTp0srq95FHHplFzveAFUIsqlGb9GW/uY+BJvc2yzKofcnELrdXob4h5K/p0tqRPlB8EDlf9iB92TIuJCyHrso/khC7Y5NBMEJsTlEPYnNqMqx+x0OsqCdOFTAymI844ggjBFye+OWVg2j1iw4cW06WvG3ilbaZmRm4GtV8s9uFeE8//fQpYhfylT5dri4VsGYziqMvPUh/SF9t9cgtStptSmXy7dOeqjzQ+tPa0R9UCIahZZD+fPkfmx7Nd1a/LrPmeGS97wHLKweLe3ALmIR4hYDty+cAEUKUj61T/u1ScbvYI/c2l/sT4v33f//3oNWvNqh9T9ZIfy44Ng2jtnpkFaTucFbT4TikP8roE5+GkdaO5mxsepCx0STDw1d6bo1RwqkC1pJMqt/jjz9+Uonaso899ph59tlnnQjYZYDJgzfKA3fr1q1m27ZtMCEi/YmMEO9pp502xz/5H9nfFsJH9CA/RFA9mpzWnuqE1+RXFQlXLTtr+YzEKWYZxL+x5gfieywyzy97wWzhrUdj5FfVJ697wEK+QsJ2YgvxVr3v19fAf9nLXmbkU54I21TciE2nnnrqnP6K79x4441TPwJU9A8INPWr2aS1p0qwXSdHm4Tl7VdV7/eNmTzHGldffnXNj5hiz+VndKYcn5xTBdw0eA4//PBJ9Vue8IV8n3vuOafqFx1cIidL3mV56a946pWvAV/oOf/886f6W7dunZGPi90aMSJ2xyaD+I/Y7FOP7Ak3kW9oe7T+tHYtb2IilqrpUvNPa0f9j01PU07z8NX4iBX1yNsesLxuUKpfO/Gl+q1745GPAXLMMccY+ZR1yQsX9u7d60T6iD0nnnji7AEzW/7mm28epPpFiMqnDKILwTFFPYjNucsg/jM/XpozL7H6RalqnHJOFXDdAJPqV954VL6EfMvVr89fsPLgjUMPPXT2fmPRvWfPnjlPvfI14EX3eeedN0X2UvnKHjfqVxmjOvt82U09cyc8FP82cgjWIWVIiM2xR/DpW4aHr8ZJrKhXXvaA5YULQsL2JRONHEyqu5CJqCn5hXiLNxDZcvLQjXL162MQyVJ3sdxd6JPDZlXv+0V9Q0hb06W1I32g+CByvuxB+spdBvHfVzxi04P4HrsMD1+hNDVeOacKuGoQHnbYYZM3HpUnejmFLJ+qCxnMmowcshEStvt9/vnnp556pelBCUpeOVj+gSGVb/mAGdqf1i+iJzYZZMJDbKYefcJBcIxNJue4VvnO5Wc9z8cu0XkPeNGiRZWngotDSXUAIpND3YBdsGDBnDcQFbrkXtyq6rfrwJfDZcUBM9tueeVg+UL90ggYsTm0DNIf6r8mp7Uj+CH2onpQXYjdY5VBMEJ8T1EPYnNZhoevxk6vun9OFXBVksnBpPLf5f5b+TRd2kBsapd7cefPnz9HvVS/VU+h0vpBJmB55aCtR/69fv36yacvAvZhNzopIHK0J/79xKrxpsVNa0fGB5I/ofWgNiH+9yHD6lcnpxwkOu0By/23Rx999BROsiyrJa3WXjdghXil6i5fstwtJFx3If1Vycjp7te+9rVTauXBDl36sr/bZJtmt9YeeuLzZU/sE2iX2CMYITIIRmPVg/geswwPX+VAr7qPThVweTDLsmz5b9u3bzfyabqQSaFORkjfrn5Fbt++fbUVN9JX00CV192VyVJOd3e9vUojRsTu2GSQCQ+xmXr0gYvgGJtMznG1fZf3/QoB8yICrfeA5f7bhQsXTiEoxORr4JcHrBCv9FsmRCF8IeEupF9ls9xaJRVw2Y677rqrtivEd1/VLzKh+ZRBdKH+a3Jau/YDBm13kUNsylmG+YFtU+x69x4jS9C8iIBTBWwPMCEme7KRf+/cudPs2LEDQlWbqKraZbm7qH6LdiHepj61fpomYHnjUfn74uODDz7YOwF3sRsleBc52oNNrlryIzj6kiEhxhkzHr7SRkk+7a32gKXyLapfe7J46qmnZpHTJhGtvUyMQrxVfcqDPuoe9uFCMOXJSm6tkgq4/CNDHmsoJNyl2i5/twkLDSetHa3wYtODkEfuMoj/fcX1pJNOMsW7tl3GmS97EN9jlNl5wXOsfvPhV9VTpwq4GDxLliyZffpU8bddu3YZ+SADrI2MkO+8efOmHKq71xglnjo5eYZwmfCFeOXB/iHItw1GVXaF1INMeIg91DMdycsuu8zccMMNZu3atZNGBMc+ZT796U9P7Pja174G24PYjdicop7CZh6+UjkpKwHnPWB51+9RRx01Nejk+csupOc60Io3HhXfk//KPb/y6Enk0vqz24V45Rd++Ze9/OKPqfpFJiKfMoguDWc0R2LTg/jel4yQ74oVKybQ/fVf//XgJCzkW4wPGRMFCSP+xxZXX/Ygvu9dto+Hr5DJOiMZpwpYcDn22GOnlmXlpQu7d+/u7ZewPPGqeOqVPWCEDLUBpLVXEYJMLuUfGVLdVy25lXMF7U8jIlSPJqe1a3ag7ajcWO1BJuA2Mjb5Fhh/4xvfmCVhba7S8Nbay3G1ydfu+6tf/aqX8eFqT5P/iK6QMpt/f6eRE9C8iECBgNMesLztqHjfrw2hPHSjfApZS2yt3R74UpGKvDx7ufie3PMrHxc9WthFlxCvVBvl/mTpT35kIP0hMrYtTfKaLq09VWJsQ1Z18UUwilGminwLHyUfpRrW7NbaXfKjjnwLHQgJ+7InxfzY8PnqR/Nq8xLbx4uAUwUsLz+wB5D8+4UXXphz3y8ywFxk5LGT8ikPOLTiRvqydS9fvnxCwvb3pPpterEESqZVaVRnH2J3bDLIpIjYTD1m8iNQCLjpEhKWajjED4/3vve95uKLL1ZnQo2Etfhr7S4/GFRjgb10X/bw8BUSjfxk4D3gQw45pPLdu3IPrpCwKwmhiV28Y9iufqXaLipuVI8mV1S/y5Ytm/qRIc+19k34yESi2YwQlU8ZRBdic4p6EJt9yciPQI187Uq4bxKWHwPFoStkirz22muNfFx+cJZltTzS2pHxhcYLlWuyidUvkjn5ycAVsFSF5SdQCfGWDyX5HBjSX/m+X9FvH7zS+tPa7YG6dOlSI4fM7O8I8T766KMTMUQXIoP8WEH1aHJae+iJaqz2+MoPF/K1Sfj666+v3BfW8NbaXcm3sEnOS0g1PBSx+oqHDz17l8mTr5pvXcyPeuixIADtAUv1W3XyWZZmy9WvzwldXnVoTxDy75/97Gdz+tQmENQeqbSLF0vYg07IVw6ZoXrQAYuQMKLLl/+x6UF8H5tMG/K186jqcFaXuLYl3yYS7mKPK5nHkh+b/2CnkXf/8iICZQSgCliqQiFhGTzykeVgId5iWRYlExcSk3t+i/t+iz7lv+UXLmgDWmsvbJLnWldVv8X7flE9qJyGBaInNhlkwkNszlXPX/7lX3aeoWwSRrBukrFvL2prWLkS1mzS2rVxg7ajcj7s4fJz2+wZ//fUPWAhwTIxCSxSFbatfpEJtvy6QRkIL7744qQCdiV8rT+pfu03HhWEL+RrV7+aHqTd5Vc8MvhDyiD+IfakqAexuYvMJz/5ydl7fbtOOz5I+FOf+tTUvfBt7RISlj1h+W9u+cHDV22zJo/vqRXw4YcfPvUEKiHBMjGhvygRuYMPPtjIp2r52YXA0AlRnmtt315V9Ft+6hUyeSAyyA8IVI8mp7Uj8UBxROTGag/ie52MT/It4lmckNbwrmr3Sb52rsuesK8nyWl+dYmH6xzT1Ber3zyItK2XjXvAUv0KAZeJUA5BlStR16RtGkD2Iyel6pUlb/lv1XeQgdg0QMS/4o1HttzMzIzZsmXLFK5If4gMQsLIJIL2pclp7aGJGvF9DDJ9kK9Nwl//+tehuaGIf1/kWxjxV3/1V14e2JFC7Hn4Ckq9rIUaK2A5BCWVqD35CvHKIyDrLmQib5IRsi0Gl/3vuu9o/WntixcvNosWLZrjo/xP+b5fTQ9KUOgPFaS/2GSQSRGxORc9F110kZFPn5dUwk0kbMdD7vNF7vXtam8TCY8pP3j4qmumjP/7tXvAQrz2KeRiYMghqK7VLzLBooTWdcDKydOyPfKCB6mAqy6tP60dJWAUI6Q/XzKITUhfKepBbHaRkRPGUv2GuISEr7vuutrHV0rM5PGrUv2GumQ/WIi47Q/52PKsKvZcfg6VTen2U1sBy9Onyvuw4qb28oPYBkaTPVL5Fi95sAeQPHijDfmiE7Ctu21lH+oHCtoPKpdSfiBxaiMTknxt+6QSLt6mZMcrNPkWfVeRsK/8QMci0l8bGR6+SpcUQ1peuQcsxCu3HdlPnxKjyvfgNhmqJa3WHmJCt+/7LQasPNdaPm1/maMDH524NZy09hA4or64yiG+pSYjKy6hKt+qHC6TsPwYCFn5lm2qq4RTi2t53LP6DUlj6fZVWQEX9+CWB0H5Htw+q0RkACJkV6dHKt9jjjlm4oLIyEd+cDz22GOV0fRlT1l5lwoYsSmkTJd4oLigPyhQOQQfn359+ctfHny2sEm46mlVoQ0UEr7mmmtGc5sSD1+FzqB0+6vcAy4/clLck1PIdSeRXSdPZELrewKVB2+U7ZDnWsun6dImbK3dBStEV0gZJG6IPSnqQWzWZC699FJv9/p2nXKKpejiPcNd9fn4vn04S8sjrb3v+aOp+ODhKx/ZkIeOqQq4fA9ukehCvtoEg7SHHhhVA/Xoo4828rEvkXviiSc6ka+L/xoOsU0wtOcldUZowigm8lUdGVBASFi7VxgdZ0jO9iHD5ecBEyixrqf2gItbf8pJXiQqkrDIABlSj9z3a/cv/5aXSuzYsUMNH2I3IlMm/7qONV1au0b0aDsq58seJIdSkZE93+K0vZpgFJicjk6VhHe+e4+RA1i8iACCwJwKuHzoqqwAmVxDyiATcNmehQsXGvmUv7thw4bO1S9iD4ppSBx99YX4j/Q1Jj0XXnhh7/f6IgM9JRmEgLU80tr7+kHJ6jelTBveVvVZ0ChhoBUdmvionOtAW7JkyRT5yludyq9V7LsiRfxDfAspMyZiDJHXQ594Hn56cbdADmPJc6O1vNbakfGF5DOqR+T2Lt1nZP+XFxFAEVCfBe06UcU2MGx75JWK8inbKA/dCHnCG/mxEjOOTcml2a21oxNebHrKkznJF52Cfi4np6G/8pWvQF9E4h9ahoevoNBRyEIAeh8wQhgpEPUv/MIvTO397tu3b/a+35ADFsVUs0lrHwuhtV2RQKscBEcXGTldLAeveGEIlO8HdsG6yw9CX/mxd9k+s/n3Wf1i0aZUgYBTBRzboEAGT2GzPNnLvu+3AEBuOxIS1nzT2lGiQ3+oIP3FJuMSD20Iar5p7Wg8+tTDKliL8v52m3z7jEeVNVp/Wnuhc8cFz/HwFRZuStVVwEiyhZTxOaHLbUfl+5uFeIuTz4hfPu1BCAKxKaSMT/81u7V2BD/EXlQPqqvKbp6Cbp5zL7vssikBLf5aOxpXX3qe/D/Vz44n2xCBJgScKmBkEvKV0D71CPEW9/0WeuW/cvDqhRdemOCD9OdLxg5InU6kL8Ru6mm+f9cXPlosSMLV01D5zUih4oEStBZXaWf1S5Jti0AWe8By25E829oeTEK85ZPPyOD3JYOQMDL4EXtS1IPYnJoMSXjuNCWPway73xfJ61hkNv/+DiOPn+RFBFwRcKqAY0l4lLxETp5rLQRs2y7/3r1792z1i0zkiO+InnKAulTAiE0hZRD/EXvGrIf3Be8fAXXvBE4tP3j4ypVyKG8jMPr7gI844ojZ6rdwXKpfIWAXIi9ktQlCa0cJGCGh0DJIf6j/mpzW7jseSH++ZHI/nCX3+cr9vk2XhrXWHio/uPxMQu2CgFMFnNoELNWvELAM1uIRm/LvZ599dvJqRVcCRgY9IoP0i+rR5LT2UBMV2g8qF5tfyNiwZYZ6J3CXycLHd+teP4jG3UUOyZGuMjx85SMr8tUx6j3gww8/fLIEbU98QrzPPVf9rNaug9FlckBIGJnUEZtT1IPYnLpMbiSskS86JlzGGTI+2sqw+s2XOH157lQBt03UsrG+9DRNwPJWJyFguy/59969e6eqX2QiR2xG9KBYIP3FJoP4j9icmx45nBXTawF9TS62HiFfOXSlxV9rR8k3hB4evuojU/LSedCn/uWul45++lFz6K5t5tCd21TvkcT2JdNlIj700EMn1W/ZFll+rroQm7vYUwdsU7+ITSFlfPqv2a21h56IEd+7yIyZhAvyRfFB5IbODx6+UqmCAgACEwK25Y5+6gAZ76omYy3xtfYQE6dUv/LkK/sSu+TwVXHfL1qJlnVomKL+azigejQ5rV2zA21H5cZqD0IamsxYSVgqXyFhzX+kHc0zVBeSj1UyXH7WZkK2IwhMEXCZjKU6diUhJPmRxG+rR8jXfq9xoUeWn5suxCZfMiimWn9aOzphxaYHif0YZS666KJRvb7QJl80XqgckrN9yfDwFUIvlNEQaCTg4svF8vTCp9Zp+tQ9Hp+Dq06XXf2++OKLEzKWw1flk88oCaI2u8hpxNjXxFEVQF99If4jfeWuR/aDqx7PqA6+yATK5DuWuLL6jSzREjYHImDbP9knXrBrq5Gl6roLmWQRmTYDVvZ9ZQm6rF+e+9y1+m1jj5Yb3AOuRqiv/Og7ZxG7ERm5VzhlEq4iX2T8aD9M0XZUDolF2W4evtJmNbajCDgTcJmMpSqWChlNeFSuzcAQ3cVtR3Y/oksq4a4EjNiEyNh21MmjejQ5rb3veJQxH6s9KLkg/hcyqVbC9qEr1/gj+PSBNTo38PAVSi2UQxDoRMB2BxMi3rltloy1gaS1tyEGqXxludnWLf8uPhogiE2+ZBASRiYaxJ4U9SA25yAjJCz7wqncptREvmi8UDkk933LcPlZm0XZ7oKANwKeQ8Yb9lfFC3ZurbTF16AoD1T7aVcogaNyiM3oxIGQL9JfbDKI/4jN1DM9bGQ5OnYS1sh3DHHl4TXJIlcAABSJSURBVCsXeqGshkAvBFx0KgQsVXHV4a3cJ2KE+BGMQsqMYQKtGxAhcWzTV+wELOT7ta99TT2Eifgea57tvOC5yasHeREBXwj0SsC2kWUy1gai1o4QGDKQUT2oLtRurV9UjyantWt2oO2o3Fjt8ZkfZYxiJ1/xve7QVXmi0uKvtaN51kc8WP36oh3qKRAIRsBlMl64YV3tErUtqw1IrX3IAYumWZMPmn9aO+p/bHr6mECb4oH4P4RMCuQrle/YHrRRzpU9S/cZOf3Miwj4RGAQArYdOGrDI5Nl6vJ+MTLZIZN0bHrQigCxOzaZFOOBYDiUXymRb8w4dvnhVfjFW4980g51DVoB18FfRcbawNbaY60AEbsQ30LKDEVEPiZQbciHxBHpK4X7gO3KF8lnJH9i1fPE/96ipRDbiYAzAoNXwLVk/OQjRghZu7TJTGtHBzw6eaD9af2iejQ5rV2zA21H5cZqj8/8SIF8i0NXaNxROV/54TMeO85/loevtImY7a0QiJaAC29kaXrBjq21ZBzjgEVtQiYlTZfWjvSBTlaInC97kL7GKJMi+dozjxZ/rR3N15CxZ/Xbilv4JQCB6AnY9qGKjLUBrbWjA96XnnJM6vQi/cUmg0yKiM256kmZfMcaVx6+AliEIq0RSIqAbS+PevKRycGt+TtmIOe1CUJr903UiD7EppAyuRIjEisfMrG/jrC87Fw18LR81NpRHEPp2fR7283eZS9AcwyFiIArAskSsO3okU8+PCFjWapGK8w2csigR2SQJTtUjyantcc24aVqD/LjpEkmdvIV26sOXaHxQuV85WvXeBT2cvnZlVIo74LAKAi4TMZSHQ9JsOgkgkxKmi6tHekDnawQOV/2IH2NRSZ18kV+UKJ56CKH5FoXGR6+cqESyrZBYHQEXIAg1fD8nTPmyCcehnDRBqrW7jJxIBMW0l9sMgghIjbnpGcs5DvGuLL6haZOCnVAYLQEbGMyIeMdM0aWquuu0BMIQtiITSFlciLGqjzxjbW8XEEIOOZLlp3Xrl2rPuMZyWckf2LRI68d3PR7fPJVzLk5BtuyIGA7UFIRS2Vc3i/2PbmiyVHXL2IPMqFRz0uNofCFDxILWyYF8pVDV1//+tcn+Gk4ae2hiRWxuUlGyFdImBcR6BOB7Ai4iYyRScSXjG1Hk06tP6099MTny56uEyiKL4qPT3vkdqPYK1+bfFHfEblU8oPLz33SDnUXCGRNwHYaHPHE2klVXHdbk8+JAyEHpL/YZEJOwIjvMdozVvJNNR5VdvPwFQkyFAIk4BLSQsCT/eKaw1vaRKO1lwPbpfpFCManDKIL9V+T09rRytWXHsR3RObSSy81svwc6yX7vbLv65KnyA9KNF6onK+4Vulh9Rtrdo7PLhJwQ0zLZIwMekQGmbBQPZqc1h7DhFcVAs1urT20X2MgX/FB9nyLVwsieYrijMr5iisSjyoZHr4aH8nF7BEJGIyOkLEsU8/frj95C51EkElJ06W1I32gkxUi58sepK/UZGTfV5agY73qyBfFGZGLPT94+CrW7BynXSTgFnE9Yv3ayTJ11X4xOsFoxIjoiU0m5ASM+B6jPbGScFfyTTUett2sfltMhvxKJwRIwJ3gM6ZMxuhEpBEwQh6hZZD+UP81Oa0dwQ+xF9WD6kLsvvDCC81FF13UMfP8fb2JfF3wQTBC8BlKz44LnjNyAIsXEQiFAAnYE9KTinj7jDl8/RonjXUTUswTVZODmt1aOzrhx6YHIQ1bJpb7gOsOXZVjrOGttYeOq2s8RJ6Hr5ymLgp7QIAE7AHEsgoh4kN2bJlUx8jVNHlpE5vWHnri82VPmwm0DmvEpiFkhiZhId9cH7Rh54rEntUvMlNRxjcCJGDfiJb0FVWx6/3FQxBCl8o2VaJHcEZ+DLTVM9Q7gAvyRez2JdMnjq4Vezlfefiq54mQ6isRIAEHTAxZnhZCtsm4S/WLTGg+ZRBdyGSdoh7E5i4yIV/KYFe+XWyuGjpa/LX2IX7I8fBVwEmQXc1BgAQ8UEIc/viaCREfsn1LpQUxTlQIVJrdWvsQE7APv3wQWSgS/uM//uNZlxkPLj8j+U+ZfhAgAfeDq5NWIeO6w1vaBKm150xoqO8+yNNXX32TsOz5SgVcvrQ80tpR/33p8Rmz9f9rs9N4pTAR8IUACdgXkh70SDVc7BkjE1VsMsikiNicu573vOc9vdymVEW+SDx8ycQY1+3nP8tbjzzMXVTRDgEScDvcev+WkLF8pDpuunxNjoieGCdQzW6tHa3cEN99yvg+nPWNb3yj8hGTPm1GdPmKhy89z3xiO1872Ptsxg7qECABJ5Abhz2+elIZV+0XaxOR1o4SEPU0v1cYIR9XGblN6bLLLuucoddff7257rrrKvWMNa4I1nuW7jObfm97Z3ypgAi0RYAE3Ba5gb5XJuOcJ1Bkkk1dpisJl08816Wtlkdae+gfcj7iyuXngSYxdjuLAAk44WQ47LHVRgi56UImTl8yyKSI9EU90xGVStj1NYYI+SLx8CUTW1x5+CrhyW8kppOARxDIyX7xti21ZDzWCTTkhI701beMCwkL+cq+r6/YI3oQ/2PRw+p3BBPfCFwgAY8giLYLZTKOZcJDlyhRudj8QsjHhwxKwp/5zGcmUGo4ae1jjQcPX41s4kvUHRJwooFDzBYylmVq+a820WrtoSdihDxylZE3KcmtSnWXVL7Fvb6xxdWXPV1iv3fpPvMMD18hUwhlekaABNwzwLGoP/SxhyZELEvV5QuZFBEZZFKknubT1Cg+cpvSH/3RH03F0pV8kf58ycSSH1x+jmVWoh0k4AxzYELG2/bfZ4xWtqgcMlnHMhHboUfsjk2mTMI2+aLxQmKByiByCIZ96+HhqwwnvUhdJgFHGpgQZgkJz9u+ebJMrU2MWjs64Y9VD0IafcjIyWiphOVeX/m4rm7kFg9WvyFmFvaBIkACRpEaudy8bZsnVbFUx02XNmFr7ShR90FWXfyK0R7EJl/xiE0P4nuVDKvfkU9kiblHAk4sYCHMFTIulqldCBOZFGObyMdqDxKL0DJIf33Gg4evQswe7MMFARKwC1oZyh766EOTZeri8JY2QWrtKKHHpgchj9xlEP+HjCtvPcpwAovcZRJw5AGKybwFj66aELFUyHWXNsFq7SRo/d5dhOhSxdFXfnD5OaaZg7bUIUACZm44IyAEPFmmfnR6v7jPCbTKUKS/scogRIz4nqIexGZbhoevnIc5vxAAARJwAJDH3EWZjLUJX2vPvXLzhY8rQTXlKGITIoPY1JceHr4a8yyUrm8k4HRjF53lEzLeutnIUrV2aROt1h6aqBHyyF0G8X+IuO5dts/I/i8vIhAbAiTg2CIyEnsWrFs1WaYu7xcPMQF3re4QYolRBrEph3jw8NVIJpURukECHmFQY3OpioyRiZ8yeiQ1jLT20CsJvuxBflwUMlx+1vOIEsMgQAIeBvdse52/7kEjhKxd2kSttadKLL78ciGorrFA+0LkfPlf6Nlx/rNGDmDxIgIxIkACjjEqGdgke8UHb9tUS8a+J2INUqQ/ymgo6rdQIRj6JOrH/+cm3WhKEIGBECABDwQ8u/05AlVkrE3UWnvoChghjdAySH+x4ejLHvF9z9LnefiKE03UCJCAow5PfsbJErUQshzeQibjnGVyJ1gt9hs/vs3ICWheRCBWBEjAsUaGdpn5jzw4IeKDt04vI2qTb+gKODZ7EHIOLYP05xNHHr7iJBI7AiTg2CNE+yYICBlLdVy+tAlba0eJGiGP3GUQ/33FQ9Oz/V27efiKc0f0CJCAow8RDbQRkGpYlqgPeeSnEDDaRK21p0zQMREiiqOvePDwFTQ8KDQwAiTggQPA7tsjIGQsH6mOmy5kUk9RJmeCbfJ9z1J58tW29onFbxKBQAiQgAMBzW76RaAg4vJ+sUasWnvoys2XPQg5h5ZB+vPhPw9f9TvWqN0fAiRgf1hSUyQIyPL05NamrZugk9QIMVDmJSi6GoFq7T5+8HD5GQoVhSJAgAQcQRBoQn8IHPLwTydEXHWSGiVVVA4hl5AyiN2IPSnp4eGr/sYSNftHgATsH1NqjBCBCQnPbKo9vIUQUWwyKREjWtm6yFXFg9VvhIOPJtUiQAJmcmSHgE3GCKmmSHSIzaFlkP66xIPVb3ZDOXmHScDJh5AOdEFAyFiWqQ+aeUZVg5BDzjJ9E6wdoCqcN35im9m7lE++UhOZAtEgQAKOJhQ0ZGgE5j38wP794pl2T96KjXyHJsSqeGoYae11S9S89Wjo0cP+2yBAAm6DGr8zegQmZDwz9/AWQg4hZXIiWI3Mufw8+iE5SgdJwKMMK53yiYCQ8by1DzSqRIg3JGEifYWWQfpriyMPX/nMeOoKhQAJOBTS7Cd5BGSfWKpiIeS6CyGQscr0SbBlvG0Mt5//rJEKmBcRSA0BEnBqEaO9USBQRcaxEetQhNgUIA0jrb3Qbcvx8FUUQ4JGtECABNwCNH6FCNgIyPL0hJDBJ28hJIPI5EKwTasNcupZCJgXEUgRARJwilGjzdEicPDa+yfL1HW3NWnEqrVXVYCpLIf38YOBh6+iHQo0DECABAyARBEi0AYBIeOqw1sIyaYo0wfBaj8uePiqTWbyO7EgQAKOJRK0Y7QISDUsHyHjkMQ6BCFqQdT819rtFQAevtLQZnvsCJCAY48Q7RsVAhMy3vKMkeq46XIhohz1iM9Pf3wrn3w1qtGRnzMk4PxiTo8jQeDgNfdPKmN7v9gX8SLVb2gZpD/U/z0nPs/DV5HkMc1ojwAJuD12/CYR8IZAmYwRIopNxifBar5te9du3vvrLfuoaCgESMBDIc9+iUANAgetuW9/Zbyl/gURGkEVqjU5rT1WPY/9D/3lGUwwIhA7AiTg2CNE+7JFYELAMxuNVMd1l0agWnusBNtkN6vfbIfE6BwnAY8upHRojAiUyRgh1thkfC1R8/DVGDM8T59IwHnGnV4njICQsSxTmy0bVS9CkrAvgm3Ss2fp82bjx/nkKzXwFEgCARJwEmGikUSgGoGDVu/fL64jY42AtfbYlqhZ/XIkjAkBEvCYoklfskZAyFj2jO3DW6kRrEb4PHyVdYqPznkS8OhCSoeyR2DLARJefa8KBULQvmS6LlHz8JUaTgokhgAJOLGA0Vwi4ISA7BMLIUt1XHPFQrC2eVU2sfp1ijyFE0CABJxAkGgiEfCCQEHE1uEthHy7Vq4asSLtPHzlJQOoJDIESMCRBYTmEIEgCKy+d/9e8QEy1ohYay9s1uS09jo9Gz++1exZui8INOyECIRCgAQcCmn2QwRiReChe/cTcc1tTQhpIjJdKmkuP8eaPLSrCwIk4C7o8btEYGwICBlXHN7qm2DLMNr98fDV2JKM/hQIkICZC0SACEwjINXw5o2zZKwRsNbeZYma1S8TdKwIkIDHGln6RQR8IbBlo3lp89PGSHWsXBoRa+1loubhKw1xtqeMAAk45ejRdiIQGIGXHrpn/16xVMfW5UqsdWaX9fDwVeAAs7ugCJCAg8LNzojAeBCoImONiLX2cgXM5efx5As9mUaABMysIAJEoDMCL626x0wI2eMS9fZ37TZyAIsXERgrAiTgsUaWfhGBARCY7BVv3lhLxi4VMKvfAQLILoMiQAIOCjc7IwL5IFBFxhoBF+3y0A3Z/+VFBMaMAAl4zNGlb0QgEgSEjCfL1FIhA9fTvzvDJ18BOFEkbQRIwGnHj9YTgeQQeHHV3fuXqSvIuKiAufycXFhpcAsESMAtQONXiAAR8INAFRlve+cuHr7yAy+1RI4ACTjyANE8IpADApMl6s1PmxcfvNuw+s0h4vRRECABMw+IABGIBoGZJSvN1uNWRmMPDSECfSJAAu4TXeomAkTACYENJ19hnlu43uk7FCYCqSJAAk41crSbCIwMgecWPm42nPwPI/OK7hCBegRIwMwOIkAEokCAy89RhIFGBESABBwQbHZFBIhAPQIPn/oFwkMEskKABJxVuOksEYgTAVa/ccaFVvWLAAm4X3ypnQgQAQABHr4CQKLI6BAgAY8upHSICKSFAA9fpRUvWusPARKwPyypiQgQgRYIcPm5BWj8yigQIAGPIox0ggikiwAPX6UbO1reDQEScDf8+G0iQAQ6IMDqtwN4/GryCJCAkw8hHSAC6SLAw1fpxo6Wd0eABNwdQ2ogAkSgBQI8fNUCNH5lVAiQgEcVTjpDBNJBgMvP6cSKlvaDAAm4H1yplQgQAQUBHr5iiuSOAAk49wyg/0RgAARY/Q4AOruMDgEScHQhoUFEYPwI8PDV+GNMD3UESMA6RpQgAkTAMwJcfvYMKNUliQAJOMmw0WgikD4Csgy9Z+Hj5rmF69N3hh4QgRYIkIBbgMavEAEi4A8BuR3puaPWm63HrfSnlJqIQAIIkIATCBJNJAK5IMCqOJdI009BgATMPCACRCA6BFgVRxcSGtQDAiTgHkClSiJABPwhwFuW/GFJTXEhQAKOKx60hggQgRoEpCreumQlD20xQ0aDAAl4NKGkI0QgHwRYFecT6zF7SgIec3TpGxEYOQKsikce4JG7RwIeeYDpHhHIBQFWxblEejx+koDHE0t6QgSIgDGGVTHTIBUESMCpRIp2EgEi4IwAq2JnyPiFgAiQgAOCza6IABEYBgFWxcPgzl6bESABM0OIABHICgFWxVmFO2pnScBRh4fGEQEi0BcCfOxlX8hSL4oACRhFinJEgAiMEgE+9nKUYU3CKRJwEmGikUSACIRAgFVxCJTZR4EACZi5QASIABEoIcCqmCkRAgEScAiU2QcRIALJIsCqONnQRW84CTj6ENFAIkAEYkCAVXEMURiXDSTgccWT3hABIhAAAVbFAUDOoAsScAZBpotEgAj0gwAf8NEPrrloJQHnEmn6SQSIQK8I8AEfvcI7SuUk4FGGlU4RASIwFAKsiodCPr1+ScDpxYwWEwEikAgCrIoTCdRAZpKABwKe3RIBIpAPAqyK84m1i6f/H7wUVN5b++VuAAAAAElFTkSuQmCC" mediaID="Thumbnail_cst_Online Shooter Thumbnail"/></media></snapdata>