<snapdata remixID="13422056"><project name="bart_departures" app="Snap! 9.0, https://snap.berkeley.edu" version="2"><notes>Show schedule of trains departing from any station of BART (Bay Area Rapid Transit).  get a free apikey from BART (https://www.bart.gov/schedules/developers/api)  - you won&apos;t regre it .&#xD;program uses the commandsSTNS (list of stations) and ETD (estimated time of departures).  More commands available at https://api.bart.gov/</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAGWklEQVR4Xu2dS0icVxTHz0wdbdPEUm19BBONi7pQrI8IJYqim26KWcRHU7Sl2NIsqq58LQqpi0qgCCKUtoJgIAtR0CoqlkRw0agFtQV1YzUmUAlGtNVRx0dq597QSSam8VOR893j/4KM49z7nXN+56cz3x35xrHrHYQBAkwEHBCQiTzCagIQECKwEoCArPgRHALCAVYCEJAVP4JDQDjASgACsuJHcAgIB1gJQEBW/Aj+QgHn5uZocnLStnQiIiIoNTXVtvkhMesE9gjY0tJC6enp1o/w3Mwfv7pGce7fDr1+v4X5t2ZpYWFBTwsLC6Pg4OD9luBxGxPwE3BmZoY8Hs+R0j3zw/sU8przSMd42WJn+R26t7ylpywuLlJWVtaxxcKBj5+An4Ctra0UFxeno6r/UUhJSaGoqCgqKCig+vp66urqotzcXCovL6eGhgY9b2xsTD8dqls1Qpo/oLPXmsnT8plf9qdvPCB31XkLFTlU9P+fV3ab/ni07ns8Pj6eXC6XheNiih0J+AnY29tLoaGhvjxnZ2cpMDCQ5ufnKScnR0sYFBRETqeTwsPDKSYmhqampqiurk7frq6uUuStKz4BlXRa5vVlcpx6kza7rpPzrRhyXfrE+1OHvr/9S7P+/vSN+7TxfT49vvcrudI/paDc6+Sujla/CU/vV0XT7pc/09T8374c09LSdD4YZhLwE9DtdtP4+PiRKoluu3qsT8H/eAX8fe6RznFoaIgqKyuPlC8W8xLYcxLS1NREsbGxh84qKSmJQkNCDr1+v4V3Bgb0FPUXt7S0dL/peNzmBLAPaPMGSU8PAkrvsM3re6GA6+vrNDo6SisrK8eSvjp5UWevGCCwR8DOzk5KSEiwRCbE+1rvu4+SKNL1dFvkZQtPnX2H0ipu6ikPHz6kjIwMS3EwSS4BPwGXl5f1lovVER72Nr367UWr0/W8+ZLbtL29rb8fHh6mkpKSA63HZFkE/AScmJignZ0dX4XJycl6WyYvL4/a2tooPz9f36rN6O7uboqMjKTX69O8859sHqt9v8cPxmir9xtyZX6hj/NKzEVa+/pd3zHvf9znE7C/v5+qqqpkEUU1ByLgJ+D09DQtLS35DpCYmEgBAQHU3t5OA97tD7UZrW6rq6v122Dnz52jMw3v+QQMulxLAUmXyXPzcy3g7l9/6vtq/Cfh9Ic/0dbWk7fSRkZGqKys7EAJY7IsAn4CKjH6+vpIvbazMmIvXKA3Gi9ZmeqbM3WlnTY3N/V9h8OB14EHoidv8p6TEPVuyEEkzMrM1H8lrYwNzwbdvTukpw4ODlJtba2VZZgjmAD2AQU314TSIKAJXRKcIwQU3FwTSoOAJnRJcI4QUHBzTSgNAprQJcE5QkDBzTWhNAhoQpcE5wgBBTfXhNIgoAldEpwjBBTcXBNKg4AmdElwjhBQcHNNKA0CmtAlwTlCQMHNNaE0CGhClwTnCAEFN9eE0iCgCV0SnCMEFNxcE0qDgCZ0SXCOEFBwc00oDQKa0CXBOUJAwc01oTQIaEKXBOcIAQU314TSIKAJXRKcIwQU3FwTSoOAJnRJcI4QUHBzTSgNAprQJcE5QkDBzTWhNNsJqK7SWlhYSD09PfoSwBiyCdhOQIV7bW2NioqKfOTVBTDVtakx5BGwpYAKc2Njo74e9fNDXd43OzubKioq5HXjBFZknIDqIx7UB2rX1NScwHbJK9mWAj77FKw+ilV94SlYnnyqItsJqE5CiouLqaOjAychMp3zq8p2Ap4A5ijxGQIQEDqwEoCArPgRHALCAVYCEJAVP4JDQDjASgACsuJHcAgIB1gJQEBW/AgOAeEAKwEIyIofwSEgHGAlAAFZ8SM4BIQDrAQgICt+BIeAcICVAARkxY/gEBAOsBKAgKz4ERwCwgFWAhCQFT+CQ0A4wEoAArLiR3AICAdYCUBAVvwIDgHhACsBCMiKH8EhIBxgJQABWfEjOASEA6wEICArfgSHgHCAlQAEZMWP4BAQDrASgICs+BEcAsIBVgIQkBU/gkNAOMBKAAKy4kdwCAgHWAlAQFb8CA4B4QArAQjIih/BISAcYCUAAVnxIzgEhAOsBCAgK34Eh4BwgJUABGTFj+AQEA6wEoCArPgRHALCAVYCEJAVP4JDQDjASgACsuJHcAgIB1gJQEBW/Aj+L/u3H8b+t/MXAAAAAElFTkSuQmCC</thumbnail><scenes select="1"><scene name="bart_departures"><notes>Show schedule of trains departing from any station of BART (Bay Area Rapid Transit).  get a free apikey from BART (https://www.bart.gov/schedules/developers/api)  - you won&apos;t regre it .&#xD;program uses the commandsSTNS (list of stations) and ETD (estimated time of departures).  More commands available at https://api.bart.gov/</notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="listify %&apos;jsonString&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:os dados JSON _ em formato de lista&#xD;</translations><inputs><input type="%mlt"></input></inputs><script><block s="doReport"><block s="reportTextSplit"><block var="jsonString"/><l><option>json</option></l></block></block></script></block-definition><block-definition s="value at key %&apos;key&apos; of %&apos;lst&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:o valor com chave _ em _&#xD;</translations><inputs><input type="%s"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doForEach"><l>each item</l><block var="lst"/><script><block s="doIf"><block s="reportVariadicEquals"><list><block s="reportListItem"><l>1</l><block var="each item"/></block><block var="key"/></list></block><script><block s="doReport"><block s="reportListItem"><l>2</l><block var="each item"/></block></block></script><list></list></block></script></block></script></block><block s="doReport"><l></l></block></script></block-definition><block-definition s="%&apos;method&apos; url: %&apos;url&apos; send: %&apos;payload&apos; headers: %&apos;headers&apos;" type="reporter" category="sensing"><header></header><code></code><translations>pt:a resposta a _ de _ enviando _ e cabeçalhos _&#xD;</translations><inputs><input type="%s" readonly="true">GET<options>GET&#xD;POST&#xD;PUT&#xD;DELETE</options></input><input type="%s">https://snap.berkeley.edu</input><input type="%s"></input><input type="%mult%l" readonly="true"></input></inputs><script><block s="doReport"><block s="reportApplyExtension"><l>xhr_request(mth, url, dta, hdrs)</l><list><block var="method"/><block var="url"/><block var="payload"/><block var="headers"/></list></block></block></script></block-definition><block-definition s="key: %&apos;key&apos; value: %&apos;value&apos;" type="reporter" category="operators"><header></header><code></code><translations>pt:um par (chave: _ , valor: _ )&#xD;</translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportNewList"><list><block var="key"/><block var="value"/></list></block></block></script></block-definition><block-definition s="current location" type="reporter" category="sensing"><comment x="0" y="0" w="200" collapsed="false">Reports a three-item list containing the latitude and longitude of the user, and the precision of the measurements.  Works only if the user allows snap.berkeley.edu access to location data.  Some browsers also require an HTTPS connection to Snap!.</comment><header></header><code></code><translations>pt:a localização actual do dispositivo&#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>true</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>3</l></list></block></block><block s="doReport"><block s="evaluate"><block var="callback"/><list></list></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="pick_station" type="command" category="variables"><header></header><code></code><translations></translations><inputs></inputs></block-definition><block-definition s="sel_station" type="reporter" category="variables"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><l>3</l></block></script></block-definition><block-definition s="%&apos;data&apos; from %&apos;var&apos;" type="reporter" category="other"><header></header><code></code><translations></translations><inputs><input type="%s">select<options>function () {&#xD;var ide = world.children[0];&#xD;var menuVarName = this.parent.blockSpec;&#xD;//console.log(this.parent.cachedInputs[1].children[0].text);&#xD;//return &quot;fred&quot;;&#xD;menuVarName = this.parent.cachedInputs[1].children[0].text;&#xD;//console.log(menuVarName);&#xD;var menu = ide.getVar(menuVarName).asArray();&#xD;console.log(menu);&#xD;var rv = {};&#xD;if (menu[0] instanceof List) {&#xD;//console.log(menu[0].contents);&#xD;  if (menu[0].contents[0] instanceof List) {&#xD;    //console.log(menu[0].contents[0]);&#xD;    for (var i = 0; i &lt; menu.length; ++i) {&#xD;      rv[menu[i].contents[0].contents[0]+&quot;\u00A0&quot;+&quot;(&quot;+menu[i].contents[0].contents[1]+&quot;)&quot;] = menu[i].contents[0].contents[0]+&quot;\u00A0&quot;+&quot;(&quot;+menu[i].contents[0].contents[1]+&quot;)&quot;;&#xD;    }&#xD;  } else {&#xD;    for (var i = 0; i &lt; menu.length; ++i) {&#xD;      rv[menu[i].contents[0]] = menu[i].contents[1];&#xD;    }&#xD;  }&#xD;} else {  &#xD;  for (var i = 0; i &lt; menu.length; ++i)&#xD;    rv[menu[i]] = menu[i];&#xD;}&#xD;console.log(rv);&#xD;return rv;&#xD;}</options></input><input type="%s">choose variable<options>§_getVarNamesDict</options></input></inputs><script><block s="doReport"><block s="reportListItem"><l>1</l><block s="reportTextSplit"><block var="data"/><block s="reportJoinWords"><list><block s="reportUnicodeAsLetter"><l>160</l></block><l>(</l></list></block></block></block></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="338"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAOhUlEQVR4Xu3VwQkAAAjEMN1/abewn7jAQRC64wgQIECAAIF3gX1fNEiAAAECBAiMAHsCAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+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+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQIHLFxAWmhEwHPAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="339"></list></costumes><sounds><list struct="atomic" id="340"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="-100" y="0" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="345"><costumes><list struct="atomic" id="346"></list></costumes><sounds><list struct="atomic" id="347"></list></sounds><blocks></blocks><variables></variables><scripts><script x="20" y="20"><block s="doSetVar"><l>apikey</l><l>YOUR_API_KEY</l></block></script><script x="20" y="60"><block s="doSetVar"><l>stn_jsonstr</l><custom-block s="%s url: %s send: %s headers: %mult%l"><l>GET</l><block s="reportJoinWords"><list><l>https://api.bart.gov/api/stn.aspx?cmd=stns&amp;json=y&amp;key=</l><block var="apikey"/></list></block><l></l><list></list></custom-block><comment w="90" collapsed="false">build stations list</comment></block><block s="doSetVar"><l>sel_list</l><block s="reportNewList"><list></list></block></block><block s="doSetVar"><l>abbr_list</l><block s="reportNewList"><list></list></block></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="value at key %s of %l"><l>station</l><custom-block s="value at key %s of %l"><l>stations</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="stn_jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></custom-block></block><script><block s="doSetVar"><l>stn_item</l><block s="reportListItem"><block var="i"/><custom-block s="value at key %s of %l"><l>station</l><custom-block s="value at key %s of %l"><l>stations</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="stn_jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></custom-block></block></block><block s="doAddToList"><custom-block s="value at key %s of %l"><l>name</l><block var="stn_item"/></custom-block><block var="sel_list"/></block><block s="doAddToList"><custom-block s="value at key %s of %l"><l>abbr</l><block var="stn_item"/></custom-block><block var="abbr_list"/></block></script></block><block s="gotoXY"><l>-100</l><l>0</l></block><block s="doSayFor"><l>Pick your station</l><l>2</l></block><block s="doAsk"><block var="sel_list"/><comment w="90" collapsed="false">get originating station</comment></block><block s="doSetVar"><l>stname</l><block s="getLastAnswer"></block></block><block s="doSetVar"><l>abbr</l><block s="reportListItem"><block s="reportListIndex"><block s="getLastAnswer"></block><block var="sel_list"/></block><block var="abbr_list"/></block></block><block s="doSetVar"><l>jsonstr</l><custom-block s="%s url: %s send: %s headers: %mult%l"><l>GET</l><block s="reportJoinWords"><list><l>https://api.bart.gov/api/etd.aspx?cmd=etd&amp;orig=</l><block var="abbr"/><l>&amp;json=y&amp;key=</l><block var="apikey"/></list></block><l></l><list></list></custom-block><comment w="90" collapsed="false">get departure json</comment></block><block s="doSetVar"><l>stname</l><custom-block s="value at key %s of %l"><l>name</l><block s="reportListItem"><l>1</l><custom-block s="value at key %s of %l"><l>station</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></block></custom-block><comment w="90" collapsed="false">get station name, date, time.</comment></block><block s="doSetVar"><l>snap_date</l><custom-block s="value at key %s of %l"><l>date</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></block><block s="doSetVar"><l>snap_time</l><custom-block s="value at key %s of %l"><l>time</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></block><block s="doSetVar"><l>stn</l><block s="reportListItem"><l>1</l><custom-block s="value at key %s of %l"><l>station</l><block s="reportListItem"><l>2</l><custom-block s="$flash assoc %s %l"><l>root</l><block s="reportTextSplit"><block var="jsonstr"/><l><option>json</option></l></block></custom-block></block></custom-block></block><comment w="90" collapsed="false">build result list&#xD;</comment></block><block s="doSetVar"><l>result_list</l><block s="reportNewList"><list></list></block></block><block s="doAddToList"><l>DEPARTURES (click to exit):</l><block var="result_list"/></block><block s="doFor"><l>i</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="value at key %s of %l"><l>etd</l><block var="stn"/></custom-block></block><script><block s="doAddToList"><block s="reportJoinWords"><list><l>DESTINATION: </l><custom-block s="value at key %s of %l"><l>destination</l><block s="reportListItem"><block var="i"/><custom-block s="value at key %s of %l"><l>etd</l><block var="stn"/></custom-block></block></custom-block></list></block><block var="result_list"/></block><block s="doFor"><l>k</l><l>1</l><block s="reportListAttribute"><l><option>length</option></l><custom-block s="value at key %s of %l"><l>estimate</l><block s="reportListItem"><block var="i"/><custom-block s="value at key %s of %l"><l>etd</l><block var="stn"/></custom-block></block></custom-block></block><script><block s="doAddToList"><block s="reportJoinWords"><list><custom-block s="value at key %s of %l"><l>length</l><block s="reportListItem"><block var="k"/><custom-block s="value at key %s of %l"><l>estimate</l><block s="reportListItem"><block var="i"/><custom-block s="value at key %s of %l"><l>etd</l><block var="stn"/></custom-block></block></custom-block></block></custom-block><l>-car train in </l><custom-block s="value at key %s of %l"><l>minutes</l><block s="reportListItem"><block var="k"/><custom-block s="value at key %s of %l"><l>estimate</l><block s="reportListItem"><block var="i"/><custom-block s="value at key %s of %l"><l>etd</l><block var="stn"/></custom-block></block></custom-block></block></custom-block><l> minutes</l></list></block><block var="result_list"/></block></script></block></script></block><block s="doAsk"><block var="result_list"/></block></script></scripts></sprite><watcher var="sel_list" style="normal" x="10" y="204.000004" color="243,118,29" hidden="true"/><watcher var="abbr_list" style="normal" x="10" y="297.000006" color="243,118,29" hidden="true"/><watcher var="sel" style="normal" x="6" y="188.00000599999998" color="243,118,29" hidden="true"/><watcher var="stn_item" style="normal" x="4" y="180.999998" color="243,118,29" hidden="true"/><watcher var="jsonstr" style="normal" x="0" y="318.000008" color="243,118,29" hidden="true"/><watcher var="snap_time" style="normal" x="1" y="212.999998" color="243,118,29" hidden="true"/><watcher var="snap_date" style="normal" x="9" y="262.999998" color="243,118,29" hidden="true"/><watcher var="numcars" style="normal" x="10" y="338.999998" color="243,118,29" hidden="true"/><watcher var="stname" style="normal" x="10" y="31.000001999999995" color="243,118,29"/><watcher var="stn" style="normal" x="7.018633540372775" y="59.9503145590062" color="243,118,29" hidden="true"/><watcher var="stn_jsonstr" style="normal" x="0" y="52.00000399999999" color="243,118,29" hidden="true"/><watcher var="minutes" style="normal" x="18" y="281.000008" color="243,118,29" hidden="true"/><watcher var="result_list" style="normal" x="273.5527950310559" y="140.77019233540372" color="243,118,29" hidden="true"/><watcher var="abbr" style="normal" x="11" y="58.00000799999998" color="243,118,29"/><watcher var="apikey" style="normal" x="10" y="52.00000399999999" color="243,118,29" hidden="true"/></sprites></stage><variables><variable name="sel_list"><list struct="atomic" id="658">12th St. Oakland City Center,16th St. Mission,19th St. Oakland,24th St. Mission,Antioch,Ashby,Balboa Park,Bay Fair,Berryessa/North San Jose,Castro Valley,Civic Center/UN Plaza,Coliseum,Colma,Concord,Daly City,Downtown Berkeley,Dublin/Pleasanton,El Cerrito del Norte,El Cerrito Plaza,Embarcadero,Fremont,Fruitvale,Glen Park,Hayward,Lafayette,Lake Merritt,MacArthur,Millbrae,Milpitas,Montgomery St.,North Berkeley,North Concord/Martinez,Oakland International Airport,Orinda,Pittsburg/Bay Point,Pittsburg Center,Pleasant Hill/Contra Costa Centre,Powell St.,Richmond,Rockridge,San Bruno,San Francisco International Airport,San Leandro,South Hayward,South San Francisco,Union City,Walnut Creek,Warm Springs/South Fremont,West Dublin/Pleasanton,West Oakland</list></variable><variable name="sel"><l>C</l></variable><variable name="abbr_list"><list struct="atomic" id="659">12TH,16TH,19TH,24TH,ANTC,ASHB,BALB,BAYF,BERY,CAST,CIVC,COLS,COLM,CONC,DALY,DBRK,DUBL,DELN,PLZA,EMBR,FRMT,FTVL,GLEN,HAYW,LAFY,LAKE,MCAR,MLBR,MLPT,MONT,NBRK,NCON,OAKL,ORIN,PITT,PCTR,PHIL,POWL,RICH,ROCK,SBRN,SFIA,SANL,SHAY,SSAN,UCTY,WCRK,WARM,WDUB,WOAK</list></variable><variable name="abbr"><l>EMBR</l></variable><variable name="stn_item"><list id="660"><item><list struct="atomic" id="661">name,West Oakland</list></item><item><list struct="atomic" id="662">abbr,WOAK</list></item><item><list struct="atomic" id="663">gtfs_latitude,37.804872</list></item><item><list struct="atomic" id="664">gtfs_longitude,-122.295140</list></item><item><list struct="atomic" id="665">address,1451 7th Street</list></item><item><list struct="atomic" id="666">city,Oakland</list></item><item><list struct="atomic" id="667">county,alameda</list></item><item><list struct="atomic" id="668">state,CA</list></item><item><list struct="atomic" id="669">zipcode,94607</list></item></list></variable><variable name="stn_jsonstr"><l>{"?xml":{"@version":"1.0","@encoding":"utf-8"},"root":{"uri":{"#cdata-section":"http://api.bart.gov/api/stn.aspx?cmd=stns&amp;json=y"},"stations":{"station":[{"name":"12th St. Oakland City Center","abbr":"12TH","gtfs_latitude":"37.803768","gtfs_longitude":"-122.271450","address":"1245 Broadway","city":"Oakland","county":"alameda","state":"CA","zipcode":"94612"},{"name":"16th St. Mission","abbr":"16TH","gtfs_latitude":"37.765062","gtfs_longitude":"-122.419694","address":"2000 Mission Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94110"},{"name":"19th St. Oakland","abbr":"19TH","gtfs_latitude":"37.808350","gtfs_longitude":"-122.268602","address":"1900 Broadway","city":"Oakland","county":"alameda","state":"CA","zipcode":"94612"},{"name":"24th St. Mission","abbr":"24TH","gtfs_latitude":"37.752470","gtfs_longitude":"-122.418143","address":"2800 Mission Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94110"},{"name":"Antioch","abbr":"ANTC","gtfs_latitude":"37.995388","gtfs_longitude":"-121.780420","address":"1600 Slatten Ranch Road","city":"Antioch","county":"Contra Costa","state":"CA","zipcode":"94509"},{"name":"Ashby","abbr":"ASHB","gtfs_latitude":"37.852803","gtfs_longitude":"-122.270062","address":"3100 Adeline Street","city":"Berkeley","county":"alameda","state":"CA","zipcode":"94703"},{"name":"Balboa Park","abbr":"BALB","gtfs_latitude":"37.721585","gtfs_longitude":"-122.447506","address":"401 Geneva Avenue","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94112"},{"name":"Bay Fair","abbr":"BAYF","gtfs_latitude":"37.696924","gtfs_longitude":"-122.126514","address":"15242 Hesperian Blvd.","city":"San Leandro","county":"alameda","state":"CA","zipcode":"94578"},{"name":"Berryessa/North San Jose","abbr":"BERY","gtfs_latitude":"37.368473","gtfs_longitude":"-121.874681","address":"1620 Berryessa Road","city":"San Jose","county":"Santa Clara","state":"CA","zipcode":"95133"},{"name":"Castro Valley","abbr":"CAST","gtfs_latitude":"37.690746","gtfs_longitude":"-122.075602","address":"3301 Norbridge Dr.","city":"Castro Valley","county":"alameda","state":"CA","zipcode":"94546"},{"name":"Civic Center/UN Plaza","abbr":"CIVC","gtfs_latitude":"37.779732","gtfs_longitude":"-122.414123","address":"1150 Market Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94102"},{"name":"Coliseum","abbr":"COLS","gtfs_latitude":"37.753661","gtfs_longitude":"-122.196869","address":"7200 San Leandro St.","city":"Oakland","county":"alameda","state":"CA","zipcode":"94621"},{"name":"Colma","abbr":"COLM","gtfs_latitude":"37.684638","gtfs_longitude":"-122.466233","address":"365 D Street","city":"Colma","county":"sanmateo","state":"CA","zipcode":"94014"},{"name":"Concord","abbr":"CONC","gtfs_latitude":"37.973737","gtfs_longitude":"-122.029095","address":"1451 Oakland Avenue","city":"Concord","county":"contracosta","state":"CA","zipcode":"94520"},{"name":"Daly City","abbr":"DALY","gtfs_latitude":"37.706121","gtfs_longitude":"-122.469081","address":"500 John Daly Blvd.","city":"Daly City","county":"sanmateo","state":"CA","zipcode":"94014"},{"name":"Downtown Berkeley","abbr":"DBRK","gtfs_latitude":"37.870104","gtfs_longitude":"-122.268133","address":"2160 Shattuck Avenue","city":"Berkeley","county":"alameda","state":"CA","zipcode":"94704"},{"name":"Dublin/Pleasanton","abbr":"DUBL","gtfs_latitude":"37.701687","gtfs_longitude":"-121.899179","address":"5801 Owens Dr.","city":"Pleasanton","county":"alameda","state":"CA","zipcode":"94588"},{"name":"El Cerrito del Norte","abbr":"DELN","gtfs_latitude":"37.925086","gtfs_longitude":"-122.316794","address":"6400 Cutting Blvd.","city":"El Cerrito","county":"contracosta","state":"CA","zipcode":"94530"},{"name":"El Cerrito Plaza","abbr":"PLZA","gtfs_latitude":"37.902632","gtfs_longitude":"-122.298904","address":"6699 Fairmount Avenue","city":"El Cerrito","county":"contracosta","state":"CA","zipcode":"94530"},{"name":"Embarcadero","abbr":"EMBR","gtfs_latitude":"37.792874","gtfs_longitude":"-122.397020","address":"298 Market Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94111"},{"name":"Fremont","abbr":"FRMT","gtfs_latitude":"37.557465","gtfs_longitude":"-121.976608","address":"2000 BART Way","city":"Fremont","county":"alameda","state":"CA","zipcode":"94536"},{"name":"Fruitvale","abbr":"FTVL","gtfs_latitude":"37.774836","gtfs_longitude":"-122.224175","address":"3401 East 12th Street","city":"Oakland","county":"alameda","state":"CA","zipcode":"94601"},{"name":"Glen Park","abbr":"GLEN","gtfs_latitude":"37.733064","gtfs_longitude":"-122.433817","address":"2901 Diamond Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94131"},{"name":"Hayward","abbr":"HAYW","gtfs_latitude":"37.669723","gtfs_longitude":"-122.087018","address":"699 &apos;B&apos; Street","city":"Hayward","county":"alameda","state":"CA","zipcode":"94541"},{"name":"Lafayette","abbr":"LAFY","gtfs_latitude":"37.893176","gtfs_longitude":"-122.124630","address":"3601 Deer Hill Road","city":"Lafayette","county":"contracosta","state":"CA","zipcode":"94549"},{"name":"Lake Merritt","abbr":"LAKE","gtfs_latitude":"37.797027","gtfs_longitude":"-122.265180","address":"800 Madison Street","city":"Oakland","county":"alameda","state":"CA","zipcode":"94607"},{"name":"MacArthur","abbr":"MCAR","gtfs_latitude":"37.829065","gtfs_longitude":"-122.267040","address":"555 40th Street","city":"Oakland","county":"alameda","state":"CA","zipcode":"94609"},{"name":"Millbrae","abbr":"MLBR","gtfs_latitude":"37.600271","gtfs_longitude":"-122.386702","address":"200 North Rollins Road","city":"Millbrae","county":"sanmateo","state":"CA","zipcode":"94030"},{"name":"Milpitas","abbr":"MLPT","gtfs_latitude":"37.410277","gtfs_longitude":"-121.891081","address":"1755 S. Milpitas Blvd.","city":"Milpitas","county":"Santa Clara","state":"CA","zipcode":"95035"},{"name":"Montgomery St.","abbr":"MONT","gtfs_latitude":"37.789405","gtfs_longitude":"-122.401066","address":"598 Market Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94104"},{"name":"North Berkeley","abbr":"NBRK","gtfs_latitude":"37.873967","gtfs_longitude":"-122.283440","address":"1750 Sacramento Street","city":"Berkeley","county":"alameda","state":"CA","zipcode":"94702"},{"name":"North Concord/Martinez","abbr":"NCON","gtfs_latitude":"38.003193","gtfs_longitude":"-122.024653","address":"3700 Port Chicago Highway","city":"Concord","county":"contracosta","state":"CA","zipcode":"94520"},{"name":"Oakland International Airport","abbr":"OAKL","gtfs_latitude":"37.713238","gtfs_longitude":"-122.212191","address":"4 Airport Drive","city":"Oakland","county":"alameda","state":"CA","zipcode":"94621"},{"name":"Orinda","abbr":"ORIN","gtfs_latitude":"37.878361","gtfs_longitude":"-122.183791","address":"11 Camino Pablo","city":"Orinda","county":"contracosta","state":"CA","zipcode":"94563"},{"name":"Pittsburg/Bay Point","abbr":"PITT","gtfs_latitude":"38.018914","gtfs_longitude":"-121.945154","address":"1700 West Leland Road","city":"Pittsburg","county":"contracosta","state":"CA","zipcode":"94565"},{"name":"Pittsburg Center","abbr":"PCTR","gtfs_latitude":"38.016941","gtfs_longitude":"-121.889457","address":"2099 Railroad Avenue","city":"Pittsburg","county":"Contra Costa","state":"CA","zipcode":"94565"},{"name":"Pleasant Hill/Contra Costa Centre","abbr":"PHIL","gtfs_latitude":"37.928468","gtfs_longitude":"-122.056012","address":"1365 Treat Blvd.","city":"Walnut Creek","county":"contracosta","state":"CA","zipcode":"94597"},{"name":"Powell St.","abbr":"POWL","gtfs_latitude":"37.784471","gtfs_longitude":"-122.407974","address":"899 Market Street","city":"San Francisco","county":"sanfrancisco","state":"CA","zipcode":"94102"},{"name":"Richmond","abbr":"RICH","gtfs_latitude":"37.936853","gtfs_longitude":"-122.353099","address":"1700 Nevin Avenue","city":"Richmond","county":"contracosta","state":"CA","zipcode":"94801"},{"name":"Rockridge","abbr":"ROCK","gtfs_latitude":"37.844702","gtfs_longitude":"-122.251371","address":"5660 College Avenue","city":"Oakland","county":"alameda","state":"CA","zipcode":"94618"},{"name":"San Bruno","abbr":"SBRN","gtfs_latitude":"37.637761","gtfs_longitude":"-122.416287","address":"1151 Huntington Avenue","city":"San Bruno","county":"sanmateo","state":"CA","zipcode":"94066"},{"name":"San Francisco International Airport","abbr":"SFIA","gtfs_latitude":"37.615966","gtfs_longitude":"-122.392409","address":"International Terminal, Level 3","city":"San Francisco Int&apos;l Airport","county":"sanmateo","state":"CA","zipcode":"94128"},{"name":"San Leandro","abbr":"SANL","gtfs_latitude":"37.721947","gtfs_longitude":"-122.160844","address":"1401 San Leandro Blvd.","city":"San Leandro","county":"alameda","state":"CA","zipcode":"94577"},{"name":"South Hayward","abbr":"SHAY","gtfs_latitude":"37.634375","gtfs_longitude":"-122.057189","address":"28601 Dixon Street","city":"Hayward","county":"alameda","state":"CA","zipcode":"94544"},{"name":"South San Francisco","abbr":"SSAN","gtfs_latitude":"37.664245","gtfs_longitude":"-122.443960","address":"1333 Mission Road","city":"South San Francisco","county":"sanmateo","state":"CA","zipcode":"94080"},{"name":"Union City","abbr":"UCTY","gtfs_latitude":"37.590630","gtfs_longitude":"-122.017388","address":"10 Union Square","city":"Union City","county":"alameda","state":"CA","zipcode":"94587"},{"name":"Walnut Creek","abbr":"WCRK","gtfs_latitude":"37.905522","gtfs_longitude":"-122.067527","address":"200 Ygnacio Valley Road","city":"Walnut Creek","county":"contracosta","state":"CA","zipcode":"94596"},{"name":"Warm Springs/South Fremont","abbr":"WARM","gtfs_latitude":"37.502171","gtfs_longitude":"-121.939313","address":"45193 Warm Springs Blvd","city":"Fremont","county":"alameda","state":"CA","zipcode":"94539"},{"name":"West Dublin/Pleasanton","abbr":"WDUB","gtfs_latitude":"37.699756","gtfs_longitude":"-121.928240","address":"6501 Golden Gate Drive","city":"Dublin","county":"alameda","state":"CA","zipcode":"94568"},{"name":"West Oakland","abbr":"WOAK","gtfs_latitude":"37.804872","gtfs_longitude":"-122.295140","address":"1451 7th Street","city":"Oakland","county":"alameda","state":"CA","zipcode":"94607"}]},"message":""}}</l></variable><variable name="jsonstr"><l>{"?xml":{"@version":"1.0","@encoding":"utf-8"},"root":{"@id":"1","uri":{"#cdata-section":"http://api.bart.gov/api/etd.aspx?cmd=etd&amp;orig=EMBR&amp;json=y"},"date":"04/07/2024","time":"08:57:48 PM PDT","station":[{"name":"Embarcadero","abbr":"EMBR","etd":[{"destination":"Antioch","abbreviation":"ANTC","limited":"0","estimate":[{"minutes":"6","platform":"2","direction":"North","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"256","cancelflag":"0","dynamicflag":"0"},{"minutes":"22","platform":"2","direction":"North","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"42","platform":"2","direction":"North","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"}]},{"destination":"Daly City","abbreviation":"DALY","limited":"0","estimate":[{"minutes":"6","platform":"1","direction":"South","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"26","platform":"1","direction":"South","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"46","platform":"1","direction":"South","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"}]},{"destination":"Dublin/Pleasanton","abbreviation":"DUBL","limited":"0","estimate":[{"minutes":"1","platform":"2","direction":"North","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"269","cancelflag":"0","dynamicflag":"0"},{"minutes":"17","platform":"2","direction":"North","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"37","platform":"2","direction":"North","length":"6","color":"BLUE","hexcolor":"#0099cc","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"}]},{"destination":"Richmond","abbreviation":"RICH","limited":"0","estimate":[{"minutes":"Leaving","platform":"2","direction":"North","length":"6","color":"RED","hexcolor":"#ff0000","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"14","platform":"2","direction":"North","length":"6","color":"RED","hexcolor":"#ff0000","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"34","platform":"2","direction":"North","length":"6","color":"RED","hexcolor":"#ff0000","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"}]},{"destination":"SFO/Millbrae","abbreviation":"MLBR","limited":"0","estimate":[{"minutes":"3","platform":"1","direction":"South","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"23","platform":"1","direction":"South","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"},{"minutes":"43","platform":"1","direction":"South","length":"8","color":"YELLOW","hexcolor":"#ffff33","bikeflag":"1","delay":"0","cancelflag":"0","dynamicflag":"0"}]}]}],"message":""}}</l></variable><variable name="snap_date"><l>04/07/2024</l></variable><variable name="snap_time"><l>08:57:48 PM PDT</l></variable><variable name="minutes"><l>0</l></variable><variable name="numcars"><l>0</l></variable><variable name="stname"><l>Embarcadero</l></variable><variable name="stn"><list id="670"><item><list struct="atomic" id="671">name,Embarcadero</list></item><item><list struct="atomic" id="672">abbr,EMBR</list></item><item><list id="673"><item><l>etd</l></item><item><list id="674"><item><list id="675"><item><list struct="atomic" id="676">destination,Antioch</list></item><item><list struct="atomic" id="677">abbreviation,ANTC</list></item><item><list struct="atomic" id="678">limited,0</list></item><item><list id="679"><item><l>estimate</l></item><item><list id="680"><item><list id="681"><item><list struct="atomic" id="682">minutes,6</list></item><item><list struct="atomic" id="683">platform,2</list></item><item><list struct="atomic" id="684">direction,North</list></item><item><list struct="atomic" id="685">length,8</list></item><item><list struct="atomic" id="686">color,YELLOW</list></item><item><list struct="atomic" id="687">hexcolor,#ffff33</list></item><item><list struct="atomic" id="688">bikeflag,1</list></item><item><list struct="atomic" id="689">delay,256</list></item><item><list struct="atomic" id="690">cancelflag,0</list></item><item><list struct="atomic" id="691">dynamicflag,0</list></item></list></item><item><list id="692"><item><list struct="atomic" id="693">minutes,22</list></item><item><list struct="atomic" id="694">platform,2</list></item><item><list struct="atomic" id="695">direction,North</list></item><item><list struct="atomic" id="696">length,8</list></item><item><list struct="atomic" id="697">color,YELLOW</list></item><item><list struct="atomic" id="698">hexcolor,#ffff33</list></item><item><list struct="atomic" id="699">bikeflag,1</list></item><item><list struct="atomic" id="700">delay,0</list></item><item><list struct="atomic" id="701">cancelflag,0</list></item><item><list struct="atomic" id="702">dynamicflag,0</list></item></list></item><item><list id="703"><item><list struct="atomic" id="704">minutes,42</list></item><item><list struct="atomic" id="705">platform,2</list></item><item><list struct="atomic" id="706">direction,North</list></item><item><list struct="atomic" id="707">length,8</list></item><item><list struct="atomic" id="708">color,YELLOW</list></item><item><list struct="atomic" id="709">hexcolor,#ffff33</list></item><item><list struct="atomic" id="710">bikeflag,1</list></item><item><list struct="atomic" id="711">delay,0</list></item><item><list struct="atomic" id="712">cancelflag,0</list></item><item><list struct="atomic" id="713">dynamicflag,0</list></item></list></item></list></item></list></item></list></item><item><list id="714"><item><list struct="atomic" id="715">destination,Daly City</list></item><item><list struct="atomic" id="716">abbreviation,DALY</list></item><item><list struct="atomic" id="717">limited,0</list></item><item><list id="718"><item><l>estimate</l></item><item><list id="719"><item><list id="720"><item><list struct="atomic" id="721">minutes,6</list></item><item><list struct="atomic" id="722">platform,1</list></item><item><list struct="atomic" id="723">direction,South</list></item><item><list struct="atomic" id="724">length,6</list></item><item><list struct="atomic" id="725">color,BLUE</list></item><item><list struct="atomic" id="726">hexcolor,#0099cc</list></item><item><list struct="atomic" id="727">bikeflag,1</list></item><item><list struct="atomic" id="728">delay,0</list></item><item><list struct="atomic" id="729">cancelflag,0</list></item><item><list struct="atomic" id="730">dynamicflag,0</list></item></list></item><item><list id="731"><item><list struct="atomic" id="732">minutes,26</list></item><item><list struct="atomic" id="733">platform,1</list></item><item><list struct="atomic" id="734">direction,South</list></item><item><list struct="atomic" id="735">length,6</list></item><item><list struct="atomic" id="736">color,BLUE</list></item><item><list struct="atomic" id="737">hexcolor,#0099cc</list></item><item><list struct="atomic" id="738">bikeflag,1</list></item><item><list struct="atomic" id="739">delay,0</list></item><item><list struct="atomic" id="740">cancelflag,0</list></item><item><list struct="atomic" id="741">dynamicflag,0</list></item></list></item><item><list id="742"><item><list struct="atomic" id="743">minutes,46</list></item><item><list struct="atomic" id="744">platform,1</list></item><item><list struct="atomic" id="745">direction,South</list></item><item><list struct="atomic" id="746">length,6</list></item><item><list struct="atomic" id="747">color,BLUE</list></item><item><list struct="atomic" id="748">hexcolor,#0099cc</list></item><item><list struct="atomic" id="749">bikeflag,1</list></item><item><list struct="atomic" id="750">delay,0</list></item><item><list struct="atomic" id="751">cancelflag,0</list></item><item><list struct="atomic" id="752">dynamicflag,0</list></item></list></item></list></item></list></item></list></item><item><list id="753"><item><list struct="atomic" id="754">destination,Dublin/Pleasanton</list></item><item><list struct="atomic" id="755">abbreviation,DUBL</list></item><item><list struct="atomic" id="756">limited,0</list></item><item><list id="757"><item><l>estimate</l></item><item><list id="758"><item><list id="759"><item><list struct="atomic" id="760">minutes,1</list></item><item><list struct="atomic" id="761">platform,2</list></item><item><list struct="atomic" id="762">direction,North</list></item><item><list struct="atomic" id="763">length,6</list></item><item><list struct="atomic" id="764">color,BLUE</list></item><item><list struct="atomic" id="765">hexcolor,#0099cc</list></item><item><list struct="atomic" id="766">bikeflag,1</list></item><item><list struct="atomic" id="767">delay,269</list></item><item><list struct="atomic" id="768">cancelflag,0</list></item><item><list struct="atomic" id="769">dynamicflag,0</list></item></list></item><item><list id="770"><item><list struct="atomic" id="771">minutes,17</list></item><item><list struct="atomic" id="772">platform,2</list></item><item><list struct="atomic" id="773">direction,North</list></item><item><list struct="atomic" id="774">length,6</list></item><item><list struct="atomic" id="775">color,BLUE</list></item><item><list struct="atomic" id="776">hexcolor,#0099cc</list></item><item><list struct="atomic" id="777">bikeflag,1</list></item><item><list struct="atomic" id="778">delay,0</list></item><item><list struct="atomic" id="779">cancelflag,0</list></item><item><list struct="atomic" id="780">dynamicflag,0</list></item></list></item><item><list id="781"><item><list struct="atomic" id="782">minutes,37</list></item><item><list struct="atomic" id="783">platform,2</list></item><item><list struct="atomic" id="784">direction,North</list></item><item><list struct="atomic" id="785">length,6</list></item><item><list struct="atomic" id="786">color,BLUE</list></item><item><list struct="atomic" id="787">hexcolor,#0099cc</list></item><item><list struct="atomic" id="788">bikeflag,1</list></item><item><list struct="atomic" id="789">delay,0</list></item><item><list struct="atomic" id="790">cancelflag,0</list></item><item><list struct="atomic" id="791">dynamicflag,0</list></item></list></item></list></item></list></item></list></item><item><list id="792"><item><list struct="atomic" id="793">destination,Richmond</list></item><item><list struct="atomic" id="794">abbreviation,RICH</list></item><item><list struct="atomic" id="795">limited,0</list></item><item><list id="796"><item><l>estimate</l></item><item><list id="797"><item><list id="798"><item><list struct="atomic" id="799">minutes,Leaving</list></item><item><list struct="atomic" id="800">platform,2</list></item><item><list struct="atomic" id="801">direction,North</list></item><item><list struct="atomic" id="802">length,6</list></item><item><list struct="atomic" id="803">color,RED</list></item><item><list struct="atomic" id="804">hexcolor,#ff0000</list></item><item><list struct="atomic" id="805">bikeflag,1</list></item><item><list struct="atomic" id="806">delay,0</list></item><item><list struct="atomic" id="807">cancelflag,0</list></item><item><list struct="atomic" id="808">dynamicflag,0</list></item></list></item><item><list id="809"><item><list struct="atomic" id="810">minutes,14</list></item><item><list struct="atomic" id="811">platform,2</list></item><item><list struct="atomic" id="812">direction,North</list></item><item><list struct="atomic" id="813">length,6</list></item><item><list struct="atomic" id="814">color,RED</list></item><item><list struct="atomic" id="815">hexcolor,#ff0000</list></item><item><list struct="atomic" id="816">bikeflag,1</list></item><item><list struct="atomic" id="817">delay,0</list></item><item><list struct="atomic" id="818">cancelflag,0</list></item><item><list struct="atomic" id="819">dynamicflag,0</list></item></list></item><item><list id="820"><item><list struct="atomic" id="821">minutes,34</list></item><item><list struct="atomic" id="822">platform,2</list></item><item><list struct="atomic" id="823">direction,North</list></item><item><list struct="atomic" id="824">length,6</list></item><item><list struct="atomic" id="825">color,RED</list></item><item><list struct="atomic" id="826">hexcolor,#ff0000</list></item><item><list struct="atomic" id="827">bikeflag,1</list></item><item><list struct="atomic" id="828">delay,0</list></item><item><list struct="atomic" id="829">cancelflag,0</list></item><item><list struct="atomic" id="830">dynamicflag,0</list></item></list></item></list></item></list></item></list></item><item><list id="831"><item><list struct="atomic" id="832">destination,SFO/Millbrae</list></item><item><list struct="atomic" id="833">abbreviation,MLBR</list></item><item><list struct="atomic" id="834">limited,0</list></item><item><list id="835"><item><l>estimate</l></item><item><list id="836"><item><list id="837"><item><list struct="atomic" id="838">minutes,3</list></item><item><list struct="atomic" id="839">platform,1</list></item><item><list struct="atomic" id="840">direction,South</list></item><item><list struct="atomic" id="841">length,8</list></item><item><list struct="atomic" id="842">color,YELLOW</list></item><item><list struct="atomic" id="843">hexcolor,#ffff33</list></item><item><list struct="atomic" id="844">bikeflag,1</list></item><item><list struct="atomic" id="845">delay,0</list></item><item><list struct="atomic" id="846">cancelflag,0</list></item><item><list struct="atomic" id="847">dynamicflag,0</list></item></list></item><item><list id="848"><item><list struct="atomic" id="849">minutes,23</list></item><item><list struct="atomic" id="850">platform,1</list></item><item><list struct="atomic" id="851">direction,South</list></item><item><list struct="atomic" id="852">length,8</list></item><item><list struct="atomic" id="853">color,YELLOW</list></item><item><list struct="atomic" id="854">hexcolor,#ffff33</list></item><item><list struct="atomic" id="855">bikeflag,1</list></item><item><list struct="atomic" id="856">delay,0</list></item><item><list struct="atomic" id="857">cancelflag,0</list></item><item><list struct="atomic" id="858">dynamicflag,0</list></item></list></item><item><list id="859"><item><list struct="atomic" id="860">minutes,43</list></item><item><list struct="atomic" id="861">platform,1</list></item><item><list struct="atomic" id="862">direction,South</list></item><item><list struct="atomic" id="863">length,8</list></item><item><list struct="atomic" id="864">color,YELLOW</list></item><item><list struct="atomic" id="865">hexcolor,#ffff33</list></item><item><list struct="atomic" id="866">bikeflag,1</list></item><item><list struct="atomic" id="867">delay,0</list></item><item><list struct="atomic" id="868">cancelflag,0</list></item><item><list struct="atomic" id="869">dynamicflag,0</list></item></list></item></list></item></list></item></list></item></list></item></list></item></list></variable><variable name="result_list"><list struct="atomic" id="870">DEPARTURES (click to exit):,DESTINATION: Antioch,8-car train in 6 minutes,8-car train in 22 minutes,8-car train in 42 minutes,DESTINATION: Daly City,6-car train in 6 minutes,6-car train in 26 minutes,6-car train in 46 minutes,DESTINATION: Dublin/Pleasanton,6-car train in 1 minutes,6-car train in 17 minutes,6-car train in 37 minutes,DESTINATION: Richmond,6-car train in Leaving minutes,6-car train in 14 minutes,6-car train in 34 minutes,DESTINATION: SFO/Millbrae,8-car train in 3 minutes,8-car train in 23 minutes,8-car train in 43 minutes</list></variable><variable name="apikey"><l>MW9S-E7SL-26DU-VV8V</l></variable></variables></scene></scenes></project><media name="bart_departures" app="Snap! 9.0, https://snap.berkeley.edu" version="2"></media></snapdata>