Java StarLogo 2.0 english `turtle` breeds [roos coyotes] turtles-own [sex age] to placeUnique if count-turtles-here = 1 [stop] setxy random screen-width random screen-height placeUnique end to coyotes_hunt if (breed = coyotes) [ fd 1 rt (random 90) lt (random 90) if (count-turtles-here > 1) [ grab (one-of-turtles-here) [ if ((breed-of partner) = roos) [ kill partner ] ] ] ] end to hop setxy random screen-width random screen-height end `observer` globals [male female generation numroos numcoyotes] to setup ct clearall clearplots set male 0 set female 1 set generation 0 set numroos 0 create-roos-and-do num_males [setshape roo-shape setc blue setsex male setage 10 placeUnique] create-roos-and-do num_females [setshape roo-shape setc red set sex female set age 10 placeUnique] set numroos num_females + num_males create-coyotes-and-do num_coyotes [setshape coyote-shape setc yellow set age 0 placeUnique] set numcoyotes num_coyotes end to count_generations output generation end to count_roos output numroos end to count_coyotes output numcoyotes end to next_generation ; next generation of roos let [:numred (count-color red)] let [:howmany (count-roos * (reproductive_rate / 100))] if ((count-color red) < (count-roos * (reproductive_rate / 100))) [set:howmany :numred] create-roos-and-do :howmany [ ifelse ((random 2) = male) [setshape roo-shape setc blue setsex male setage 0 hop ] [setshape roo-shape setc red setsex female setage 0 hop ] ] set generation generation + 1 ;ask-turtles [setage age + 1] repeat (round (count-roos / 7)) [kill_one_roo] set numroos count-roos ; count-turtles ; next generation of coyotes let [:howmany (count-coyotes * (coyote_rep_rate / 100))] create-coyotes-and-do :howmany [ setshape coyote-shape setc yellow setage 0 hop ] ask-turtles [setage age + 1] repeat (round (count-coyotes / 3)) [kill_one_coyote] set numcoyotes count-coyotes ; count-turtles end to kill_one_roo let [:chosen (random count-turtles)] ifelse (alive?-of :chosen) and ((breed-of :chosen) = roos) [ kill :chosen stop ] [ kill_one_roo ] end to kill_one_coyote let [:chosen (random count-turtles)] ifelse (alive?-of :chosen) and ((breed-of :chosen) = coyotes) [ kill :chosen stop ] [ kill_one_coyote ] end to move_roos end to go next_generation ask-turtles [coyotes_hunt] end `information` `interface` SLCanvas top-left 14 251 SLTextWidget top-left 167 59 width-height 110 25 textwidth 106 linenums 1 words "death_rate set to 14% " drawBorder false textwidget-number 1 SLButton turtle-or-observer? turtle top-left 451 269 width-height 40 42 name "button2" line-to-run "hop" forever? false button-number 2 show-name? false whichip 12 SLSlider top-left 135 24 width-height 210 25 name "kangaroo reproductive rate" variable "reproductive_rate" min-value 0 max-value 99 current-value 50 slider-number 4 show-name? true SLSlider top-left 63 23 width-height 223 25 name "# of males" variable "num_males" min-value 0 max-value 50 current-value 10 slider-number 2 show-name? true SLSlider top-left 96 21 width-height 224 25 name "# of females" variable "num_females" min-value 0 max-value 50 current-value 10 slider-number 3 show-name? true SLTextWidget top-left 472 383 width-height 40 25 textwidth 3 linenums 1 words " " drawBorder false textwidget-number 2 SLButton turtle-or-observer? turtle top-left 449 336 width-height 115 45 name "button5" line-to-run "coyotes_hunt" forever? false button-number 5 show-name? false whichip 15 SLMonitor top-left 452 572 width-height 96 36 name "monitor3" list-to-run "count_coyotes" digits 0 delay 0.5 monitor-number 3 show-name? false whichip 21 onewhichip 22 SLSlider top-left 188 28 width-height 204 25 name "# of Coyotes" variable "num_coyotes" min-value 0 max-value 10 current-value 10 slider-number 5 show-name? true SLMonitor top-left 256 33 width-height 83 36 name "# of Kangaroos" list-to-run "count_roos" digits 0 delay 0.5 monitor-number 1 show-name? true whichip 19 onewhichip 20 SLMonitor top-left 256 130 width-height 86 36 name "# of generations" list-to-run "count_generations" digits 0 delay 0.5 monitor-number 2 show-name? true whichip 17 onewhichip 18 SLSlider top-left 222 23 width-height 211 25 name "coyote reproductive rate" variable "coyote_rep_rate" min-value 0 max-value 99 current-value 80 slider-number 6 show-name? true SLButton turtle-or-observer? observer top-left 16 125 width-height 105 34 name "button4" line-to-run "next_generation" forever? false button-number 4 show-name? false whichip 14 SLLineWidget top-left 301 12 width-height 227 247 id 5 order 5 type 4 title "Plot 5" delay-string "5.0" xlabel "" ylabel "" grid false connected true autoscaletrue location -16 86 whichip 23 onewhichip 24 wizard-on true lineset-id 1 lineset-name "roos" lineset-order 5 lineset-type 4 lineset-color -65536 lineset-displayed? true lineset-instruction "generation" extrainfo-extra false lineset-xy? true lineset-xy-instruction "count-roos" extrainfo-xy-extra false lineset-end 1 lineset-id 2 lineset-name "coyotes" lineset-order 5 lineset-type 4 lineset-color -256 lineset-displayed? true lineset-instruction "generation" extrainfo-extra false lineset-xy? true lineset-xy-instruction "count-coyotes" extrainfo-xy-extra false lineset-end 2 lineset-id 3 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -6262704 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 3 lineset-id 4 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -256 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 4 lineset-id 5 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -11418368 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 5 lineset-id 6 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -16711936 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 6 lineset-id 7 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -16711738 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 7 lineset-id 8 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -16711681 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 8 lineset-id 9 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -16744449 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 9 lineset-id 10 lineset-name "" lineset-order 5 lineset-type 4 lineset-color -7434610 lineset-displayed? false lineset-instruction "( count-turtles) " extrainfo-extra? true extrainfo-instruction "number of" extrainfo-breed "turtles" extrainfo-var "Xcor" extrainfo-with false extrainfo-xy? true extrainfo-xval? false lineset-xy? true lineset-xy-instruction "( count-turtles) " extrainfo-xy-extra? true extrainfo-xy-instruction "number of" extrainfo-xy-breed "turtles" extrainfo-xy-var "Xcor" extrainfo-xy-with false extrainfo-xy-xy? true extrainfo-xy-xval? true lineset-end 10 SLButton turtle-or-observer? observer top-left 460 478 width-height 57 51 name "button6" line-to-run "go" forever? true button-number 6 show-name? false whichip 16 SLButton turtle-or-observer? observer top-left 16 27 width-height 77 32 name "setup" line-to-run "setup" forever? false button-number 1 show-name? false whichip 13 `turtle shapes` H4sIAAAAAAAAAO3cXZMk113g4UQ2IJsxNuwbYFhqeVnYF7HSSBpJsLv0lW8I33Kx wYUlGNaOMJZXkoNgr+qD7gfgW7DOsrpq5qirMrPyvJ/niaB+VHZnnfxn1/T0jEdn +vYPvvjZZ1/8+OXh8x9+/NOXn//g4c3p0cPp8dkvPv7W6ePzgV/6+f997ef/9+b5 UxjZcX74l58LGx679nmxzt/y2k+93t7z177O3jkqnP87v/i2AACM543T49afI2ro 1p/RUq2b+zpyrX/tddeuf+91pf4alrqOWF+HXOtaf+z1965773XEXjfWday9vqXz K+xhmr4+AQAAAAAAAAA9+MV/R1TJv0nQAbr0OaWvz/x55+39fpjf/D3Nv/V6Y89f +n6NNn/Ke5mj5h/r/ZB6jdLzlZ6/tvtR+p6b3/zmN7/5zW9+8/c+f+l5S9+P0vPl nr/0PKXvR+nrLz3/1vsR+/7tXd/8qjf7S9Ozz//Pzz7+7LJ96GmbQNuH8uhYyVtV C3WyfSgADOyN4j+LqKqqav5Otg8FAAAAAAAAgI68WfzfIqiqqqqqqqqqqqqqqqqq qur+TvOGQM9++vKzzz/9yXn70DfmfQJtH8qj4/zw1FvoibfTzc/ben7Et/mu6499 /r3Xu/Z+3nu9Nz5u+1AAGNYbp8c9PyPt/Zmr9Pr3/qx27/q1nz9at54T+/WsX/f6 e1+jt/Vjf35t6++9nw2ef7B9KAAAAAAAAAD04s3T455/q7HUva+R+vrMb/6R50+9 fun5rW9966f9HqKqbTb1GrVfn/nNb37zm9/85s8/X+v3x/zmN3+66zO/+c1fbv69 r2F961u/6vW/Nn3ri5ef/cOPvnh53j/0a13uH/rw7eNr3frx1tff4Tg/7H0vrnl/ 5zj/Vbc+duv19vy6K73+nffP/qFQqb2/d1T8e88q5j8+2VTnMart+4eO3lg/q8Ve N/V1lF6/9P0vsf6r9pwb47pKfP1rmn/tfYi1zr0z3NLa19/6Wd5/B/uHAgAAcM21 /60h1//mUHp9GFnpX3+l14eRLf36i/3rMfd6AAD9S79/qKqO272vUfr6S83d6n1I vUbp+cxvfvPnvw+l5yl1H0pfv/m9/5+6lmtKrl3Dfcoxf+mvv/nHnv+WkmvXcH9G +PqXuA+l5yl1H0pf/7VrWivnWrHW9PUvP3er9yH1GqXnM7/5zW/+3Peh9Dyl7kOG 6/z69JuP+4f+46ef/t15E9Gv39xE9OF7f3OzS/aef6/Sm3iWXn+H4/zw1Bv0ljVv 8D3nP/WLbOu6a67pnl/cNa9/5/1btYno0q/t1L/2R1+fMdlE8/hac59fmk1EyWPd JqJ77fyDzfDrr/kZ8d6fGVtZf+11pFq3xPqv2nNujOsq8fWvaf619yHWOvfOcEtr X3/rZ3n/HWJsIrr3z8qt/1nb/OYv2dLMP/b8AED/Sm/iVXp9GFnpX3+l14eR2UQU AKB1cTYRLS3Fv7nY0tLMb/6SLc38Zed/tTnudQ1zmt/85jd/rvtQep5S96H09Zea u+b7cEvJtWu4TznmL/31N//Y899Scu0a7s8IX/8S96H0PKXuQ+nrv3ZNa+VcK9aa NXzdW3gf5Ji7tftgfvOb3/yjzp/qPpSep9R9yHCdvzw9++zjTz750Rfn7UN/+fb2 oY//7PIHv/fa82sevjs9+XnXnj9+/tLrfKVXzrt6/pXnsc8/f97Ghucvvd61z7/m 4fv/vO4TN24feuutHH7Otee3Xm+tNdeR8/x7bblXtz5/aZ6Fz1u3fWj4a/Lxe0Tw veLubf6uvec3/lPxa9dx7fWvfXzvute+h927/lc+f+PHl9a/ej2R5t6qmvWvXcfG j1t/5/rXfo9eOr5x/Xt/T9/6e3/udbd+/4l1XUuvf+/HY8231lfW+fJnrHN3vv7m 6wnW3y/N9qH3/LHoqfP3Wnr9WOtstWX9tfdqyyyxv95717O+9WtYP7VS6y5dx7WP x1rn3vXvvY6trx/7fbH19fdez87XO8TYPvRR7D9Dt2L1XD/4/S/79N+hlL4Pq//s svXreZ77SiO9L1L9GfArnx/774p2zn/vn0HXnp/s78gi/x1bsvlLz7nzPiyJNf9X Xnfv+zrT/Of1dt6Hu6//3vMjzX1er7VfB5Hnv6b2+VOr7n2Q++/eSv+6yPQ+v2b3 /InPT838Kxt7/kg/3+1l/pU1/9MdZf5r88T+fPO/1tg2z1tZ71X6ukvfh9LXW2r+ 0tdZ+j4sv85D0NJzbbueJWvXW//5aXu5joegtz//mnvvX773w0OS6196neXPf1i1 fur5773+WFbP8f3/93ojfx8vbfXcK+9DL5bmH0W9c8fZPrT0v+Ep3dRKzVFq3iWx /43M1vVK23v9tc2TmvnTz7/3NVN+TXJ8H69x/tp+H8st1e+LtYk1p/nN/1RrZ37z p2ztzG/+lK2d+cead8moc4fMP+bcIfPHmb+W+3Xvdd87fy3vm9jXv/Q6tf26iX39 rfy8kGuO2u5D6Xly3ZfS11fqPpS+ni/7K9Ov//jl33/x1t9+/Nl5A9FfmT9+dQPR vR7++r6XfDzv3vO523F+ePWNc+tNvuUXxL0fW7vW0vW20mvzL92fiB9ftYEodSn1 vbLU9+pw3VzrX1vX71VAP9ZtIKp1NdXnrnmtEus/JeU9u7Xu3pmWPifXe0h1+tKt j73qnte+5/wlvZ+f+f4fYm4gCgCvGv3v0Eadf9S/Qx3175CX5u51/rVz9zb/1rl7 mf/euXuZHwAAAIDWxN1AVFVV9dW+KsZrlZ6n5Pwt3YenjDD/LSnWKj3vmrlTX2vt c+e6xlrnLnFtNc2de/7Y9yH3dddyf0pfX6n5S1+Xqqqqpuu959yS45pLrL9VL+vv ZX3rW7/d9e+9jljr1rL+2utItW6i9X91+vZnP/rfP3x9B9FfnT8h2Q6i1+z9L2X8 FzfJHOeHp95Bt96lt955a97dW8679atjzXm199aMS/cg0sftINqR0t8jS3+vLv1f afqvRYH22EG09q793FeVXj/GdWw955aU665Z/9Z1xPxarb3OkutrXV362Kvuee17 zl/S+/mZ7//BDqIA1GL0v0Mz/8OTHcXof6c8+k6Mo+9IOfrOnHYoBQAAACAuO4iq qmqc7n2Np9QwV+q5zX99/prvQ+zXXKPHubfMX/I+pF7jHj3MvWf+lPch19wx5r/n PuSeL+d9HHn+tfeh9PWVvg+lr0tVVbVE7z3nlhzXXGL9rXpZfy/rW9/67a5/73XE WreW9ddeR6p1E63/5vTNz//x45+cNw89/aOAuzcPffiDrWe8ft65L9Z93tLxq6+/ 0HvPi9V7r39JeF+v3edXHOeHe9+ksd7cS5+3dHzvN5FS7r3+rV+fhfOG2Dx066+l VOsufQ/MvX7q64h937d+b9y7fuzv7anW3fp7XKp1W/29uJWfAVKtn/p67lVq3a9c x8L3yeTfRxe+X+//fv7G6TH1H3BKN1Rq3dzXsVYr933r9e9df6tY6+8V636lVmrd 0uvXct9zvQ9Sf/+Kve6167j347G/70X+PneweSity/Vngtrk/jNRLTb/2TDT333l Yv6NfXG7rTH/7fau9vlT/51drfPX8ne1qZX+O2vz33fevXLNu3ae3P+bQOn5wzlS fV/Z+/qtdEnp66v1+0ovDZW+HvPn6TWlr8v8abtW6essPX+o9HXnmnNJ6blKzX3N aPOGRp8/tPfvE5v/+0jz32zq80trf36bh2r7XVL6+krN3ev8e5W+fvOXnb/1+2H+ vubpbf6tepk/ltrnz8X8dcxf2t7raX3+R3uvp7V5UzH/mHM/GnXuR6PO730/5vyj /77X+s89a8X+ubeV+5Bq7lrvR+55zb/tfuQ+v3TNf1vq80u38fm/MT17+ZP/+0// 8PK8feg35n0Cz9uHPvzVF6fLePjeD1c19Hj+krXn710//Lx7z481/+J9XXn/rr7u 49fvzk5fbh+61bW3+dpfDkvH966/9Hqp19/6bWDp/L2vu+C0fehX3iPf+5uoXVLb +nv1tn7p+1/b+luvr7f1S9//2n797/4+1fj6u6+3svVH6+P2oall+pkm2vqx/wjZ +vp79bb+1uvrbf2tWl9/6/mpr7e29WNfb+n1B3OYtw9d/Jkh8p/Nc/9Zf4n5zX+z lcxZav7SzG/+W939+ua/2b3X1/v3P/Obv2T3Sj3/3vPNb/49r7+4vvlvdvF83/+K di/zm/9WUyt9/8xv/ltNbfT5UzO/+W/W/Ko6aB+3D23d6P82xPzm39PUr1/79Znf /Oa///VLM7/593Tv65dW+/yp75/5zb+nqa9/9PlTM7/593Tv65dWev7U65dmfvOn bO1Sz1/7/S19/eY3f8n5gW59c/rmD59/+vy8eeg3X9s89PGzHt766WsNjfLxJUuf F66zuO7/+rMnu/bz9p4/fbl56LXfTJZ+s+n142t/0733N+W1n7/3N/uV5582Dw1t fS873/nO7/f8vVpbf+n8rd0r9fp7f8bY+3rWL7v+4+ahe3+Wcb7znd/v+UufH/v1 Sq+/9X4uiX39sdcv/XrWL7r+Yd48dEnvPwtb3/rWt771rW9961vf+ta3vvWtb/30 r7+X+c1/q7W//l6lr2/v96fS39/2Mr/5S3b39Rf+twulr8/85k/ZvUpfv/nNv6d7 lb7+3ud/3Dy09L9Fsb71rW9961vf+ta3vvWtb33rW9/69a+/9/Vrvz7zm3/k+feu n1rt9z8185t/T0e/vtTMb/49bZ35zb+nrat8/l+bnn3ys08++fHL8/ahv/bk9qGP Hr57u9csnXftdb7y8e//8+vd+Lq7z8/cR/eeF7rjvOP8sPVtGevt3Mu3gb323r+d X7/vPLV9aCjWe/1eudfP9Wu/lvU3f2/N/b3W+mXX164byr1ebevHvp690q//9Pah sf/IUvqPTJX9Ea269YFxlf7+U9v6pX//ybz+Yc32oUtq+1k2N/OXbWm9z196vtL3 p/T1m39f9yp9/ann373O0t9V9v53meY3v/nNb37zjzi/qqqqNtclpa8v9XxLSl+/ +fd1r9LXX3r+Jb3Pt8T8ZVta+/Ov2z609L/dWLL3+s1v/j0trff59jK/+fe0db3P BwAAACzr/e8H/P2P+fe0dXvnr/3+pJ7P/Oa/1dJ2Xv+z6Rufffrpee/QZ/OHru4d ynCOr77P/+VLrz5f273nrfl1uGbde19n63XtvS9rXyfD12PV3qEAQI/W7R2q+Rr+ DLfhZ7ok15F7/Wsfu/fzYt3/rU19P3JdR4wZariO3OuvPW/r+muva+0c996Htcdz de9cra0bsYcYe4cCAAAAAAAAADWIs3eoqqpqr338/+/9eC8N5xxl7nDe0ece5T5s PSf269Y2/9o57r1/td6HvV9H96Hv+2D+MmuXntt9KDN/uF7pua9dz7Xne+e+9nql 5197XUvzbZ2rtfsQe/61rxt+Xiv3J9br1zJ3q9eZ+z6Uvh7zuw/mzj/3KPOPNq9W 129Nz/7203/69IuX5+1DvzV/1PahPDrOD5W8XbN+u116zXvXWXvNua5rxevYPhQA hmX7UNUaGx6L/bpr1821/trXyH0/7511632PvX6s+5drnXu/bqmuY+3r5bofS6+z Y72D7UMBAAAAAAAAoBe2D1VVVVVVVR21j/9/6esodd2tzB9e56jzx77eVK+b6z7E uu5a57/33L3rtDp3rPtQ61y573+ur1Mtcy/NNcr8peasdf5U92Xt65Sec+992Ps6 pecrPX9t92HrOb3Mv/b6Ys2/tG6pedeet3e9rR8v1dhfn9rm66i/Pr152jf0rXfe Oz2bbB3KxXF+qOStmvRbVO7zG6qtQwFgWLYOVW2x4bHR1lfVKD3YOhQAAAAAAAAA emHrUFVVVVVVVdWUDY+Vvh7zq6qqqqqqqnbdb5+3Dn3/9GyydSgXx/mhkrdq1IbH cp/fUG0dCgDDsnWoaosNj422vqpG6cHWoQAAAAAAAADQC1uHqqqqqqqqqqZseKz0 9ZhfVVVVVVVVtet+57x16IvTs8nWoVwc54dK3qpRGx7LfX5DtXUoAAzL1qGqLTY8 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 AAAVDxo= `template` null `settings` patch-size 32 num-shapes 64 screen-half-width 6 screen-half-height 6 interface-window-xcor 174 interface-window-ycor 10 interface-window-size 692 560 output-window-xcor 0 output-window-ycor 0 output-window-width 300 output-window-height 200 info-window-xcor 0 info-window-ycor 0 info-window-width 500 info-window-height 400 control-center-xcor 7 control-center-ycor -2 control-center-width 581 control-center-height 764 turtle-command-center-height 53 observer-command-center-height 41 `string table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `symbol table` H4sIAAAAAAAAAGNgYGAAABzfRCEEAAAAAAAABA== `double table` H4sIAAAAAAAAAGNgYOBxMGEAA/sPENqBAUpzQGkNKB0FkXHQg/K1oLRbA4QWgJrz ACouAqEBuDMwgmQAAAAAAABk `list table` H4sIAAAAAAAAAH1RQQ7CMAyL3W5l5Yi4I+3Mhzjz/zeQri4L08QkL0mTxnFqZjcz W+E/AXQ03y1lE/oZ3c+OKdRX1Tck5WfFMZ90f7OOyf3iuIgDOltMXLJJNrt9ht7Z 8T7GY071PM668ZzMOPgp/VSuKB4zz+LgyewIu2PQ2/QQuD8gquZz1zc+KF8C/0vA z/3et4Y9jblr6EO9Rw17XND38dWqmNj7Xq3r+lv3AQZordU4AgAAAAACOA== `bytecodes` H4sIAAAAAAAAAM1WTXPTMBBd2XWcxEnspHW+27pfAQoHLhzoieEMR4ZjW1JPm6HY pXUYeuEX0r8EyNJK2jhxyYUZPEkkK7tv12/fSgbv7NN9Fk/Ti/ju7A38zK8HABiA cxdn8xs+/QH62rf5l49HuwAM1xj+tC2cq9Emaxs4OmStgqNL1qo41oAdSiiALq7V AcIJzj0+D3DeANZmOG8CdNS8haMv11yJqy+eHvRdtFFY7RVxOyTuJom7ReKGJK7y 660Rty/jiflAzFmg7oeElxGOY5KfymOb5LdD8lM1itbIY4/ksS/j+nmx+HSazpPs 9DJO4tvzbJYmd4BYpPx8aOdMM3RjUJdut2m6jr0FTWk/Te/TLF7HxQY/ib/TxPi/ D+hhGadBPVfab35pqbJBTUvVPLbNqc+/Ftr/0tIVGChf41shvq72ZUEXy+PkHxlX 4eWU+0TqDq4L+9dG+oFqjbqQGAt6BUl6pOQNUvImkWSLSNI3MtdS8BalsIDfJvgd gr9J8LcIfmikX4bv2wXJ9WRBVRto2Q+I7IeE7xFyPDL8ujgqlYg4yn5MfLcJ5g5Z 3yU1jErqv1eok+Jin3B0QDg6xPGonIucA0vWV9pOgHXU/Anh4qnEyH0OlCaekfyP SziplHDynPi+IG2+AY3Ps+vr0zSJ85YVzCgENqhKRaouQlWz8NgcAmqtqzKXqmXB znI39EULE9VZohm0Snxp7OuM5KbwHyRVgdqX9FusdjXFMpiQvoOmLliXOY++sRGV 2cAbq1Cx+qJC8moLnCp4N9fn0/hDMvs6zznomJgjE9hsEZZ5Dr7VsLEleGJjW/IV VuRzCfAaNHDDPb3iuy9ffmnQw2gF+kQzCWHDbKICeUA20vx+SDLkm2gQIgbfREbq 8dUZzTfWXUYqVSExbfGfqJDaQG0UA733lZjrYF+l+YtL1TzMKhqQ38bbeZalyUkU SS9nuWdBWra0pXo1chbOKWrb17bLp5SzrAX0CrVXoS4rZIIunnYReqsVdGU4kCRV tOPwfZrMsvT2JFp1wvuI4xltuwDmhl+HthGDXy/ge3/Brz6OKzAasFnAwMYrS85a M7lmGXAxqwKgcG5Bt+BsXlrKErPXTMx/BLuYWwFT+AfQejdL4ujj7OIyzk6iVyBe CUVOQ+Ov4qv21eewLc+Ho4luW/3artpS27oF2+qK52mvyKf37/IQBp0/28pJ/dMM AAAAAAzT `observer world` H4sIAAAAAAAAAD2NUQ7CMAxDszE2VH44AB+cgy+OsgKmTOqaqQ2g3X5phxbJyrMc K3Tq+Z4Qv4iXJFbQ32ibK5nJs/yGp4Oob6j1CE7eymfqcjYhlNNjKW/pQbWnZrQe JW5f+HNFxiEgWhk4V2vqwmeMzEnNjoyaB88sSOVhLqiqFcquVzYLPkI1UrsAAAAA AAC7 `patch world` H4sIAAAAAAAAAIXRzUoDMRiF4U8pNShCFllkkUUIIYTchL0K1y21tEJpBx1Q79pL sD82VCR5AyHJPDkzA0ce58NiXG78+7gYV/OZ1PEsk8/l/u20vx+2+/Hj9WW9Gg8n J7fD8rBqmW5Xu/W4Oey93B3vDKvd4WBl8nWOKnk4vfjqnsj0d8rT9/lTl/Vq3Bzn 5W+arsA1uAG34A7cgwfwCJ7AM3jp++X57B//7afpClyDG3AL7sA9eACP4Ak8g5e+ 135UIy/gClyDG3AL7sA9eACP4Ak8g5e+1350Iy/gClyDG3AL7sA9eACP4Ak8g5e+ 135MIy/gClyDG3AL7sA9eACP4Ak8g5e+135sIy/gClyDG3AL7sA9eACP4Ak8g5e+ 135cIy/gClyDG3AL7sA9eACP4Ak8g5e+1358Iy/gClyDG3AL7sA9eACP4Ak8g5e+ 135CIy/gClyDG3AL7sA9eACP4Ak8g5e+135iIy/gClyDG3AL7sA9eACP4Ak8g5e+ 135SIy/gClyDG3AL7sA9eACP4Ak8g5e+135yIy/gClyDG3AL7sA9eACP4Ak8g5e+ 135KIy/gClyDG3AL7sA9eACP4Ak8g5e+/wBNtrhvnRUAAAAAFZ0= `turtle world` H4sIAAAAAAAAAJWUS07DMBCGp236oLQ8C5SnWLBiwQJYsMPqggN0STeU1jQVVV0l RoUdN+Eo5EjcAJzE/wBFQralaDxxvhnP+Hdo5U4/RXoij2Pd1/JOEI83qkzkdKRD MxdUvo+kHJrpCdVnE6Xn4+FIauNfUjX1Z3JqnDMqD9RERWZ6QMHLIJs1aDkLztGu qGY+H6r5dGa8cyrHYX8mzfSUguecCag0D1W2j0oc2i8vqBrK/nA8HRmnZZ4ilWL5 nH1V6o/SCIXsbRApFWdedaBelJapU/w0w9gj8xyKWl7k9Uduhc4rFzevuUUXmlmY NGyhYOOnxTG3Zm1EPvz+O/i2terVh99LbF5Y8eiVfxf1c/4Hr/xtLCfWinuv/Duc F3zPi99OLJ+gjq4Xv8Uc+tfx4ltJ6/f+MRz5TZw/nx/0d5b70Je5PD/59Kmb+QbO j/cB/bnx65wffYD+3Pg18Kxj6M+NX0V/+B5Bf278il391g/058Y30TeO0/PiG9AN 97/rxS+z7tD/jhdfF63fPNfhxi+xfhb1dyv+48nytWSxfujPja8Ku8z6gf7c+Ary sn6hPze+jPxsoT83Pkj4D2h56M+NLyEv77/nxRevF+9v14sv8Plh/x0vnv+bf/rg wH8B6ITzwnQIAAAAAAh0