<snapdata remixID="12765423"><project name="Weather Forecaster" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>Check out weather near you! Press the left and right arrow buttons or the left and right buttons on the screen to see the forecasts on different days. &#xD;&#xD;This project requires geolocation and also requires you to be in the US (I think).</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAiVJREFUeF7t0sEJACAAAzHdf+gKLnGfdIHCkbttxxSIClwAo/JufwEAQUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrfOYAMpAUATPM7B5CBtACAaX7nADKQFgAwze8cQAbSAgCm+Z0DyEBaAMA0v3MAGUgLAJjmdw4gA2kBANP8zgFkIC0AYJrf+QOC496obByqTwAAAABJRU5ErkJggg==</thumbnail><scenes select="1"><scene name="Weather Forecaster"><notes>Check out weather near you! Press the left and right arrow buttons or the left and right buttons on the screen to see the forecasts on different days. &#xD;&#xD;This project requires geolocation and also requires you to be in the US (I think).</notes><palette><category name="Weather" color="0,116,143,1"/></palette><hidden></hidden><headers></headers><code></code><blocks><block-definition s="$globe show current location" type="command" category="other"><header></header><code></code><translations>de:$globe zeige aktuellen Standort&#xD;pt:mostra a localização corrente do dispositivo no $globe&#xD;ca:$globe centra a la meva ubicació&#xD;</translations><inputs></inputs><script><custom-block s="set $globe to lon: %n lat: %n"><custom-block s="$globe current longitude"></custom-block><custom-block s="$globe current latitude"></custom-block></custom-block></script></block-definition><block-definition s="$globe zoom" type="reporter" category="other"><header></header><code></code><translations>de:$globe Zoom&#xD;pt:o zoom do $globe&#xD;ca:$globe zoom&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_zoom</l><list></list></block></block></script></block-definition><block-definition s="set $globe zoom to %&apos;n&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Zoom auf _&#xD;pt:altera o zoom do $globe para _&#xD;ca:$globe fixa el zoom a _&#xD;</translations><inputs><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_zoom(n)</l><list><block var="n"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe longitude of x %&apos;x&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Längengrad von x _&#xD;pt:a longitude no $globe da coordenada x _&#xD;ca:$globe longitud per a x _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lon(x)</l><list><block var="x"/></list></block></block></script></block-definition><block-definition s="$globe latitude of y %&apos;y&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Breitengrad von y _&#xD;pt:a latitude no $globe da coordenada y _&#xD;ca:$globe latitud per a y _&#xD;</translations><inputs><input type="%n">0</input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_lat(y)</l><list><block var="y"/></list></block></block></script></block-definition><block-definition s="set $globe to lon: %&apos;lon&apos; lat: %&apos;lat&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe auf Länge: _ Breite: _&#xD;pt:altera a posição no $globe para (longitude: _ , latitude: _ )&#xD;ca:$globe centra a longitud: _ latitud: _&#xD;</translations><inputs><input type="%n">-122.257852</input><input type="%n">37.872099</input></inputs><script><block s="doApplyExtension"><l>map_view(lon, lat)</l><list><block var="lon"/><block var="lat"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="y of $globe latitude %&apos;lat&apos;" type="reporter" category="other"><header></header><code></code><translations>de:y von $globe Breitengrad _&#xD;pt:a coordenada y da latitude _ no $globe&#xD;ca:$globe y per a latitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_y(lat)</l><list><block var="lat"/></list></block></block></script></block-definition><block-definition s="x of $globe longitude %&apos;lon&apos;" type="reporter" category="other"><header></header><code></code><translations>de:x von $globe Längengrad _&#xD;pt:a coordenada x da longidude _ no $globe&#xD;ca:$globe x per a longitud _&#xD;</translations><inputs><input type="%n"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>map_x(lon)</l><list><block var="lon"/></list></block></block></script></block-definition><block-definition s="change $globe by x: %&apos;x&apos; y: %&apos;y&apos; pixels" type="command" category="other"><header></header><code></code><translations>de:ändere $globe um x: _ y: _ Pixel&#xD;pt:desloca a posição do mapa de (x: _ , y: _ )&#xD;ca:$globe canvia la ubicació en x: _ y: _ píxels&#xD;</translations><inputs><input type="%n">10</input><input type="%n">10</input></inputs><script><block s="doApplyExtension"><l>map_pan(x, y)</l><list><block var="x"/><block var="y"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="$globe distance in km to %&apos;target&apos;" type="reporter" category="other"><header></header><code></code><translations>de:$globe Entfernung in km zu _&#xD;pt:a tua distância em km a _ no $globo&#xD;ca:$globe distància en km fins a _&#xD;</translations><inputs><input type="%s" readonly="true"><options>§_objectsMenu</options></input></inputs><script><block s="doDeclareVariables"><list><l>trg</l></list></block><block s="doSetVar"><l>trg</l><block s="reportObject"><block var="target"/></block></block><block s="doIf"><block s="reportNot"><block s="reportVariadicAnd"><list><block s="reportIsA"><block s="reportGet"><l><option>self</option></l></block><l><option>sprite</option></l></block><block s="reportIsA"><block var="trg"/><l><option>sprite</option></l></block></list></block></block><script><block s="doReport"><l>-1</l></block></script><list></list></block><block s="doReport"><block s="reportApplyExtension"><l>map_dist(lat1, lon1, lat2, lon2)</l><list><custom-block s="$globe latitude of y %n"><block s="yPosition"></block></custom-block><custom-block s="$globe longitude of x %n"><block s="xPosition"></block></custom-block><custom-block s="$globe latitude of y %n"><block s="reportAttributeOf"><l><option>y position</option></l><block var="target"/></block></custom-block><custom-block s="$globe longitude of x %n"><block s="reportAttributeOf"><l><option>x position</option></l><block var="target"/></block></custom-block></list></block></block></script></block-definition><block-definition s="$globe current location" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktuelle Position&#xD;pt:a localização corrente do dispositivo no $globe&#xD;ca:$globe ubicació actual&#xD;</translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>callback</l></list></block><block s="doSetVar"><l>callback</l><block s="reportApplyExtension"><l>geo_location(acc?)</l><list><block s="reportBoolean"><l><bool>false</bool></l></block></list></block></block><block s="doWaitUntil"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><block s="evaluate"><block var="callback"/><list></list></block></block><l>2</l></list></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></block></block></script></block-definition><block-definition s="$globe current latitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Breitengrad&#xD;pt:a latitude corrente do dispositivo no $globe&#xD;ca:$globe latitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="$globe current longitude" type="reporter" category="other"><header></header><code></code><translations>de:$globe aktueller Längengrad&#xD;pt:a longitude corrente do dispositivo no $globe&#xD;ca:$globe longitud actual&#xD;</translations><inputs></inputs><script><block s="doReport"><block s="reportListItem"><l>2</l><custom-block s="$globe current location"></custom-block></block></block></script></block-definition><block-definition s="update $globe" type="command" category="other"><header></header><code></code><translations>de:aktualisiere $globe&#xD;pt:actualiza o $globe&#xD;ca:$globe força refresc&#xD;</translations><inputs></inputs><script><block s="doApplyExtension"><l>map_update</l><list></list></block><block s="doTellTo"><block s="reportGet"><l><option>stage</option></l></block><block s="reifyScript"><script><block s="doSwitchToCostume"><custom-block s="$globe as costume"></custom-block></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="$globe as costume" type="reporter" category="other"><header></header><code></code><translations>de:$globe als Kostüm&#xD;pt:a parte visível do $globe na forma de traje&#xD;ca:$globe vestit del mapa actual&#xD;</translations><inputs></inputs><script><block s="doWaitUntil"><block s="reportApplyExtension"><l>map_loaded</l><list></list></block></block><block s="doReport"><block s="reportApplyExtension"><l>map_costume</l><list></list></block></block></script></block-definition><block-definition s="set $globe style to %&apos;name&apos;" type="command" category="other"><header></header><code></code><translations>de:setze $globe Stil auf _&#xD;pt:altera o estilo do $globe para _&#xD;ca:$globe fixa l&apos;estil de mapa a _&#xD;</translations><inputs><input type="%s" readonly="true">OpenStreetMap<options>OpenStreetMap&#xD;Wikimedia&#xD;Watercolor&#xD;Toner&#xD;Terrain&#xD;Topographic&#xD;Satellite&#xD;Streets&#xD;Shading&#xD;Mapbox (experimental)</options></input></inputs><script><block s="doApplyExtension"><l>map_style(name)</l><list><block var="name"/></list></block><custom-block s="update $globe"></custom-block></script></block-definition><block-definition s="json data from %&apos;url&apos;" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block s="reportURL"><block var="url"/></block><l><option>json</option></l></block></block></script></block-definition><block-definition s="%&apos;info&apos; of weather %&apos;item&apos;" type="reporter" category="Weather"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true">temperature<options>number&#xD;name&#xD;startTime&#xD;endTime&#xD;temperature&#xD;temperatureUnit&#xD;temperatureTrend&#xD;probabilityOfPrecipitation&#xD;dewpoint&#xD;relativeHumidity&#xD;windSpeed&#xD;windDirection&#xD;icon&#xD;shortForecast&#xD;detailedForecast</options></input><input type="%l"></input></inputs><script><block s="doReport"><block s="reportListItem"><block var="info"/><block var="item"/></block></block></script></block-definition><block-definition s="load weather data" type="command" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSetVar"><l>weather</l><block s="reportListItem"><l>properties</l><custom-block s="json data from %s"><block s="reportJoinWords"><list><l>https://api.weather.gov/points/</l><custom-block s="$globe current latitude"></custom-block><l>,</l><custom-block s="$globe current longitude"></custom-block></list></block></custom-block></block></block><custom-block s="$helper load weather data"></custom-block></script></block-definition><block-definition s="current time" type="reporter" category="sensing"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doDeclareVariables"><list><l>hour</l></list></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><block s="reportDate"><l><option>hour</option></l></block><block s="reportConcatenatedLists"><list><block s="reportNumbers"><l>1</l><l>12</l></block><block s="reportNumbers"><l>1</l><l>12</l></block></list></block></block><l>:</l><block s="reportPipe"><block s="reportTextSplit"><block s="reportDate"><l><option>minute</option></l></block><l><option>letter</option></l></block><list><block s="reifyReporter"><autolambda><block s="reportIfElse"><block s="reportVariadicEquals"><list><block s="reportListAttribute"><l><option>length</option></l><l/></block><l>1</l></list></block><block s="reportJoinWords"><list><l>0</l><l></l></list></block><block s="reportJoinWords"><list><l></l></list></block></block></autolambda><list></list></block></list></block><l> </l><block s="reportIfElse"><block s="reportVariadicGreaterThan"><list><block s="reportDate"><l><option>hour</option></l></block><l>11</l></list></block><l>PM</l><l>AM</l></block></list></block></block></script></block-definition><block-definition s="location of weather" type="reporter" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><l>It&apos;s </l><custom-block s="current time"></custom-block><l> in </l><block s="reportListItem"><l>2</l><block s="reportListItem"><l>1</l><block var="weather"/></block></block><l>, </l><block s="reportListItem"><l>3</l><block s="reportListItem"><l>1</l><block var="weather"/></block></block><l>.</l></list></block></block></script></block-definition><block-definition s="wind of weather" type="reporter" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="%s of weather %l"><l>windSpeed</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block><l> wind going </l><custom-block s="%s of weather %l"><l>windDirection</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block></list></block></block></script></block-definition><block-definition s="temperature of weather" type="reporter" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportJoinWords"><list><custom-block s="%s of weather %l"><l>temperature</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block><l>°</l><custom-block s="%s of weather %l"><l>temperatureUnit</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block></list></block></block></script></block-definition><block-definition s="costume from text %&apos;text&apos; size %&apos;size&apos;" type="reporter" category="looks"><header></header><code></code><translations>de:Kostüm aus Text _ Größe _&#xD;pt:um traje com o texto _ de tamanho _&#xD;ca:vestit amb el text _ i mida _&#xD;</translations><inputs><input type="%s">A</input><input type="%n">72</input></inputs><script><block s="doDeclareVariables"><list><l>costume</l><l>x</l><l>y</l><l>dir</l><l>cst</l><l>trails</l><l>pen state</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>cst</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>pen state</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="setHeading"><l>90</l></block><block s="doSwitchToCostume"><l><option>Turtle</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="write"><block var="text"/><block var="size"/></block><block s="gotoXY"><block s="reportAttributeOf"><l><option>left</option></l><l>Stage</l></block><l>0</l></block><block s="doSetVar"><l>costume</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="costume"/><block s="reportJoinWords"><list><block var="text"/></list></block></list></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="doIf"><block var="pen state"/><script><block s="down"></block></script><list></list></block><block s="doReport"><block var="costume"/></block></script></block-definition><block-definition s="costume %&apos;cst&apos; with background RGBA %&apos;rgb&apos; padding %&apos;padding&apos;" type="reporter" category="looks"><header></header><code></code><translations></translations><inputs><input type="%s" readonly="true"><options>§_costumesMenu</options></input><input type="%n">200</input><input type="%n">2</input></inputs><script><block s="doDeclareVariables"><list><l>old</l><l>clr</l><l>new</l><l>x</l><l>y</l><l>dir</l><l>trails</l><l>flat</l><l>old size</l><l>old pen state</l></list></block><block s="doSetVar"><l>x</l><block s="xPosition"></block></block><block s="doSetVar"><l>y</l><block s="yPosition"></block></block><block s="doSetVar"><l>dir</l><block s="direction"></block></block><block s="doSetVar"><l>old</l><block s="reportGet"><l><option>costume</option></l></block></block><block s="doSetVar"><l>clr</l><block s="getPenAttribute"><l><option>r-g-b-a</option></l></block></block><block s="doSetVar"><l>flat</l><block s="reportGlobalFlag"><l><option>flat line ends</option></l></block></block><block s="doSetVar"><l>old size</l><block s="getPenAttribute"><l><option>size</option></l></block></block><block s="doSetVar"><l>old pen state</l><block s="getPenDown"></block></block><block s="up"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSetVar"><l>trails</l><block s="reportPenTrailsAsCostume"></block></block><block s="clear"></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block s="reportVariadicSum"><list><block s="reportQuotient"><block s="reportGetImageAttribute"><l><option>width</option></l><block var="cst"/></block><l>2</l></block><block var="padding"/></list></block></block><l>0</l></block><block s="setHeading"><l>90</l></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><l><bool>true</bool></l></block><block s="setSize"><block s="reportVariadicSum"><list><block s="reportGetImageAttribute"><l><option>height</option></l><block var="cst"/></block><block s="reportVariadicProduct"><list><block var="padding"/><l>2</l></list></block></list></block></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="rgb"/></block><block s="down"></block><block s="setXPosition"><block s="reportMonadic"><l><option>neg</option></l><block s="xPosition"></block></block></block><block s="up"></block><block s="doSwitchToCostume"><block var="cst"/></block><block s="doGotoObject"><l><option>center</option></l></block><block s="gotoXY"><block s="reportMonadic"><l><option>neg</option></l><block s="reportGet"><l><option>center x</option></l></block></block><block s="reportMonadic"><l><option>neg</option></l><block s="reportGet"><l><option>center y</option></l></block></block></block><block s="doStamp"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSetVar"><l>new</l><block s="reportPenTrailsAsCostume"></block></block><block s="doApplyExtension"><l>obj_name(obj, name)</l><list><block var="new"/><block s="reportIfElse"><block s="reportListContainsItem"><block s="reportTextSplit"><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><l><option>word</option></l></block><l>button</l></block><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><block s="reportJoinWords"><list><block s="reportAttributeOf"><l><option>costume name</option></l><l>Sprite</l></block><l> button</l></list></block></block></list></block><block s="clear"></block><block s="doGotoObject"><l><option>center</option></l></block><block s="doSwitchToCostume"><block var="trails"/></block><block s="doStamp"></block><block s="doSwitchToCostume"><block var="old"/></block><block s="gotoXY"><block var="x"/><block var="y"/></block><block s="setHeading"><block var="dir"/></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><block var="clr"/></block><block s="doSetGlobalFlag"><l><option>flat line ends</option></l><block var="flat"/></block><block s="setSize"><block var="old size"/></block><block s="doIf"><block var="old pen state"/><script><block s="down"></block></script><list></list></block><block s="doReport"><block var="new"/></block></script><scripts><script x="255" y="186.19999999999996"><custom-block s="costume %s with background RGBA %n padding %n"><custom-block s="costume %s with background RGBA %n padding %n"><custom-block s="costume from text %s size %n"><l>Snap!</l><l>36</l></custom-block><l>200</l><l>10</l></custom-block><l>100</l><l>2</l></custom-block></script><comment x="248.685546875" y="121.03333333333337" w="106" collapsed="false">Use this block to make &quot;clickable&quot; buttons:</comment></scripts></block-definition><block-definition s="write weather data" type="command" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>forecast</l><block s="reifyScript"><script><block s="clear"></block><block s="hide"></block><block s="gotoXY"><l>-230</l><l>160</l></block><block s="write"><custom-block s="location of weather"></custom-block><l>10</l></block><block s="gotoXY"><l>-230</l><l>10</l></block><block s="write"><custom-block s="%s of weather %l"><l>name</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block><l>12</l></block><block s="gotoXY"><l>-230</l><l>-25</l></block><block s="write"><custom-block s="temperature of weather"></custom-block><l>36</l></block><block s="gotoXY"><l>-230</l><l>-145</l></block><block s="write"><custom-block s="%s of weather %l"><l>shortForecast</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block><block s="reportIfElse"><custom-block s="length of %s &gt; %n"><custom-block s="%s of weather %l"><l>shortForecast</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block><l>60</l></custom-block><l>9</l><l>12</l></block></block><block s="gotoXY"><l>-230</l><l>-160</l></block><block s="write"><custom-block s="wind of weather"></custom-block><l>12</l></block><block s="gotoXY"><l>-185</l><l>-85</l></block><block s="show"></block><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>cst_load(url)</l><list><custom-block s="%s of weather %l"><l>icon</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block></list></block></block><custom-block s="update bg"></custom-block></script><list></list></block><list></list></block></script></block-definition><block-definition s="right shift focused item of %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doInsertInList"><block s="reportListItem"><l>1</l><block var="list"/></block><l><option>last</option></l><block var="list"/></block><block s="doDeleteFromList"><l>1</l><block var="list"/></block></script></block-definition><block-definition s="left shift focused item of %&apos;list&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doInsertInList"><block s="reportListItem"><l><option>last</option></l><block var="list"/></block><l>1</l><block var="list"/></block><block s="doDeleteFromList"><l><option>last</option></l><block var="list"/></block></script></block-definition><block-definition s="$trash clear all data" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doTellTo"><l>bg</l><block s="reifyScript"><script><block s="doSwitchToCostume"><l></l></block><block s="hide"></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Left</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block><block s="doTellTo"><l>Right</l><block s="reifyScript"><script><block s="hide"></block></script><list></list></block><list></list></block><block s="doSwitchToCostume"><l></l></block><block s="hide"></block><block s="doSetVar"><l>weather</l><l>0</l></block><block s="clear"></block></script></block-definition><block-definition s="update bg" type="command" category="looks"><header></header><code></code><translations></translations><inputs></inputs><script><block s="fork"><block s="reifyScript"><script><block s="doTellTo"><l>bg</l><block s="reifyScript"><script><block s="doSwitchToCostume"><block s="reportApplyExtension"><l>cst_load(url)</l><list><custom-block s="%s of weather %l"><l>icon</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block></list></block></block></script><list></list></block><list></list></block></script><list></list></block><list></list></block></script></block-definition><block-definition s="length of %&apos;str&apos; &gt; %&apos;n&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s">Hello, World!</input><input type="%n">60</input></inputs><script><block s="doReport"><block s="reportVariadicGreaterThan"><list><block s="reportListAttribute"><l><option>length</option></l><block s="reportTextSplit"><block var="str"/><l><option>letter</option></l></block></block><block var="n"/></list></block></block></script></block-definition><block-definition s="$helper load weather data" type="command" category="Weather"><header></header><code></code><translations></translations><inputs></inputs><script><custom-block s="safely try %cs then if %upvar %cs"><script><block s="doSetVar"><l>weather</l><block s="reportNewList"><list><block s="reportListAttribute"><l><option>flatten</option></l><block s="reportNewList"><list><block s="reportListItem"><l>timeZone</l><block var="weather"/></block><block s="reportPipe"><block s="reportListItem"><l>properties</l><block s="reportListItem"><l>relativeLocation</l><block var="weather"/></block></block><list><block s="reifyReporter"><autolambda><block s="reportNewList"><list><block s="reportListItem"><l>city</l><l/></block><block s="reportListItem"><l>state</l><l/></block></list></block></autolambda><list></list></block></list></block></list></block></block><block s="reportListItem"><l>periods</l><block s="reportListItem"><l>properties</l><custom-block s="json data from %s"><block s="reportListItem"><l>forecast</l><block var="weather"/></block></custom-block></block></block></list></block></block></script><l>error</l><script><custom-block s="$helper load weather data"></custom-block></script></custom-block></script><scripts><script x="226.263671875" y="266.99999999999994"><block s="reportListItem"><l>periods</l><block s="reportListItem"><l>properties</l><custom-block s="json data from %s"><block s="reportListItem"><l>forecastHourly</l><block var="weather"/></block></custom-block></block></block></script></scripts></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></blocks><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="1083"><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="1084"></list></costumes><sounds><list struct="atomic" id="1085"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="4"><sprite name="forecast" idx="1" x="-185" y="-85" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="80,80,80,1" pen="tip" id="1090"><costumes><list struct="atomic" id="1091"></list></costumes><sounds><list struct="atomic" id="1092"></list></sounds><blocks></blocks><variables></variables><scripts><script x="288" y="82.19999999999999"><block s="receiveKey"><l><option>right arrow</option></l><list></list></block><custom-block s="right shift focused item of %s"><block s="reportListItem"><l>2</l><block var="weather"/></block></custom-block><custom-block s="write weather data"></custom-block></script><script x="246" y="201.2"><block s="receiveKey"><l><option>left arrow</option></l><list></list></block><custom-block s="left shift focused item of %s"><block s="reportListItem"><l>2</l><block var="weather"/></block></custom-block><custom-block s="write weather data"></custom-block></script><script x="15.5" y="14"><block s="receiveGo"></block><custom-block s="load weather data"></custom-block><block s="doForever"><script><custom-block s="write weather data"></custom-block><block s="doWait"><l>0.1</l></block></script></block></script><script x="54.5" y="170"><block s="receiveInteraction"><l><option>stopped</option></l></block><custom-block s="$trash clear all data"></custom-block></script><script x="47" y="363.2"><block s="doThink"><custom-block s="%s of weather %l"><l>detailedForecast</l><block s="reportListItem"><l>1</l><block s="reportListItem"><l>2</l><block var="weather"/></block></block></custom-block></block></script></scripts></sprite><sprite name="bg" idx="2" x="0" y="0" heading="90" scale="6" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="186.15,0,55.84500000000013,1" pen="tip" id="1138"><costumes><list struct="atomic" id="1139"></list></costumes><sounds><list struct="atomic" id="1140"></list></sounds><blocks></blocks><variables></variables><scripts><script x="14" y="15"><block s="receiveGo"></block><block s="gotoXY"><l>0</l><l>0</l></block><block s="setEffect"><l><option>ghost</option></l><l>75</l></block><block s="setScale"><l>600</l></block><block s="show"></block></script></scripts></sprite><sprite name="Left" idx="3" x="170" y="-165" heading="270" scale="0.7" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="0,0,0,0.5" pen="tip" id="1154"><costumes><list struct="atomic" id="1155"></list></costumes><sounds><list struct="atomic" id="1156"></list></sounds><blocks></blocks><variables></variables><scripts><script x="37" y="35"><block s="receiveInteraction"><l><option>clicked</option></l></block><custom-block s="left shift focused item of %s"><block s="reportListItem"><l>2</l><block var="weather"/></block></custom-block><custom-block s="write weather data"></custom-block></script><script x="62" y="137"><block s="receiveGo"></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l></l></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block><block s="setHeading"><l>-90</l></block><block s="setScale"><l>70</l></block><block s="gotoXY"><l>170</l><l>-165</l></block><block s="show"></block></script></scripts></sprite><sprite name="Right" idx="4" x="225" y="-165" heading="90" scale="0.7" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="0" color="0,0,0,0.5" pen="tip" id="1183"><costumes><list struct="atomic" id="1184"></list></costumes><sounds><list struct="atomic" id="1185"></list></sounds><blocks></blocks><variables></variables><scripts><script x="11" y="34"><block s="receiveInteraction"><l><option>clicked</option></l></block><custom-block s="right shift focused item of %s"><block s="reportListItem"><l>2</l><block var="weather"/></block></custom-block><custom-block s="write weather data"></custom-block></script><script x="164" y="141"><block s="receiveGo"></block><block s="setPenColorDimension"><l><option>r-g-b(-a)</option></l><l></l></block><block s="setPenColorDimension"><l><option>transparency</option></l><l>50</l></block><block s="setHeading"><l>90</l></block><block s="setScale"><l>70</l></block><block s="gotoXY"><l>225</l><l>-165</l></block><block s="show"></block></script></scripts></sprite><watcher var="weather" style="normal" x="10" y="10" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="weather"><l>0</l></variable></variables></scene></scenes></project><media name="Weather Forecaster" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>