<snapdata remixID="10155990"><project name="U3L3-TicTacToe- New" app="Snap! 6, https://snap.berkeley.edu" version="1"><notes></notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAd70lEQVR4Xu2dCZhN5f/Av8MYa8Y29iV7ydJilywhJZElaSFLkqzZZReRSpYiS9olimy/X8s/pERStuyDYRZjBmPN3v/5vH7vucvcuffMIZ2Ze97n8ST3nHPfc97P/e7v94T8/ffff4sznCfwLz2BEAfAf+nJO1+rnoADYDoC4ejRo5KUlCSFChWy1V1duHBBzat8+fLJ5uUAaKulsj6Z6OhoOXbsmOTLl09CQkIEy8pO/7127ZrExsZKrVq1PG7SAdD6mtvqzA0bNkjhwoXVnD744AMlBcPDw+Xs2bOSI0cOBeSWLVvknnvukSlTpsiKFSvk3Llzt/QekIKlSpVS89HDAfCWLsE/92X/+c9/pEKFCuoLPvvsMzl+/LgUKFBA4uPjpUaNGrJ//365dOmSAjJjxowyZMgQOXXq1D83oRSujJSuVq2aA+Atf/L/8BcC4J133qnU7p49e+T8+fNy9epVBRt/z5Ahg2TJkkVJwo0bN0rfvn0F2+xWq+m4uDgPNexIwH8YjFt1+VWrVhkSMCwsTLJly3arvtrv95w8eUJCQjIYx2AH1q5d25GAtlidmziJlStXGgAmrl8kF759S66FF5GzEZWkUJFiN/GbAl8qLuaI5EjYLhGX4qR4y/6SUL6VcRIS0AEw8DNMc0doAFGx+2b3lFKZkuTM4zOUV8wIOX1cNi5fIFeu/i0SEiJC/sHHf/OXKCXlGzSXEydOKJsRFa2vkZqHkpCQIDmX9pISD7SRmDKPG165A2BqnmIaOhavVjshf07rLHkbd5eilVyq7ufBbaXK2X2SMcT/TfFx/g8jJfLAAcmVK5dyZgoWLGjpSURvXy9Vw2IlunRL43xilY4EtPQ47X3S8uXLDQB3Tu8ioQ8NlqJFi0qRIkXkzJkzsrZjNamZ84pxE1nK3SfZ72skxxdMSnZj+ebvk4OHDhkA4k1bGTt37pQHQ3fJkVItPACsU6eOYwNaeaB2PscbwIxNBikgiQUSbvnxueoeAHIvedsPTgHAvXLwUJQK2WTNmlXy589v6dYBsFGm3Q6Alp5eGjtp2bJlhgTcNaOrAGClSpVU6IWAszeAWSvWkWyV7vcLoFbBAGgls7Jr1y4F4OGSjxlPk7ikIwHTGFxmpguAxAEZu995XjI0HmgAyb9lOvCbZI2PDHypkBC5VL+DJCYmSqZMmeTixYuSM2fOwOf5OAIJ2Dhsj0Td3twDwPvvv99RwZaeqI1P+vrrrw3gADCk0QAPAE9H7ZXIxe/KhZOJfu+iQKHCUqH/NDl58qSSnn/99ZflmCIANsm81wHQxtzctKktXbrUAG7Pu90UgBQAoH6rV68u65+/X2rkuGh8X1jx8hIanl/Ob1+XbA5539+jbMDcuXMrLzhv3ryW5okKBsBDJR41zicV50hAS4/T3idpALHV9s58QeTB/nLvvffKvn37pFixYvJzl1oeTkjeZ16Ri/u3yOW4g3IxaqfHzeWZt0cORXkCaNUGfCjLPgWgPh8bsG7duo4KtjdOqZ/dkiVLDAkIgH83fFk++ugjad26tUr+r+9a2wPAiE5jJTRfYTk2e4hcPeWplvPM2y2Hog7LokWL1Pl58uRJ/YREBBXcNOt+OVi8mYcEdAC09DjtfdJXX31lALhvVne51qCfhw24td9DUjlDkqmbyPP+Xjl06JChglHFVgYAPpwtUg4Ue8Q4nQyJA6CVp2nzc3wBqL1iph5x7axc++O7gHdxNaKEnC1VXdmOV65cD1xnz5494Hm+DsAG9AYQG/CBBx5wVLClJ2rjk7788ktD4u1/70W5Wr+vhwTcNXecZNy0TLIHyMVlzRgiZT7dJ8CTOXNm5QVbLfFHAj6S/YBEFn3YQwI6ANoYJKtTA0At8SJn95Ar9foIZfo4IhQTbH6xnlTNccm4PIFoxl87fk72lbnm7JTDR6INFUw2xcoAwGY5Dsr+Ik2N04kvOgBaeZo2P2fx4sWGxAPAyw/0ltDQULntttuUBPu1+wMeTkiG7OFSeND7Ej2qdYoAaifEaiAaKeoNIDZgvXr1HBVsc55SPT1g0dUwB+a8pACkGhoHIiIiQja9WM8DQH8SMHz2TjkSHa2KGQ4fPqwgtlI5jQR89LZDsq/wQx4S0AEw1ctr/xMAUKvgg3N7yqW6vTxswKR5QyXv3h9N3UjueXtUWT+V1diAN1KM0DxnlOwt1MT4XgLbDoCmliGNHNS+gciGNfLFpIUGcAB48f6eHgCGyyXZuXqlXLnmvxFGniLFJXfFmqqCBi8YyWdVBSMBHws/7ACYRlBK/TT/B5/UrC8LW3Y3gDs0r5cC0D0Ms3VcZ7n7nLmC1PA5u+TIkSOGE3IjYRgA3FOwsYcErF+/vmMDpn61bXaGG3yyYLUsXLjQAC7q/d5yoc5Lalfc77//Lh07dpTNLzXwsAHDit+hClJPLpmR7MZyvrdDomNibxhAJGCLXEdkd4FGxndQ6u8AaDOWUj0dL/g4//PPPzckIAD+VbuHqmJZv369PPXUU7K5Z0Op5VYRHdF1goTmzi9xk7sm+/rbZu2QmNhYFYymINXqDjsAbJk72gEw1Qts5xN8wMd0FyxYYAB4eH4fOV/rRfX/BJOp6fuj14PJKqLDipaVS9H7fAC4XWJi4wwJCIRWBgA+nidGduV/0EMCNmjQwFHBVh7ov35OCvC5A0jVyZEP+hoA6iqU8Lidkj3xYOBbCAmRUzXaql1xeMHAqze0pzYUQxxQA6jnwXUdAAMvg/2O8AMfk6Udh44DAuC5mi6nhM+vJETLwa9mmSpILdljkpw+fdooSCWgbWUgAVvljZWdEQ2N0yl0dQC08jT/zXMCwMfUPv30UwPA6A/7ydkaLygpRhCatmhUw9R0S8VlLlVZrp6MV3d15X//1beY/d1tEnf0qKGCUeNWBgC2zhcnf+ZzqVwAbNjQBWS6bc2B8c0eVKsDdUPlBtkAq4NdZcyBrZFWBmrr4vxpUnPbT1Kmbn3B201p+AIQcKjlY3PR1r5NPJwQf5uSvAFEFVsZqOCgBXDixIlSvHhxqVixopVnp8rZ+/XrJ88991yKJem6uzGw+hpkE2bNmiWDBw/26AhlZkKEUL4eNUSit/0hbe6pKA8vTRk+rvfJJ58YEjDmo5flTPVuSgLSso2WaN4A5m7VS0IyZpKklXPk2vkzHlPK/u5WiTsabxSkWgUQCdgm4qjsyOuK+9GiLSgk4KRJk6Rp06ZSpUoVM+vt85g2bdrI3LlzlQTR4/Lly6pUafPmzUJinUGqiqoTAr/sJNNj06ZN8vrrr6s2aU8//bTUrFlTZRYCDeBbPKy/bFu7Wpq2f1rOla+s7sXfAEAdeI79uL+crva8ApKuWPyYIke0Nl2QmmPmdomNc3nB7vcUaO7unwNg2/zxsj2Pq/gAAB980OUVp1sV/E8ASHkTQNIzBZi0eubfaRCJpOjatavx7wAIGL1795bp06fLo48+qh6+PwiBZcmIQfL7/30nA8a/JofzFRH6qQQC8OOPPzYkIACeqtrVIxVXLOyKZNjuX4oCz+V8xSWhYEWjvRtztWoD8kN1ALxJEpAS9bfeektBhBfnLRWAcs2aNcL+3AEDBsjtt98uGsCpU6eq2rzJkyfLY489plSQLwhR6SvHDZfVSxbLK5PfkjyNmsnWrVtNAcj+D+0Fx30yQAHonoqLXvi2yYJUkeLzd0pkZKRRkOre0TQ1EhAAnyhwTLbldlVAIwEbNXJlRhwJ6OeJahUMbKNHj1bwsKUwJQkGQD/99JOwR3fcuHGyY8cOJQEBkBETEyPYpi1btkwGoYbvu0Wfy/A3pkjEQ9e7CaQWQK5z9NOBknRfF9UTply5csqb3T2wmVRz84JzNesqV0+fkDPrvkr2BLLO2CLxx44ZXjBlXVYGKrhdwQQFoI4DOgCm4klqAOkoun37duWUBFoMVCg9mJFGVCK7A8hXo07Hjh0rXFtLQhZnzVuvyeI578nY6e9I3saufbRmAfzwww8NCQiAJ+/tLN9//71qg3HffffJnwMe8fCC6QtzdsMqCc1TQM5t/t7jqWSd8YccjT+mnBDmiR1pZQDgk4USZWsu1zZMqmwcCWjyafLwZ8+erey3xx9/XCpXrmzqzG3btgkl8o888ogKEGsJqE8Gwtdee00aN26sjlk39XX5cu5sGTJpshRp3sbjO8wCSGNyrYLjPxskJ+7ppLx37DecqJ0Dm3kAGN60k1w9lSBnf1nhQwJeB5D9xBSkmnGcfD0YVDAAbgl3teIAQO5bD0cFB1DB77zzjowfP15GjRplukMARZdIubZt2yop4g0gX8neCNRxieOxsu/XDTJwwkQp1uKJZLNJDYC6R7QGUAPJRa8sHG+6IDX7zO1y4MABwwa8kWKE9oWPyx856xgV1WRYHABNyTFR6mfGjBkKJrxqStPNDGwvYn/t27cX9mr4ApDrfDtxjMx6bbw0e6aDdJo+26eqMwvg/PnzDQl4bMFgOX73cx5ecIEsGWTvum8CFqTmKlRUspSuoiphCAcxbqQY4akiJxSAejgAmiHof8cA4MyZMxV8dJU3mxXB43377belVatWqk7PF4DbP5otsyaMlw59+sniAzHKuWnevHkyCFMDoPZ6Ez4fIolVOnoAGDmlt+mCVJyQo/HxKouCNLf6OkFswKeLnpTfb3N1agXAJk1cJfqOCg6ggon7UepEVqVZM1eLCX8c88qEgwcPquyHtxPCeTs+miMzxo2RnsNHScWOz6uANgHrqlWrKrXtbvSbBfD9999XwAFL4sKhCkCuRy8Wwih7hjzmaQM26SBhxcpLwvyRIteuSzo9Mk/7XY4lJBgA4lhZGdiAGkDtBTsApuJJai8YKYAUQxW7Z0V8XYoww/Dhw5XHTCrMG8D9X3wsrw8bLH1GjZW7nnUVg7Iw2Jo0laSAVENoFsB58+YZEg8AEyp3UHnoJ554Qtmb3gCSC85+T0NJ/HhcstsIm7pZEhITVTAa9WsVQCTgM8WSZHMO1+u5ME8cCWgSQg0gG7ORghjmqOKUArMUHxCsLlOmjLL/fvvtNw8AIxd9IpNfGSJdBwyWqt16JZsFiwOEeNvt2rVTIR+zACKptdNx/IthcqzSsx4FqXuHtvAsRrirtlyM3CphxcrJhX1/eMwlbOpvkpB43JCA2hY0+diMwwDw2eKn5LfsNY1/4x4fesi1TdNRwSZUMFKPHDDSjIcKXHfccYeRoqJoE3VDRQrFDx06dFCbwt0zIVFLPpfJw4bIs737SvXufVIMbSAJsTnvuusuJb3+/PNPU5kQXwC6Z0IKnY6SnCcPm2IorlIzVQ9IAF6/qsHUiV4H8aw6lDjtAGjl4XGOdzECqohNPvTiY4GQjMTIULv8nQwHLwPU6lMDOKBhHXlz+DBp1eV5qdtnUMC4GrGyN954Q0lSQESFBsoFz5kzx5CAJxa9IvEVnzFsQuYYdu6ERC2ZLReSAndILdhptNGgnH3B3LfV/oAAuClbDWMJ0BJBIwGxNQDC6sCLxbj3tvtQSRRWAh6Dz/njXTkMgFOGD5OI2APSomNnadB/WED49FxRVdOmTVOgk3s2A6CWeCcXD5ejdz2t7DcWHLuSahizBamZ3t4kicdPGCoY6W9lIAE73n5Gfs1a3QNA93tJtyqYvC0eoNVd/fzqf/zxR5U2svKmIM7f/8dm+XXrNilfIELyVaiU6jVk4Xm3GlkYvGR/g4yNtgEBMK7CU0pyUQ9IOCVyeCvTBamhUzbJ8RMuAFHDVgYAPlfybHACOGzYMLX/lFCElYHKofKFZP7AgQNVTZ/ZQUeBxaOGyo7Nm2THJZHPV/03WQ4ZOLAd+YOtRcrM196LqKgoVWUzdOhQv1//3nvvGQAmfTlCAYhdSh64RIkScmBEaw8ArxekhkrSyrnJClI1gATR6ZDKHK0Mvh8AN2ZxvZ6VAHdQSMCbUQ+IE8Afav1efvll44XQ/hbDvZj0peEjpe9HC+WLL74wTgFOXhz97bffquoY7EX+jYoV3utLvaC7l40Ux7nh+/0NDSA/nFNfjZTYO9t7FKTGT+pouiA109TNyu7UgWirACIBO5U6pwDUNiQmwcMPu/oFplsVfDMAJBRCWAVg2JqYmqoQ6kdy582rihHI+TL49ROvoxihRYsWypPmukBL9uSbb75RrXF79eolJUuWVOeYBZDSf62CATDmjic9MiHlwjNJpp2BmxNdylNMosJLqaZEOgNyI7viOpc+Lxsyu7QQz8AB0KQ+AWI6OZEF0R6vyVPV4uHNAhTFqdiROBXkkwnT+MqvopZ/+eUXFXPEhMB+MwsgKUMN4OkloyS6fDvP7lgr55ouSC343hZVBaPfE2L2nr2PQwUD4C9h9xkfEdx2ADTxRFE7qN5atWqpUnurg+tQT8iDJzCNPemvxB1wkYS//vqrgpAsjBkV7AtA7EfsYECKGdtOquVwebP+ClIzvrVRTpxMMlQwc7cyALBLmb8cAK08PLpD8Ur7smXLWjnd4xze1UHskLBO6dKlA14Pr5N0HvtLkLxmAHz33XcNiXdm6Wg5Uu4JZVeyJ5hQTtTotlIrpyvn668gNcObG+VkUpJRkGoVQGzArmUvyPpM93pIQGog9XBswBRwoJiAgQplZ926deuU3WZ2UI2sK39J4SFNKTQwu8OMZkMEkJFgZgHUccCzX4+Rw2XbKrWPtAXiw2Oe8ADQX0FqyBsbJOnUKaMgFbvNygDA58tdlJ9DXbFYbEsHQBNPUwPIIrKlEknCpqJVq1Yp+w37EKAIzxAmwU5ksQlO83f2g5DXZQAgUpDAuNnqYvaWkHXBETIDIIWz2gYEwKgybTxswKyrppkuSMULRgNoG9BqLhgV7ABocVecBpCuBkDAvt8RI0ao3Ci/YJwJYoTYh2xAIt6Gcf3qq6+qkAkZmGeffdYAkE3qxL/MArh27VoFMelAMwBSOKsBPLdsbDIAaTJpJiiP2YGXfjMGErBb+UvyU8a7jcshAd3L2hwVHEAF4wzgiLDdslu3bgq4Tp06qfIs9uKinoGFYC+fETfk31lwbD4tAVHhTz75pOk9tmwyQnXy3WYB1Cr4/PJxcqh0aw8JeDOAMnON/v37qwoePH2SAC/ccVnWZXA1BwBwB0ATTxIVhAdLQcCNDu2EkIQ3s7EJm+uVV15RNYWoQTMAsnFKS0AAPFiqlfp/wimYBLdy4MUjufH+u995xQHQysPnl4r0owPCjYRhUNk4INT2IUVR4/42ehOGoeyL8AsdFaiWNgMgMUYN4F8rXlUAkkumQofvpUwspf5+HIdz5OtzpBlSXmcyyOBgy/qrjqGpOcW4/PAA8McQ125CnispTscLNkElGQwqUdieyENldxjZEKAKVCHCAhH+QAJxfsGCBYWtkxQX9OzZU4VIvAfXZFM7nb3YhYcKNhuIBkCtgi+sHC8HSj4u+/fvVxDgvfuT5BzDfZEmIwXHsQTFd+/erTok4M0zXyQzO9owOVLaH8Nz4sfD9bB7X6xwVdaKqxADreIAaAI+DsH5YJN5zJ5dIjlyqj0eOCdAldJOMcBjIfV+XF6jitRjqCKFxYtV9wQ2paOOcWZYFK773XffKWlLKk4DahZAbFItAQEw8vaWSn3zh0FWJaXxww8/qJANUpBgOTYaNisxSzx4HCokGpKQHwdawVdaUks+LUn37t0rPe665gBokrdkhwHgq62ayX4JlfLVaqpfNoAgafypZbooUB6FE0KGwr0YAUABePXq1Uo6oZLItSIh6WKAt+2eezULILvwNIAXV02QbDlukz2FH1ZqlT86t+zrWWASaGnLj4S/AxM1ifw4+LEhzfmMze76HSLu1/KGTzU1Wj9T6tZrIGv+drXI4/6DoiAVFXb33XebMvp9LQoPqnOrltKwbEmp1/N6JQoq2Ewog2NRfxSzUrjKLjlf4RcWFFXHZ0Dn6xgqZtjaGagaBjuRbqjM+9J/J0qDsEjZGFpFtuVzdSO1+kO0cl7lxB+kxpWtEtaorwJQ58axH90LfNNtGIZwCBCgLsxmH/SDJvC6ecVS2R4bL29PnSbFS5dWdk9qMgJIDLxAvGnUbWoqadwXnMA26hPHxN/A3qICW7XkzXxKCl+OscLNTT/nVO5y8vvxUAUgz4R1cR/pFkAcCFQddgtxO7OerK7n2/HTWjkSTiVzZaVKiceZDSKjot58803VmXT58uXK7nM/F6kHWJRgcayWrKhh7x8LWysp6QokAVlU7EgkJtex00CN8+OtXt1Vmq/nl24BJFXGe2lJk2GfdO7cOWCLCcBYNOxl2bZmtWoOOXrZNyr4TLEnZfHkZQNBiN1Eyo4iBkIgXbp08bABCavQL4YsAWk81BHZAUADROxOHTJhkczagHYCLjVzSdcAkvoiXQZAwNWjRw/DK/R+SLo/37plS1WXqtwPPiJ9+vRROV+gQaIF6nAKSBSwEqIgf0y4hh7T2gnBJCBlhjQlbadfg8pckBIUvmLLYSfhiQK7A2BqcLbRse4V0Swu5UpASIjDWx1r+L5fvFB1JtXNITWAqp4uJkbBSEzNV4dT4ANSvETKqFCllDFpAPGgyRNjA/nrFQ3sEyZMUIUOtWvXdgC0EVOpmop3ST7SCOmD50l3Aw0h8K1+c4IsmT9XRk+dLnkbuaL07gDy5STpKTxgo447hFybOBz5X1S2DqNoAPFi2ThOOAPJGEiNEz+jugUQiSmayYSk6uHY6OB0r4Ldu+STaQAUJCHZCIBYO2WiLJozS7XFLdTsevGAHt4AagiRZHSyQlVyTWJ9gM3x7k6EBpB9IOxqo7cMG30CDeaHE8UGJcr5HQADPTEbfp7SpiSAIT6HqquTLYMsmTdXBr02SYo+1jbZXfgCkIN4gQ3XJ3CMjQZoAO1daq8BBFgqZOgzHajFr54EdYdcm9IvB0AbAhZoSv52xQHhhLbNZcePa2XklKlSqWM3n5dLCUAOJqc7aNAg5cUirXwVGGgAqWwBqEB7e90nQQEDaS9UtgNgoNW24ef+ANwyf6bMeX2ilKhyr1yuVFWpTl8ApQQgsUIkGnE34lt169b12VxSA4jqZafbyJEjTUtAqk7YVESHBwdAGwIWaEopAbjj4+vNIXuPHCNl23UQWtui6nBMvFvw+gIQ+wyYiOMNGTJE5XK1OsZDds94aAAJAwEfToWZNr84RuR2yQuzd9gBMNBq2/BzXwDuWfCBvDF8qGoOWbHD82rWOA8ARRs0VKU7IN4AAgYeLfE6tkwS4GZQKULvFgLI7s0lNYBsMCI+SBGDmS6rhHyAFdsRD9sB0IaABZqSN4A0h3x96GDpOWJUMpsPqcYiA6E7WO4AcsyKFStUZmXMmDHJJBkZEEI0eN2U3uNsuMcByQljK5JS87c1k3gim5lo04Gn7QSiA620TT93B/DA4k9Vf74OfftJje59fc4YwMi5spOLzeM4FxpAYoYrV65UBQk4EgSbfQ0g5P0fSEJSagTA3TMhFCew14P9Emxicg/Z8P3khmmxQeiFFB4QOwDaFLBA09IA5jm0R6nddi/0kFovvew3CIxzgbqkEhibEOcBqfXzzz8bXizVJv4GxQXkglG3SDCyIu71gFStACHAASqFoDgyBJ9Rvaho4os6XOMAGGilbfo5AFa6fFa+WfhZqppDAiFdDJBWZD5Qp1Qq8wJCs69poNKFrAs2IpXFFB+4D8JAVBojbbEfyaBQMAq03k6KA6BNAQs0rfHVKsiOqCNSu1lzeaDv4IDpL/frIZ3Y2UXbW/K2OBapfes5KTTeYIlkw740G4D2vi9KylD9/ADS40ifqbj2DWTZD2skumJ1iehufeHYu8E+EL2vIrUA6J7S1AVaHVyDPcfuHaWsXsuO56U/ANs3ENmwRqRmfZEFgV/QbMdFCaY5pS8AHfjSHLvpB0AHvjQHHxNOHwA68KVJ+NIHgA58aRa+tA+gA1+ahi9tA+jAl+bhS9sAlgxxQi3pAMH04YSkg4UI1ltwAAzWlbfJfTsA2mQhgnUaDoDBuvI2uW8HQJssRLBOwwEwWFfeJvftAGiThQjWaTgABuvK2+S+HQBtshDBOg0HwGBdeZvctwOgTRYiWKfhABisK2+T+3YAtMlCBOs0HACDdeVtct8OgDZZiGCdhgNgsK68Te7bAdAmCxGs03AADNaVt8l9OwDaZCGCdRoOgMG68ja5bwdAmyxEsE7DATBYV94m9+0AaJOFCNZpOAAG68rb5L4dAG2yEME6DQfAYF15m9z3/wPfRA62B6DHsAAAAABJRU5ErkJggg==</thumbnail><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="true" hyperops="true" codify="false" inheritance="false" sublistIDs="false" scheduled="false" id="1"><pentrails>data:image/png;base64,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oNuSAAECBAgIsDdAgAABAgQCBAQ4AN2WBAgQIEBAgL0BAgQIECAQICDAAei2JECAAAECAuwNECBAgACBAAEBDkC3JQECBAgQEGBvgAABAgQIBAgIcAC6LQkQIECAgAB7AwQIECBAIEBAgAPQbUmAAAECBATYGyBAgAABAgECAhyAbksCBAgQICDA3gABAgQIEAgQEOAAdFsSIECAAAEB9gYIECBAgECAgAAHoNuSAAECBAgIsDdAgAABAgQCBAQ4AN2WBAgQIEBAgL0BAgQIECAQICDAAei2JECAAAECAuwNECBAgACBAAEBDkC3JQECBAgQEGBvgAABAgQIBAgIcAC6LQkQIECAgAB7AwQIECBAIEBAgAPQbUmAAAECBATYGyBAgAABAgECAhyAbksCBAgQICDA3gABAgQIEAgQEOAAdFsSIECAAAEB9gYIECBAgECAgAAHoNuSAAECBAgIsDdAgAABAgQCBAQ4AN2WBAgQIEBAgL0BAgQIECAQICDAAei2JECAAAECAuwNECBAgACBAAEBDkC3JQECBAgQEGBvgAABAgQIBAgIcAC6LQkQIECAgAB7AwQIECBAIEBAgAPQbUmAAAECBATYGyBAgAABAgECAhyAbksCBAgQICDA3gABAgQIEAgQEOAAdFsSIECAAAEB9gYIECBAgECAgAAHoNuSAAECBAgIsDdAgAABAgQCBAQ4AN2WBAgQIEBAgL0BAgQIECAQICDAAei2JECAAAECAuwNECBAgACBAAEBDkC3JQECBAgQEGBvgAABAgQIBAgIcAC6LQkQIECAgAB7AwQIECBAIEBAgAPQbUmAAAECBATYGyBAgAABAgECAhyAbksCBAgQICDA3gABAgQIEAgQEOAAdFsSIECAAAEB9gYIECBAgECAwP8BONXPpeMw9oIAAAAASUVORK5CYII=</pentrails><costumes><list struct="atomic" id="2"></list></costumes><sounds><list struct="atomic" id="3"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites><sprite name="Square" idx="1" x="50" y="-50" heading="90" scale="0.95" volume="100" pan="0" rotation="1" draggable="false" hidden="true" costume="1" color="80,80,80,1" pen="tip" id="8"><costumes><list id="9"><item><costume name="Empty" center-x="29" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAABKElEQVRoQ+2bIQ6DQBBFPzfoDVqDbhMEhqQVa/YWvQEWBzgsp1mzogKDIKnH0BtwhGYbQtLSVs9uPieYN/+/jFkiABWAI4ATwvzu0QJ5BnAJkxG3T8hJa400TQ8+A/d9PxljHILjeIfUWk9t2yKOY68hx3Gc8jyHMWYLWVUVyrL0OcR19rqu4Xg2SRLSs3yZJJ30qLKsK+vKusraAJ2kk7Ia+Xca1pV1ZV1lbYBO0klZjeQJoZN0kk7K2gCdpJOyGsk7SSfpJJ2UtQE6SSdlNZJ3kk7SSTopawN0kk7KaiTvJJ2kkyE4qZSam6ZBkiQ7j3g2ow7DMBdFAWut49g8z56VUsiyzGvIrutma62D/wrpc4C/Zn8leV0epO9DJATwcJCh/iqxZvYEuRuoAhendhsAAAAASUVORK5CYII=" id="10"/></item><item><costume name="X" center-x="29" center-y="29" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA6CAYAAAAKjPErAAADw0lEQVRoQ93bvU/bQBgG8IdWQgyWYOiQDYZuDAl7IUFd6AT8BYSNIQOoS7bAxggDCwzAxgZjlwoGxqoCQbYOsGWoKpAYEFKl6nE5yznss30fdpyTWGIH+3fve++ZOzOC4WwTAB4EbQTAJoAqgNqQeN8BqAB4AfAHwE+BrANoDAlSZlzIyBfP89BqtUbHxsZKZX5+fsbR0RF6vV4i0j+hVqvh/PwcExNM7XK05eVlnJ2dBTc7PT39u9vtfgDwJpLBSWWCrq6u+lEU7fDwEPf399jcZLmRkEtLS329UQaoDOx0Oj5ua2srGsmDk5OT4BdFG2SoDFxZWQkiqkSyJxj6QYeqgAxQIpInRUGZ64xs0S0JmBoZBWW1ZdUtEpoGmAnpl6aLC7AgPT4++gEsEipnV3gMytmVKl3DX7q6ukKj0SgUmgWYOZICWyRUBtbrdT/DVC1zJIuEysBqteoDk57GtJHE5hlRXaB2uuY9Rk2AVpCuI2oKtIZ0BeVwmJ+fx8PD/z/s045B4ylEVcVsjlFbQKuRtFl1ZeD4+Lhf5KamprSeIo2qa9wVTSIaBeQ0YfL46AQZN0b5UM/HQlXnhMcgI2gKdJKuqumFxwhtNptvnC4iKC7iLJLiAnd3d370rq+vA5gM5TkzMzNBFbUVwdyQvBCnAD7UR0F5jCnKSLLZBjpP13BORkH39vZwcHDgFJgrMi6i4Y44PT1VFiat+SPt8ofuL4/6HiM6OzuL29vbvsNxBcnGtZ0XHvkmiZybm8PNzc1wIuUiI3eAq2jmGklOE6KKEsjCs7+/r5xeSpWuUcv3fChQTS82gLlV1zigQLiGOk/XtGujLqFOkWmBqohyT4bbFSbNGTIrUAXl2GXl1W1OkLrAMHR9fR3Hx8eBywRqHSn2A8XdqZbvkyJDmA2oVWTW5fskJI/bgFpDugCKTjCFWkHaWBtNiqoJ1BiZB9A0okbIPIEmUG1kEUBdqBaSy4RclxFNd/k+aRyqjmcZo5mRNpfvTZBZppdMSBnI93z4WdImqCnGNKKpkS4Xf007QU5drvPyWVd0firkIAPjilH47bFEZBmAArqzs4ONjY0gMQR0d3c3/t26xcXFvk1QF6vbpqkqfz/q7bGFhQVsb2/z1P5XQdvtNk5OTsB9CrYyAAVYhlYqFfGCbz/S87y/T09P78sGjIO+fn4pXs/+DOBTOA3W1tbA3ihbYz0Jv8HMvSeB/ArAKxso5f3+IJK7o9wK/gJgFMAlgF8pf8Egn/bx9ea+Eyn+VYIf8ufbIN+5zr39A7wlN3D1pfCoAAAAAElFTkSuQmCC" id="11"/></item><item><costume name="O" center-x="28" center-y="28" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADkAAAA5CAYAAACMGIOFAAAEX0lEQVRoQ+2aizUsQRCGeyJABGwEiAARsBEgAkSwuxEgAjYCRGA3AkSACBDB3PPNubWnts2juuexa6lznPsw091//VV/V1dP4pwbOuf23OraNPkPcrC6GN3oV4IcpWn641lNkmTknBMc80ymaboyUZskBGlm3YF8e3tz7+/v2aybm5tua2urVYe2DnI6nbr7+3s3mUzc8/NzKZidnR23v7/vjo6O3N5ecyLfCkiYGo1GGbjPz88oltbX1zOwg8GgNtONggTQ9fW1Gw7ZbotNh6gO3aI3GO/s7MwBPMYaA3l7e+suLi6+MQcgGJEwLFukhDV/Ss7K8wC8vLx0JycnwTgbAQm4q6urucnJKRgAXIyRw7xPTms7Pz/PwIZYLZCE5+npaZZ7YjAHYNhrwhgbYJpZxr65uTGHbzRIAB4cHMwp5vHxcQYwNneKnMJcAB2Px7NHUOLHx0fTXNEgYZA8FEMFqwSnLrOMj2qLkZ8wWmVRIP3JmChGEKoWl/d7HIuDQ5wbDJIc6ff7s0mQdl90YhYf8g6hy1Yldnd3V6oBwSB7vZ5jb8MODw/nRCdkoXWfRXweHh6yYSgLX19fC4cMAgljbBfY2tpaBrZpkbGCR4wA9/X1lb3CtgLDeWYGyaCwKGVa2aDWhdZ9TjsdZ8NmntPNIPWA7IUSsnUXWvd92JQ9tMjxZpC7u7uzPbFLNa1yglZbqiwqJd9MIAnRjY2N2bsfHx8Ly0UfgGVtJpAWb1V5vM3fU/28vLxkU+RFmQkkG72UVMsgOL7DtF5QWupKjGdNIDlJyGmAejH2ZNEWm+QhdTSWl5d/IMXziI7sj8skOrI+LT7sk6xRm4lJ9ZBb1lZl2Rr/QArlWqKfnp4c/14mo9VJsYJtb29/a32amFwhdR3OXfjo3NMgq85ui2BYn3GjtxDdCcjbbBcBTM+pi5W8NowK12ImdcxXHVAXAVhvcXmaYcpJFs7+IwfUZRIfTUDREdAMUofEMoWsZV1mkLo+hFlO4W1fuVWFPgd3uhViRXW1GSQDaZXl7wy6SKMol0Ny0YHZfAoRIL7nFrmd+P3XssgKYhKwOgcQI9jsugJCbGBRDg1VGhEMkoEJVTmJk5eobVetSb9rSBlHyJbNHwwSNvEkQGVLCbl8qZPDpAvde7mWp/cLwKpIigLJQn21bTt0/RBlDdYuRTRIJvGTH6By9V2HMf9d7j387nhIW7QWyLzQ5f8IHxpedXtBRAvXEvqrEWuIBncGqlghV7iAETGS5wGJGrOHWQsHxqJpRpT4jWJEhhOHdSxZR20mZSBUj9YgPyJI2jmwK1fsLFIWCii5cgBA3rc+sEe48hOj4o2B1GD9q++qSCj7fRNX9I2D1NWRfLIi94hWsNx7yicxoaGZN0drIPVkhLL+7EyHqA5d+ewsJiTLHNgJSCuDbT1n6gy0NXlX4/42Jr99nj1J0zTum7GuKDLMkyQJt7KC43d+g27w0497JGtJ/vjwrHL7P5XNSaMYdLI4AAAAAElFTkSuQmCC" id="12"/></item></list></costumes><sounds><list struct="atomic" id="13"></list></sounds><blocks></blocks><variables><variable name="position number"><l>10</l></variable></variables><scripts><script x="12.34567901234567" y="10"><block s="receiveGo"></block><block s="clear"></block><custom-block s="makeBoard"></custom-block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportBoolean"><l><bool>true</bool></l></block></block><block s="doSetVar"><l>board</l><block s="reportNumbers"><l>1</l><l>9</l></block></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script x="12.34567901234567" y="168.90534979423884"><custom-block s="possibleWinning"></custom-block></script><script x="12.34567901234567" y="192.67901234567913"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></list></custom-block></script><script x="12.34567901234567" y="229.68724279835408"><custom-block s="statusOfTriple %l"><l/></custom-block></script><script x="12.34567901234567" y="253.56378600823064"><block s="reportEquals"><custom-block s="statusOfTriple %l"><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block></custom-block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block></script><script x="12.34567901234567" y="288.82304526748965"><custom-block s="statusOfAllWinningTriples"></custom-block></script><script x="12.34567901234567" y="312.5967078189301"><custom-block s="won? %s"><l></l></custom-block></script><script x="12.34567901234567" y="339.8559670781892"><block s="receiveInteraction"><l><option>clicked</option></l></block><block s="doIf"><block s="reportAnd"><block var="playing"/><block s="reportEquals"><block s="getCostumeIdx"></block><l>1</l></block></block><script><block s="doIfElse"><block var="X&apos;s turn?"/><script><block s="doSwitchToCostume"><l>X</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>X</l></block><block s="doIf"><custom-block s="won? %s"><l>X</l></custom-block><script><block s="bubble"><l>X won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doBroadcast"><l>X win</l></block></script></block></script><script><block s="doSwitchToCostume"><l>O</l></block><block s="doReplaceInList"><block var="position number"/><block var="board"/><l>O</l></block><block s="doIf"><custom-block s="won? %s"><l>O</l></custom-block><script><block s="bubble"><l>O won!</l></block><block s="goToLayer"><l><option>front</option></l></block><block s="doSetVar"><l>playing</l><block s="reportBoolean"><l><bool>false</bool></l></block></block><block s="doBroadcast"><l>O Win</l></block></script></block></script></block><block s="doSetVar"><l>X&apos;s turn?</l><block s="reportNot"><block var="X&apos;s turn?"/></block></block></script></block></script></scripts></sprite><sprite name="Sprite" idx="2" x="100" y="100" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" hidden="true" costume="0" color="255,32,0,1" pen="tip" id="148"><costumes><list struct="atomic" id="149"></list></costumes><sounds><list struct="atomic" id="150"></list></sounds><blocks></blocks><variables></variables><scripts><script x="27" y="23.66666666666667"><block s="receiveGo"></block><block s="hide"></block><block s="setSize"><l>5</l></block><block s="setColor"><color>255,32,0,1</color></block></script><script x="167" y="35.00000000000003"><block s="receiveMessage"><l>O Win</l></block><custom-block s="draw win line"></custom-block></script><script x="344" y="37.00000000000003"><block s="receiveMessage"><l>X win</l></block><custom-block s="draw win line"></custom-block></script><script x="168.6416015625" y="159.00000000000003"><block var="board"/></script><script x="189" y="219.00000000000003"><block s="doIf"><block s="reportListContainsItem"><custom-block s="statusOfAllWinningTriples"></custom-block><block s="reportNewList"><list><l>x</l><l>x</l><l>x</l></list></block></block><script></script></block></script></scripts></sprite><watcher scope="Square" var="position number" style="normal" x="10" y="298.500002" color="243,118,29" hidden="true"/><watcher var="playing" style="normal" x="10" y="325.499996" color="243,118,29" hidden="true"/><watcher var="win lines" style="normal" x="10" y="329.999998" color="243,118,29" hidden="true"/><watcher var="board" style="normal" x="342" y="7" color="243,118,29" extX="102" extY="179"/></sprites></stage><hidden></hidden><headers></headers><code></code><blocks><block-definition s="label %&apos;text&apos; of size %&apos;size&apos;" type="command" category="pen"><comment x="0" y="0" w="90" collapsed="false">LABEL will stamp text on the stage at the given font size. The direction of the text is the direction the sprite is facing, and color will match the pen color.</comment><header></header><code></code><translations></translations><inputs><input type="%txt">Hello!</input><input type="%n">12</input></inputs><script><block s="doRun"><block s="reportJSFunction"><list><l>text</l><l>size</l></list><l>var stage = this.parentThatIsA(StageMorph),&#xD;    context = stage.penTrails().getContext(&apos;2d&apos;),&#xD;    rotation = radians(this.direction() - 90),&#xD;    trans = new Point(&#xD;      this.center().x - stage.left(),&#xD;      this.center().y - stage.top()&#xD;    ),&#xD;    isWarped = this.Warped,&#xD;    len,&#xD;    pos;&#xD;&#xD;if (isWarped) {endWarp(); }&#xD;context.save();&#xD;context.font = size + &apos;px monospace&apos;;&#xD;context.textAlign = &apos;left&apos;;&#xD;context.textBaseline = &apos;alphabetic&apos;;&#xD;context.fillStyle = this.color.toString();&#xD;len = context.measureText(text).width;&#xD;trans = trans.multiplyBy(1 / stage.scale);&#xD;context.translate(trans.x, trans.y);&#xD;context.rotate(rotation);&#xD;context.fillText(text, 0, 0);&#xD;context.translate(-trans.x, -trans.y);&#xD;context.restore();&#xD;pos = new Point(&#xD;  len * Math.sin(radians(this.direction())),&#xD;  len * Math.cos(radians(this.direction())));&#xD;pos = pos.add(new Point(this.xPosition(), this.yPosition()));&#xD;this.gotoXY(pos.x, pos.y, false);&#xD;this.changed();&#xD;if (isWarped) {this.startWarp(); }&#xD;stage.changed();</l></block><list><block var="text"/><block var="size"/></list></block></script></block-definition><block-definition s="map %&apos;function&apos; over %&apos;lists&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%mult%l"></input></inputs><script><block s="doWarp"><script><block s="doDeclareVariables"><list><l>mapone</l><l>mapmany</l></list></block><block s="doSetVar"><l>mapone</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="evaluate"><block var="mapone"/><list><block s="reportCDR"><block var="data"/></block></list></block></block></block></script><list><l>data</l></list></block></block><block s="doSetVar"><l>mapmany</l><block s="reifyScript"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportListItem"><l>1</l><block var="data lists"/></block></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doReport"><block s="reportCONS"><block s="evaluate"><block var="function"/><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l>1</l><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></block><block s="evaluate"><block var="mapmany"/><list><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportCDR"><l/></block></autolambda><list></list></block><list><block var="data lists"/></list></custom-block></list></block></block></block></script><list><l>data lists</l></list></block></block><block s="doIfElse"><custom-block s="empty? %l"><block s="reportCDR"><block var="lists"/></block></custom-block><script><block s="doReport"><block s="evaluate"><block var="mapone"/><list><block s="reportListItem"><l>1</l><block var="lists"/></block></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="mapmany"/><list><block var="lists"/></list></block></block></script></block></script></block></script></block-definition><block-definition s="empty? %&apos;data&apos;" type="predicate" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportEquals"><block var="data"/><block s="reportNewList"><list></list></block></block></block></script></block-definition><block-definition s="keep items such that %&apos;pred&apos; from %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%predRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doReport"><block s="reportNewList"><list></list></block></block></script></block><block s="doIfElse"><block s="evaluate"><block var="pred"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><script><block s="doReport"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></block></script><script><block s="doReport"><custom-block s="keep items such that %predRing from %l"><block var="pred"/><block s="reportCDR"><block var="data"/></block></custom-block></block></script></block></script></block></script></block-definition><block-definition s="combine with %&apos;function&apos; items of %&apos;data&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%repRing"></input><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="data"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="data"/></block></block></script></block><block s="doReport"><block s="evaluate"><block var="function"/><list><block s="reportListItem"><l>1</l><block var="data"/></block><custom-block s="combine with %repRing items of %l"><block var="function"/><block s="reportCDR"><block var="data"/></block></custom-block></list></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; then %&apos;true&apos; else %&apos;false&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%b"></input><input type="%anyUE"></input><input type="%anyUE"></input></inputs><script><block s="doIfElse"><block var="test"/><script><block s="doReport"><block s="evaluate"><block var="true"/><list></list></block></block></script><script><block s="doReport"><block s="evaluate"><block var="false"/><list></list></block></block></script></block></script></block-definition><block-definition s="for %&apos;i&apos; = %&apos;start&apos; to %&apos;end&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%n">1</input><input type="%n">10</input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>step</l><l>tester</l></list></block><block s="doIfElse"><block s="reportGreaterThan"><block var="start"/><block var="end"/></block><script><block s="doSetVar"><l>step</l><l>-1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportLessThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script><script><block s="doSetVar"><l>step</l><l>1</l></block><block s="doSetVar"><l>tester</l><block s="reifyReporter"><autolambda><block s="reportGreaterThan"><block var="i"/><block var="end"/></block></autolambda><list></list></block></block></script></block><block s="doSetVar"><l>i</l><block var="start"/></block><block s="doUntil"><block s="evaluate"><block var="tester"/><list></list></block><script><block s="doRun"><block var="action"/><list></list></block><block s="doChangeVar"><l>i</l><block var="step"/></block></script></block></script></block-definition><block-definition s="join words %&apos;words&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%mult%txt"></input></inputs><script><block s="doWarp"><script><block s="doIf"><custom-block s="empty? %l"><block s="reportCDR"><block var="words"/></block></custom-block><script><block s="doReport"><block s="reportListItem"><l>1</l><block var="words"/></block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>1</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></block></script></block><block s="doIf"><block s="reportEquals"><l></l><block s="reportListItem"><l>2</l><block var="words"/></block></block><script><block s="doReport"><custom-block s="join words %mult%txt"><block s="reportCONS"><block s="reportListItem"><l>1</l><block var="words"/></block><block s="reportCDR"><block s="reportCDR"><block var="words"/></block></block></block></custom-block></block></script></block><block s="doReport"><block s="reportJoinWords"><list><block s="reportListItem"><l>1</l><block var="words"/></block><l> </l><custom-block s="join words %mult%txt"><block s="reportCDR"><block var="words"/></block></custom-block></list></block></block></script></block></script><scripts><script x="229.00000300000002" y="196.77778077777774"><block s="reportJoinWords"><list><l></l><l></l></list></block></script></scripts></block-definition><block-definition s="list $arrowRight sentence %&apos;data&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><custom-block s="join words %mult%txt"><block var="data"/></custom-block></block></script></block></script></block-definition><block-definition s="sentence $arrowRight list %&apos;text&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="text"/><l><option>whitespace</option></l></block></block></script></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%cs"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doRun"><block var="action"/><list></list></block></script><list><l>cont</l></list></block></block><custom-block s="ignore %s"><l>3</l></custom-block></script></block-definition><block-definition s="throw %&apos;cont&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input></inputs><script><block s="doRun"><block var="cont"/><list></list></block></script></block-definition><block-definition s="catch %&apos;tag&apos; %&apos;value&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%anyUE"></input></inputs><script><block s="doCallCC"><block s="reifyScript"><script><block s="doSetVar"><l>tag</l><block var="cont"/></block><block s="doReport"><block s="evaluate"><block var="value"/><list></list></block></block></script><list><l>cont</l></list></block></block></script></block-definition><block-definition s="throw %&apos;tag&apos; %&apos;value&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">catchtag</input><input type="%s"></input></inputs><script><block s="doRun"><block var="tag"/><list><block var="value"/></list></block></script></block-definition><block-definition s="for each %&apos;item&apos; of %&apos;data&apos; %&apos;action&apos;" type="command" category="lists"><header></header><code></code><translations></translations><inputs><input type="%upvar"></input><input type="%l"></input><input type="%cs"></input></inputs><script><block s="doUntil"><custom-block s="empty? %l"><block var="data"/></custom-block><script><block s="doSetVar"><l>item</l><block s="reportListItem"><l>1</l><block var="data"/></block></block><block s="doRun"><block var="action"/><list><block s="reportListItem"><l>1</l><block var="data"/></block></list></block><block s="doSetVar"><l>data</l><block s="reportCDR"><block var="data"/></block></block></script></block></script></block-definition><block-definition s="if %&apos;test&apos; do %&apos;action&apos; and pause all $pause-1-255-220-0" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%boolUE"></input><input type="%cs"></input></inputs><script><block s="doDeclareVariables"><list><l>breakpoint</l></list></block><block s="doIf"><block s="evaluate"><block var="test"/><list></list></block><script><block s="doSetVar"><l>breakpoint</l><block var="test"/></block><block s="doShowVar"><l>breakpoint</l></block><block s="doRun"><block var="action"/><list></list></block><block s="doPauseAll"></block><block s="doHideVar"><l></l></block></script></block></script></block-definition><block-definition s="word $arrowRight list %&apos;word&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%txt"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportTextSplit"><block var="word"/><l><option>letter</option></l></block></block></script></block></script></block-definition><block-definition s="ignore %&apos;x&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs></block-definition><block-definition s="tell %&apos;sprite&apos; to %&apos;action&apos;" type="command" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%cs"></input></inputs><script><block s="doRun"><block s="reportAttributeOf"><block var="action"/><block var="sprite"/></block><list></list></block></script></block-definition><block-definition s="ask %&apos;sprite&apos; for %&apos;expression&apos;" type="reporter" category="control"><header></header><code></code><translations></translations><inputs><input type="%s">Sprite</input><input type="%repRing"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportAttributeOf"><block var="expression"/><block var="sprite"/></block><list></list></block></block></script></block-definition><block-definition s="list $arrowRight word %&apos;list&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doWarp"><script><block s="doReport"><block s="reportJoinWords"><block var="list"/></block></block></script></block></script></block-definition><block-definition s="makeBoard" type="command" category="other"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doSwitchToCostume"><l>Empty</l></block><block s="show"></block><block s="setEffect"><l><option>ghost</option></l><l>30</l><comment w="78" collapsed="true">3.3.3 TIF B</comment></block><block s="setScale"><l>95</l><comment w="190" collapsed="true">Oops costumes are a bit too big.</comment></block><block s="doSetVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block><custom-block s="for %upvar = %n to %n %cs"><l>i</l><l>1</l><l>3</l><script><custom-block s="for %upvar = %n to %n %cs"><l>j</l><l>1</l><l>3</l><script><block s="gotoXY"><block s="reportSum"><l>-100</l><block s="reportProduct"><l>50</l><block var="j"/></block></block><block s="reportDifference"><l>100</l><block s="reportProduct"><l>50</l><block var="i"/></block></block></block><block s="createClone"><l><option>myself</option></l></block><block s="doChangeVar"><l>position number</l><l>1</l><comment w="53.333333333333336" collapsed="true">3.3.1.4</comment></block></script></custom-block></script></custom-block><block s="hide"></block></script></block-definition><block-definition s="possibleWinning" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportNewList"><list><block s="reportNewList"><list><l>1</l><l>2</l><l>3</l></list></block><block s="reportNewList"><list><l>4</l><l>5</l><l>6</l></list></block><block s="reportNewList"><list><l>7</l><l>8</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>4</l><l>7</l></list></block><block s="reportNewList"><list><l>2</l><l>5</l><l>8</l></list></block><block s="reportNewList"><list><l>3</l><l>6</l><l>9</l></list></block><block s="reportNewList"><list><l>1</l><l>5</l><l>9</l></list></block><block s="reportNewList"><list><l>3</l><l>5</l><l>7</l></list></block></list></block></block></script></block-definition><block-definition s="statusOfTriple %&apos;triple&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><custom-block s="map %repRing over %mult%l"><block s="reifyReporter"><autolambda><block s="reportListItem"><l></l><block var="board"/></block></autolambda><list></list></block><list><block var="triple"/></list></custom-block></block></script></block-definition><block-definition s="statusOfAllWinningTriples" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportMap"><block s="reifyReporter"><autolambda><custom-block s="statusOfTriple %l"><l/></custom-block></autolambda><list></list></block><custom-block s="possibleWinning"></custom-block></block></block></script></block-definition><block-definition s="won? %&apos;who&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListContainsItem"><custom-block s="statusOfAllWinningTriples"></custom-block><block s="reportNewList"><list><block var="who"/><block var="who"/><block var="who"/></list></block></block></block></script></block-definition><block-definition s="tied?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doReport"><block s="reportEquals"><block s="reportFindFirst"><block s="reifyPredicate"><autolambda><block s="reportIsA"><l></l><l><option>number</option></l></block></autolambda><list></list></block><block var="board"/></block><l></l></block></block></script></block-definition><block-definition s="draw win line" type="command" category="lists"><header></header><code></code><translations></translations><inputs></inputs><script><block s="doFor"><l>i</l><l>1</l><l>8</l><script><block s="doDeclareVariables"><list><l>line</l></list></block><block s="doIf"><block s="reportOr"><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="statusOfAllWinningTriples"></custom-block></block><block s="reportNewList"><list><l>X</l><l>X</l><l>X</l></list></block></block><block s="reportEquals"><block s="reportListItem"><block var="i"/><custom-block s="statusOfAllWinningTriples"></custom-block></block><block s="reportNewList"><list><l>O</l><l>O</l><l>O</l></list></block></block></block><script><block s="doSetVar"><l>line</l><block s="reportListItem"><block var="i"/><block var="win lines"/></block></block><block s="up"></block><block s="doGotoObject"><block s="reportListItem"><l>1</l><block var="line"/><comment w="137.33333333333334" collapsed="false">This is why each line in WIN LINES is a list of points, each of which is a list of x,y coordinates:  It allows us to use the endpoints, as points, in the GO TO block.</comment></block></block><block s="down"></block><block s="doGotoObject"><block s="reportListItem"><l>2</l><block var="line"/></block></block><block s="up"></block></script></block></script></block></script><scripts><comment x="174" y="10" w="244" collapsed="false">I&apos;m kind of bummed that I didn&apos;t find a beautiful one-line solution using FIND FIRST, but it just gives the value it finds, not the position in the list, which is what we need to find the line endpoints in WIN LINES. So it&apos;s a plain old fashioned FOR loop.</comment></scripts></block-definition></blocks><variables><variable name="X&apos;s turn?"><bool>false</bool></variable><variable name="board"><list struct="atomic" id="997">1,O,X,4,X,O,X,X,O</list></variable><variable name="playing"><bool>false</bool></variable><variable name="win lines"><list id="998"><item><list id="999"><item><list struct="atomic" id="1000">-100,50</list></item><item><list struct="atomic" id="1001">100,50</list></item></list></item><item><list id="1002"><item><list struct="atomic" id="1003">-100,0</list></item><item><list struct="atomic" id="1004">100,0</list></item></list></item><item><list id="1005"><item><list struct="atomic" id="1006">-100,-50</list></item><item><list struct="atomic" id="1007">100,-50</list></item></list></item><item><list id="1008"><item><list struct="atomic" id="1009">-50,100</list></item><item><list struct="atomic" id="1010">-50,-100</list></item></list></item><item><list id="1011"><item><list struct="atomic" id="1012">0,100</list></item><item><list struct="atomic" id="1013">0,-100</list></item></list></item><item><list id="1014"><item><list struct="atomic" id="1015">50,100</list></item><item><list struct="atomic" id="1016">50,-100</list></item></list></item><item><list id="1017"><item><list struct="atomic" id="1018">-100,100</list></item><item><list struct="atomic" id="1019">100,-100</list></item></list></item><item><list id="1020"><item><list struct="atomic" id="1021">-100,-100</list></item><item><list struct="atomic" id="1022">100,100</list></item></list></item></list></variable></variables></project><media name="U3L3-TicTacToe- New" app="Snap! 6, https://snap.berkeley.edu" version="1"></media></snapdata>