<snapdata remixID="11080286"><project name="U2L4-MathLibrary Project " app="Snap! 7, https://snap.berkeley.edu" version="2"><notes></notes><thumbnail>data:image/png;base64,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</thumbnail><scenes select="1"><scene name="U2L4-MathLibrary Project "><notes></notes><hidden></hidden><headers></headers><code></code><blocks><block-definition s="%&apos;d&apos; ≤ %&apos;e&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportOr"><block s="reportLessThan"><block var="d"/><block var="e"/></block><block s="reportEquals"><block var="d"/><block var="e"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;a&apos; ≥ %&apos;b&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportOr"><block s="reportGreaterThan"><block var="a"/><block var="b"/></block><block s="reportEquals"><block var="a"/><block var="b"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block-definition><block-definition s="%&apos;x&apos; ≠ %&apos;y&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="x"/><block var="y"/></block><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script></block></script></block-definition><block-definition s="USE BIGNUMS %&apos;bool&apos;" type="command" category="operators"><comment x="0" y="0" w="303.3333333333333" collapsed="false">call with True to turn on the entire Scheme numeric tower, including infinite-precision integers, exact rationals, and complex numbers; call with False to restore native JavaScript arithmetic.</comment><header></header><code></code><translations>pt:altera utilização de aritmética do Scheme para _&#xD;</translations><inputs><input type="%b"></input></inputs><script><block s="doDeclareVariables"><list><l>isDone</l></list></block><block s="doSetVar"><l>isDone</l><block s="reportJSFunction"><list><l>useBigNums</l></list><l>var done = false;&#xD;&#xD;function initialize (callback) {&#xD;    var bigScript = document.createElement(&apos;script&apos;);&#xD;    bigScript.src = &apos;//snap.berkeley.edu/snap/libraries/biginteger.js&apos;;&#xD;    bigScript.onload = loadScheme;&#xD;    document.head.appendChild(bigScript);&#xD;&#xD;    function loadScheme () {&#xD;        var schemeScript = document.createElement(&apos;script&apos;);&#xD;        schemeScript.src = &apos;//snap.berkeley.edu/snap/libraries/schemeNumber.js&apos;;&#xD;        schemeScript.onload = finish;&#xD;        document.head.appendChild(schemeScript);&#xD;    }&#xD;&#xD;    function finish () {&#xD;        makeGlobalObject();&#xD;        callback();&#xD;    }&#xD;}&#xD;&#xD;function makeGlobalObject () {&#xD;    window.bigNumbers = {&#xD;        originalEvaluate: InputSlotMorph.prototype.evaluate,&#xD;        originalChangeVar: VariableFrame.prototype.changeVar,&#xD;        originalPrims: {&#xD;            reportBasicSum: Process.prototype.reportBasicSum,&#xD;            reportBasicDifference: Process.prototype.reportBasicDifference,&#xD;            reportBasicProduct: Process.prototype.reportBasicProduct,&#xD;            reportBasicQuotient: Process.prototype.reportBasicQuotient,&#xD;            reportBasicPower: Process.prototype.reportBasicPower,&#xD;            reportBasicModulus: Process.prototype.reportBasicModulus,&#xD;            reportBasicAtan2: Process.prototype.reportBasicAtan2,&#xD;            reportRound: Process.prototype.reportRound,&#xD;            reportBasicMin: Process.prototype.reportBasicMin,&#xD;            reportBasicMax: Process.prototype.reportBasicMax,&#xD;            reportBasicRandom: Process.prototype.reportBasicRandom,&#xD;            reportBasicLessThan: Process.prototype.reportBasicLessThan,&#xD;            reportBasicGreaterThan: Process.prototype.reportBasicGreaterThan,&#xD;            reportEquals: Process.prototype.reportEquals,&#xD;            reportIsIdentical: Process.prototype.reportIsIdentical,&#xD;            reportMonadic: Process.prototype.reportMonadic&#xD;        }&#xD;    };&#xD;}&#xD;&#xD;function loadBlocks () {&#xD;    var fn = SchemeNumber.fn;&#xD;    var originalPrims = window.bigNumbers.originalPrims;&#xD;    if (useBigNums) {&#xD;        InputSlotMorph.prototype.evaluate = function () {&#xD;            var contents = this.contents();&#xD;&#xD;            if (this.selectedBlock) {&#xD;                    return this.selectedBlock;&#xD;            }&#xD;&#xD;            if (this.constant) {&#xD;                return this.constant;&#xD;            }&#xD;            if (this.isNumeric) {&#xD;                return parseNumber(contents.text || &apos;0&apos;);&#xD;            }&#xD;            return contents.text;&#xD;        };&#xD;        VariableFrame.prototype.changeVar = function (name, delta, sender) {&#xD;            var frame = this.find(name),&#xD;                value,&#xD;                newValue;&#xD;            if (frame) {&#xD;                value = parseNumber(frame.vars[name].value);&#xD;                newValue = Number.isNaN(value) ? delta : fn[&apos;+&apos;](value, parseNumber(delta));&#xD;                if (sender instanceof SpriteMorph &amp;&amp;&#xD;                        (frame.owner instanceof SpriteMorph) &amp;&amp;&#xD;                        (sender !== frame.owner)) {&#xD;                    sender.shadowVar(name, newValue);&#xD;                } else {&#xD;                    frame.vars[name].value = newValue;&#xD;                }&#xD;&#xD;            }&#xD;        };&#xD;        Object.assign(Process.prototype, {&#xD;            reportBasicSum: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;+&apos;](a, b);&#xD;            },&#xD;            reportBasicDifference: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;-&apos;](a, b);&#xD;            },&#xD;            reportBasicProduct: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;*&apos;](a, b);&#xD;            },&#xD;            reportBasicQuotient: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (fn[&apos;=&apos;](b, &apos;0&apos;) &amp;&amp; !fn[&apos;=&apos;](a, &apos;0&apos;)) {&#xD;                      return (fn[&apos;&lt;&apos;](a, &apos;0&apos;) ? SchemeNumber(&apos;-inf.0&apos;) : SchemeNumber(&apos;+inf.0&apos;))&#xD;                };&#xD;                if (Number.isNaN(a) || Number.isNaN(b) || fn[&apos;=&apos;](b, &apos;0&apos;)) return NaN;&#xD;                return fn[&apos;/&apos;](a, b);&#xD;            },&#xD;            reportBasicPower: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return fn[&apos;expt&apos;](a, b);&#xD;            },&#xD;            reportBasicModulus: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                var result = fn.mod(a, b);&#xD;                if (fn[&apos;&lt;&apos;](b, &apos;0&apos;) &amp;&amp; fn[&apos;&gt;&apos;](result, &apos;0&apos;)) {&#xD;                    result = fn[&apos;+&apos;](result, b);&#xD;                }&#xD;                return result;&#xD;            },&#xD;           reportBasicAtan2: function (a, b) {&#xD;                a = parseNumber(a);&#xD;                b = parseNumber(b);&#xD;                if (Number.isNaN(a) || Number.isNaN(b)) return NaN;&#xD;                return degrees(fn.atan2(a, b));&#xD;          },&#xD;          reportRound: function (n) {&#xD;             if (this.enableHyperOps) {&#xD;                 if (n instanceof List) {&#xD;                     return n.map(each =&gt; this.reportRound(each));&#xD;                 }&#xD;               }&#xD;           n = parseNumber(n);&#xD;           if (Number.isNaN(n)) return NaN;&#xD;           x = fn.round(n);&#xD;           if (fn["integer?"](x)) return fn["exact"](x);&#xD;           return x;&#xD;           },  &#xD;           reportBasicMin: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) {&#xD;                  return a&lt;b ? a : b;&#xD;                }&#xD;                return fn[&apos;&lt;&apos;](x, y) ? x : y;&#xD;            },&#xD;           reportBasicMax: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) {&#xD;                  return a&gt;b ? a : b;&#xD;                }&#xD;                return fn[&apos;&gt;&apos;](x, y) ? x : y;&#xD;            },&#xD;            reportBasicRandom: function (min, max) {&#xD;                var floor = parseNumber(min),&#xD;                    ceil = parseNumber(max);&#xD;                if (Number.isNaN(floor) || Number.isNaN(ceil)) return NaN;&#xD;                if (!fn[&apos;=&apos;](fn.mod(floor, &apos;1&apos;), &apos;0&apos;) || !fn[&apos;=&apos;](fn.mod(ceil, &apos;1&apos;), &apos;0&apos;)) {&#xD;                    // One of the numbers isn&apos;t whole. Include the decimal.&#xD;                    return fn[&apos;+&apos;](&#xD;                        fn[&apos;*&apos;](&#xD;                            Math.random(),&#xD;                            fn[&apos;-&apos;](ceil, floor)&#xD;                        ),&#xD;                        floor&#xD;                    );&#xD;                }&#xD;                var size = Math.ceil(max.toString(10).length/14);&#xD;                const array = new Uint32Array(size);&#xD;                window.crypto.getRandomValues(array);&#xD;                var digits="";&#xD;                for (i=0;i&lt;size;i++) {&#xD;                    digits = digits + array[i].toString();&#xD;               } &#xD;               return fn.floor(&#xD;                    fn[&apos;+&apos;](&#xD;                        // fn[&apos;*&apos;](&#xD;                         //   Math.random(),&#xD;                            fn.mod(parseNumber(digits),&#xD;                                 fn[&apos;+&apos;](&#xD;                                     fn[&apos;-&apos;](ceil, floor),&#xD;                                     &apos;1&apos;&#xD;                                 )&#xD;                             ),&#xD;                        floor&#xD;                    )&#xD;                );&#xD;            },&#xD;            reportBasicLessThan: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return a&lt;b;&#xD;                return fn[&apos;&lt;&apos;](x, y);&#xD;            },&#xD;            reportBasicGreaterThan: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return a&gt;b;&#xD;                return fn[&apos;&gt;&apos;](x, y);&#xD;            },&#xD;            reportEquals: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return snapEquals(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportIsIdentical: function (a, b) {&#xD;                x = parseNumber(a);&#xD;                y = parseNumber(b);&#xD;                if (Number.isNaN(x) || Number.isNaN(y)) return originalPrims.reportIsIdentical(a, b);&#xD;                return fn[&apos;=&apos;](x, y);&#xD;            },&#xD;            reportMonadic: function (fname, n) {&#xD;                if (this.enableHyperOps) {&#xD;                    if (n instanceof List) {&#xD;                        return n.map(each =&gt; this.reportMonadic(fname, each));&#xD;                    }&#xD;                }&#xD;&#xD;                n = parseNumber(n);&#xD;                if (Number.isNaN(n)) return NaN;&#xD;&#xD;                switch (Process.prototype.inputOption(fname)) {&#xD;                case &apos;abs&apos;:&#xD;                    return fn.abs(n);&#xD;                case &apos;neg&apos;:&#xD;                    return fn[&apos;-&apos;](n);&#xD;                case &apos;sign&apos;:&#xD;                     if (fn[&apos;=&apos;](n,SchemeNumber(&apos;0&apos;))) return SchemeNumber(&apos;0&apos;);&#xD;                     return fn[&apos;/&apos;](n, fn.abs(n));&#xD;                case &apos;ceiling&apos;:&#xD;                    return fn.ceiling(n);&#xD;                case &apos;floor&apos;:&#xD;                    return fn.floor(n);&#xD;                case &apos;sqrt&apos;:&#xD;                    return sqrt(n);&#xD;                case &apos;sin&apos;:&#xD;                    return fn.sin(radians(n));&#xD;                case &apos;cos&apos;:&#xD;                    return fn.cos(radians(n));&#xD;                case &apos;tan&apos;:&#xD;                    return fn.tan(radians(n));&#xD;                case &apos;asin&apos;:&#xD;                    return degrees(fn.asin(n));&#xD;                case &apos;acos&apos;:&#xD;                    return degrees(fn.acos(n));&#xD;                case &apos;atan&apos;:&#xD;                    return degrees(fn.atan(n));&#xD;                case &apos;ln&apos;:&#xD;                    return fn.log(n);&#xD;                case &apos;log&apos;:&#xD;                    return fn.log(n, &apos;10&apos;);&#xD;                case &apos;lg&apos;:&#xD;                    return fn.log(n, &apos;2&apos;);&#xD;                case &apos;e^&apos;:&#xD;                    return fn.exp(n);&#xD;                case &apos;10^&apos;:&#xD;                    return fn.expt(&apos;10&apos;, n);&#xD;                case &apos;2^&apos;:&#xD;                    return fn.expt(&apos;2&apos;, n);&#xD;                case &apos;id&apos;:&#xD;                    return n;&#xD;                default:&#xD;                    return SchemeNumber(&apos;0&apos;);&#xD;                }&#xD;            }&#xD;        });&#xD;    } else {&#xD;        InputSlotMorph.prototype.evaluate = window.bigNumbers.originalEvaluate;&#xD;        VariableFrame.prototype.changeVar = window.bigNumbers.originalChangeVar;&#xD;        Object.assign(Process.prototype, originalPrims);&#xD;    }&#xD;    done = true;&#xD;}&#xD;&#xD;function parseNumber (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;    if (!fn[&apos;number?&apos;](n)) {&#xD;        n = &apos;&apos; + n;&#xD;        try {&#xD;            return parseENotation(n) || SchemeNumber(n);&#xD;        } catch (err) {&#xD;            return NaN;&#xD;        }&#xD;    }&#xD;    return n;&#xD;}&#xD;&#xD;function parseENotation (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);&#xD;    if (!numbers) return null;&#xD;&#xD;    var coefficient = numbers[1];&#xD;    var exponent = numbers[2];&#xD;    return fn[&apos;*&apos;](&#xD;        coefficient,&#xD;        fn.expt(&apos;10&apos;, exponent)&#xD;    );&#xD;}&#xD;&#xD;function sqrt (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    if (!fn[&apos;exact?&apos;](n) || !fn[&apos;rational?&apos;](n) || fn[&apos;&lt;&apos;](n,&apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootNumerator = fn[&apos;exact-integer-sqrt&apos;](fn.numerator(n));&#xD;    if (!fn[&apos;=&apos;](rootNumerator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    var rootDenominator = fn[&apos;exact-integer-sqrt&apos;](fn.denominator(n));&#xD;    if (!fn[&apos;=&apos;](rootDenominator[1], &apos;0&apos;)) return fn.sqrt(n);&#xD;&#xD;    return fn[&apos;/&apos;](rootNumerator[0], rootDenominator[0]);&#xD;}&#xD;&#xD;&#xD;function isDone () {&#xD;    return done;&#xD;}&#xD;&#xD;if (window.bigNumbers) {&#xD;    loadBlocks();&#xD;} else {&#xD;    initialize(loadBlocks);&#xD;}&#xD;&#xD;return isDone;</l></block></block><block s="doWaitUntil"><block s="evaluate"><block var="isDone"/><list><block var="bool"/></list></block></block></script></block-definition><block-definition s="Scheme number %&apos;function&apos; of %&apos;number&apos;" type="reporter" category="operators"><comment x="0" y="0" w="300" collapsed="true">Provides Scheme arithmetic functions not in JavaScript</comment><header></header><code></code><translations>pt:_ de _&#xD;</translations><inputs><input type="%s" readonly="true"><options>number?&#xD;complex?&#xD;real?&#xD;rational?&#xD;integer?&#xD;exact?&#xD;inexact?&#xD;exact&#xD;inexact&#xD;finite?&#xD;infinite?&#xD;nan?&#xD;numerator&#xD;denominator&#xD;real-part&#xD;imag-part&#xD;magnitude&#xD;angle</options></input><input type="%s"></input></inputs><script><block s="doReport"><block s="evaluate"><block s="reportJSFunction"><list><l>which</l><l>num</l></list><l>function parseNumber (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;    if (!fn[&apos;number?&apos;](n)) {&#xD;        n = &apos;&apos; + n;&#xD;        try {&#xD;            return parseENotation(n) || SchemeNumber(n);&#xD;        } catch (err) {&#xD;            return NaN;&#xD;        }&#xD;    }&#xD;    return n;&#xD;}&#xD;&#xD;function parseENotation (n) {&#xD;    var fn = SchemeNumber.fn;&#xD;&#xD;    var numbers = n.match(/^(-?\d+\.?\d*|-?\.\d+)e(-?\d+)$/i);&#xD;    if (!numbers) return null;&#xD;&#xD;    var coefficient = numbers[1];&#xD;    var exponent = numbers[2];&#xD;    return fn[&apos;*&apos;](&#xD;        coefficient,&#xD;        fn.expt(&apos;10&apos;, exponent)&#xD;    );&#xD;}&#xD;var fn=SchemeNumber.fn,&#xD;      number=parseNumber(num);&#xD;&#xD;switch (which) {&#xD;  case &apos;number?&apos;:&#xD;  case &apos;complex?&apos;:&#xD;    return (fn[&apos;number?&apos;](number));&#xD;  case &apos;real?&apos;:&#xD;    return (fn[&apos;real?&apos;](number) || fn[&apos;real-valued?&apos;](number));&#xD;  case &apos;rational?&apos;:&#xD;    return (fn[&apos;rational?&apos;](number) || (fn[&apos;=&apos;](number, fn.rationalize(number, parseNumber(&apos;1.0e-5&apos;)))));&#xD;  case &apos;integer?&apos;:&#xD;    return (fn[&apos;integer?&apos;](number) || fn[&apos;integer-valued?&apos;](number));&#xD;  case &apos;exact?&apos;:&#xD;  case &apos;inexact?&apos;:&#xD;  case &apos;finite?&apos;:&#xD;  case &apos;infinite?&apos;:&#xD;  case &apos;nan?&apos;:&#xD;  case &apos;real-part&apos;:&#xD;  case &apos;imag-part&apos;:&#xD;    return (fn[which](number));&#xD;  case &apos;magnitude&apos;:&#xD;    return (fn.magnitude(number));&#xD;  case &apos;angle&apos;:&#xD;    return (fn.angle(number));&#xD;  case &apos;numerator&apos;:&#xD;    return (fn.numerator(number));&#xD;  case &apos;denominator&apos;:&#xD;    return (fn.denominator(number));&#xD;  case &apos;exact&apos;:&#xD;    return (fn.exact(number));&#xD;case &apos;inexact&apos;:&#xD;    return (fn.inexact(number));&#xD;}</l></block><list><block var="function"/><block var="number"/></list></block></block></script></block-definition><block-definition s="is %&apos;number a&apos; divisible by %&apos;number b&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportModulus"><block var="number a"/><block var="number b"/></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="even ? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block s="reportModulus"><block var="number"/><l>2</l></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script><scripts><script x="228" y="178.83333333333337"><block s="reportQuotient"><l></l><l></l></block></script></scripts></block-definition><block-definition s="integer %&apos;number&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%n"></input></inputs><script><block s="doIfElse"><block s="reportEquals"><block var="number"/><block s="reportRound"><block var="number"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="Number of divisors %&apos;number&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doReport"><block s="reportListAttribute"><l><option>length</option></l><block s="reportKeep"><block s="reifyPredicate"><autolambda><custom-block s="is %n divisible by %s ?"><block var="number"/><l></l></custom-block></autolambda><list></list></block><block s="reportNumbers"><l>1</l><block var="number"/></block></block></block></block></script></block-definition><block-definition s="Odd ? %&apos;number&apos;" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block s="reportModulus"><block var="number"/><l>2</l></block><l>0</l></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition><block-definition s="Sum from %&apos;El&apos; to %&apos;Chapo&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doReport"><block s="reportCombine"><block s="reportNumbers"><block var="El"/><block var="Chapo"/></block><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="Maximum of %&apos;El&apos; and %&apos;Chapo&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportGreaterThan"><block var="El"/><block var="Chapo"/></block><script><block s="doReport"><block var="El"/></block></script><script><block s="doReport"><block var="Chapo"/></block></script></block></script></block-definition><block-definition s="Minimum of %&apos;El&apos; and %&apos;Chapo&apos;" type="reporter" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIf"><block s="reportLessThan"><block var="El"/><block var="Chapo"/></block><script><block s="doReport"><block var="El"/></block></script></block><block s="doIf"><block s="reportLessThan"><block var="Chapo"/><block var="El"/></block><script><block s="doReport"><block var="Chapo"/></block></script></block></script></block-definition><block-definition s="Minimum of the list %&apos;EL CHAPO&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="EL CHAPO"/><block s="reifyReporter"><autolambda><custom-block s="Minimum of %s and %s"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="Maximum of the list %&apos;EL CHAPO&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="EL CHAPO"/><block s="reifyReporter"><autolambda><custom-block s="Maximum of %s and %s"><l></l><l></l></custom-block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="Sum of list: %&apos;El Chapo&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportCombine"><block var="El Chapo"/><block s="reifyReporter"><autolambda><block s="reportSum"><l></l><l></l></block></autolambda><list></list></block></block></block></script></block-definition><block-definition s="Average of list: %&apos;EL CHAPO&apos;" type="reporter" category="lists"><header></header><code></code><translations></translations><inputs><input type="%l"></input></inputs><script><block s="doReport"><block s="reportQuotient"><custom-block s="Sum of list: %l"><block var="EL CHAPO"/></custom-block><block s="reportListAttribute"><l><option>length</option></l><block var="EL CHAPO"/></block></block></block></script></block-definition><block-definition s="Is %&apos;EL&apos; between %&apos;CHAPO&apos; and %&apos;BABIES&apos; ?" type="predicate" category="operators"><header></header><code></code><translations></translations><inputs><input type="%s"></input><input type="%s"></input><input type="%s"></input></inputs><script><block s="doIfElse"><block s="reportAnd"><block s="reportGreaterThan"><block var="EL"/><block var="CHAPO"/></block><block s="reportLessThan"><block var="EL"/><block var="BABIES"/></block></block><script><block s="doReport"><block s="reportBoolean"><l><bool>true</bool></l></block></block></script><script><block s="doReport"><block s="reportBoolean"><l><bool>false</bool></l></block></block></script></block></script></block-definition></blocks><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="true" sublistIDs="false" id="353"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAADoVJREFUeF7t1cEJAAAIxDDdf2m3sJ+4wEEQuuMIECBAgACBd4F9XzRIgAABAgQIjAB7AgIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECAiwHyBAgAABAoGAAAfoJgkQIECAgAD7AQIECBAgEAgIcIBukgABAgQICLAfIECAAAECgYAAB+gmCRAgQICAAPsBAgQIECAQCAhwgG6SAAECBAgIsB8gQIAAAQKBgAAH6CYJECBAgIAA+wECBAgQIBAICHCAbpIAAQIECByxcQFpoRMBzwAAAABJRU5ErkJggg==</pentrails><costumes><list struct="atomic" id="354"></list></costumes><sounds><list struct="atomic" id="355"></list></sounds><variables></variables><blocks></blocks><scripts></scripts><sprites select="1"><sprite name="Sprite" idx="1" x="3.145164133846265" y="-0.9146362963224988" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="0" color="80,80,80,1" pen="tip" id="360"><costumes><list struct="atomic" id="361"></list></costumes><sounds><list struct="atomic" id="362"></list></sounds><blocks></blocks><variables></variables><scripts><script x="13" y="10"><custom-block s="is %n divisible by %s ?"><l>15</l><l>3</l></custom-block></script><script x="10" y="36"><custom-block s="even ? %s"><l>-22</l></custom-block></script><script x="106.65234375" y="36"><custom-block s="even ? %s"><l>7</l></custom-block></script><script x="12" y="64"><custom-block s="Odd ? %s"><l>6</l></custom-block></script><script x="109" y="64.00000000000003"><custom-block s="Odd ? %s"><l>-7</l></custom-block></script><script x="14" y="91.00000000000003"><custom-block s="%s ≤ %s"><l>4</l><l>4</l></custom-block></script><script x="86" y="92.00000000000003"><custom-block s="%s ≤ %s"><l>5</l><l>4</l></custom-block></script><script x="152" y="93.00000000000003"><custom-block s="%s ≤ %s"><l>3</l><l>4</l></custom-block></script><script x="15" y="122"><custom-block s="%s ≥ %s"><l>7</l><l>8</l></custom-block></script><script x="90" y="121"><custom-block s="%s ≥ %s"><l>9</l><l>8</l></custom-block></script><script x="159" y="123"><custom-block s="%s ≥ %s"><l>8</l><l>8</l></custom-block></script><script x="20" y="150"><custom-block s="%s ≠ %s"><l>1</l><l>1</l></custom-block></script><script x="92" y="150"><custom-block s="%s ≠ %s"><l>1</l><l>2</l></custom-block></script><script x="10" y="179"><custom-block s="Is %s between %s and %s ?"><l>22</l><l>24</l><l>34</l></custom-block></script><script x="204" y="179"><custom-block s="Is %s between %s and %s ?"><l>12</l><l>10</l><l>14</l></custom-block></script><script x="18" y="210"><custom-block s="integer %n ?"><l>6</l></custom-block></script><script x="124" y="211"><custom-block s="integer %n ?"><l>6.12</l></custom-block></script><script x="12" y="240.66666666666663"><custom-block s="Sum from %s to %s"><l>2</l><l>5</l></custom-block></script><script x="13" y="269.66666666666663"><custom-block s="Number of divisors %s"><l>9</l></custom-block></script><script x="12" y="297.66666666666663"><custom-block s="Maximum of %s and %s"><l>12</l><l>12</l></custom-block></script><script x="13" y="327"><custom-block s="Minimum of %s and %s"><l>4</l><l>9</l></custom-block></script><script x="11" y="463"><custom-block s="Average of list: %l"><block s="reportNewList"><list><l>17</l><l>-22</l><l>35</l><l>2</l><l>25</l></list></block></custom-block></script><script x="11" y="431"><custom-block s="Sum of list: %l"><block s="reportNewList"><list><l>17</l><l>-22</l><l>35</l><l>2</l><l>25</l></list></block></custom-block></script><script x="10" y="399"><custom-block s="Minimum of the list %l"><block s="reportNewList"><list><l>17</l><l>-22</l><l>35</l><l>2</l><l>25</l></list></block></custom-block></script><script x="11" y="363"><custom-block s="Maximum of the list %l"><block s="reportNewList"><list><l>17</l><l>-22</l><l>35</l><l>2</l><l>25</l></list></block></custom-block></script><comment x="20" y="503" w="335" collapsed="false">Willow Rosado + Period 9</comment><script x="165" y="10"><custom-block s="is %n divisible by %s ?"><l>15</l><l>6</l></custom-block></script></scripts></sprite><watcher var="list" style="normal" x="10" y="9.999999999999986" color="243,118,29"/></sprites></stage><variables><variable name="list"><l>0</l></variable></variables></scene></scenes></project><media name="U2L4-MathLibrary Project " app="Snap! 7, https://snap.berkeley.edu" version="2"></media></snapdata>