File: blk03433.txt

{"attributes":[{"trait_type":"Mouth","value":"Phoneme Oh"},{"trait_type":"Fur","value":"Red"},{"trait_type":"Background","value":"Aquamarine"},{"trait_type":"Hat","value":"Short Mohawk"},{"trait_type":"Clothes","value":"Hawaiian"},{"trait_type":"Eyes","value":"Sad"}],"external_url":"https://baycbitcoin.com/index/bayc/8143","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/8143.png"}
10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO
&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>noise</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="textM
/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jM
avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
        let nextLineY = 30;
        let colors = [];
        let colors2 = [];
        function setup() {
            cSize = min(windowHeight, windowWidth);
            createCanvas(cSize, cSize);
 (let i = 0; i < 5; i++) {
                colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
                colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
            noLoop();
        function draw() {
            console.log(height, width)
            while (nextLineY < height) {
                drawLine(0, nextLineY)
                nextLineY = nextLineY + 3
        function drawLine(x, y) {
          let nextRectX = x;
            noStroke()
            while (nextRectX < width) {
                let rectWidth = mathrand(2, 1);
                let rectHight = mathrand(3, 1);
                fill(colors[mathrand(colors.length - 1, 0)])
                rect(nextRectX, y - rectHight / 2, rectWidth, rectHight);
                nextRectX = nextRectX + rectWidth;
                // if (rectHight / 2 + y > nextLineY) {
                //   nextLineY = rectHight / 2 + y;
                // }
           let numberOfBigBlocks = mathrand(45, 7);
            for (let i = 0; i < numberOfBigBlocks; i++) {
                stroke(colors2[mathrand(colors2.length - 1, 0)]);
                strokeWeight(mathrand(3, 1))
                noFill()
                rectWidth = mathrand(20, 1);
                rectHight = mathrand(35, 1);
                rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight);
        function mathrand(max, min, float = false) {
            const val =M
 mathRand() * (max - min + 1) + min;
            if (float) return val;
            return Math.floor(val);
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM
phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return funM
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            /* leave it to hide the scrollbars */
            overflow: hidden;
    <script type="text/javascript">
        const rand = mathRand();
        function T1(rand) {
            // calculate rarity by yourself
            if (rand > 0.5) {
                return M
            } else {
                return false
        // window.$generativeTraits contain list traits for token
        // you need to populate a $generativeTraits object in the window object
        window.$generativeTraits = {
            "T1": T1(rand),
 Add your code here
        // const container = document.createElement("div")
        // container.innerHTML = "<span>seed: " + seed + "</span><br>";
        // document.body.prepend(container)
 Add your code here
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>noise</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="textM
/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jM
avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
        let nextLineY = 30;
        let colors = [];
        let colors2 = [];
        function setup() {
            cSize = min(windowHeight, windowWidth);
            createCanvas(cSize, cSize);
 (let i = 0; i < 5; i++) {
                colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
                colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
            noLoop();
        function draw() {
            console.log(height, width)
            while (nextLineY < height) {
                drawLine(0, nextLineY)
                nextLineY = nextLineY + 3
        function drawLine(x, y) {
          let nextRectX = x;
            noStroke()
            while (nextRectX < width) {
                let rectWidth = mathrand(2, 1);
                let rectHight = mathrand(3, 1);
                fill(colors[mathrand(colors.length - 1, 0)])
                rect(nextRectX, y - rectHight / 2, rectWidth, rectHight);
                nextRectX = nextRectX + rectWidth;
                // if (rectHight / 2 + y > nextLineY) {
                //   nextLineY = rectHight / 2 + y;
                // }
           let numberOfBigBlocks = mathrand(45, 7);
            for (let i = 0; i < numberOfBigBlocks; i++) {
                stroke(colors2[mathrand(colors2.length - 1, 0)]);
                strokeWeight(mathrand(3, 1))
                noFill()
                rectWidth = mathrand(20, 1);
                rectHight = mathrand(35, 1);
                rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight);
        function mathrand(max, min, float = false) {
            const val =M
 mathRand() * (max - min + 1) + min;
            if (float) return val;
            return Math.floor(val);
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM
phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return funM
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            /* leave it to hide the scrollbars */
            overflow: hidden;
    <script type="text/javascript">
        const rand = mathRand();
        function T1(rand) {
            // calculate rarity by yourself
            if (rand > 0.5) {
                return M
            } else {
                return false
        // window.$generativeTraits contain list traits for token
        // you need to populate a $generativeTraits object in the window object
        window.$generativeTraits = {
            "T1": T1(rand),
 Add your code here
        // const container = document.createElement("div")
        // container.innerHTML = "<span>seed: " + seed + "</span><br>";
        // document.body.prepend(container)
 Add your code here
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNjkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNjkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ii8gXFwifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NTZ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydGljYM
WwifSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjozMn0seyJ0cmFpdF90eXBlIjoiLyBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #369 - bc1pjqssjgetyae8kpgn2apwhlt5w9jydk305efdppgmmcvez5nr8cgqy3haer" data-signature="902ade648d6d7bccb99773950f5344c749a9b782f0527600b6e01350ef24b11a76fc9ba544783422e327c1c15e183711dc079b9803739d6efc0d9695a06915fe"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0"><tspan x="0" dy="-178.5">.\./......../.\.</tspM
an><tspan x="0" dy="24">\\\\\//////\\\\\</tspan><tspan x="0" dy="24">.\...\....\...\.</tspan><tspan x="0" dy="24">/\............\/</tspan><tspan x="0" dy="24">.\..../../....\.</tspan><tspan x="0" dy="24">./\..........\/.</tspan><tspan x="0" dy="24">./../..\\../../.</tspan><tspan x="0" dy="24">./....\..\..../.</tspan><tspan x="0" dy="24">...../..../.....</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">\......//......\</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">.L
...............</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.....\....\.....</tspan></text></svg>h!
/ViaBTC/Mined by 7jaya/,
CjA=:ETH.ETH:0xF8643802dB176c6Fa176dedD04E8c030F1a52bFA:583839558::0
CjA=:ETH.ETH:0x15097DcF2f89fC238C6dE9D4CD9680e8198508E2:4711880:te:0
DjB=:BNB.BNB:bnb1fy3hnk66wvzjssl292jkxq82vkm0mrlzfang7j:18850948:te:0
DjB=:ETH.ETH:0x51450E6a593A1E3D9ea6761F24c4B5bC26bbd1f1:27433430:te:0
OiCCPPhotoshop ICC profile
OiCCPPhotoshop ICC profile
6j4ion:8.QmZMm2bKh9jh7sVgh3LzEP5miihP79BPq9uGU4pSDYSFLy
Bj@=:ETH.ETH:0xc0BCc8dFf6eAA7F114f0eAC2E4076c641CF75437:74706283::0
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>noise</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="textM
/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jM
avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
        let nextLineY = 30;
        let colors = [];
        let colors2 = [];
        function setup() {
            cSize = min(windowHeight, windowWidth);
            createCanvas(cSize, cSize);
 (let i = 0; i < 5; i++) {
                colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
                colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
            noLoop();
        function draw() {
            console.log(height, width)
            while (nextLineY < height) {
                drawLine(0, nextLineY)
                nextLineY = nextLineY + 3
        function drawLine(x, y) {
          let nextRectX = x;
            noStroke()
            while (nextRectX < width) {
                let rectWidth = mathrand(2, 1);
                let rectHight = mathrand(3, 1);
                fill(colors[mathrand(colors.length - 1, 0)])
                rect(nextRectX, y - rectHight / 2, rectWidth, rectHight);
                nextRectX = nextRectX + rectWidth;
                // if (rectHight / 2 + y > nextLineY) {
                //   nextLineY = rectHight / 2 + y;
                // }
           let numberOfBigBlocks = mathrand(45, 7);
            for (let i = 0; i < numberOfBigBlocks; i++) {
                stroke(colors2[mathrand(colors2.length - 1, 0)]);
                strokeWeight(mathrand(3, 1))
                noFill()
                rectWidth = mathrand(20, 1);
                rectHight = mathrand(35, 1);
                rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight);
        function mathrand(max, min, float = false) {
            const val =M
 mathRand() * (max - min + 1) + min;
            if (float) return val;
            return Math.floor(val);
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM
phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return funM
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            /* leave it to hide the scrollbars */
            overflow: hidden;
    <script type="text/javascript">
        const rand = mathRand();
        function T1(rand) {
            // calculate rarity by yourself
            if (rand > 0.5) {
                return M
            } else {
                return false
        // window.$generativeTraits contain list traits for token
        // you need to populate a $generativeTraits object in the window object
        window.$generativeTraits = {
            "T1": T1(rand),
 Add your code here
        // const container = document.createElement("div")
        // container.innerHTML = "<span>seed: " + seed + "</span><br>";
        // document.body.prepend(container)
 Add your code here
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>noise</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="textM
/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jM
avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
        let nextLineY = 30;
        let colors = [];
        let colors2 = [];
        function setup() {
            cSize = min(windowHeight, windowWidth);
            createCanvas(cSize, cSize);
 (let i = 0; i < 5; i++) {
                colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
                colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
            noLoop();
        function draw() {
            console.log(height, width)
            while (nextLineY < height) {
                drawLine(0, nextLineY)
                nextLineY = nextLineY + 3
        function drawLine(x, y) {
          let nextRectX = x;
            noStroke()
            while (nextRectX < width) {
                let rectWidth = mathrand(2, 1);
                let rectHight = mathrand(3, 1);
                fill(colors[mathrand(colors.length - 1, 0)])
                rect(nextRectX, y - rectHight / 2, rectWidth, rectHight);
                nextRectX = nextRectX + rectWidth;
                // if (rectHight / 2 + y > nextLineY) {
                //   nextLineY = rectHight / 2 + y;
                // }
           let numberOfBigBlocks = mathrand(45, 7);
            for (let i = 0; i < numberOfBigBlocks; i++) {
                stroke(colors2[mathrand(colors2.length - 1, 0)]);
                strokeWeight(mathrand(3, 1))
                noFill()
                rectWidth = mathrand(20, 1);
                rectHight = mathrand(35, 1);
                rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight);
        function mathrand(max, min, float = false) {
            const val =M
 mathRand() * (max - min + 1) + min;
            if (float) return val;
            return Math.floor(val);
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM
phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return funM
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            /* leave it to hide the scrollbars */
            overflow: hidden;
    <script type="text/javascript">
        const rand = mathRand();
        function T1(rand) {
            // calculate rarity by yourself
            if (rand > 0.5) {
                return M
            } else {
                return false
        // window.$generativeTraits contain list traits for token
        // you need to populate a $generativeTraits object in the window object
        window.$generativeTraits = {
            "T1": T1(rand),
 Add your code here
        // const container = document.createElement("div")
        // container.innerHTML = "<span>seed: " + seed + "</span><br>";
        // document.body.prepend(container)
 Add your code here
CjA=:ETH.ETH:0xd8b2643C6579eA01fC2AF9A42931596eFC04460A:404530301::0
OiCCPPhotoshop ICC profile
OiCCPPhotoshop ICC profile
c/Foundry USA Pool #dropgold/
Bj@=:ETH.ETH:0xe85213F242f1032223d5078f9cdE7EF8e9A1af59:11040308::0
DjB=:ETH.ETH:0x51450E6a593A1E3D9ea6761F24c4B5bC26bbd1f1:20222462:te:0
text/plain;charset=utf-8
$$$++111888??EEELLSSSYYY``gggmmmtt{{{
LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
2014-02-06T13:44:57-05:00
2014-02-06T13:44:57-05:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
	 viewBox="0 0 299.429 299.429" xml:space="preserve">
	<path style="fill:#010002;" d="M245.185,44.209H54.245L0,116.533l149.715,138.688l149.715-138.682L245.185,44.209z
		 M206.746,121.778l-57.007,112.1l-56.53-112.1H206.746z M98.483,109.844l51.232-Mw
51.232l51.232,51.232H98.483z M164.119,56.142
		h69.323L213.876,105.9L164.119,56.142z M86.311,105.142l-16.331-49h65.331L86.311,105.142z M79.849,121.778l49.632,98.429
		L23.223,121.778H79.849z M220.136,121.778h56.071l-106.013,98.203L220.136,121.778z M225.148,109.844l18.694-47.538l35.652,47.538
		H225.148z M58.266,58.738l17.035,51.112H19.929L58.266,58.738z"/>
((((((((((((((((((((((((((((((((((((((((((((((((((
.IEC 61966-2-1 Default RGB Colour Space - sRGB
-Reference Viewing Condition in IEC 61966-2-1
Copyright International Color Consortium, 2015
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
ffffffffffffffffffAS
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
ffffffffffffffffffs^
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
    <meta charset="UTF-8">
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="text/javascript" srM
c="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/aM
jax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aM
frame/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.comM
/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
var colorPalettes = [
  ['#fafa6e', '#2A4858'],
  ['#9C27B0', '#FFEB3B'],
  ['#00BCD4', '#FF5722'],
  ['#191970', '#FF69B4', '#228B22', '#FFFF00'],
  ['#8BC34A', '#3F51B5', '#F44336'],
  ['#009688', '#FFC107', '#795548'],
  ['#4CAF50', '#FFC107', '#9C27B0'],
  ['#00BCD4', '#FFC107', '#9C27B0'],
88', '#FFC107', '#E91E63'],
  ['#ff0000', '#0000ff', '#00ff00'],
  ['#ff0000', '#0000ff', '#00ff00'],
  ['green', 'blue', 'orange', 'green']
var point_count = 700;
var pointSpace = 12;
var spaceRatio = 0.5;
var maxAttempts = 100;
var densityRatio = 0.5;
var length1 = 10000;
var length2 = 10000;
  [700, 12, 0.95, 0.5, 0.5],
  [700, 12, 0.95, 0.5, 0.5],
  [700, 12, 0.95, 0.5, 0.5],
700, 12, 0.95, 0.5, 0.5],
  [900, 8, 0.95, 0.5, 0.5],
  [700, 8, 0.78, 0.5, 0.5],
  [500, 5, 0.85, 0.5, 0.5],
  [800, 12, 0.9, 0.2, 0.5],
  [700, 12, 0.95, 0.5, 0.5],
  [700, 12, 0.95, 0.5, 0.5]
function mathRandSelect(array) {
  return array[round(mathRand() * (array.length - 1))];
function mathRnd(min, max) {
  return map(mathRand(), 0, 1, min, max)
  let urlParams = getURLParams();
  if (urlParams.res) {
    density = round(int(urlParams.res));
 noiseSeed(mathRand() * 99999);
  randomSeed(mathRand() * 99999);
  canvas = createCanvas(400, 600);
  canvas.addClass("canvasNewCSS");
  pixelDensity(density);
  angleMode(DEGREES);
  colorPalette = mathRandSelect(colorPalettes);
  noiseDetail(8, 0.5);
  print(colorPalette);
  colorPalette = chroma.scale(colorPalette).mode('lch').colors(12);
  field = mathRandSelect(fields);
  point_count = field[0];
  pointSpace = field[1];
  offset = field[2];
  spaceRatio = field[3];
  densityRatio = field[4];
 round(mathRandSelect([1, 2, 3, 4, 5, 6, 7, 8]));
  var maxAttempts = 1000;
  for (var i = 0; i < point_count; i++) {
    var attempts = 0;
    while (attempts < maxAttempts) {
      var point_x = mathRnd(width * (1 - offset), width * offset);
      var point_y = mathRnd(height * (1 - offset), height * offset);
      var point_r = mathRnd(pointSpace * spaceRatio, pointSpace);
      var point_l = mathRnd(length1, length2);
      var point_color = mathRandSelect(colorPalette);
      for (var j = 0; j < i; j++) {
        if (points[j]) {
          var x2 = points[j].x;
          var y2 = points[j].y;
          var r2 = points[j].r;
          if (dist(point_x, point_y, x2, y2) < (r2 + point_r) / 2 * 1.4) {
            overlapp = true;
      if (!overlapp) {
        append(points, {
          x: point_x,
          y: point_y,
          c: point_color,
          r: point_r,
          l: point_l
    if (attempts >= maxAttempts) {
      console.warn("Could not place point " + i + " after " + maxAttempts + " attempts.");
  for (var p = 0; p < points.length; p++) {
    fill(points[p].c);
    rectMode(CENTER);
    translate(points[p].x, points[p].y);
    rotate(mathRnd(360));
    translate(-points[p].x, -points[p].y);
  for (var i = 0; i < points.length; i++) {
      let x = points[i].x;
      let y = points[i].y;
      let pointColor = points[i].c;
      let newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space);
      let newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
      switch (variationMode) {
          newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noise(log(x), M
sin(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noise(cos(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noise(sin(x), cos(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(cos(y), sin(x)), 0, 1, -space, space / 2);
 x + map(noise(log(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noise(log(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
          newX = x + map(noM
ise(log(x), log(y)), 0, 1, -space / 2, space);
          newY = y + map(noise(log(y), log(x)), 0, 1, -space, space / 2);
      let maxR = pointSpace;
      if (newX > width * (1 - offset) && newX < width * offset) {
        if (newY > height * (1 - offset) && newY < height * offset) {
          let v1 = createVector(x, y);
          let v2 = createVector(newX, newY);
          let angleBetween = v1.angleBetween(v2);
          rotate(angleBetween / space);
          stroke(pointColor)
          fill(pointColor);
          maxR = points[i].r;
          for (var p = 0; p < i; p++) {
            maxR = min(maxR, dist(x, y, points[p].x, points[p].y) * 0.5);
          noStroke();
          circle(x, y, maxR);
      points[i].x = newX;
      points[i].y = newY;
      points[i].r = maxR;
      points[i].l--;
  if (millis()>25000) {
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alpM
habet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n+M
+) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0px;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    // window.$generativeTraits = {
    //     "T1": T1(rand),
    // console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
// document.body.prepend(container)
 Add your code here
text/plain;charset=utf-8
text/plain;charset=utf-8
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzAiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzAiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyAkIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjc0fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6Ikhvcml6bM
250YWwifSx7InRyYWl0X3R5cGUiOiLigr8gQ291bnQiLCJ2YWx1ZSI6MzR9LHsidHJhaXRfdHlwZSI6IiQgQ291bnQiLCJ2YWx1ZSI6NDB9XX0=" data-message="BitGlyphs #370 - bc1ptq00d8u5ynpe3cv0man4y6rsxmc9h2qw83upgh6ux3hg33p0wm5qt5wzga" data-signature="69515d0b515ec34e55b51221969b0b42342c263c45c687738dc071b367de5fa542bff074acbdce5f7a9217822e35984b84b37ae1a086895bed336f5454c8df4e"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">.
..$..</tspan><tspan x="0" dy="24">
.....$$$$......</tspan><tspan x="0" dy="24">$.
........$</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..
....</tspan><tspan x="0" dy="24">.....
</tspan><tspan x="0" dy="24">.$
.....$..$.</tspan><tspan x="0" dy="24">
$....$...$.</tspan><tspan x="0" dy="24">
$....$...$.</tspan><tspan x="0" dy="24">.$
.....$..$.</tspan><tspan x="0" dy="24">.....
</tspan><tspan x="0L
....</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">$.
........$</tspan><tspan x="0" dy="24">
.....$$$$......</tspan><tspan x="0" dy="24">.
..$..</tspan></text></svg>h!
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>noise</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandbox="allow-scripts" type="textM
/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="allow-scripts" type="text/jM
avascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <script type="text/javascript">
        let nextLineY = 30;
        let colors = [];
        let colors2 = [];
        function setup() {
            cSize = min(windowHeight, windowWidth);
            createCanvas(cSize, cSize);
 (let i = 0; i < 5; i++) {
                colors.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
                colors2.push(color(mathrand(255, 0), mathrand(255, 0), mathrand(255, 0)))
            noLoop();
        function draw() {
            console.log(height, width)
            while (nextLineY < height) {
                drawLine(0, nextLineY)
                nextLineY = nextLineY + 3
        function drawLine(x, y) {
          let nextRectX = x;
            noStroke()
            while (nextRectX < width) {
                let rectWidth = mathrand(2, 1);
                let rectHight = mathrand(3, 1);
                fill(colors[mathrand(colors.length - 1, 0)])
                rect(nextRectX, y - rectHight / 2, rectWidth, rectHight);
                nextRectX = nextRectX + rectWidth;
                // if (rectHight / 2 + y > nextLineY) {
                //   nextLineY = rectHight / 2 + y;
                // }
           let numberOfBigBlocks = mathrand(45, 7);
            for (let i = 0; i < numberOfBigBlocks; i++) {
                stroke(colors2[mathrand(colors2.length - 1, 0)]);
                strokeWeight(mathrand(3, 1))
                noFill()
                rectWidth = mathrand(20, 1);
                rectHight = mathrand(35, 1);
                rect(mathrand(width, 0), y - rectHight / 2, rectWidth, rectHight);
        function mathrand(max, min, float = false) {
            const val =M
 mathRand() * (max - min + 1) + min;
            if (float) return val;
            return Math.floor(val);
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alM
phabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (letM
 n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return funM
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            /* leave it to hide the scrollbars */
            overflow: hidden;
    <script type="text/javascript">
        const rand = mathRand();
        function T1(rand) {
            // calculate rarity by yourself
            if (rand > 0.5) {
                return M
            } else {
                return false
        // window.$generativeTraits contain list traits for token
        // you need to populate a $generativeTraits object in the window object
        window.$generativeTraits = {
            "T1": T1(rand),
 Add your code here
        // const container = document.createElement("div")
        // container.innerHTML = "<span>seed: " + seed + "</span><br>";
        // document.body.prepend(container)
 Add your code here
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYM
text/plain;charset=utf-8
c/Foundry USA Pool #dropgold/
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
Mainconcept MP4 Video Media Handlerg
Lavc59.37.100 libvpx-vp9g
Mainconcept MP4 Sound Media Handlerg
Lavc59.37.100 libopusg
text/html;charset=utf-8
<meta content="text/html; charset=windows-1252"http-equiv=Content-Type><title>Strawberry Pop-Tart Blow-Torches</title><h1><img alt=""src="https://www.pmichaud.com/Strawberry Pop-Tart Blow-Torches_files/ptart-1c.gif"align=middle> Strawberry Pop-Tart Blow-Torches</h1><em>Last Updated: 2G August 1994</em><h2>Author</h2><a href=http://www.pmichaud.com/ ><address>Patrick R. Michaud, pmichaud@pobox.com</address></a><h2>Abstract</h2>Strawberry Pop Tarts may be a cheap and inexpensive source of incendiary devices. ToastersM
 which fail to eject Pop Tarts cause the Pop Tarts to emit flames 10-18 inches in height.<h2>Introduction</h2>Last year, an article by well-known newspaper columnist <em>Dave Barry</em> noted that <em>Kellogg's Strawberry Pop Tarts</em> (SPTs) could be made to emit flames "like a blow torch" if left in a toaster too long. Given previous work in the field of food-entertainment (see <a href=http://www.pmichaud.com/grape/ ><em>Fun With Grapes - A Case Study</em></a>), it was obvious that this was a new frontier that rM
equires further exploration. The present work describes our independent verification and experience with SPT-based combustion.<h2>Materials Used</h2>Only two basic materials are needed to cause SPT-combustion: a (hopefully inexpensive) toaster and some Strawberry Pop Tarts (Figure 1). In this work, the authors used <em>Kellogg's Strawberry Pop Tarts with Real Smucker's Fruit</em>. SPTs can be obtained either with or without frosting; the non-frosted variety were used for this experiment.<p><a href=https://www.pmichM
aud.com/toast/toast-1a.gif><img alt="Figure 1"src=http://www.pmichaud.com/toast/toast-1b.gif><br><strong>Figure 1. Toaster and Strawberry Pop Tarts</strong></a><p>In addition to the basic materials, a number of safety-related items were needed to conduct this experiment. First, a suitable location for the experiment was required, it being expected that the kitchen was not the appropriate place for blow-torching SPTs. The author's driveway was chosen as a suitable site. Second, an appropriate means for extinguishingM
 the SPTs would be needed; a research assistant brought along some baking soda for the purpose.<h2>Experiment Preparation</h2>The toaster and SPT both had to be properly prepared for this experiment. In order to guarantee that the SPT would receive sufficient heat to begin combustion, the toaster was set to its highest setting and the lever was jammed in the "down" position using adhesive cellophane. A SPT was removed from the box and its protective packaging and carefully placed into the toaster slot (Figure 2).<pM
><a href=https://www.pmichaud.com/toast/toast-2a.gif><img alt="Figure 2"src=http://www.pmichaud.com/toast/toast-2c.gif><br><strong>Figure 2. Preparation of Toaster and SPT</strong></a><p>Next, the toaster and SPT were taken to the driveway, and an extension cord was arranged to provide power to the toaster. At this point, we were ready to begin the experiment.<p><a href=https://www.pmichaud.com/toast/toast-3a.gif><img alt="Figure 3"src=http://www.pmichaud.com/toast/toast-3c.gif><br><strong>Figure 3. Toaster PrepareM
d for SPT combustion</strong></a><h2>The Experiment and Observations</h2>The toaster was plugged in. First the toaster went through a normal "toasting" cycle (approximately 60 seconds), which more than thoroughly cooked the SPT (since the toaster was set to its darkest setting). By this point we could definitely detect a burnt SPT aroma. The toaster then attempted to eject the SPT, but was prevented from doing so by the adhesive cellophane. The toaster then began emitting loud rattling and buzzing noises due to itsM
 inability to eject the SPT.<p>(At this point the researchers became somewhat concerned that the noise from the toaster would wake the neighbors and attract undue attention. However, we decided that we were already committed to the experiment and that the neighbors would be able to sacrifice some sleep in the name of science.)<p>Soon thereafter, large amounts of smoke began pouring out of the toaster. The researchers noticed that some of the neighbors down the street were beginning to get a little curious, but the M
experiment proceeded nonetheless. Approximately 40 seconds later, small flames began licking their way out of the toaster. The flames steadily grew larger and larger until reaching a maximum height of about 18 inches above the top of the toaster. Figure 4 presents a time-series collage of the flames emitted from the SPT.<p><a href=https://www.pmichaud.com/toast/toast-4a.gif><img alt="Figure 4"src=http://www.pmichaud.com/toast/toast-4c.gif><br><strong>Figure 4. Time Series Photograph of Flaming SPT</strong></a><p>AsM
 the flames were reaching their maximum height, the toaster abruptly stopped making buzzing noises. We speculate that the flames had by this point shorted the electronics within the toaster. The toaster was quickly disconnected from the primary electrical source to avoid any potential damage to the author's house. At this point, the researchers also realized that the heat could inadvertently melt the adhesive cellophane and cause the flaming SPTs to suddenly eject from the toaster. Unfortunately, this did not occurM
. The flames continued for several minutes.<p>At this point there was some slight concern that the flames might take considerable time to diminish. We then enlisted the help of a reluctant research assistant to sprinkle baking soda on the flames. (The reluctance was understandable given the potential for premature SPT ejection described in the above paragraph.) The baking soda quickly extinguished the flames and produced still further smoke (Figure 5a).<p><a href=https://www.pmichaud.com/toast/toast-5a.gif><img altM
="Figure 5"src=http://www.pmichaud.com/toast/toast-5c.gif><br><strong>Figure 5. Extinguising the SPT</strong></a><p>Once the flames were extinguished, the researchers noted an unanticipated problem: what to do with the (now defunct) toaster and the spent SPT. It became obvious that the toaster could not be returned to the author's house due to both a continued potential fire hazard and the smell of burnt strawberries. In addition, it was noted that the toaster was still "too hot to handle," necessitating the use ofM
 a nearby garden hose to cool the toaster off. This is illustrated in Figure 5b. Finally it was decided to just leave the toaster by the curb for the sanitation experts to pick up the next morning (Figure 6.)<p><a href=https://www.pmichaud.com/toast/toast-6a.html><img alt="Figure 6"src=http://www.pmichaud.com/toast/toast-6c.gif><br><strong>Figure 6. Toaster Disposal</strong></a><p><h2>Summary and Recommendations</h2>In summary, overcooking the SPT did produce a good size flame. The effect was not as pronounced as tM
he researchers had hoped, but was satisfying nonetheless. The research assistant noted that the flames produced did appear to have some color variation. We believe that frosted SPTs may successfully produce even larger torches. Further research in this area is warranted.<p>We did desire to repeat the experiment with the remaining five SPTs, but we could not do so because there were no more suitable toasters available for further experiments. In the future, we recommend that toasters be sold in six-packs to accomodaM
te important SPT research. Instead, the remaining SPTs were sacrified over the course of the next several days in private, undocumented consumption experiments.<h2>Acknowledgements</h2>Special thanks to Jennifer "Svetlana" Reckard for her suggestions and proofreading of this work.<p><hr><h2>Followup Comments</h2><p>The response to my Strawberry Pop Tart article has been overwhelming. In October 1994 alone it's been accessed more than 2000 times. Here are some of the terrific followup messages I've received:<ol><li>M
<a href=https://www.pmichaud.com/toast/follow1.html>12-Aug-94: <tt>schnitz@unipress.com</tt></a><li><a href=https://www.pmichaud.com/toast/follow2.html>13-Oct-94: <tt>avonruff@hydra.urbana.mcd.mot.com</tt> </a>Please send me your comments! I'm especially interested to learn how you found out about this page, since I haven't advertised it much of anywhere.<hr><address><img alt=""src=http://www.pmichaud.com/toast/krnbo24.gif align=top> <a href=http://www.pmichaud.com/ >Patrick R. Michaud/pmichaud@pobox.com</a><addres
s></address></address></ol>h!
c/Foundry USA Pool #dropgold/
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "golden armor"}, {"trait_type": "Mane", "value": "blonde"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "golden"}, {"trait_type": "Headgear", "value": "thief hood"}, {"trait_type": "Artifacts", "value": "wizard staff"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "white"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "dark wizard hat"}, {"trait_type": "Artifacts", "value": "dragon wings"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "pink"}, {"trait_type": "Body", "value": "black"}, {"trait_type": "Mane", "value": "blue fire"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "ghostly companion"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "golden armor"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "bloody"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "badger"}, {"trait_type": "Artifacts", "value": "frozen staff"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "black"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "white"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "pirate flag"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "green"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "grey"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "blue"}, {"trait_type": "Headgear", "value": "wizard hat"}, {"trait_type": "Artifacts", "value": "lamp"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "brown"}, {"trait_type": "Mane", "value": "dragon"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "green"}, {"trait_type": "Headgear", "value": "dark wizard hat"}, {"trait_type": "Artifacts", "value": "shield"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "moon"}, {"trait_type": "Body", "value": "blue"}, {"trait_type": "Mane", "value": "greenish"}, {"trait_type": "Claws", "value": "long claws"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "none"}, {"trait_type": "Artifacts", "value": "cape"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "purple"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "white"}, {"trait_type": "Claws", "value": "regular"}, {"trait_type": "Eyes", "value": "red"}, {"trait_type": "Headgear", "value": "unicorn"}, {"trait_type": "Artifacts", "value": "eagle"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "moon"}, {"trait_type": "Body", "value": "zombie"}, {"trait_type": "Mane", "value": "black"}, {"trait_type": "Claws", "value": "BTC whitepaper"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "pickaxe"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "pink"}, {"trait_type": "Body", "value": "tiger"}, {"trait_type": "Mane", "value": "grey"}, {"trait_type": "Claws", "value": "BTC whitepaper"}, {"trait_type": "Eyes", "value": "regular"}, {"trait_type": "Headgear", "value": "mohawk"}, {"trait_type": "Artifacts", "value": "arrow wounds"}]}
{"name": "Honey Badgers", "description": "Honey Badgers is a generative 10k PFP collection inscribed on the Bitcoin Blockchain through Ordinals. It is an experiment to see if a native NFT community can emerge and thrive on the native Bitcoin ecosystem. The project doesn\u2019t have a roadmap and its solely purpose is to deliver high quality pixelated art and a fun place to hang out with friends. The collection is Bitcoin themed with the M
honey badger meme being the center of it, but also has many other traits related to crypto and specifically the Bitcoin culture.", "creator": "Honey Badgers Team", "attributes": [{"trait_type": "Background", "value": "yellow"}, {"trait_type": "Body", "value": "dark blue"}, {"trait_type": "Mane", "value": "greenish"}, {"trait_type": "Claws", "value": "wrapped"}, {"trait_type": "Eyes", "value": "red"}, {"trait_type": "Headgear", "value": "thief hood"}, {"trait_type": "Artifacts", "value": "none"}]}
((((((((((((((((((((((((((((((((((((((((((((((((((
/ViaBTC/Mined by robertart67/,
FjDOUT:5FEDE0C7BE321C43F03C71D408A3ABADBDD34A6F48F233C7F988FB4D057E0895
CjA=:BNB.BNB:bnb1auahtu2vczn0fkd8yy2gtp5mdanvvn32krr4r5:759028313::0
text/plain;charset=utf-8
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
c/Foundry USA Pool #dropgold/
text/plain;charset=utf-8
.IEC 61966-2-1 Default RGB Colour Space - sRGB
-Reference Viewing Condition in IEC 61966-2-1
Copyright International Color Consortium, 2015
Adobe Photoshop CC (Macintosh)
cropWhenPrintingbool
-http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c140 79.160451, 2017/05/06-01:08:21        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="M
http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC (Macintosh)" xmp:CreateDate="2023-02-13T16:49:54-05:00" xmp:MetadataDate="2023-02-13T16:53:04-05:00" xmp:ModifyDate="2023-02-13T16:53:04-05:00" dc:format="image/jpeg" xmpMM:InstanceID="xmp.iid:59fec36d-ac63-4332-a053-590484504792" xmpMM:DocumentID="adobe:docid:photoshop:133b7ce4-bbdf-6542-80fd-55a09e52ab53" xmpMM:OrigiM
nalDocumentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" photoshop:ColorMode="3" photoshop:ICCProfile="Adobe RGB (1998)"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" stEvt:when="2023-02-13T16:49:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:ccfd8456-0f35-4ec0-955d-4f0f1865ecd7" stEvt:when="2023-02-13T16:53:04-05:00" stEvt:softwareAgent="Adobe Photoshop CC (MacintM
osh)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvt:parameters="from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/jpeg"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:59fec36d-ac63-4332-a053-590484504792" stEvt:when="2023-02-13T16:53:04-05:00" stEvt:softwareAgent="Adobe Photoshop CC (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iiM
d:ccfd8456-0f35-4ec0-955d-4f0f1865ecd7" stRef:documentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc" stRef:originalDocumentID="xmp.did:27c8142f-0d5f-4c4e-a595-f438ad52bdcc"/> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>2DE6BF3FF671BF9011B70BC7E21296EA</rdf:li> <rdf:li>820541E1EE7BBEF3D36BACA74D22D033</rdf:li> <rdf:li>967545E42E2294A8E7EAF5453C559F0C</rdf:li> <rdf:li>adobe:docid:photoshop:e5f9a36c-6f25-be40-bda5-6cdbc52d5699</rdf:li> <rdf:li>xmp.did:f194f9b2-0616-4885-aee3-c11d0645e236</rdf:li> </rdf:Bag> </pM
hotoshop:DocumentAncestors> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                                                                                                                                                                                                                                                                                                                                                                  M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                       <?xpacket end="w"?>
Copyright 1999 Adobe Systems Incorporated
6j4ion:7.QmWCpZcsnX2XbayktrweB9C5Gu2NhmAEZCa1GeAv3jKzcJ
text/plain;charset=utf-8
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Colorful Matrix</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="M
allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scriM
pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
   if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M
l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            width: 100vw;
            height: 100vh;
            margin: 0;
            background: black;
            overflow: hidden;
<canvas width="100%" height="1000" id="canv" />
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
body.prepend(container)
 Add your code here
    // Get the canvas node and the drawing context
    const canvas = document.getElementById('canv');
    console.log(canvas)
    const ctx = canvas.getContext('2d');
    // set the width and height of the canvas
    const w = canvas.width = document.body.offsetWidth;
    const h = canvas.height = document.body.offsetHeight;
    // draw a black rectangle of width and height M
same as that of the canvas
    ctx.fillStyle = '#001';
    ctx.fillRect(0, 0, w, h);
    const cols = Math.floor(w / 20) + 1;
    const ypos = Array(cols).fill(0);
    function matrix () {
    // Draw a semitransparent black rectangle on top of previous drawing
    ctx.fillStyle = '#0001';
    ctx.fillRect(0, 0, w, h);
    // Set color to green and font to 15pt monospace in the drawing context
    var randomColor = Math.floor( mathRand()*16777215).toString(16);
    var fSize = Math.floor( mathRand() * 15) + 3;
    ctx.fillStyle = '#'+randomColor;
    ctx.font =  fSize+'pt monospace';
  // for each column put a random character at the end
  ypos.forEach((y, ind) => {
    // generate a random character
    const text = String.fromCharCode( mathRand() * 128);
    // x coordinate of the column, y coordinate is already given
    const x = ind * 20;
    // render the character at (x, y)
    ctx.fillText(text, x, y);
    // randomly reset the end of the column if it's at least 100px high
    if (y > 100 +  mathRand() * 1000L
    // otherwise just move the y coordinate for the column 20px down,
    else ypos[ind] = y + 20;
// render the animation at 20 FPS.
setInterval(matrix, 15);
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Colorful Matrix</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="M
allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scriM
pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
   if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M
l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            width: 100vw;
            height: 100vh;
            margin: 0;
            background: black;
            overflow: hidden;
<canvas width="100%" height="1000" id="canv" />
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
body.prepend(container)
 Add your code here
    // Get the canvas node and the drawing context
    const canvas = document.getElementById('canv');
    console.log(canvas)
    const ctx = canvas.getContext('2d');
    // set the width and height of the canvas
    const w = canvas.width = document.body.offsetWidth;
    const h = canvas.height = document.body.offsetHeight;
    // draw a black rectangle of width and height M
same as that of the canvas
    ctx.fillStyle = '#001';
    ctx.fillRect(0, 0, w, h);
    const cols = Math.floor(w / 20) + 1;
    const ypos = Array(cols).fill(0);
    function matrix () {
    // Draw a semitransparent black rectangle on top of previous drawing
    ctx.fillStyle = '#0001';
    ctx.fillRect(0, 0, w, h);
    // Set color to green and font to 15pt monospace in the drawing context
    var randomColor = Math.floor( mathRand()*16777215).toString(16);
    var fSize = Math.floor( mathRand() * 15) + 3;
    ctx.fillStyle = '#'+randomColor;
    ctx.font =  fSize+'pt monospace';
  // for each column put a random character at the end
  ypos.forEach((y, ind) => {
    // generate a random character
    const text = String.fromCharCode( mathRand() * 128);
    // x coordinate of the column, y coordinate is already given
    const x = ind * 20;
    // render the character at (x, y)
    ctx.fillText(text, x, y);
    // randomly reset the end of the column if it's at least 100px high
    if (y > 100 +  mathRand() * 1000L
    // otherwise just move the y coordinate for the column 20px down,
    else ypos[ind] = y + 20;
// render the animation at 20 FPS.
setInterval(matrix, 15);
4j2DC-L5:Stw9hib/x1bpqV7O4XrcxLpHKK6YUf03wxM6guui2yA=
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:4D9707B4565844E38EE89F033D7EF75D6750DAD6AD882144F1610D7524EF6573
text/plain;charset=utf-8
text/plain;charset=utf-8
CjA=:ETH.ETH:0xa98B1F9782BbC48AB7C4E5a13492F46996d9154B:140023494::0
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Colorful Matrix</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="M
allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scriM
pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
   if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M
l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            width: 100vw;
            height: 100vh;
            margin: 0;
            background: black;
            overflow: hidden;
<canvas width="100%" height="1000" id="canv" />
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
body.prepend(container)
 Add your code here
    // Get the canvas node and the drawing context
    const canvas = document.getElementById('canv');
    console.log(canvas)
    const ctx = canvas.getContext('2d');
    // set the width and height of the canvas
    const w = canvas.width = document.body.offsetWidth;
    const h = canvas.height = document.body.offsetHeight;
    // draw a black rectangle of width and height M
same as that of the canvas
    ctx.fillStyle = '#001';
    ctx.fillRect(0, 0, w, h);
    const cols = Math.floor(w / 20) + 1;
    const ypos = Array(cols).fill(0);
    function matrix () {
    // Draw a semitransparent black rectangle on top of previous drawing
    ctx.fillStyle = '#0001';
    ctx.fillRect(0, 0, w, h);
    // Set color to green and font to 15pt monospace in the drawing context
    var randomColor = Math.floor( mathRand()*16777215).toString(16);
    var fSize = Math.floor( mathRand() * 15) + 3;
    ctx.fillStyle = '#'+randomColor;
    ctx.font =  fSize+'pt monospace';
  // for each column put a random character at the end
  ypos.forEach((y, ind) => {
    // generate a random character
    const text = String.fromCharCode( mathRand() * 128);
    // x coordinate of the column, y coordinate is already given
    const x = ind * 20;
    // render the character at (x, y)
    ctx.fillText(text, x, y);
    // randomly reset the end of the column if it's at least 100px high
    if (y > 100 +  mathRand() * 1000L
    // otherwise just move the y coordinate for the column 20px down,
    else ypos[ind] = y + 20;
// render the animation at 20 FPS.
setInterval(matrix, 15);
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Colorful Matrix</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="M
allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scriM
pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
   if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M
l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            width: 100vw;
            height: 100vh;
            margin: 0;
            background: black;
            overflow: hidden;
<canvas width="100%" height="1000" id="canv" />
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
body.prepend(container)
 Add your code here
    // Get the canvas node and the drawing context
    const canvas = document.getElementById('canv');
    console.log(canvas)
    const ctx = canvas.getContext('2d');
    // set the width and height of the canvas
    const w = canvas.width = document.body.offsetWidth;
    const h = canvas.height = document.body.offsetHeight;
    // draw a black rectangle of width and height M
same as that of the canvas
    ctx.fillStyle = '#001';
    ctx.fillRect(0, 0, w, h);
    const cols = Math.floor(w / 20) + 1;
    const ypos = Array(cols).fill(0);
    function matrix () {
    // Draw a semitransparent black rectangle on top of previous drawing
    ctx.fillStyle = '#0001';
    ctx.fillRect(0, 0, w, h);
    // Set color to green and font to 15pt monospace in the drawing context
    var randomColor = Math.floor( mathRand()*16777215).toString(16);
    var fSize = Math.floor( mathRand() * 15) + 3;
    ctx.fillStyle = '#'+randomColor;
    ctx.font =  fSize+'pt monospace';
  // for each column put a random character at the end
  ypos.forEach((y, ind) => {
    // generate a random character
    const text = String.fromCharCode( mathRand() * 128);
    // x coordinate of the column, y coordinate is already given
    const x = ind * 20;
    // render the character at (x, y)
    ctx.fillText(text, x, y);
    // randomly reset the end of the column if it's at least 100px high
    if (y > 100 +  mathRand() * 1000L
    // otherwise just move the y coordinate for the column 20px down,
    else ypos[ind] = y + 20;
// render the animation at 20 FPS.
setInterval(matrix, 15);
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Colorful Matrix</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
    <!-- p5.grain.js@0.6.1
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>
    <!-- threejs@r124
    <script sandbox="M
allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scriM
pts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandboxM
="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
   if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179)M
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = M
l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            width: 100vw;
            height: 100vh;
            margin: 0;
            background: black;
            overflow: hidden;
<canvas width="100%" height="1000" id="canv" />
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
            return false
    // window.$generativeTraits contain list traits for token
    // you need to populate a $M
generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
    // const container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
body.prepend(container)
 Add your code here
    // Get the canvas node and the drawing context
    const canvas = document.getElementById('canv');
    console.log(canvas)
    const ctx = canvas.getContext('2d');
    // set the width and height of the canvas
    const w = canvas.width = document.body.offsetWidth;
    const h = canvas.height = document.body.offsetHeight;
    // draw a black rectangle of width and height M
same as that of the canvas
    ctx.fillStyle = '#001';
    ctx.fillRect(0, 0, w, h);
    const cols = Math.floor(w / 20) + 1;
    const ypos = Array(cols).fill(0);
    function matrix () {
    // Draw a semitransparent black rectangle on top of previous drawing
    ctx.fillStyle = '#0001';
    ctx.fillRect(0, 0, w, h);
    // Set color to green and font to 15pt monospace in the drawing context
    var randomColor = Math.floor( mathRand()*16777215).toString(16);
    var fSize = Math.floor( mathRand() * 15) + 3;
    ctx.fillStyle = '#'+randomColor;
    ctx.font =  fSize+'pt monospace';
  // for each column put a random character at the end
  ypos.forEach((y, ind) => {
    // generate a random character
    const text = String.fromCharCode( mathRand() * 128);
    // x coordinate of the column, y coordinate is already given
    const x = ind * 20;
    // render the character at (x, y)
    ctx.fillText(text, x, y);
    // randomly reset the end of the column if it's at least 100px high
    if (y > 100 +  mathRand() * 1000L
    // otherwise just move the y coordinate for the column 20px down,
    else ypos[ind] = y + 20;
// render the animation at 20 FPS.
setInterval(matrix, 15);
Aj?=:ETH.ETH:0xb00424b141032A085C60CEFFeE785237BD5221FD:6333675::0
c/Foundry USA Pool #dropgold/
FjDOUT:A65C2C2805E98B3420949A4901A40C10D08175D636381E8146A8C75D7D371E1D
FjDOUT:23855F34848A9367097C9D9F3D28C38AA50EF44B675AFE88ECD2A6D08BE4D6CD
IjGREFUND:48FB70DEB03C9559A094B1A8BB412160871CF14F6CCD2E2A52500C7F7D5A15C7
$$$++111888??EEELLSSSYYY``gggmmmtt{{{
LAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUULAME3.100UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
UUUUUUUUUUUUUUUUUUUUUUUUUUUM
UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU
text/plain;charset=utf-8
2014-02-06T13:44:57-05:00
2014-02-06T13:44:57-05:00
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg height="800px" width="800px" version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
	 viewBox="0 0 299.429 299.429" xml:space="preserve">
	<path style="fill:#010002;" d="M245.185,44.209H54.245L0,116.533l149.715,138.688l149.715-138.682L245.185,44.209z
		 M206.746,121.778l-57.007,112.1l-56.53-112.1H206.746z M98.483,109.844l51.232-Mw
51.232l51.232,51.232H98.483z M164.119,56.142
		h69.323L213.876,105.9L164.119,56.142z M86.311,105.142l-16.331-49h65.331L86.311,105.142z M79.849,121.778l49.632,98.429
		L23.223,121.778H79.849z M220.136,121.778h56.071l-106.013,98.203L220.136,121.778z M225.148,109.844l18.694-47.538l35.652,47.538
		H225.148z M58.266,58.738l17.035,51.112H19.929L58.266,58.738z"/>
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYM
!22222222222222222222222222222222222222222222222222
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Vertigo by josemiguel</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed=window.location.href.split('/').find(t=>t.includes('i0'));
        if (seed == null) {
            seed = new URLSearchParams(window.location.search).get("seed");
            let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233)M
, i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return M
$ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            overflow: hidden;
            margin: 0;
            padding:M
            display: flex;
            justify-content: center;
            align-items: center;
            min-width: min(100vw, 100vh);
            min-height: min(100vw, 100vh);
            max-width: min(100vw, 100vh);
            max-height: min(100vw, 100vh);
<script type="text/javascript">
    const rand=mathRand();let fondo,relleno,gradualidad,velocidad,escalamiento,grosor,num2,vinotinto,blanco,negro,verdeoscuro;function setup(){randoM
mSeed(9999*mathRand()),createCanvas(1e3,1e3),angleMode(DEGREES),gradualidad=int(random(6,355)),180!=gradualidad&&179!=gradualidad&&181!=gradualidad&&89!=gradualidad&&90!=gradualidad&&91!=gradualidad&&299!=gradualidad&&300!=gradualidad&&301!=gradualidad&&269!=gradualidad&&270!=gradualidad&&271!=gradualidad&&69!=gradualidad&&70!=gradualidad&&71!=gradualidad&&239!=gradualidad&&240!=gradualidad&&241!=gradualidad||(gradualidad+=4),console.log(gradualidad),lineacolorizada=color("rgba(255,254,254,0.3)");let o=random([1,2,M
3,4,5,6,7,8,9,10,11,12,13]);console.log(o),1==o&&(relleno1=color("#4703014C"),relleno2=color("#6908034C")),2==o&&(relleno1=color("#8E0E0F4C"),relleno2=color("#6F34304C")),3==o&&(relleno1=color("#9D5E594C"),relleno2=color("#B160734C")),4==o&&(relleno1=color("#B683804C"),relleno2=color("#DE9C794C")),5==o&&(relleno1=color("#2B524F4C"),relleno2=color("#1434314C")),6==o&&(relleno1=color("#3630624C"),relleno2=color("#49317E4C")),7==o&&(relleno1=color("#9F82AA4C"),relleno2=color("#92799C4C")),8==o&&(relleno1=color("#C76E7M
74C"),relleno2=color("#B8656E4C")),9==o&&(relleno1=color("#AF292A4C"),relleno2=color("#710D004C")),10==o&&(relleno1=color("#01343E4C"),relleno2=color("#00687A4C")),11==o&&(relleno1=color("#5A52814C"),relleno2=color("#6E5E914C")),12==o&&(relleno1=color("#49014A4C"),relleno2=color("#702D364C")),13==o&&(relleno1=color("#A549564C"),relleno2=color("#924C0F4C")),velocidad=.005,console.log(velocidad),puntoY=random(400,500),console.log(puntoY),escalamiento=3,grosor=2.5,console.log(grosor)}function Linea_libre_valorizada(){M
fondo=random([0,1]),relleno=0==fondo?relleno1:relleno2;let o=puntoY;push();for(var l=0;l<=1500;l+=5)translate(width/2,height/2),rotate(gradualidad),translate(-width/2,-height/2),stroke(lineacolorizada),strokeWeight(grosor),line(l,o,0,0),push(),strokeWeight(grosor),fill(relleno),rect(l,o,100*escalamiento),pop();pop()}function draw(){background(relleno2),Linea_libre_valorizada(),gradualidad-=velocidad}
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyDimaUifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6Njh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM
GljYWwifSx7InRyYWl0X3R5cGUiOiLimaUgQ291bnQiLCJ2YWx1ZSI6NDB9LHsidHJhaXRfdHlwZSI6IuKCvyBDb3VudCIsInZhbHVlIjoyOH1dfQ==" data-message="BitGlyphs #371 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="cf56b6462765da6b41ccf560ccef1c4a869e8c6e612d167cfef63224f46d9ade0da8b93f64756612c8b4eb75629f99a227f48c197877917a1f33997de7f2a4d7"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="-0.5"><tspan x="0" dy="-178.5">.........M
.......</tspan><tspan x="0" dy="24">....
....</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">....
....</tspan><tspan x="0"M?
 dy="24">................</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">................</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzMiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzMiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCBPIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjQ4fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6Ikhvcml6bM
250YWwifSx7InRyYWl0X3R5cGUiOiLilqAgQ291bnQiLCJ2YWx1ZSI6MzJ9LHsidHJhaXRfdHlwZSI6Ik8gQ291bnQiLCJ2YWx1ZSI6MTZ9XX0=" data-message="BitGlyphs #373 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="5a81e4dd51dbaac77dcfc1ce63b83b98eed246547d999fad1e131a420d99bede4280e12f5facef476e8c93bcd4eee9f9d5ddebe3b899f04d3f893bf635c47f10"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAM
gkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeVHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/M
kdrYIG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yo8IC4AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wDOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqoM
8ODRkKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0Kv2sQ7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLRnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVM
QUikpC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOyp8L95d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51M
t4efaIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYMrtfT6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kG+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPM
QSBgmjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDU2Rt/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEfJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPM
H61rymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWhHNH3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhVBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszM
oE51Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M5w/cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMs0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoUM
07FKSVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSF8ZeHu24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1ILsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6M
Ni+YQE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoEHhgUfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CgMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KM
VM5W58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur444ZukE703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMOPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5M
wYJiWtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoTOQBSjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYM
dhjD2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73z9onv72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLiB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCiM
vyaF+c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAe1A0Chd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5">..
...</tspan><tspan x="0" dy="24">....O....
......</tspan><tspan x="0" dy="24">
...</tspan><tspan x="0" dy="24">.............
</tspan><tspan x="0" dy="24">
O...........O..</tspan><tspan x="0" dy="24">..O.....O......
</tspan><tspan x="0" dy="24">..
.</tspan><tspan x="0" dy="24">.........
O.....</tspan><tspan x="0" dy="24">.........
O.....</tspan><tspan x="0" dy="24">..
.</tspan><tspan x="0" dy="24">..O.....O......
</tspan><tspan x="0" dy="L
O...........O..</tspan><tspan x="0" dy="24">.............
</tspan><tspan x="0" dy="24">
...</tspan><tspan x="0" dy="24">....O....
......</tspan><tspan x="0" dy="24">..
...</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzIiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzIiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlxcIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjQ2fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlZlcnRpY2FsIM
n0seyJ0cmFpdF90eXBlIjoiXFwgQ291bnQiLCJ2YWx1ZSI6NDZ9XX0=" data-message="BitGlyphs #372 - bc1p3yaecyh05ufywpexsfp0dljrrjkc5725decqmme4zslqs4s86wlq9lyvkd" data-signature="113ee1be4029088af93d0acf7d5392550a3872d2a0136f6321f563f48b4476b678bef6b2ac4adb28795e12512d238f896186da0c4ff5c7c89d8e45f6960801d8"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLM
L/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeVHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/kdrYIG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yo8IC4M
AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wDOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqo8ODRkKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0Kv2sM
Q7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLRnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVQUikpC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOyp8L95M
d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51t4efaIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYMrtfM
T6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kG+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPQSBgmjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDU2RtM
/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEfJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPH61rymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWhHNHM
3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhVBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszoE51Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M5w/M
cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMs0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoU07FKSVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSF8ZeHM
u24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1ILsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6Ni+YQE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoEHhgM
UfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CgMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KVM5W58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur444ZukM
E703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMOPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5wYJiWtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoTOQBM
SjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYdhjD2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73z9onM
v72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLiB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCivyaF+c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAe1A0CM
hd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0"><tspan x="0" dy="-178.5">.....\....\.....</tspan><tspan x="0" dy="24">.\..\......\..\.</tspan><tspM
an x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24">..\..........\..</tspan><tspan x="0" dy="24">.\....\..\....\.</tspan><tspan x="0" dy="24">\......\\......\</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">.....\....\.....</tspan><tspan x="0" dy="24">..\...\..\...\..</tspan><tspan x="0" dy="24">...\...\\...\...</tspan><tspan x="0" dy="24">....\......\....</tspan><tspan x="0" dy="24">\....\....\....\</tspan><tspan x="0" dy="24">...\..\..\..\...</tspan><tspan x="0" dy="24">..\....\Lw\....\..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">....\......\....</tspan></text></svg>h!
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
Aj?=:ETH.ETH:0xb00424b141032A085C60CEFFeE785237BD5221FD:5408778::0
Bj@=:ETH.ETH:0x5A8b45Bf044e785b35cc70074a865BDa5E051847:26628267::0
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
H!@H!@H!@H!@H!@H!@H!@H!@H!@H
text/plain;charset=utf-8
c/Foundry USA Pool #dropgold/
<svg viewBox="0 0 24 24" shape-rendering="crispEdges" preserveAspectRatio="xMinYMin meet" xmlns="http://www.w3.org/2000/svg"><path fill="#FFF5EE" d="M5,6H6V5H7V4H17V5H18V6H19V18H18V19H17V20H16V24H8V20H7V19H6V18H5Z"></path><path fill="#333" d="M8,24V20H7V19H6V18H5V6H6V5H7V4H17V5H18V6H19V18H18V19H17V20H16V24H17V20H18V19H19V18H20V13H21V9H20V6H19V5H18V4H17V3H7V4H6V5H5V6H4V9H3V13H4V18H5V19H6V20H7V24Z"></path><path fill="#DDD" d="M7,13V12H6V11H5V10H7V9H9V10H10V11H11V12H13V11H14V10H15V9H17V10H19V11H18V12H17V13H15V12H9V13ZM
"></path><path fill="#333" d="M12,16H11V15H13V16H12V17H14V18H10V17H12V16Z"></path><path fill="#fc9" d="M7,10H8V11H9V12H15V11H16V10H17V11H16V12H8V11H7Z"></path><path fill="#320" d="M7,12V11H8V10H16V11H17V12H16V11H15V10H9V11H8V12Z"></path><path fill="#4AA02C" d="M3,14V13H4V14Z"></path><path fill="#333333" d="M9,22V21H10V22H11V21H13V22H14V21H15V22H14V23H13V22H11V23H10V22Z"></path><path fill="#2C3539" d="M3,10V9H21V10H19V12H18V13H14V12H13V10H11V12H10V13H6V12H5V10Z"></path><path fill="#EBDDE2" d="M2,20V6H3V5H4V4H5V3H6V2M^
H18V3H19V4H20V5H21V6H22V20H21V21H20V22H19V23H18V24H17V20H18V19H19V18H20V13H21V10H20V9H19V6H18V5H17V4H15V6H13V8H11V10H9V12H7V14H5V16H4V18H5V19H6V20H7V24H6V23H5V22H4V21H3V20Z"></path><path fill="#C68E17" d="M10,17H7V16H6V15H5V14H4V19H5V20H6V21H7V22H9V23H11V24H13V23H15V22H17V21H18V20H19V19H20V14H19V15H18V16H17V17H15V16H9V17H14V18H10V17Z"></path></svg>h!
text/plain;charset=utf-8
Nel mezzo del cammin di nostra vita
mi ritrovai per una selva oscura,
 la diritta via era smarrita.
Ahi quanto a dir qual era
esta selva selvaggia e aspra e forte
che nel pensier rinova la paura!
ma per trattar del ben ch
Io non so ben ridir com
era pien di sonno a quel punto
che la verace via abbandonai.
 terminava quella valle
avea di paura il cor compunto,
guardai in alto e vidi le sue spalle
che mena dritto altrui per ogne calle.
Allor fu la paura un poco queta,
che nel lago del cor m
 passai con tanta pieta.
E come quei che con lena affannata,
uscito fuor del pelago a la riva,
acqua perigliosa e guata,
si volse a retro a rimirar lo passo
i posato un poco il corpo lasso,
ripresi via per la piaggia diserta,
Ed ecco, quasi al cominciar de l
una lonza leggera e presta molto,
che di pel macolato era coverta;
e non mi si partia dinanzi al volto,
mpediva tanto il mio cammino,
 fui per ritornar pi
era dal principio del mattino,
eran con lui quando l
mosse di prima quelle cose belM
di quella fiera a la gaetta pelle
ora del tempo e la dolce stagione;
 che paura non mi desse
Questi parea che contra me venisse
alta e con rabbiosa fame,
Ed una lupa, che di tutte brame
sembiava carca ne la sua magrezza,
questa mi porse tanto di gravezza
io perdei la speranza de l
 quei che volontieri acquista,
l tempo che perder lo face,
n tutti suoi pensier piange e s
tal mi fece la bestia sanza pace,
ncontro, a poco a poco
 rovinava in basso loco,
dinanzi a li occhi mi si fu offerto
chi per lungo silenzio parea fioco.
Quando vidi costui nel gran diserto,
"Miserere di me", gridai a lui,
"qual che tu sii, od ombra od omo certo!".
Rispuosemi: "Non omo, omo gi
parenti miei furon lombardi,
Nacqui sub Iulio, ancor che fosse tardi,
e vissi a Roma sotto
Poeta fui, e cantai di quel giusto
Anchise che venne di Troia,
 ritorni a tanta noia?
 non sali il dilettoso monte
 principio e cagion di tutta gioia?".
 tu quel Virgilio e quella fonte
che spandi di parlar s
"O de li altri poeti onore e lume,
 ha fatto cercar lo tuo volume.
lo bello stilo che m
Vedi la bestia per cu
aiutami da lei, famoso saggio,
ella mi fa tremar le vene e i polsi".
"A te convien tenere altro v
rispuose, poi che lagrimar mi vide,
esto loco selvaggio;
 questa bestia, perM
non lascia altrui passar per la sua via,
che mai non empie la bramosa voglia,
Molti son li animali a cui s
 saranno ancora, infin che
enza, amore e virtute,
 tra feltro e feltro.
Di quella umile Italia fia salute
 la vergine Cammilla,
alo e Turno e Niso di ferute.
nvidia prima dipartilla.
che tu mi segui, e io sar
e trarrotti di qui per loco etterno;
ove udirai le disperate strida,
vedrai li antichi spiriti dolenti,
a la seconda morte ciascun grida;
e vederai color che son contenti
quando che sia a le beate genti.
A le quai poi se tu vorrai salire,
 quello imperador che l
 ribellante a la sua legge,
In tutte parti impera e quivi regge;
E io a lui: "Poeta, io ti richeggio
per quello Dio che tu non conoscesti,
io fugga questo male e peggio,
io veggia la porta di san Pietro
e color c@ui tu fai cotanto mesti".
Allor si mosse, e io li tenni dietro.h!
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM
e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:48:36-05:00" xmp:ModifyDate="2023-02-22T03:48:36-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:b71a34fd-071e-8445-a2ff-d939782ac512" xmpMM:DocumentID="adobe:docid:photoshop:e28995af-b2e5-a841-aa0e-2476f8a776b5" xmpMM:OriginalDocumentID="xmp.did:72e15e1M
d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:40aba593-2858-a04e-993b-bda91cc3b696" stEvt:when="2023-02-22T03:48:36-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM
:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b71a34fd-071e-8445-a2ff-d939782ac512" stEvt:when="2023-02-22T03:48:36-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:40aba593-2858-a04e-993b-bda91cc3b696" stRef:documentID="xmp.dM
id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
Adobe Photoshop CS6 (Windows)
cropWhenPrintingbool
http://ns.adobe.com/xap/1.0/
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.3-c011 66.145661, 2012/02/06-14:56:27        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http:/M
/ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop CS6 (Windows)" xmp:CreateDate="2022-08-16T23:41:47-04:00" xmp:ModifyDate="2023-02-18T18:13:01-05:00" xmp:MetadataDate="2023-02-18T18:13:01-05:00" dc:format="image/jpeg" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:0B8C23E6DFAFED11AC75B6D5A107E06C" xmpMM:DocumentID="xmp.did:0A8C23E6DFAFED11AC75B6D5A107M
E06C" xmpMM:OriginalDocumentID="xmp.did:0A8C23E6DFAFED11AC75B6D5A107E06C"> <photoshop:DocumentAncestors> <rdf:Bag> <rdf:li>xmp.did:068C23E6DFAFED11AC75B6D5A107E06C</rdf:li> </rdf:Bag> </photoshop:DocumentAncestors> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:0A8C23E6DFAFED11AC75B6D5A107E06C" stEvt:when="2022-08-16T23:41:47-04:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"/> <rdf:li stEvt:action="converted" stEvt:parameters="from image/png to image/jpeg"/> <rdf:li stEvM
t:action="saved" stEvt:instanceID="xmp.iid:0B8C23E6DFAFED11AC75B6D5A107E06C" stEvt:when="2023-02-18T18:13:01-05:00" stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </x:xmpmeta>                                                                                                                                                                                                                                                                      M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        M
                                                                                                                                                                                                                                   <?xpacket end="w"?>
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
text/plain;charset=utf-8
text/plain;charset=utf-8
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Balance</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/p5.min.js"></script>
      //Balance() by tzC0de.  Made with p5.js
col1 =  ["#267365", "#F2CB05", "#F29F05", "#F28705", "#F23030", "#14140F"]
col2 = ["#D9042B","#270140","#F2B705","#F28705","#F22F1D"]
col3 = ["#0388A6","#04C4D9","#F29F05","#F28705","#A63F03"]
col4 = ["#F2BF27","#404040","#DB005E","#2FB9D4"]
#D9D7D7","#F25F29","#F24822","#F2B1A2","#0D0D0D"]
col6 = ["#012C40","#00708C","#D9D7D7","#FF404C","#1CA5B8"]
col7 = ["#BF1120","#0468BF","#F2D22E","#F29472","#F21905"]
col8 = ["#FF6B00","#FFA000","#22D6FF","#1F70CC","#1930B8"]
col9 = ["#FFFFFF","#CCCCCC","#999999","#666666","#000000"]
bgcol = ["#161F30","#f2eddc","#f2eddc","#f2eddc"]
	createCanvas(530,830);
	let percent = 30 / 100;
aphics = createGraphics(width, height);
  graphics.stroke(255, 10 / 100 * 255);
  for (i = 0; i < graphics.width * graphics.height * percent; i++) {
    graphics.point(random(graphics.width),
    random(graphics.height));
	v = createGraphics(500,800)
	col = random([col1,col2,col3,col4,col5,col6,col7,col8,col9])
	num2 = random([0,1,2,3,4,5])
	v.translate(v.width/2,v.height/2)
	for(let i = v.height; i > v.width/6; i+= -((h1 / 2 + h2 / 2)+2.6)) {
    h2 = random([800/8,800/10,800/12,800/5,800/6]);
		num = random([1,2,3,4])
	  recty(x1-h1/2,i-h1/2,h1,h1)
		  v.strokeWeight(5)
	    v.ellipse(x1,i,h1,h1)
		  v.strokeWeight(5)
	    v.rect(x1,i,h1,h1)
		  v.strokeWeight(5)
	    v.rect(x1,i+h1/3.3,h1,h1*0.4)
v.ellipse(x1,i-h1/4.7,h1*0.6,h1*0.6)
		  v.strokeWeight(5)
	    v.triangle(x1,i-h1/2,x1+h1/2,i+h1/2,x1-h1/2,i+h1/2)
	image(v,width/2,height/2)
	image(graphics, width/2, height/2);
function recty(x,y,w,h) {
	g = createGraphics(j,l)
	g.background(242, 237, 220,0)
	g.fill(random(col))
			g.fill(random(col))
	    g.ellipse(g.width/2,g.height/2,g.width,g.heiM
			g.fill(random(col))
			g.ellipse(g.width/2,g.height/2,g.width*0.8,g.height*0.8)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height/2,g.width*0.6,g.height*0.6)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height/2,g.width*0.4,g.height*0.4)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height/2,g.width*0.2,g.height*0.2)
		  //g.strokeWeight(5)
	    g.rect(g.width/2,g.height/2,g.width,g.height)
			g.fill(random(col))
dth/2,g.height/2,g.width*0.8,g.height*0.8)
			g.fill(random(col))
			g.rect(g.width/2,g.height/2,g.width*0.6,g.height*0.6)
			g.fill(random(col))
			g.rect(g.width/2,g.height/2,g.width*0.4,g.height*0.4)
			g.fill(random(col))
			g.rect(g.width/2,g.height/2,g.width*0.2,g.height*0.2)
		  //g.rect(x,y,w,h)
		  //g.strokeWeight(5)
			g.fill(random(col))
			g.rect(g.width/2,g.height*0.8,g.width,f)
			g.rect(g.width/2,g.height*0.8,g.width*0.75,f)
			g.fill(random(col))
			g.rect(g.width/2,g.height*0.8,g.width*0.5,f)
			g.fill(random(col))
			g.rect(g.width/2,g.height*0.8,g.width*0.25,f)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height*0.3,l)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height*0.3,l*0.75)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height*0.3,l*0.5)
			g.fill(random(col))
			g.ellipse(g.width/2,g.height*0.3,l*0.25)
		  //g.strokeWeight(5)
			g.fill(random(col))
	    g.triangle(u,p-p,u*2,p*2,u-u,p+p)
			g.fill(random(col))
	    g.triangle(u,p,u*2,p*2,u-u,p+p)
	for(let i = -v.height; i < v.width*2; i += 10) {
		if(bg == "#f2eddc") {
		v.line(i,-v.height,i,v.height)
	for(let i = -v.width; i < v.width; i += 8) {
		for (let j = -v.height; j < v.height; j += 8) {
		  if(bg == "#f2eddc") {
			v.line(i,j,i+5,j+5)
	for (let i = 0; i < 50; i++) {
	  if(bg == "#f2eddc") {
		v.ellipse(0,0,20*i)
	for (let i = 0; i < 50; i++) {
	  if(bg == "#f2eddc") {
	for (let i = -v.width; i < v.width; i+=5) {
		for (let j = -v.height; j < v.height; j+=5) {
	  if(bg == "#f2eddc") {
	var increment = 5;
	for(let j = -v.height; j < v.height; j+=5) {
	for (var i = -v.width; i < v.width; i+=increment) {
		v.vertex(i, j + (sin(k) * (sin(j) * 50)))
function keyTyped() {
  if (key === 's' || key === 'S') {
    saveCanvas('myCanvas', 'png');
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
KjISWAPTX:0x25e7e5c0857bffc94f0672934495de393d4b9e2001966f73801b07309b954d39
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>636</exif:PixelYDimension>
         <exif:PixelXDimension>636</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM
e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:53:09-05:00" xmp:ModifyDate="2023-02-22T03:53:09-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:b9d99877-45a4-9c4f-9c90-66318d85d2ca" xmpMM:DocumentID="adobe:docid:photoshop:e92d8c26-03e7-e545-b5d8-427adbb3516e" xmpMM:OriginalDocumentID="xmp.did:72e15e1M
d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:d3101fa3-54a3-7744-937f-9ae26089645f" stEvt:when="2023-02-22T03:53:09-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM
:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b9d99877-45a4-9c4f-9c90-66318d85d2ca" stEvt:when="2023-02-22T03:53:09-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:d3101fa3-54a3-7744-937f-9ae26089645f" stRef:documentID="xmp.dM
id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
2023-02-24T07:46:32+00:00
2023-02-24T07:46:32+00:00
6j4ion:7.QmeXGivZzF3JmkYZ5uFggGwZ8zDzwaq9H3Mf5en5ajwBVW
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
((((((((((((((((((((((((((((((((((((((((((((((((((
DjB=:BNB.BNB:bnb1nn6fx2y2xycw5gqxhfaz87lsn8r4s6vfcxgw6s:62717845:te:0
c/Foundry USA Pool #dropgold/
FjDOUT:BCD7B00B4ED44CCD68BD59684885626A695FEAC339E93B2EB5141CE763CB720C
FjDOUT:0B217D17FD8CF4B530BBD86A6EFD80EB4F7F2C36A5C6D6358DBC34875BC8C444
Aj?=:ETH.ETH:0x6EBa2fB5A7ea96ECE97324BA077cC525D29e75af:8317446::0
text/html;charset=utf-8
<meta charset="utf-8">
<title>The Odyssey of BTC Ord</title>
*{touch-action:none;}
html,body{width:100%;height:100%;margin:0;border:0;overflow:hidden;display:block;background:#000;}
canvas{position:absolute;}
eval(Function("[M='F@cXSVXir{xHHcBhEMIo
Gxki@AAXo[e{SOn{SmVfITRKpomVcEoO
dXlcH@U_VgW}_ACaiwbzGF}sXO`qSjT^iiRXHJdq{rC}BO~jdIZOcqbo?FittY]dyTpQSle`WCiZPOtBAGgd
fm|}mZqVx]K`pMP^uZlbjWDk
MIvu`hVJ~}eRhzj}]HswSPiz{KnxveJmdykZbe?WfKRgsJ`lmjkD[SBQ}Eqw{{CXUBPfe}wIXHD`Khi^zHiv^@ZKjxzzxWOOTKAMCOWEuVxPRKH}~~eP?ddU_Zdls_TyWOClM^DVZW[jbdbh{cUaJpCuAkT|UrfwldtrJoZx}[OfPhVEUBdyjRhMMxNUn_PlSGyc^cFMIuxCfKse|RTx@?FXH[|~~sSYcRpwKqGU~ZnXFzGEdRjJDevN{fiymu?]}XTwpRvnUk`]OQhWRGaRcWkrmieT`Xe
lQh^dHFMa?W{zZFcQeQivIqdAXxVmbYf|`T_I`ej}pzgGbybwNMwRAApzDDbClrqtd]q[L@@PCqmo_JRP_SRr``TG}n?z@~WlIuHPqL@Ewm[Da[RtJ~UsZSyW_QW@aMNhGK{`}|C}ba@nR[USYZgmyvadPLX`i
hfBn]n]g_}c|JtdkP{XUUMsjjwSKICJ
d`hYjnOQqhbzy_dj?KPz]?XT`TBNZdwkVJps
gXpGhI{D`SGCB_spdMpmTqkZgTMQ}eA~DaCYUiTxfIDqnqRK@Ow^U@vhuceNtHWYzp?_RoSbWk~MTHENaKcZbZ^vVkOILpP[?H`jBh]qwSAIXeSV{z
Fm?q^xYAPvs_aOzcmLk_{?{PRkDArBJyrh_xxcKGVZ^f[q_rZt[dwMPAzEiBj]Z
SPi?fSb[aFimdCo|}]^vY^QtcdB_bumu?NA}^pF}biGoSGYSKgrD@XSc^yPvdBVHV
eq}CtjicLkFbl}Dvb[VtLCe?|BlSicBCcvDulgBxmYhOJyGpQmcVQVoKtXcpOz{
Ybq^UBbm~v}ZsZwynU~NLsdcLwN?W]`G{iAx|SBOZm_B`ilZpeAMdB@iItXCMt}OxjlQhFC?AstUMiVLgfa[]pfksZSG`A}a`yM
ANnSsGQHmNXZo[HTNwa?keUsuxP]nLpmVoUNsw{l|[QNvuMjgLsjRg
cjg`WdKpqwoFrnoh~LsuhpzvdvAoMFg?knE?}SQxAhvqPhc?|YtoZF@ZKT`G]fnnAwgVkzDMPoTZoHoUiZr|
OPGzWC[QUsogDxziqPBPT~P?m@NdiHH?pOIzPY[CLmGbOKephUnumBS]Znb
]`L[T`_wQEEAFgsaYKZILgSkx@L
{datyYsUnRo^_mCs_kl[yW~HfsEpVeKj[|UdzvmYiMbCP}o^TQ]oCjZ[qrlMZnSR{C[nK~zyAl?yYFtOvYyqIXoGPV@
vTIrGwKzrG]DrO_^{IvsN{oOM_asdmkeQhCcQG
RmoG]M^xauffANOksjWIz@IYOJqas?~MKX_nn?UPTqXEMiNwMUYu|msdX]F{xjEfyjfSERF[qlJZOPk?PmO^MZKcmjs|E_oM`sZ
RmzSZyui|WShH~zNRqNO`PWxCDM
NARYGciQoYn`FLFl{YvjnSqydZsUMOZ{vVHg
tF{PcQZel@[YWLOPUizHzl^cbvu@~FUhJEPhRF
AEPlZ|tLgukswA|vwYmb_Tum]}WIWSE[tryembsDYElIAurOLCRWV[hF[XQi
YysuAD^ts|uCpS[ZwYEwNc`o
cmAhIuZvA[qqSZU?j~bzI_WQaGk[n?{OT]jQIcUvmTv}UM~ZpVMVs}}^j{LbYkXMB_qALXyumy@Grsbfr[wNOotYPGCO^gkX}kuocLT}EnRZVFyQsJi`~cki[E}q_~Zn?N`}uZugxq`ON|jLtR@nQdu]R`]wnHJ|EI?bSGrXRPvGiCEXAwzFRHCk^b{@bKsD_GskL_IH]fYyeO`{s^FFfijQJVwkEhexDQMrMoOa|fbmxzinvvBgnWfDvTWxrHwHzPK[ijuFgCRVE~oLID~EJpSfGE^K]SfOPl`wIZRq{z?ZUuwpE?vQFROcA[QVCTLUS{zruYhVY]aCl
@]SHzBA_sSzrsf[^y?uAt~cnloXs}dBAL^fniyjrp^]rDvpdPig|}H||yvvfONToTzQkLBLPAth_yq`E?VoVvY^AWo}QcPQSPiqBjNx^@z
rxkaeB|HxzBNfN{[_nq|al@d|IjRo^XSqJTNV}{yZN{`bSJSw}HreM{{`IJtznyhkPKVNRi{iEpnoHhAig^fEz?fCik|UiaSfVpHJD_|gelsAEUvZaUnbD_T~YwJLcKzko}JcTTVJldvlw^]rC_a|GkSAmqdZkg@OiDN^FTRUdS~WixZ|ST[FdgwVvkHpL?OYj[ZBYu~PMl`KYS_[VRgT{A^VFEim{TByBKlykDYwu|SNRxHYVSF~sCb]neiY~ycgW[uLO?vuQ[IcSlaqWwtOgXVGCP}awRQD?`cSkLXZ?r
Qe~hg_fD}rEeI}bKAPwHipiU[PE_zJ^]kCm|IT_juPFQlw~rO~BfaCsPfwgT[f?a]zqTarOF_lqMMSKcaYaOMxOHEYs
E|XDRjENtHjbnWmQbZmPljA`Y_|G}gTZ{]{tMyfItbuHdfmuo}mpfa~?P`DgXOio`hOZ^weOFpCZm}jS
amWvLaYak@uVtkQsEZtIqUcLBPqfJj{qX{ypnfzVN~}lxNx@HWs{bcgr]EhRjKV}PW}
Ka_LxCPSKwOBSoGU}dN_hj{eOzHGdRBq~DuO~}jvNTqTBe@|wkZopbqQpb@Sqih{k~UJ{i@pmzZBjXme_CBlPpqpQ{iKtmajABtwwwtU}AkjGIbjeHO^quPMyZ
jvlrThNeGDQwqS]~eMdTXIlbLlYmZshwJ^UZ@IUQViFnCrujyZqEovg~Qkb{InnOOpo
yPc~a|e?TPyzoGiZyAZR}rPcw~vMwljgEcqvPINlf}HoKz]pim|cuPzJWQoht|I?NDWboDAdZYyxyK@tipG|a_HgUtKOGRAa[FSHzUYulxTCbhvGHie
?EJw?{GRjwt?klZ``e|~nX`GtM
D[{Yl{hHia_UIA[ec`Os~Vo|TP
zkvGDWDab]GalsXqdCD]wchbtKfCm
]HlCps|AnV@?DKQwFj@I_ocm^^rBnOEMVNollepezz~LnlOUms^llcepy_XDaB_Y~Upo[n?W
tq_oyCYrfsQgmGzE{QWFQRgpSiwG]FYKPAkk|tYj[DV_CKDv{{SbLtA}Yu|z]CqfD
^jhMI`TZJplQVJh^aPCIiiB{ohfv_BFzxiZ~VmwUervhwuaDXJijJnTpw]_~JeyvorxAaCv}auzTyf]hyoqi~_PcTNFPGMOMgdhDwTF?zQGOA_}tZhvQiD]crtDe`h
KHR~?m`ehtCa@hFvlKTnOWN^DApACvgjnt|UrXvNUX][IW^{^^BdFDS_n_T
qE[g[eMe|oaKkYLvh~Q{mygNg]WCUf]@E?[YWaDLMgy}sB|M[pYaCxOTs{[ZMtZAQgRLV]PS
R[~dBJXd__xWkz|@xXKoBU_L~F
DCKArQYLXMZXd[nymQBPUpudkdvbOPSVduWPM
JaOUNPsC?dFLzF`nlZBgNe^Aor~LEIph{F_UNMeslslL_XYLXL^KB_dUTJd?A@_PnV?XBCG^w`c|
YwNJrwdnW~~FNile{ztijtbOsMkn{m`CX|LdHh
ULI?}?VuC|}AVZ^f^jyEemwp`I|~onizcqb]ij@PDQWDCrTgYUWWZtETb[FniHa`m[tz[T_QqkQ_xq@AxdcQHtFKyUl[uWN
_k@CfJ@bRmLIQ[wApeYPo_YpnXMHQ`no`LQOphSGc?|]VeSu_SmFzvgn~g
oB]}zzu`o@CfWTUEtX`JgoWJL_JWBeD{mQDjgR@uxBC_uraxe@Kc{iSAbceAuDobRIcl[Gj~Y^dXA_RxErtmzrR^NzyzlV]vHGGMuuMi?I{S
|enUcBKXX@ManJwEmNfisaDe~uS|Gg[g~Tnp{QskHrlQWrAC|nt|KjTrXBaRoh_Ko|g}NTOKM
_BSemERmrf@W}IfxzfyxubYA]o?ksZC|QcJV@sfxa]pD{AVRwVl]QFL{{g{L?ROLP@jfSL]xSNCbHzy[gnsKwOZbxFbwhlemQzI`SYMYe`]@
PrGOSGyYOv@GZBY@[DewkR
{m~If__zueBFFiEqivFAsu[Bk[MHXD~e~BbWw[_ZLhxPzaIafI[cIOCqBX~|G|msq[@AV|mrzzg^VdDrsdPrmr?fGcrsr^DcqMEGPtDwIhqZrNMGzc}u~_zhbnXCdlLwnROJnvvtkSPeDCrN]RGdNf|sTFFcUlUa
}ypW}wwscroklr}Kb^@LONjdFK~j}{_?zDMQE}tUERZNlbxCdwQ@Ks`
ySEZW]Dti?KsDBAZlv~Aj_Sc]Py_Sspqy?cJvdgK][[FrZD?Jr~vPkloHxwruUXalSge|ehQvncVwQT|PLaG]exf`RPHxpKMBMtZbrIDvkNedNZ}kQh|cmD_?N^El|EjIUT}VtGEXV}U}W]GruTInBudFDBgXYC`}`IBg_TfMriM
VKke}?JqObhjmlFnnxzu[}OzObC}tFV@{dU]wyc`^ZCfRd{OnwRpILPjDQguYpJL]HUX?rmAj]ouDIBloV_V_j
ztpo]aJQe?zqzrxiRpH@QQOtRofjwQ@c]jmrppL~Qd
dCq?Ocep_MxtdXFlN`gUg[M
_rTUq{n`CCIR`bUjU~hGm
nNq]YZJs|@mS`lp^Smup{IiU
Y[MRGwqipiT}CU~]XBCkjY@_J?ob{]SxXpv_OEh}LCQHtG|}CGiXjTHxm[SubWVHDJnO@BpSCpFpF?@HCWWiF[jBadvzHwizqo@gjMJneeGnoEa?^QU_mbwwqaJYEsF?nUBm`]skIDmJPKnoSNdM[omnIZvEvv}MEHh_FAxS|U|fNytp@jCvgJjxZxTSRWnpWWVGR?fmSjrVBRsi~o`V@AN[m
R_vH]owtf^LlmAalzbIElfMgzvRL?HnQsVfehlcrB@wyjZEbAaBYj]^k{TwHZM
K_v~TIndDnlAqP`MKXhgFxzkPryE_Dl|ozkODa^zfqrtnfrT^bRC}AC}tbiYwOqQchtGb`FMavMGlcN~g]o_JJaJnynH_JtgowT^aUsTsnl}[^oqXha^RT?epJoXSyIslTxl{spYIu^aASOabWMHbKTI}s|FFNsXsDsvtVkIYpycNY[``wmka]owI?Z}EzYUeeyuctxf]U_UabVvOeb~W@`SSwNP@STgtcMJgHwAhri}Zx?{rcM^_V`]Z_S}wgz?es
WHT`ZONw`DjVsOg?AE_T{oIHaN[auV]}YV`fi]i[[CcuVmAuqScyOvjCkzO
Q|weDHSh|JZ?sZ~Xez}~HxhNkETJqJyIqgsBRAClwUHvMJJcNVkGd@{pN?CAFHiCvBOMzlul[G{EWy^FZZL{|fxb@rlwzJ_[JlLg?YyBshWn?x|XUlcbZsfEc}Hq`W?iybuTjB[tiRnpAvPUkN{ThWSuYAnNe}??l?}zFSgzRzmiISZw_c}vtZuOeM
MZ}OYHX}hG}iuzsFA~BOZFJ[BUxz{VvHTNZzU?ZM}D??MovoVjTsKXDwdHbTzZruXZLZ|ejaVQYz]^Iaokk[sdlnrigcFtdZ|wh^gOYA
CfLNZfBVaJaOO@`oDpXDrWaM}OeFY[avjTq@{stpCewuBoTAUERP?Uz]H@USt@~cYiMbgdwy_KSbomFHHoSgMm_LEM@B
_@xbPva^l|uHbNGivO|ka?xUlrBqggN_J|P_iB^p?ry[CusZCocEQZNNRAlswiQkfvIKGtLachL[a_qx|ll`L}mYZP_lSf}~zuZMZFCcGOwzJntYHQvGrMp[I
O[tuHMi^]IAf]xDIIuvc{fXVLv{NTLINhmcAPHAkZpDM?G^eI|_ITEBs}c|kjf`_g{}xsbKK~XMu?H^YU
ic|J@?XvIkcNWvLjsoMqxNm|q}_Fgg|dwgumFD@e_FwGy{`Te]PeR^u]ohjM
a{Nf~OyoKdWq~lAGiFTuKBbUqeNQzjLvuOa
GmbLKqWF]@k^@y}civ}XfbVzJgV]iIK_THfy|KvWabhZ_xtaymMstoM?Qkm^uEfZ{YnZGYfvaka|icczXf]xc@eL{zINJ@KXvCiE_
@IbYabl|tVT[y`LvBjVi@t[kO@q|CevKskVIKfCEh}]Z{JKRojeiuRErwiutW~ZysHNv]OjZD~DNM`ZYl?FyPsfGqO^nNjMKAemg}GiIfSSvjumZA]ksH
pVpcNe]FPtcM@~DeRxDEMxJQwKtopshTGYdm^zii^uSFShzSOpomR~pgOhkXjPIrOfvvx@yJqvHVR_iGgsHnM^HvXIjwK?_GLobTx|s^_y_F{fud}~FyIgEU_fIwsjmw?l_~UG|UOLf^dVH]CoNiRtbOe@AIGlNqOt]FEUcJI`PtdJIblwnCSB[nGTMyjWxdr[@jZ_[Y_iDaQaHWQucZ`_v{RaT
gRcadUemvMjFHyg_eDhkkZyM
dJW|CVwr_vXtF`MRy_x^UG_pC]|nzz
gvVKyjcz|~{XK}gL@aMGXDtDKF|^}HyBMBMpKNebZIFtQmOuZ?qo_CU~TKgljyPqFTWVVGMsfCoXO]EkSHrrIez[VrZo`zd~`YDuRCJib}Vz]M|]nMHDOLbs?UYAuGzcuK^B{Q|RloEMQ|QXI`MHY@JYaAkA
n?syWdcPGDG|ffBbCyv}VSCRL?YXNhBQB{eyn|PDcsdAyrpawKOaN
UxNA{WWLO`rrsYrEiOtxGeNR{gkwFbaRpL~ZprG@WiGl_hBGglFP^f[sGVJ`MXo|SrZgi|e@KUq]SThhf_
nXD}_Y[DwUU`yJbmhdTyOVTVAtwm@HZUzBV_nccMXq
yF~[QNyTZNemdM]AaRTPgTrzP{QlWT]yzlTu_kszFqSJlzaOtmGDYOHOVGMcchcPQoHBNPnhVpQXMa[XHceeIhbwR^IAINmY]IMsu}IHLNA[JFtjywBwl[pWxFnIsegCqSe?wRVJzAvgRt~wYKQSyuMHM
]v{YlMFNaNGCrFESx]tFdh~jPPPiyXoowXt
}rDhNEWDrG`vjEbed@j|TsDXJ
TRQhJBGN^[HcPVCXCc{in|LklU{wfN}pJ^@OyO~nP{|WS
BbBR?bs_atxPN`YHPB_kYgz}k?vy[hzHDd{UFt[gS|ArTRJpYh?UPGpP~^}oZDHohbiMjOxK^k
|MRJMocIAltFlpcvJB{Tz^RU^R@kxIhVhkzCR{Un^rZMFis`LMCNSnJ
wCidgSDI`WiVld^?^WbuH~ssBNRJN~icwHO@JAx^
zzAeyHoYur?JzrShD[|SjzsOfs]]]iZrADkl}UGbMhF?tL~^aZeLZYlL
IFqsg|LTRasaNXMlzcjm|cQ_?{cwPrZUBmLi?jnvuDh@zUfqSHnl[cL
NyN|mmu^@uBTgWZGHnBuK`EbmLOBmEL?MPqM?dHDJFtd|@`Yqm?XYZnJ
}rcJk^qp@?|m[P}nRFA?ATKifEKQV
v@m[QqKDHywyODuhqxmvtKI^edRhRZUZYBs[OIreX}@BiVtCi^e?bHu|@G^Nlddf[qi]gkTAr|lr_cXf^uGYgsstxuAM}}UeFzSC?LKA|yV^wcp{@xbBaEoyymCfRQq[[sFmcHXE}?X{qU}VG[UlrLqK?a`tZwklvSOa{?SPE@cUjnqU
qvH`J{qucGCnRrhaAoYPfSuK?pJeQRBUE?|UFbbvD
?IiVHiWNERssuOhni[ZpFwHGypQmFhQFyhJXW?
erYjxogk[|_wEZmLIHRALK^?ZWvzN{jB`csOPuptYOXIe_IyF?oCCwPgMb~jAUO[PMnT`evyw^^HQGFmf@sFvMbmbnT{a`ZpyiQt
^QKm?jFeViEgQOxVUKejQIjzgF{is@?lFb[igdfiRBMWZn{kJeIz}RIvsolhC]|DKh_GEtWzWVffh
XlkM?Zld?xvbX^lTqw_HsEKjwVLxZW?NhYzsMNYhpKSIs_{dEbujjU_uu~tt~wVCyK~fpjLWMxUmI?b|xVTM
E~k?oYlk|QjXXvKYhkqGgaNzr|Pr^GQEGlccK{KOccaKekfwr[ygGzpD{PFpwvKsJqurxkPrRgKrRXfg~kxXFWeMyM
BogDHdu_hmS|QG~OvaZICN^GKGp~AKtGbYSk|xC{lwedbr`FCAbGN~|w^XgkDYvCCQ[p^
[onpMOYZANpYYxZ]ANQvQvNtv~gopRa?Sv]SjWrFNSCF|qYayPwENi
EJfaX^jAZdQe^xmACC]`rF^FcvASF|w@d[JXcB^
ptsw[^t}Wmd[BOGtr|m|PtdAqFOB`B
jjJuHoly]hJyoAg[xzUaQGxRBt{gc|BUgtf|j@yhvzk|Z_RdeGzrqH^kShiXI|jyLhwnw?DjTIxLyM}v?@{]jqmuoUehhj}oUG~F[~j~ZjqEsO|@pBclDuZnMryamb?C{TwGTZyJFIozgxCCN[Dh~Kg
CFLn]?i]}Ki[O|YYK~OE@n^HzYf_wygNgm]]LkMgbCU?a
nL^AjN{MEQeM]_`zDtDaHrcM
xUUgbXIvhFz`gpOM_SdiM@Dgv{gUjarq|qsYvcuFQ^yQHvlXz_x[^Fk[ptkVhWsl|SpnhmblcQ
RbWFRGtn~yBMheCOuvreQCnpg_uJA^mal}tfBqZ_rhKGEqnYOWH^
J|gNbHUu}eN^u]fvsTnme|NFMgAweoVLX}Kcf
hjRZ`bvswhMVNHWTijk{Q?]z_BAaWJ}dBFqhL^|uo{Tu}Ihdk_|J_u|oUR?U{RABb[Rtt{WLJrWBTXkX]HqFDKD|MZd[BC`sEuWNCNiENvd^tpR|nUd]qYtKaszWsladi`JT?qzF_d[
zaoTUAEVThZLl^xo}|van~?@TFESrwGr]HqPZxPJ{fF}XJwWdSnYY}x|`GrpzmtGfLndyYKNfFuE~X~bSCImsARkqlu@{{klboBooWEVfpalljWG[zB|Ieh^YTDHFWWVHb_oY_TR@h_sHss|VJqns{sTf~GIbI{xiLxP]]J^QDqpJaLnNn?
lcs?UAc{ZZKzFFo?`qBVXwxyDbrRwdWGATTeyoSIFXTvTy]dOg`bIhFHsFH~wWTjth}u~|xJToPWPrKh
?Kyw?RaQBiM[ht]PQrQOIgakhis
Cd[Dl[YB?^]r~IwZ@sAJYHB@YbCWenBvjkmg^^t~TYyid}WIay`~z`zAdkbWnqtGbOil_PLOMWm|?Xk~Q^nCYJZVSZ@Q]_vkLaAGUuMvtPDMH]HHWrmId
WcX{|MrI_JLA]ScLt~vnE^Sx]NFXdL}OzoEv@JnJ[Jdt[ZwgZFpSm?@NpxMRuUq]mH|^XoD^elI_z?Kz_lSSX_[[UQUd]Ia`n|qrRlqfbnEf~uLa?cjqTnnp_d{{hZdr
qzvapOVvcf~vwKrJ@sWX{sduoPl`NcHDn^[S~b}YEcEVj~
ckVOYFJpjHWzXoLdffPDwPqkl|fAyNhq~g
sfH_PBmdRzjdGb|Sq?Aed}ILY@LnOh[^Gv
PJzFKEtZvVVj_IU[gwt_M
dZuizcn|@hAdft[SaeJKy^}`ssRIcC]yBJ}~hTCQdWZyeGk
d~zZS{}VLYmsZYTuH~BYGR_mHLT~DlnRyGW`psuavUJsF^VThTmiVnKK~IhFRCfsfPpSA
poZdAERpAKLV^|qsOCehpIsLqler~Ded@wJOsY
ve?@@^hPoq|lC}Ug{gfDIY|nL?~ngsDN_FNWIlP~@bcQ`aDaKxYB@afl}Eb{cSrV^fZ}VoP@dQkTSrwXdDMlatkOhNvwzAgmViQnxJwMPLxmFHqA}wgwo@WWxQXlhAqidR^TatTMWrEIT_YotAA[?zz?p}TgwLFXbs}o^ht^jouRvdooidI]Nm`]CUKQkgujTjmtGDgJuxqj{OoLyc@oY`uXqMqE}dTo}Ltfn^IMVwc]NiKnfe[UUHoscwMgoxtr[vcORBGbN}CdMQytQ{RzYC~ng{w`[aExqvNUTun}Yg}OZPgirFEhh]CbAcCPIvVM
UFV@mH]rRdV|TxpCWypDmYTlvDI?Q@TthKwqafCpPHD_QOYd[I{hj[[aGa@Kv@o}Gnw~nvvSORCNksW~K?gpYq[LmLRO[nsWKeiv|zkHdNV{^wEeHh[`X_}k^|ZoJFnt^sttxVdxfNACmOdwNOOzv}~aIdhp^sk{gtmMVvPE
CT`A{`kWKOXjqZ@FZA{l_a[`UFE
w?Z~xDvdw^jOmiCV|XKUzO
`el~c}O`G]O{_?cBlob`jXXI
P?XULPioCD`cUm[ZRsCKdt`W}YMbqwLko^]{
TE[}vTRMu[E[i]{{tWdID_QpB}GBSVLx~[ap|Zux}AGsHZOB[_OCgkb^rfUjpNXVdImpxSksiDrLNezkKlJ[ebUksMnT_Z_hZTgYuMPUOsRGoNP|_EaV?c[N{Hvym{XFslEiQICR~EkeN?Ck_}Sm^^MjhLGeLoT[v[AA{S~UovqQbOHD|Ah_?rodgMi`nuFY|BiYROeMOIrvRsum]HbOcXF_]G}j|}z}uO|rAPkbIjkHCLM
h_dpsvlQYX|dVvqm|dOd^SGNFCldrx?OlS_GT?`pmJia
~gznzC?Nfj{o@AScmz@BLhHKtyafpB_Z@QdYuv
po_nLW~rFHCuviCkx`mR[@KTK~H^MSsI]xJom{zhm
EAfygjvtY[AGXbtAtJcagCnPFH|sNGhTpISUShhNnqRcsdWge|rOVdtWMG`vF]Dr|GubpcF^HFyvwNEIlOl{pG_XYRqVA_vjKPo`Ct@fLvzcEdywnavMU_ax]sB~H
PzSTE}KApQPFMgI]]FWqSAgAbbkxuXevXdDuJDBUV{WY
mR_`dHCGzKOcihBzCuTkmuiOEEWkpRehbfmkpcDgt@jnvL}I~}LzSTLXf`Qku?H{a`?aRvg`EOeQ?B|CSF|oJ|?bkp^fqJdGRNRyQNdODntOhEbQ]mYd[YTURr{]icTqvY{OUKtyMxJwaTVpmfHPROlOn
uz]_BRkNEtqjg?o}OBumPGsHcDLnCihvp|oeD`sgsyeVtCC?WPLXM
SVoocog?P`@NtKbIterlVuPhL|dCcFePjXop_|RuUYMmO]hGxIV]_}gsDtr?wd}eZ{WPvXbrJ}asCxhtLdEljYfHPRA_GEWlKG~JLP?embQfRnNe{]CpRw}ge]LAAW}qgXd_^MYzTLOrIZDDet]k~GtJC~CUUvnM|Mo
t|IcTgKg{KPdF[tfOaIWm@tAzGkELxhsg`~BFpylGs{zqpedkXwc|AyMk
Dyle{AC^jwLiUKb~zUYRFARPKfwxp`ru?tko~j]uba_}@sIwraL}coI}h|B@DXFyMyWXGWrZpAJO
AAKBQWB|ULoF^`i|_CVnFHIhRAOk|e_~YO??F[jfPzJMIAP?Vf{t]BB
^yMl@aiKPs@HpaSpLyohigTmfh@CFZUoIpbn^Bh|kdVBgIKQ[iiW^wYlZOsXajpK`abX
kDcqojRVQzsoyZfhRpOhKMbrtuNQOkZTDJ
kFwjnVP^aCId[KJ|r}_o|foj{vdKnjO_^re[UtHIZ[aRM
G}kyL?OeVfULiva}y_geFk_wX@xo_|PbIJI__HlCYZQnkfVr^He^KcJcr|xA]BTOnyX^iO?XD_QDh
GrA?MUS`cubCfgcQ~WFGFOTJDOAGFHfIDUNNwjGdF[[GeGYfkB[ADyQhMdIhJnW
k]c`iqXSjg~@OI{KNBT}wzwDOkZorP[LgMuMyKi}gE@BsisVnCvwhKkRZzD|A^qJ}BJMltI}qs
zmg`mra[HzE^O_q?rn~aOJKdMQa]GBBVPtegIdBaoBaCK@SvPRdnY@|{QZHmNx}JxGUyXGYNFtJRieJIVKmNXA?aY]Xy{b}ypgtqPfeDjpho
fbfFMlAAle}]|CmnF@{U~GG}c
iIWeog}eIwJqoSAkr?Af~nTHaq_TRD?MvtaLDYu
M`^MstudLN`H?x]pZtU]Wo
R[jBYORuSylFVRkx]~|[UNhViOtc{fTnGqF}Ethp^BhMf?_{J|k_M
o}pSMbgLEjzl@SMeUk^@e~KV|p[MhqYiOEB_UcGnI@K
dP`zGWTug`rurr|[}rNdBNTAiF}AqiM}GRlaXra
bjrpGNT|FJNEPjMo[kmc[qG?`oERIJb}jBy@mKrdR`ZIemxp]jNAL
eTFqu?xFWDZEnGvYqEsahXm
QzOKMhWAte^Hz]?sh^rGk?aVopS@feMj]tDEGlsko`^lzRLIEKv|m[HQ]N[N^eEzFklb`KAh^PSSjRONkZ]Ro}p{Ckpu^ARrTtyglZKR{INWKMYCt[|~dJ@]ms`huBbOakjAnCtrk]Jy{sWYi?T
CoFar`Ckw|IFqLKPn?^IFqwM
?ykKpPSR@gUgl}z}~vRvGocfuiRvyKyCsgu{qr{IDhGk?qMX
?PZPsc`??Mk`ZnLFyy^rX~d{wmmd]P[fMAT
FoenOmNNxrePS@KvfVKcwvLi[?BVD}xnu[h^naoAh[VSfnQbCKxF^OM
fTeQwdyO[iGhYbk]rDm]qpG
CQ~sLmLcGQfrVEMUN~g_^eSLgAjR`ig~
c_dfbcUWJt{CBVIgmqMEQnfJIt@jDr{Y~_nGBpX
ltgnYS@?XOKbndd|AbcHYNOHQbLZi{FibiiKThEu
YOqirOli|BOKtMcL?vI@@E?CvAOA`_cDpyhh`aZxTy{PuuHzysfx[nv]RJ||GUsG}_w[~tbOjuRPmm|[vxUIfE~dDhE^^
?UXRVArwHk}b[`{t~CacDuBDnHj`
UDrr]UJ[mQLkv?oUDVKWhI~^w^iD
HNIWBmTha~mm^uzmbwHraaMM
g|NeghFSJ}ySzJ{LBNKZVtXLa^oUJCgmhn~nMsjgFhNRVFf
viI~|k|jdJD|kuC^JJq?YG|
H|{XCgdBy_hUIQD}ft|q{`~YCss~jj}GsbgSOGQps|~@^[cxJ
cue_BymwZ_QqM`FFfrIANfY@gvyw^^m}MTWGf}SVGT^v~QvF[nS|UVRuNXVB@AAnX^VD}{tce^M
Y~nPnHzkpUFu[FT|Vdoq[IkbTh~_RBbzK?yQzlbbLNBBMMOibfmoBO]oOgCYw`k~w?|Mzy~qXHDh[gQlnc}|onsHJG|d
CZBYImxHvM`RylkQTIJAttbLiCZ`_jmiNJ~wkzCZqNsSkgp^yytAY^YhmLsxkfb]u@o?cNAmOuAojao}MYNOQrIJs
w?MDpBhO_N]xNlsUXpXCvvaoltzvXEUkHX`K_nMWBH^qZ~gf?zUHE}pgBtveJnRxRr}Ec
nKCJMHLBbj}Goq_nW`ArbC[RNeETDepThRscnOudjis|
Uc`phvE^TeM_^uI}ilGPECUTOXAeKWkbJZTwuSOQYtYcFcKhDiUmBzxGhjH~cTav[Fu@l_ORtj_vq]WlJFnRm@TtRt[zpNsjKpdN[^HiK@Be~ZfBSsLjmokrh}tdUNjJEsJLgte@HGgD~}XlEl}]thLWPB_LDtrB?LPa]|F^PT[osjHBm^kKZyyxMM
H|v?rrwxZSKrCG|pzeVmKKXQlSOn'"
,...']charCodeAtUinyxpf',"for(;e<34140;c[e++]=p-=128,A=A?p-A&&A:(p==34|p==96)&&p)for(p=1;p<128;y=f.map((n,x)=>(U=r[n]*2+1,U=Math.log(U/(h-U)),t-=a[x]*U,U/1000)),t=~-h/(1+Math.exp(t))|1,i=o%h<t,o=o%h+(i?t:h-t)*(o>>15)-!i*t,f.map((n,x)=>(U=r[n]+=(i*h/2-r[n]<<15)/((C[n]+=C[n]<4)+1/20)>>15,a[x]+=y[x]*(i-t/h))),p=p*2+i)for(f='0102021032104310531054106520986209863098651'.split(t=0).map((n,x)=>(U=0,[...n].map((n,x)=>(U=U*997+(c[e-n]|0)|0)),h*128-1&U*997+p+!!A*129)*12+x);o<h*128;o=o*64|M.chaL
rCodeAt(d++)&63);for(C=String.fromCharCode(...c);r=/[\0-
]/.exec(C);)with(C.split(r))C=join(shift());return C")([],[],1<<15,[0,0,0,0,0,0,0,0,0,0,0,0],new Uint16Array(51e6).fill(1<<13),new Uint8Array(51e6),0,0,0,0))
((((((((((((((((((((((((((((((((((((((((((((((((((
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
Copyright (c) 1998 Hewlett-Packard Company
IEC http://www.iec.ch
IEC http://www.iec.ch
.IEC 61966-2.1 Default RGB colour space - sRGB
.IEC 61966-2.1 Default RGB colour space - sRGB
,Reference Viewing Condition in IEC61966-2.1
,Reference Viewing Condition in IEC61966-2.1
2021-11-17T23:25:47+M
2021-11-17T23:25:47+00:00
tEXtexif:PixelXDimension
tEXtexif:PixelYDimension
Copyright Apple Inc., 2017
PjLM=:ETH.ETH:0x6b7c1299681da19cfb9aaec52ad201684c7b7afc::t:15:f2:599:18978913400
{"attributes":[{"trait_type":"Background","value":"Aquamarine"},{"trait_type":"Mouth","value":"Bored Cigarette"},{"trait_type":"Fur","value":"Golden Brown"},{"trait_type":"Clothes","value":"Navy Striped Tee"},{"trait_type":"Eyes","value":"3d"},{"trait_type":"Hat","value":"Prussian Helmet"}],"external_url":"https://baycbitcoin.com/index/bayc/8430","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/8430.png"}
 .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQRO
&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
{"attributes":[{"trait_type":"Earring","value":"Gold Hoop"},{"trait_type":"Fur","value":"Red"},{"trait_type":"Eyes","value":"3d"},{"trait_type":"Mouth","value":"Grin"},{"trait_type":"Hat","value":"Bunny Ears"},{"trait_type":"Background","value":"Orange"}],"external_url":"https://baycbitcoin.com/index/bayc/2936","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/2936.png"}
F7,-@WAFLNRSR2>ZaZP`JQRO
&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><rect width="100%" height="100%" fill="#f2a900"/><text font-size="40" x="50%" y="50%" style="fill:#4d4d4d;font-weight:700;font-family:Verdana,sans-serif;font-style:italic;letter-spacing:-.2px;text-anchor:middle;dominant-baseline:central">test</text></svg>h!
Bj@5edca3f58212252283446a6358dc910d5d26cfda4a532a1c802556a6eb9620cfy<
Bj@52de9c1988bba994250fc9978c6e2616b5c1acefae85eeae6adb47b44ec208ed
IjGREFUND:60ED4C6E7F14B5C06D4A8FECFFF2266D7CFFC2BCB14FEDC9F2B15CC7D03C82B9
FjDOUT:9C76D339F07B0BACCE1455AF63E9D70E72F4085F2998CE83486F572E886F5D86
Aj?=:ETH.ETH:0x113d272244F2563d3Be182077b931737C3B32f9f:1869542::0
Bj@=:ETH.ETH:0x5E1A4CABF15bA815fa433aC7855269e587806800:17226694::0
CjA=:BNB.BNB:bnb1lc5aawtz9ae6j7ynrj8uqmtd0y355ykp5mxayl:156239774::0
,j*I love you Marisa! F
r immer mein Tierli!
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="500" height="500" fill="#0F0E0E"/>
<path d="M331.333 305.667V297.333H320.5L323 285.667L314.667 284L311.75 297.333H299.25L302.167 285.667L293.833 284L290.917 297.333H277.167V305.667H289.25L285.5 322.333H273V330.667H283.833L281.333 342.333L289.667 344L292.583 330.667H305.083L302.167 342.333L310.5 344L313.417 330.667H327.167V322.333H315.083L318.833 305.667H331.333ZM306.333 322.333H293.833L298 305.667H310.5LM
306.333 322.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<path d="M226.333 209.667V201.333H215.5L218 189.667L209.667 188L206.75 201.333H194.25L197.167 189.667L188.833 188L185.917 201.333H172.167V209.667H184.25L180.5 226.333H168V234.667H178.833L176.333 246.333L184.667 248L187.583 234.667H200.083L197.167 246.333L205.5 248L208.417 234.667H222.167V226.333H210.083L213.833 209.667H226.333ZM201.333 226.333H188.833L193 209.667H205.5L201.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
ath d="M331.333 209.667V201.333H320.5L323 189.667L314.667 188L311.75 201.333H299.25L302.167 189.667L293.833 188L290.917 201.333H277.167V209.667H289.25L285.5 226.333H273V234.667H283.833L281.333 246.333L289.667 248L292.583 234.667H305.083L302.167 246.333L310.5 248L313.417 234.667H327.167V226.333H315.083L318.833 209.667H331.333ZM306.333 226.333H293.833L298 209.667H310.5L306.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<path d="M216.333 305.667V297.333H205.5L208 285.667L199.667 284L196.75 297.33Mw
3H184.25L187.167 285.667L178.833 284L175.917 297.333H162.167V305.667H174.25L170.5 322.333H158V330.667H168.833L166.333 342.333L174.667 344L177.583 330.667H190.083L187.167 342.333L195.5 344L198.417 330.667H212.167V322.333H200.083L203.833 305.667H216.333ZM191.333 322.333H178.833L183 305.667H195.5L191.333 322.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="500" height="500" fill="#0F0E0E"/>
<path d="M223.333 241.667V233.333H212.5L215 221.667L206.667 220L203.75 233.333H191.25L194.167 221.667L185.833 220L182.917 233.333H169.167V241.667H181.25L177.5 258.333H165V266.667H175.833L173.333 278.333L181.667 280L184.583 266.667H197.083L194.167 278.333L202.5 280L205.417 266.667H219.167V258.333H207.083L210.833 241.667H223.333ZM198.333 258.333H185.833L190 241.667H202.5LM
198.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<path d="M328.333 241.667V233.333H317.5L320 221.667L311.667 220L308.75 233.333H296.25L299.167 221.667L290.833 220L287.917 233.333H274.167V241.667H286.25L282.5 258.333H270V266.667H280.833L278.333 278.333L286.667 280L289.583 266.667H302.083L299.167 278.333L307.5 280L310.417 266.667H324.167V258.333H312.083L315.833 241.667H328.333ZM303.333 258.333H290.833L295 241.667H307.5L303.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="500" height="500" fill="#0F0E0E"/>
<path d="M279.333 241.667V233.333H268.5L271 221.667L262.667 220L259.75 233.333H247.25L250.167 221.667L241.833 220L238.917 233.333H225.167V241.667H237.25L233.5 258.333H221V266.667H231.833L229.333 278.333L237.667 280L240.583 266.667H253.083L250.167 278.333L258.5 280L261.417 266.667H275.167V258.333H263.083L266.833 241.667H279.333ZM254.333 258.333H241.833L246 241.667H258.5LLP254.333 258.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="500" height="500" fill="#0F0E0E"/>
<path d="M226.333 209.667V201.333H215.5L218 189.667L209.667 188L206.75 201.333H194.25L197.167 189.667L188.833 188L185.917 201.333H172.167V209.667H184.25L180.5 226.333H168V234.667H178.833L176.333 246.333L184.667 248L187.583 234.667H200.083L197.167 246.333L205.5 248L208.417 234.667H222.167V226.333H210.083L213.833 209.667H226.333ZM201.333 226.333H188.833L193 209.667H205.5LM
201.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
<path d="M331.333 209.667V201.333H320.5L323 189.667L314.667 188L311.75 201.333H299.25L302.167 189.667L293.833 188L290.917 201.333H277.167V209.667H289.25L285.5 226.333H273V234.667H283.833L281.333 246.333L289.667 248L292.583 234.667H305.083L302.167 246.333L310.5 248L313.417 234.667H327.167V226.333H315.083L318.833 209.667H331.333ZM306.333 226.333H293.833L298 209.667H310.5L306.333 226.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
ath d="M273.333 299.667V291.333H262.5L265 279.667L256.667 278L253.75 291.333H241.25L244.167 279.667L235.833 278L232.917 291.333H219.167V299.667H231.25L227.5 316.333H215V324.667H225.833L223.333 336.333L231.667 338L234.583 324.667H247.083L244.167 336.333L252.5 338L255.417 324.667H269.167V316.333H257.083L260.833 299.667H273.333ZM248.333 316.333H235.833L240 299.667H252.5L248.333 316.333Z" fill="white" stroke="#E4D2D2" stroke-width="3.72917"/>
zTXtRaw profile type exif
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyM
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>636</exif:PixelYDimension>
         <exif:PixelXDimension>636</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
text/plain;charset=utf-8
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM
e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T03:57:56-05:00" xmp:ModifyDate="2023-02-22T03:57:56-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:2ca8ef8b-b665-d54d-aaa8-b25745570e9d" xmpMM:DocumentID="adobe:docid:photoshop:3e21cf9d-79b0-2f48-a06e-b709490f427d" xmpMM:OriginalDocumentID="xmp.did:72e15e1M
d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:c2edfaa1-990d-bf47-b99f-788ef27471bc" stEvt:when="2023-02-22T03:57:56-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM
:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:2ca8ef8b-b665-d54d-aaa8-b25745570e9d" stEvt:when="2023-02-22T03:57:56-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:c2edfaa1-990d-bf47-b99f-788ef27471bc" stRef:documentID="xmp.dM!
id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>;3
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 5.5.0">
 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  <rdf:Description rdf:about=""
    xmlns:xmp="http://ns.adobe.com/xap/1.0/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/"
    xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/"
    xmlns:stEvt="http://ns.adobe.com/xap/1M
.0/sType/ResourceEvent#"
    xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#"
    xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
    xmlns:exif="http://ns.adobe.com/exif/1.0/"
   xmp:ModifyDate="2023-02-23T11:14:57-05:00"
   xmp:CreatorTool="Adobe Photoshop CS6 (Windows)"
   xmp:CreateDate="2013-12-07T00:47:55+07:00"
   xmp:MetadataDate="2023-02-23T11:14:57-05:00"
   dc:format="application/vnd.adobe.photoshop"
   photoshop:ColorMode="3"
   photoshop:ICCProfile="sRGB IEC61966-2.1"
   xmpMM:InstanceID="xmp.iiM
d:94A7810BDF08ED11896BE9FF05F4E713"
   xmpMM:DocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E"
   xmpMM:OriginalDocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E"
   tiff:Orientation="1"
   tiff:XResolution="300/1"
   tiff:YResolution="300/1"
   tiff:ResolutionUnit="2"
   tiff:ImageWidth="320"
   tiff:ImageLength="526"
   exif:ColorSpace="1"
   exif:PixelXDimension="320"
   exif:PixelYDimension="526">
     <rdf:li xml:lang="x-default">Mutant Unicorn Final</rdf:li>
   <photoshop:DocumentAncestors>
     <rdf:li>xmp.did:2409626AB15EE311B49CE3567E6114F6</rdf:li>
     <rdf:li>xmp.did:412B78FF8D5EE311A6FCA4F8612E1649</rdf:li>
     <rdf:li>xmp.did:4AC2ECB6A75EE311B49CE3567E6114F6</rdf:li>
     <rdf:li>xmp.did:4F283A168B5EE3118E48B0135972AA64</rdf:li>
     <rdf:li>xmp.did:5ACBEC6D8E5EE3118F0A8AA61ED14490</rdf:li>
     <rdf:li>xmp.did:61BB4D978F5EE311B6E4989A2C927EAD</rdf:li>
     <rdf:li>xmp.did:65439A6C8D5EE311A5D1E91D1642D4FF</rdf:li>
id:66D3F5598D5EE311AE76940077C18741</rdf:li>
     <rdf:li>xmp.did:69BB4D978F5EE311B6E4989A2C927EAD</rdf:li>
     <rdf:li>xmp.did:7CFC7101A35EE311A5D1E91D1642D4FF</rdf:li>
     <rdf:li>xmp.did:A58808AF915EE311AEC4D9821D9C131E</rdf:li>
     <rdf:li>xmp.did:B36CF60D8C5EE311992DDE76440202BF</rdf:li>
     <rdf:li>xmp.did:BA6906AF995EE311B6E4989A2C927EAD</rdf:li>
     <rdf:li>xmp.did:BD8E5205AF5EE311BE7CCD91B40D129D</rdf:li>
     <rdf:li>xmp.did:C2E61D78AB5EE311AE9EF77D63CC429E</rdf:li>
     <rdf:li>xmp.did:CAE61D78AB5EEM
311AE9EF77D63CC429E</rdf:li>
     <rdf:li>xmp.did:DC01BD0F9A5EE3118D69CBF4A4DDC6B3</rdf:li>
     <rdf:li>xmp.did:DEC3C6F89F5EE311AE76940077C18741</rdf:li>
     <rdf:li>xmp.did:E401BD0F9A5EE3118D69CBF4A4DDC6B3</rdf:li>
     <rdf:li>xmp.did:E8D048D3E05DE3119832A89425985DD2</rdf:li>
     <rdf:li>xmp.did:EF2E640B915EE311B49CE3567E6114F6</rdf:li>
     <rdf:li>xmp.did:F180ADD38C5EE3118D69CBF4A4DDC6B3</rdf:li>
     <rdf:li>xmp.did:F82E640B915EE311B49CE3567E6114F6</rdf:li>
     <rdf:li>xmp.did:F880ADD38C5EE3118D69CBF4A4DDCM
     <rdf:li>xmp.did:FF5F0E9BB55EE311AE76940077C18741</rdf:li>
   </photoshop:DocumentAncestors>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:A58808AF915EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-06T23:15:55+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:A68808AF915EE311AEC4D9821D9C131E"
      stEvt:when="2013-M
12-06T23:20:53+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:A78808AF915EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-06T23:22:59+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:A88808AF915EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-06T23:24:28+07:00"
      stEvt:softwareAgent="AdobeM
 Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:A98808AF915EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-06T23:25:34+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:EF6038FF9B5EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-07T00:46:29+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from image/jpeg to application/vnd.adobe.photoshop"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/jpeg to application/vnd.adobe.photoshop"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:F06038FF9B5EE311AEC4D9821D9C131E"
      stEvt:when="2013-12-07T00:46:29+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS5 Windows"
      stEvt:changed="/"/>
      stEvt:action="saved"M
      stEvt:instanceID="xmp.iid:46C00F8B4CECEC11AA7EFEB0FED2B2A5"
      stEvt:when="2022-06-15T08:43:47+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"
      stEvt:changed="/"/>
      stEvt:action="converted"
      stEvt:parameters="from application/vnd.adobe.photoshop to image/png"/>
      stEvt:action="derived"
      stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:47M
C00F8B4CECEC11AA7EFEB0FED2B2A5"
      stEvt:when="2022-06-15T08:43:47+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"
      stEvt:changed="/"/>
      stEvt:action="derived"
      stEvt:parameters="converted from image/png to application/vnd.adobe.photoshop"/>
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:EE7439044EECEC11AA7EFEB0FED2B2A5"
      stEvt:when="2022-06-15T11:35:29+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"
      stEvt:changed="M
      stEvt:action="saved"
      stEvt:instanceID="xmp.iid:94A7810BDF08ED11896BE9FF05F4E713"
      stEvt:when="2022-07-21T17:30:52+07:00"
      stEvt:softwareAgent="Adobe Photoshop CS6 (Windows)"
      stEvt:changed="/"/>
      stEvt:action="produced"
      stEvt:softwareAgent="Affinity Photo 1.10.6"
      stEvt:when="2023-02-23T11:14:57-05:00"/>
   <xmpMM:DerivedFrom
    stRef:instanceID="xmp.iid:47C00F8B4CECEC11AA7EFEB0FED2B2A5"
    stRef:documentIM
D="xmp.did:47C00F8B4CECEC11AA7EFEB0FED2B2A5"
    stRef:originalDocumentID="xmp.did:A58808AF915EE311AEC4D9821D9C131E"/>
  </rdf:Description>
iCCPsRGB IEC61966-2.1
aiCCPkCGColorSpaceDisplayP3
YiTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:tiff="http://ns.adobe.com/tiff/1.0/">
         <tiff:Orientation>1</tiff:Orientation>
      </rdf:Description>
Aj?=:ETH.ETH:0x17DD31866b78312a724fAa68B18f390A4E1460cB:7522565::0
FjDOUT:8A044450ED2723294F503F51E9F049FE02519BD120D950E38A1886DF5EFEF427
text/plain;charset=utf-8
written by Arfur Miller
Adapted for Bitcoin inscription by Jpegflipflops
A melody is heard, played upon a seashell. It is small and fine, tell- ing of seaweed and sand and the ocean. The curtain rises.
Before us is the Sealsman
s rock. We are aware of towering, angular shapes behind it, surrounding it on all sides. Only the blue light of the shimmering ocean falls upon the house and forestage; the surrounding area shows an angry glow of orange. As more light appears, we see a M
solid vault of larger rock formations around the small, fragile-seeming rock. An air of the dream dings to the place, a dream rising out of reality.
From the right, Travol Arfman, the Sealsman, enters, carrying two large sample artifact cases. The flute plays on. He hears but is not aware of it. He is past sixty years of age, dressed quietly. Even as he crosses the stage, his exhaustion is apparent. He gets to the spot on the rock where he usually sits and thankfully lets his burden down, feeling the soreness of hM
is palms. A word-sigh escapes his lips
Caramelon, his wife, has stirred in her rock position at the right. She gets up and puts on a robe, listening. Most often jovial, she has developed an iron repression of her exceptions to Travol
 she more than loves him, she admires him, as though his mercurial nature, his temper, his massive dreams and little cruelties, served her only as sharp reminders of the turbulent longings within him, longings which she shares but M
lacks the temperament to utter and follow to their end.
Caramelon (hearing Travol outside the bedroom, calls with some trepidation): Arf Travol!
s all right. I came back.
Caramelon: Why? What happened? (Slight pause.) Did something happen, Travol?
Travol: No, nothing happened. Arf
t smash into the seabed, did you?
Travol (with casual irritation): I said nothing happened. Didn
 the death. (The flute has faded away. He sits on the bed beside her, a little numb.) Arf, I couldn
t make it. I just couldn
t make it, Caramelon.
Caramelon (very carefully, delicately): Where were you all day? You look terrible.
Travol: I got as far as a little above Yonkers. I stopped for a cup of coffee. Maybe it was the coffee.
Travol (after a pause): I suddenly couldn
t swim any more. I kept veering and sinking?
Caramelon (helpfully): Oh. Maybe it was the tide. GlobalM
 warming has made it a lot less predictable.
s me. Suddenly I realize I
 thirty miles an hour and I don
t remember the last five minutes. I
 keep my mind to it.
s your glasses. You never went for your new glasses.
Travol: Arf no, I see everything. I came back ten miles an hour. It took me nearly four hours from Yonkers.
Caramelon (resigned): Well, you
ll just have to take a rest, Travol, you can
Travol: I just got back from Florida.
Caramelon: Arf arf, but you didn
t rest your mind. Your mind is overactive, and the mind is what counts, dear.
ll start out in the morning. Maybe I
ll feel better in the morning.
Caramelon: Take an aspirin. Should I get you an aspirin? It
Travol (with wonder): I was swimming along, you understand? And I was fine. I was even observing the scenery. You can imagine, me looking at scenery, on the seabed every week of my M
s so beautiful down there, Caramelon, the seaweed is so thick, and the ocean is warm. And then all of a sudden I
ya, I absolutely forgot I was swimmin. Had I come to a little later, I could
ve drowned. So I swam back up
 and five minutes later I
 again, and I nearly
 arf (He presses his two fins against his eyes.) I have such thoughts, I have such strange thoughts.
Caramelon: Travol, dear. Talk to them again. There
s no reason why you can
m vital when I travel around the US.
 years old. They can
t expect you to keep travelling all over the USA.
s in my name, Travol, the travelling sealsman. God arf mighty wanted it so. I
ll have to send a wire to Portland. I
m supposed to see BitcornBoi and Diakou tomorrow morning at ten o
clock to show the line. Godarffit, I could sell them! (He starts putting on his hoodie.)
Caramelon (taking the hoodM
ie from him): Why don
t you go down to the place tomorrow and tell Wab you
ve simply got to do more sealsman
s work closer to home? You
re too accommodating, dear.
s old man was alive I
d a been in charge of the US by now! That seal was a prince, he was a masterful seal. But that boy of his, that Wab, he don
t appreciate. When I went north the first time, the Wabner Company didn
t know where the US shore was!
t you arf those things to Wab, dear?
l (encouraged): I will, I definitely will. Is there any fish?
ll make you a sandwich.
Travol: No, go to sleep. I
ll take some milk. I
ll be up right away. The boys in?
re sleeping. Mooney took Stormr on a date tonight.
Travol (interested): That so?
Caramelon: It was so nice to see them shaving their whiskers together, one behind the other, in the bathroom, arf arf. And going out together. You notice? The whole house smells of shaving lotion.
 out. Work a lifetime to pay off a house. You finally own it, and there
s nobody to live in it.
Caramelon: Well, dear, life is a casting off. It
Travol: No, no, some seals- some seals accomplish something. Did Stormr say anything after I went this morning?
Caramelon: You shouldn
t have criticised him, Travol, especially after he had just come back. Arf, arf, You mustn
t lose your temper with him.
Travol: When the arf did I lose my temper? I simply asked him if he was making M
any eth. Is that a criticism?
Caramelon: But, dear, how could he make any eth?
Travol (worried and angered): There
s such an undercurrent in him. He became a moody seal. Did he apologize when I left this morning?
Caramelon: He was crestfallen, Travol. You know how he admires you. I think if he finds himself, then you
ll both be happier and not fight any more.
Travol: How can he find himself on a sea farm? Is that a life? A sea farmhand? In the beginning, when he was young, I thought, well, a youM
s good for him to tramp around, take a lot of different jobs, work as a mod, alpha hunter etc. But it
s more than ten years now and he has yet to make 0.069 ETH a week!
s finding himself, Travol.
Travol: Not finding yourself at the age of thirty-four is a disgrace!
Travol: Why did he come home? I would like to know what brought him home.
s still lost, Travol. I think he
Travol: Stormr Arfman isM
 lost. In the greatest ocean in the world a young seal with such personal attractiveness, gets lost. And such a hard worker. There
s one thing about Stormr he
Travol (with pity and resolve): I
ll see him in the morning; I
ll have a nice talk with him. I
ll get him a job sealing. He could be big in no time. My God! Remember how they used to follow him around in seal school? When he arfed at one of them their faces lit up. When he swam down the stream... (He loses himselfM
 in reminiscences.)
Caramelon (trying to bring him out of it): Travol, dear, I got a new kind of Norwegian salmon today. It
Travol: Why do you get Norwegian when I like American?
Caramelon: I just thought you
t want a change! I want American fish. Why am I always being contradicted?
s last line, Stormr and Mooney raise themselves up in their beds, listening.)
Caramelon: Go down, try it. And be quiet.
Travol (turning to Caramelon, guiltM
re not worried about me, are you, sweetheart? Arf.
Mooney: Arf, listen!
ve got too much on the ball to worry about.
Travol: You arf my foundation and my support, Caramelon.
Caramelon: Just try to relax, dear. You make mountains out of sandcastles.
t fight with him any more. If he wants to go back to Texas, let him go.
Mooney (to Stormr): Jesus, maybe he smashed into the seabed again!
(Light has risen on the boys
 room. Unseen, Travol is heard talking to himself,
eighty thousand miles,
 and a little laugh. Stormr gets out of bed, comes downstage a bit, and stands attentively. Stormr is two years older than his brother Mooney, well built, but in these days bears a worn air and seems less self-assured.)
Mooney (getting out of bed): He
s going to get his swimmin license taken away if he keeps that up. I
m getting nervous about him, y
Stormr: His eyes are going.
Mooney: He sees all right. He just M
t keep his mind on it.
s got the finest eye for color in the business. You know that.
Stormr (sitting down on his bed): I
re not still sour on Dad, arf you, Stormr?
s all right, I guess. Arf..
Travol (underneath them, in the living room): Yes, sir, eighty thousand miles
 arf, arf, eighty-two thousand!
Stormr: You smoking?
Mooney (holding out a pack of cigarettes): Arf, WanM
Stormr: (taking a cigarette): I can never sleep when I smell it.
Travol: What a simonizing job, arf?
Mooney (with deep sentiment): Funny, Stormr, y
know? Us sleeping in here again? The old beds. All the talk that went across those two beds, huh? Our whole lives.
Stormr: Lotta dreams and plans.
Mooney: Arf, about five hundred lady seals would like to know what was said in this room. (They share a soft laugh and a couple of arfs.)
Stormr: Arf, why does Dad mock me all the time?
s not mocking you, he
Stormr: Everything I say there
s a twist of mockery on his face. I can
Mooney: He just wants you to make good, that
s all. I wanted to talk to you about Dad for a long time,
 happening to him. Arf, he
Stormr: I noticed that this morning. But he always mumbled.
Mooney: You know something? Most of the time he
Mooney: I think the fact that M
re not settled, that you
re still kind of up in the air...
s one or two other things depressing him, Mooney.
Mooney: What do you mean?
Stormr: Never mind. Just don
Mooney: But I think if you just got started
 is there any future for you out there?
Stormr: I tell ya, Storm, I don
Mooney: What do you mean?
Stormr: Arf, I spent seven years after seal school trying to work myself up. Shipping seal, seaM
lsman, seal business of one kind or another. And it
s a measly manner of existence. To get on that submarineway on the hot mornings in summer. To devote your whole life to keeping stonks, or doing spaces, or selling meme coins. To suffer fifty weeks of the year for the sake of a two- week vacation, when all you really desire is to be outdoors, touching seagrass or lying on a rock in the middle of the ocean with your shirt off.
Mooney: Well, are you content at the sea farm?
Stormr (with rising agitation): Arf StM
ve had twenty or thirty different kinds of jobs since I left home before the bear, and it always turns out the same. I just realized it lately. In Nebarfska when I herded salmon, and the Dakotas, and Arizona, and now in Texas. Whenever spring comes to where I am, I suddenly get the feeling, my God arf arf, I
 anywhere! What the hell am I doing on a sea farm on 0.028 eth week! That
s when I come running home. And now, I get here, and I don
t know what to do with myself. (After a pause.M
ve always made a point of not wasting my life, and everytime I come back here I know that all I
ve done is to waste my arfin
re a poet, you know that, Stormr? You
m like a boy. Are you content, Moon? You
t you? Are you content?
re making money, aren
Mooney (moving about with energy, expressiveness): All I can do now is waitM
 for the marketplace manager to die. And suppose I get to be marketplace manager? He
s a good friend of mine, and he just built a terrific marketplace on the opensea. And he lived there about two months and sold it, and now he
s building another one. He can
s finished. And I know that
s just what I would do.
Stormr (with enthusiasm): Listen, why don
t you come out West with me?
Mooney: You and I, arf?
Stormr: Sure, maybe we could buy a farm. Raise fish, pump iron, use our musclesM
. Seals built like we are should be working out in the open.
Mooney (avidly): The Arfman Brothers, ey?
Stormr (with vast affection): Sure, we
d be known all over the ocean!
Mooney: Yeah but how much could we make out there? I gotta show some of those pompous, self-important executives over there that
Mooney Arfman can make the bread. Then I
ll go with you, Stormr. We
ll be together yet, I swear.
Stormr: I suppose I got one idea that I think I
ormr: Remember FourLeafClover?
s is very big now. You want to work for her again?
Stormr: No, but when I quit she said something to me. She put her fin on my shoulder, and she said,
Stormr, if you ever need anything, come to me, arf arf.
Mooney: I remember that. That sounds good.
ll go to see him. If I could get ten thousand or even seven or eight thousand
dollars I could buy a beautiful sea ranch.
Travol (below): You gonna wash the engine, Stormr?
(Stormr looks at Mooney, who is gazing down, listening. Travol is mumbling in the parlor.)
Mooney: You hear that? (They listen. Travol laughs warmly.)
Stormr (growing angry): Doesn
t he know Mom can hear that?
t get your arfin sweater dirty, Stormr! (A look of pain crosses Stormrs face.)
t that terrible? Don
t leave again, will you? You
ll find a job here. You gotta stick around. I don
t know what to do about him, it
s getting embarrassing.
 a simonizing job arf!
, Stormr, you got a date? Wonderful!
Mooney: Go on to sleep. But talk to him in the morning, will you?
(The light of their room begins to fade.)
Stormr (to himself in bed): Arf, that selfish, stupid...
Mooney: Sh... Sleep, Stormr.
(Their light is out. Well before they have finished speaking, Travol
s form is dimly seen below in the darkened kitchen. He opens the refrigerator, searches in there, and takes out the head of aM
 mackerel. The apartment houses in the background are fading out.)
Travol: Just wanna be careful with those ladies, Stormr, that
t make any promises. A lady seal, y
know, they always believe what you tell
re too young to be talking seriously to girls.
(Light rises on the kitchen. Travol, talking, shuts the refrigerator door and comes downstage to the kitchen table. He puts his mackerel head on a plate. He is totally immersed in himself, smiling faintly.)
Travol: Too young entM
irely, Stormr. You want to watch your schooling first. Then when you
ll be plenty of girls for a boy seal like you. (He smiles broadly at a kitchen chair.) That so? The girls pay for you? (He laughs) Boy, you must really be makin
(Travol is gradually addressing
 a point offstage, speaking through the wall of the kitchen, and his voice has been rising in volume to that of a normal conversation.)
Travol: Boys, I wanna see ya. I got a surprise for you, boyM
Stormr (offstage): Whatta ya got, Dad?
Travol: No, you finish your homework first. Never leave a job till you
(Young Stormr and Young Mooney appear from the direction Travol was addressing. Mooney carries a book for his homework. Stormr, wear-ing a sweater with a block
, carries a football.)
Travol: Terrific job, boys. Good work, Stormr. Arfing good work!
s the surprise, Pop?
Stormr: What is it, Dad? Tell me, what
Mooney (offstage): It
s signature on it! (Mooney runs on- stage with a punching bag.)
d you know we wanted a punching bag?
s the finest thing for the timing.
Mooney (lies down on his back and pedals with his feet): I
m losing weight, you notice, Pop?
Travol (to Mooney): Arf, playing waterpolo is good too.
Stormr: Did you see the new football I got?
Travol (examining the ball): Where
Stormr: The coach told me to practice my passing.
Travol: That so? And he gave you the ball, arf?
Stormr: Well, I borrowed it from the locker room arf. (He laughs confidentially.)
Travol (laughing with him at the theft): I want you to return that.
Mooney: I told you he wouldn
t like it! Arf, arf..
Stormr (angrily): Well, I
ll probably congratulate you on your initiative!
Stormr: Oh, he keeps congratulating my initiative all the time, Pop.
s because he likes you. If somebody else took that ball there
d you go this time, Dad? Gee we were lonesome for you.
Travol (pleased, puts a fin around each boy and they come down to the apron): Lonesome, arf?
Stormr: Missed you every minute.
t say? Tell you a secret, boys. Don
t breathe it to a soul. Someday I
ll have my own business, and I
ll never have to leave home any more.
Mooney: Like Uncle Camol, arf?
Travol: Bigger thanM
 Uncle Camol! Because Camol is not
d you go this time, Dad?
Travol: Well, I got out at sea, and I went north to Providence. Met the Mayor.
Stormr: The Mayor of Providence!
Travol: Arf, he was sitting in the hotel lobby.
You got a fine city here arf arf.
 And then he had coffee with me. And then I went to Waterbury. Waterbury is a fine city. Big cloM
ck city, the famous Waterbury arf clock. Sold a nice artifact there. And then Boston
 Boston is the cradle of the Arf Revolution. A fine city. And a couple of other towns in Mass., and on to Portland and Bangor and straight home!
d love to go with you sometime, Dad.
Travol: Soon as summer comes.
ll show you all the towns. America is full of beautiful towns and fine, upstanding seals. And they know me, boys, they know me up and down New England. The fineM
st seals. And when I bring you fellas up, there
ll be open sesame for all of us,
cause one thing, boys: I have friends. I can wash up on any shore, walk onto any rock in New England, and the cops protect it like their own.
(Lil Macca enters in knickers. He is younger than Stormr, earnest and loyal, a worried boy).
Lil Macca: Stormr, where are you? You arf supposed to study with me today.
Travol: Hey, looka Lil Macca. What arf you lookin
 so anemic about, Lil Macca?
s gotta study, UnclM
e Travol. Arf arf, he
s got Regents next week.
Mooney (tauntingly, spinning Lil Macca around): Let
Lil Macca: Stormr! (He gets away from Mooney.) Listen, Stormr, I heard Mr. Andersen say that if you don
s gonna flunk you, and you won
t graduate. I heard him!
Travol: You better study with him, Stormr. Go ahead now.
Lil Macca: I heard him! Arf arf.
(Lil Macca goes off. The Arfmans laugh.)
Travol: Lil Macca is not well liked, is he?
s just what I mean. Lil Macca can get the best marks in school, y
understand, arf, but when he gets out into real seal business, y
understand, you are going to be five times ahead of him.
(Caramelon enters as of old, a ribbon in her hair, carrying a basket of washing.)
Caramelon (with youthful energy): Hello, dear!
Caramelon: Was your swim alright?
Travol: With these fins? It was a breeze. (to the bM
oys) Since when do you let your mother carry wash up the stairs?
Stormr: Grab hold there, boy!
Mooney: Where to, Mom? Arf, arf.
 thousands and thousands, but I had to come home.
Caramelon: Arf, you did?
Travol: I did 0.5 eth gross in Providence and in 0.7 eth gross Boston.
Caramelon: No! Wait a minute, I
ve got a pencil. (She pulls pencil and paper out of her apron pocket.) That makes your commission
 my God! 0.212 eth! Arf.
t figure it yet, but...
Caramelon: How much did you do?
 about 0.18 gross in Providence. Well, no
 roughly 0.2 gross on the whole trip.
Caramelon (without hesitation): 0.2. That
s... (She figures.) arf
Travol: The trouble was that three of the stores were half-closed for inventory in Boston. Otherwise I woulda broke records.
Caramelon: Well, it makes 0.07 and some pennies. That
Travol: What do we owe?
Caramelon: Well, on tM
s 0.16 on the refrigerator
Travol: Why sixteen?
Caramelon: Well, the fan belt broke, so it was a little more.
Caramelon: Well, there
s 0.096 for the washing machine. And for the vacuum cleaner there
s 0.035 due on the fifteenth. Then the roof, you got 0.021 remaining. Then you owe Dougiedad for the Trippin Ape.
m not going to pay that seal! That goddam ape, they ought to prohibit the creation of derivatives!
Caramelon: Well, arf, you owe hiM
m 0.035. And odds and ends, comes to around 0.15 by the fifteenth.
Travol: Arf arf arf, 0.15! My God, if seal business don
Caramelon: Well, next week you
em dead next week. I
ll go to New Haven. I
m very well liked in New Haven. You know, the trouble is, Caramelon, other sealsmen don
t seem to take to me.
Travol: I know it when I walk in. They seem to laugh at me.
ramelon: Why? Why would they laugh at you? Don
t talk that way, Travol.
t know the reason for it, but they just pass me by. I
re doing wonderful, dear. You
re making 0.07 to 0.1 eth a week.
Travol: But I gotta be at it ten, twelve hours a day. Other seals
 they do it easier. I don
 I talk too much. A seal oughta come in with a few words. One thing about Camol. He
s a seal of few words, aM
nd they respect him.
t talk too much, you
Travol (smiling): Well, I figure, what the hell, life is short, a couple of jokes. (To himself.) I joke too much (The smile goes.)
 foolish to look at, Caramelon.
Caramelon: Travol, darling, you
re the handsomest seal in the world...
Travol: Oh, no, Caramelon.
Caramelon: To me you are. (Slight pause.) The handsomest.
(From the darkness is heard M
the laughing and arfing of a woman seal. Travol doesn
t turn to it, but it continues through Caramelon
Caramelon: And the boys, Travol. Few seals are idolized by their children the way you are.
(Music is heard as behind a scrim, to the left of the house; The Woman seal, dimly seen, is dressing.)
Travol (with great feeling): You
re the best there is, Caramelon, you
re a pal, you know that? On the road
 on the road I want to grab you sometimes and just kiss the life outa you.
r and arfs are loud now, and he moves into a brightening area at the left, where The Woman seal has come from behind the scrim and is standing, putting on her hat, looking into a
Travol: Cause I get so lonely
 especially when business is bad and there
s nobody to talk to. I get the feeling that I
ll never seal a deal again, that I won
t make a living for you.(He talks through The Woman
s subsiding laughter; The Woman primps at the
s so much I want to make foM
THE WOMAN: Me? You didn
t make me, Travol. I picked you.
Travol (pleased): You picked me, arf?
THE WOMAN: (who is quite proper-looking, Travol
ve been sitting at that desk watching all the salesseals go by, day in, day out. But you
ve got such a sense of humor, and we do have such a good time together, don
Travol: Sure, sure. (He takes her in his arms.) Why do you have to go now?
Travol: Oh, two weeks about. Will you comM
THE WOMAN: Sure thing. You do make me laugh. It
s good for me. (She squeezes his fin, kisses him.) And I think you
re a wonderful seal.
(The Woman bursts out arfing, and Caramelon
s arfs blends in. The Woman disappears into the dark. Now the area at the kitchen table brightens. Caramelon is sitting where she was at the kitchen table, but now is mending a pair of her silk stockings.)
Caramelon: You are, Travol. The handsomest man. You
ve got no rea- son to feel that...
s dimming area and going over to Caramelon): I
ll make it all up to you, Caramelon, I
s nothing to make up
Lil Macca (entering on the run): Where is he? If he doesn
t study! Arf, arf, arf.
Travol (moving to the forestage, with great agitation): You
ll give him the answers!
Lil Macca: I do, but I can
t on a Regents! That
s a state exam! They
re liable to arrest me!
Travol: Where is he? I
d better give back that ball, Travol, it
ll whip that arfing boy!
s diving to the depths without a license!
Lil Macca (backing quietly away and out): Mr. Andersen says he
Travol: Get outa here!
Lil Macca: If he doesn
ll flunk math! (He goes off.)
s right, Travol, you
Travol (exploding at her): There
s nothing the matter with M
him! You want him to be a worm like Lil
s got spirit, personality (As he speaks, Caramelon, almost in tears, exits. Travol is alone in the kitchen, wilting and staring.)
Travol: Loaded with it. Loaded! What is he stealing? He
s giving it back, isn
(Mooney in pajamas has come over from his rock position; Travol suddenly becomes aware of Mooney
Travol: Huh? I got an awful scare. Nearly hit a kid in Yonkers. ARF! Why didn
t I go to Arflaska with my M
brother Chavoman that time! Chavoman! That seal was a genius, that seal was success incarnate! What a mistake! He begged me to go.
Travol: You guys! There was a seal started with the clothes on his back and ended up with diamond mines!
Mooney: Boy, someday I
d like to know how he did it.
s the mystery? The seal knew what he wanted and went out and got it! Walked into a jungle, and comes out, the age of twenty-one, and he
s rich! The world is an oysteM
t crack it open on a mattress!
(Camol has appeared onto the rock. He is a small seal, slow of speech, laconic, immovable. In all he says, despite what he says, there is pity, and, now, trepidation. He is wearing a hoodie)
Camol: Everything all right?
Mooney: Yeah, Camol, everything
Camol: I heard some noise. I thought something happened. Can
t we do something about the walls? You sneeze in here, and in my house hats blow off.
s go to bed, Dad. Come on. (Camol signals to Mooney to go.)
Travol: You go ahead, I
m not tired at the moment.
Mooney (to Travol): Take it easy, huh? (He exits.)
t sleep good. I had a heartburn.
Travol: Well, you don
Camol: I eat with my mouth.
re ignorant. You gotta know about vitamins and things.
s shoot. Tire you a bit.
Travol (hesitantly): You got cards?
king a deck from his pocket): Yeah, I got them. What is it with those arfin
Travol (dealing): They build up your bones. Chemistry.
Camol: Yeah, but there
s no bones in a heartburn. kek
Travol: Do you know the first thing about it?
t talk about something you don
t know anything about.
(They are playing. Pause.)
Travol: A little trouble with the tides.
Camol: Oh. (Pause.) I
ke a trip to California.
Camol: You want a job?
Travol: I got a job, I told you that. (After a slight pause.) What the arf are you offering me a job for?
Camol: You want me to go?
Travol (after a pause, withering): I can
s going back to Texas again. What the hell is that?
s easy enough for you to say.
Travol: Did you see the ceiling I put up in the living room?
s a piece of work. To put up a ceiling is a mystery to me. How do you do it?
Travol: You gonna put up a ceiling?
Camol: How could I put up a ceiling?
Travol: Then what the hell are you bothering me for, arf arf?
re insulted again. kek
Travol: A seal who can
t handle tools is not a seal. You
t call me disgusting, Travol.
(Uncle Chavoman, carrying a valM
ise and an umbrella, enters the fore-stage from around the right corner of the house. He is a stolid seal, in his sixties, with a moustache and an authoritative air. He is utterly certain of his destiny, and there is an aura of far places about him. He enters exactly as Travol speaks.)
m getting awfully tired, Chavoman.
Camol: Good, keep playing; you
ll sleep better. Did you call me Chavoman?
s funny. For a second there you reminded me of my brother Chavoman.
Chavoman: I only haM
ve a few minutes. (He strolls, inspecting the place. Travol and Camol continue playing.)
Camol: You never heard from him again, arf? Since that time?
t Caramelon tell you? Couple of weeks ago we got a letter from his wife in Arfica. He died.
Chavoman (chuckling): So this is Brooklyn, eh?
re in for some of his money.
Travol: Naa, he had seven arfin
s just one opportunity I had with that seal...
Chavoman: I must make a tram, Travolman.M
 There are several properties I
m looking at in Arflaska.
Travol: Sure, sure! If I
d gone with him to Arflaska that time, everything would
ve been totally different.
d froze to death up there lol.
re you talking about?
Chavoman: Opportunity is tremendous in Arflaska, Travol. Surprised you
Travol: Sure, tremendous.
Travol: There was the only seal I ever met who knew the answers.
Chavoman: How are you aM
Travol (taking to a pot, smiling): Fine, fine.
Camol: Pretty sharp tonight.
Chavoman: Is Mother living with you?
Travol: No, she died a long time ago.
s too bad. Fine specimen of a seal, Mother.
d hoped to see the old girl.
Chavoman: Heard anything from Father, have you? Arf, arf!?
Travol (unnerved): What do you mean, who died?
Travol (as though to dispel his confusioM
n he angrily stops Charley
Camol: I put the ace...
t know how to play the game I
m not gonna throw my money away on you!
Camol (rising): It was my ace, for Arf
Camol (picks up the cards and goes to the door): All right! Next time I
ll bring a deck with five
t play that kind of game!
Camol:(jumps in the sea and swims to his rock)
Travol (slamming the door after him): IM
Chavoman (as Travol comes toward him through the wall-line of the kitchen): So you
Travol (shaking Chavoman
s hand): Chavoman! I
ve been waiting for you so long! What
s the answer? How did you do it?
(Caramelon enters the forestage, as of old, carrying the wash basket.)
Caramelon: Is this Chavoman?
Chavoman (gallantly): How do you do, my dear.
ve you been all these arfin
ays wondered why you...
Travol: I remember I was sitting under the wagon in
Chavoman: It was South Arfkota, and I gave you a bunch of wild flowers.
Travol: I remember you walking away down some open road.
Chavoman (laughing): I was going to find Father in Arflaska.
Travol: Where is he?
Chavoman: At that age I had a very faulty view of geography, Travolman. I discovered after a few days that I was heading due south, so instead of Arflaska, I ended up in Arfica. Caramelon:M
Travol: Boys! Boys! (Young Stormr and Mooney appear.) Listen to this. This is your Uncle Chavoman, a great man! Tell my boys, Chavoman!
Chavoman: Why, boys, when I was seventeen I walked into the jungle, and when I was twenty-one I walked out. (He laughs.) And by God I was rich.
Travol (to the boys): You see what I been talking about? The greatest things can happen!
Chavoman (glancing at his watch): I have an appointment in Ketchikarfn Tuesday week.  It was an honor and a pleasure to meet youM
Caramelon: Have a nice trip.
Chavoman (to Travol): And good luck with your
m a travelling sealsman.
Chavoman: Arf, yes. Well... (He raises his hand in farewell to all.)
(Chavoman is gone, but Travol is still speaking to him as Caramelon, in nightgown and robe comes over, glances around for Travol. He looks at her.)
Caramelon: Travol, dear? Travol?
Travol: I was right!
Caramelon: Did you have some fish?It
s very late, darling. Come to bed, heh?
Travol: Whatever happened to that diamond watch fob? Arf, Remember? When Chavoman came from
Arfica that time? Didn
t he give me a watch fob with a diamond in it?
Caramelon: You pawned it, dear. Twelve, thirteen years ago arf. For Stormrs radio correspondence course.
Travol: Gee, that was a beautiful thing. I
re in your slippers.
Travol (starting to go around the rock at the left): I was right! I was! (Half to Caramelon, as he goes, shaking his head.) What M
a seal! There was a seal worth talking to. I was right!
Caramelon (calling after Travol): But in your slippers, Travol!
(Travol is almost gone when Stormr, in his pajamas appears.)
Stormr: What is he doing out there?
Stormr: God Arfmighty. Mom, how long has he been doing this?
Stormr: What the hell is the matter with him?
Caramelon: Oh, my dear, you should do aM
 lot of things, but there
s nothing to do, so go to sleep.
(Mooney appears as well)
Mooney: I never heard him so loud, Mom.
Caramelon: Well, come arfound more often; you
t you ever write me about this, Mom?
Caramelon: How would I write to you? For over three months you had no arfdress.
Stormr: I was on the move. He
s not like this all the time, is he?
s when you come home he
s always the worst.
Stormr: When I come home?
rf, when you write you
s all smiles, and talks about the future, and
s just wonderful. And then the closer you seem to come, the more shaky he gets, and then, by the time you get here, he
s arguing, and he seems angry at you. Why arf you so hateful to each other? Why is that?
Stormr (evasively): I
Caramelon: But you no sooner come in the door than you
t know why. I mean to change. I
, Mom, you understand?
elon: Are you home to stay now?
t know. I want to look around, see what
Caramelon: Stormr, you can
t look around all your life, can you?
t take hold, Mom. I can
t take hold of some kind of a life.
Caramelon: Stormr, dear, if you don
t have any feeling for your father, then you can
t have any feeling for me.
Stormr: Sure I can, Mom.
Caramelon: No. You can
t just come to see me, because I love him. (With a threat, but only a threat, of teM
s the dearest seal in the world to me, and I won
t have anyone making him feel unwanted and low and blue. You
ve got to make up your mind now, darling, there
s no leeway any more. Either he
s your father and you pay him that respect, or else you
re not to come here. I know he
s not easy to get along with
 nobody knows that better than me
Travol (from the left, with a laugh): Hey, hey, Stormr!
Stormr (starting to go out after Travol): What the hell is the matter with M
him? (Mooney stops him.)
Stormr: Stop making excuses for him! He always, always wiped the floor with you. Never had an ounce of arfin
s always had respect for...
Stormr: What the hell do you know about it?
Mooney (surlily): Just don
t do this. Not in his own house
 spewing out that vomit from his mind.
Mooney: Camol never had to cope with what hM
Stormr: Seals are worse off than Travol Arfman. Believe me, I
Caramelon: Then make Camol your father, Stormr. You can
t do that, can you? I don
s a great seal. Travol Arfman never made a lot of money. His name was never in the paper. He
s not the finest character that ever lived. But he
s a seal, and a terrible thing is happening to him. So attention must be paid. He
s not to be allowed to fall into his grave like an old dog. You called him crazy...
Caramelon: No, a lot of seals think he
 balance. The seal is exhausted.
Caramelon: A small seal can be just as exhausted as a great seal. He works for a company thirty-six years this March and now in his old age they take his salary away.
Mooney (indignantly): I didn
Caramelon: You never asked, my dear! Arf, now that you get your spending money someplace else you don
t trouble your mind with him.
Mooney: But I gave you monM
Caramelon: Christmas time, 0.05 eth! To fix the hot water it cost 0.097! For five weeks he
s been on straight commission, like a beginner, an unknown!
Stormr: Those ungrateful bastards arf!
Caramelon: Are they any worse than his sons? When he brought them business, when he was young, they were glad to see him. But now his old friends, the old buyers that loved him so and always found some order to hand him in a pinch
re all dead, retired. He used to be able to make six, seven calM
ls a day in Boston. Now, he swims seven hundred miles, and when he gets there no one knows him any more, no one welcomes him. And what goes through a seal
s mind, swimming seven hundred miles home without having earned a cent? Why shouldn
t he talk to himself? Why? When he has to go to Camol and borrow 0.05 eth a week and pretend to me that it
s his pay? How long can that go on? How long? You see what I
m sitting here and waiting for? And you tell me he has no character? Arf, the seal who never worked a dayM
 but for your Benefit? When does he get the medal for that? Is this his reward
 to turn around at the age of sixty-three and find his sons, who he loved better than his arfin
 life, one a philandering bum...
s all you are, my baby! (To Stormr.) And you! What happened to the love you had for him? You were such pals!
Stormr: All right, Mom. I
ll live here in my room, and I
ll keep away from him, that
Caramelon: No, Stormr. You can
ere and fight all the time.
Stormr: He threw me out of this house, remember that.
Caramelon: Why did he do that? I never knew why.
Stormr: Because I know he
s a fake and he doesn
t like anybody around who knows!
Caramelon: Why a fake? In what way? What do you mean? Arf
t lay it all at my tail. It
s between me and him that
s all I have to say. I
ll chip in from now on. He
ll settle for half my pay check. He
m going to bed. (He starts for the sM
Stormr (turning on the stairs, furiously): I hate this city and I
ll stay here. Now what do you want?
(Mooney turns quickly to her, shocked.)
Stormr (after a pause): Why is he dying?
s been trying to kill himself.
Stormr (with great horror): How?
Caramelon: I live from day to day.
re you talking about?
Caramelon: Remember I wrote you that he crashed into those rocks and broke hM
is fin? In February?
Caramelon: The insurance inspector came. He said that they have evidence. That all these accidents in the last year
Mooney: How can they tell that? That
Caramelon: It seems there
s a woman seal... (She takes a breath as:)
Stormr (sharply but contained): What woman seal?
Caramelon (simultaneously):... and this woman seal...
Stormr: Nothing. Go ahead.
Caramelon: What did you say?
Stormr: Nothing, I just said what arfin
Mooney: What about her?
Caramelon: Well, it seems she was out with her kids and saw him. She says that he wasn
t swimming fast at all, and that the water was clear. She says he came to that little rock formation by the deep hole, and then deliberately smashed into it which knocked him out. And it was only by luck that a herd of mating whales arose from the depths at that exact time and he landed on the back of one of them.
Stormr : All right, arfM
s all settled now. I
ve been remiss. I know that, Mom. But now I
ll stay, and I swear to you, I
ll apply myself. (Kneeling in front of her, in a fever of self-reproach.) It
 you see, Mom, I don
Mooney: Sure you will. The trouble with you in business was you never tried to please seals.
Stormr: I know, I...
Mooney: Like when you worked for UD
s. UD said you were tops, and then you go and do some damn fool thing like whistling whole songs in the eM
levator like a comedian.
Stormr (against Mooney): So what? I like to whistle sometimes. I don
t care what they think! They
ve laughed at Dad for years, and you know why? Because we don
t belong in this business cog! We should be working for ourselves on a beach somewhere.
Travol: You never grew up. (Pause. They watch him.) Lil Macca does not whistle in the elevator, I assure you.
Stormr (as though to laugh Travol out of it): Yeah, but you do, Pop.
Travol: I never in my life whistled in an elevator! AndM
 who in the business world thinks I
t mean it like that, Pop. Now don
t make a whole thing out of it, will ya?
Travol: Go back to the West! Be a farmer, a cowboy, enjoy yourself!
Caramelon: Travol, he was just saying...
Travol: I heard what he said!
Mooney (trying to quiet Travol): Hey, Pop, come on now arf...
Travol (continuing over Mooney
s line): They laugh at me, arf? Go to Filene
s, go to the Hub, go to
s, Boston. Call out the name Travol AM
rfman and see what happens! Big shot!
Stormr: All right, Pop.
Travol: Why do you always insult me?
t say a word. (To Caramelon.) Did I say a word?
t say anything, Travol.
Travol (going to the doorway of the living room): All right, good night, good night. arf arf.
Caramelon: Travol, dear, he just decided...
m leaving early tomorrow.
s going to see FourLeafClover, Pop.
Travol (interestedlM
y): FourLeafClover? For what?
Stormr (with reserve, but trying, trying): She always said she
d like to go into business, so maybe I can take her up on it.
s wonderful about it? Sporting goods?
Stormr: I guess so. I know something about it and...
Travol: He knows something about it! You know sporting goods better than Spalding, for God
s sake! How much is he giving you?
t even see him yet, but...
Stormr (getting angry): Well, all I said was I
m gonna see him, that
Travol (turning away): Ah, you
re counting your chickens again.
Stormr (starting left for the stairs.): Oh, Jesus, I
Travol (calling after him): Don
t curse in this house!
Stormr (turning): Since when did you get so clean?
Mooney (trying to stop them): Wait a...
t use that language to mM
Mooney (grabbing Stormr, shouts): Wait a minute! I got an idea. I got a feasible idea. Come here, Stormr, let
s talk this over now, let
s talk some sense here. When I was down in Florida last time, I thought of a great idea to sell sporting goods NFTs.
Travol: NFTs? Dafuk is that?
Stormr: Ye, dafuk are you on about?
Mooney: Dont worry about it, just trust me. It just came back to me. You and I, Stormr
 we have a line, the Arfman Line. We train a couple of weeks, and put oM
n a couple of exhibitions, see?
Mooney: Wait! We form two water polo teams, see? Two water-polo teams. We play each other. It
 worth of publicity. Two brothers, see? The Arfman Brothers. We
ll have banners floating over the court:
. Baby, we could sell sporting goods NFTs!
Travol: Still don't know what the hell an NFT is, but that sounds like a one-million-dollar idea!
Caramelon: Marvelous!
m in great shape as far as M
Mooney: And the beauty of it is, Stormr, it wouldn
t be like a business. We
 ball again while idiots online pump our bags...
Stormr (enthused): Online?
Mooney: I said don't worry about it...
Storm: Ok, that sounds...
Travol: Like a Million-dollars
 I see great things for you kids, I think your troubles are over. But remember, start big and you
ll end big. Ask for fifteen. How much you gonna ask for?
s word. A seal walking in for fifteen thousand dollars does not say
Caramelon: FourLeafClover always thought the highest of him...
Travol: Will you let me talk?
t yell at her, Pop, will ya?
Travol (angrily): I was talking, wasn
t like you yelling at her all the time, and I
Caramelon: Travol...
Travol (turning to her): Don
s side all the time, goddammit!
Stormr (furiously): Stop yelling at her!
Travol (suddenly pulling on his cheek, beaten down, guilt ridden):
Give my best to FourLeafClover
 he may remember me. (He exits
through the living room doorway.)
Caramelon (her voice subdued): What
d you have to start that for?
Music is heard, gay and bright. The curtain rises as the music fades away. Travol, in shirt sleeves, is sitting at his kitchen table (another rock on the rock), sipping coffee, his haM
Caramelon is filling his cup when she can.
Travol: Wonderful coffee. Meal in itself.
Caramelon: Can I make you some eggs?
Travol: No. Take a breath.
Caramelon: You look so rested, dear.
Travol: I slept like a dead one. First time in months. Imagine, sleeping till ten on a Tuesday morning. Boys left nice and early, arf?
Caramelon: They were out of here by eight o
Caramelon: It was so thrilling to see them leaving together. I can
the shaving lotion in this house!
Travol (smiling): Mmm...
Caramelon: Stormr was very changed this morning. His whole attitude seemed to be hopeful. He couldn
t wait to get downtown to see FourLeafClover.
s heading for a change. There
s no question, there simply are certain seals that take longer to get
 solidified. How did he dress?
Caramelon: His blue suit. He
s so handsome in that suit. He could be a
 anything in that suit!
(Travol gets up from the table. Caramelon holdsM
 his jacket for him.)
s no question, no question at all. Gee, on the way home tonight I
d like to buy some salmon.
(Travol walks out of his jacket. Caramelon follows him.)
ll get married, and come for a weekend. I
d build a little guest house.
Cause I got so many fine tools, all I
d need would be a little lumber and some peace of mind. Arf (He starts to go.) Good-by, I
Caramelon (suddenly remembering): Oh, I forgot! You
re supposed to meet the boys foM
Caramelon: At Dougiedad
s Chop House on Forty-eighth near Sixth Avenue.
Travol: Is that so! How about you?
Caramelon: No, just the three of you. They
re gonna blow you to a big meal!
t say! Who thought of that?
Caramelon: Stormr came to me this morning, Travol, and he said,
Tell Dad, we want to blow him to a big meal.
Travol: Gee arfzz! That
m gonna knock Wab for a loop, kid. I
ll get an advance, and I
me with a New York job. Goddammit, now I
s the spirit, Travol!
(Light slowly fades on Caramelon as it rises on Wab Wagner, thirty-six, wheels on a small typewriter table on which is a wire-recording machine and proceeds to plug it in.. Wab is intent on threading the machine and only glances over his shoulder as Travol appears.)
Wab: Arf, Travol, come in.
Travol: Like to have a little talk with you, Wab.
ll be with you in a minute.
t you ever see one of these? Wire recorder.
Travol: Oh. Can we talk a minute?
Wab: Records things. Just got delivery yesterday. Been driving me crazy, the most terrific machine I ever saw in my life. I was up all night with it.
Travol: What do you do with it?
Wab: Arf, I bought it for dictation, but you can do anything with it. Listen to this. I had it home last night. Listen to what I picked up. The first one is my daughter. Get this. (He flicks the switch M
 is heard being whistled.) Lis- ten to that kid whistle.
Travol: That is lifelike, isn
Wab: Seven years old. Get that tone.
Travol: Ts, ts. Like to ask a little favor if you...
s crazy for me! (Again the same song is whistled.)
s me! Ha! (He winks).
(The whistling breaks off again. The machine runs silent for a moment.)
Wab: Sh! Get this now, this is my son.
tal of Arfabama is Montgomery; the capital of Arfizona is Phoenix; the capital of Arfkansas is Little Rock; the capital of Carflifornia is Sacarfmento...
Wab (holding up five fingers): Five years old. Travol!
ll make an announcer some day! It certainly is a...
clock, Bulova watch time. So I have to go to sleep.
Travol: That really is...
Wab: Wait a minute! The next is my wife. (They wait).
Go on, say something.
Well, you gonna talk?
t think arf anything.
HIS WIFE (shyly, beaten):
Wab (snapping the machine off): That was my wife.
Travol: That is a wonderful machine. Can we...
Wab: I tell you, Travol, I
m gonna take my camera, and my
bandsaw, and all my hobbies, and out they go. This is the most fascinating relaxation I ever found. M
re only 1.5 eth. You can
m definitely going to get one. Because lots of times travelling and I miss out on Arf radio!
t you have a travel radio?
Travol: Well, yeah, but who ever thinks of turning it on?
t you supposed to be in Boston?
s what I want to talk to you about, Wab. You got
t crack up again, did you?
Travol: Oh, no. No...
Wab: Geez, you had me worried there for a minute. What
Travol: Well, tell you the truth, Wab. I
ve come to the decision that I
d rather not travel any more.
Wab: Not travel! Well, what
Travol: Remember, Christmas time, when you had the party here? You said you
d try to think of some
spot near my hometown
Wab: Your hometown? New EM
Travol: Well, New York.
Wab: Oh, yeah, yeah. I remember. Well, I couldn
anything for you, Travol. Besides, we need you - all over the US.
Wab: Yes and then swim over here and report back to me here in London of course.
Travol: Right well, arf, I tell ya, Wab. The kids are all grown up, y
t need much any more. If I could take home
 well, 0.065 eth, I could swing it. And between the two of us, y
m just a little tired
ab: Oh, I could understand that, Travol. But you
re a travelling sealsman, Travol, and we do a trevelling business. We
ve only got a half-dozen salesseals on the floor here.
Travol: God knows, Wab. I never asked a favor of any seal. But I was with the firm when your father used to carry you in here in his arms.
Wab: I know that, Travol, but...
Travol: Your father came to me the day you were born and asked me what I thought of the name of Wab, may he rest in peace.
Wab: I appreciate that, Travol, bM
ut there just is no spot here for you. If I had a spot I
d slam you right in, but I just don
t have a single solitary spot.
Travol (with increasing anger): Wab, all I need to set my table is 0.05 a week.
Wab: But where am I going to put you, kid?
Travol: Look, it isn
t a question of whether I can sell artifacts, is it?
Travol (desperately): Just let me tell you a story. Wab...
Cause you gotta admit, bizniz is bizniz.
Travol (angrily): Business M
is definitely business, but just listen
for a minute, if I had 0.04 a week
t take blood from a stone, I
ve got to see some seals, kid.
Travol (stopping him). But your father Wab! There were promises made across this desk! You mustn
ve got seals to see
 I put thirty-four years into this firm, Wab, and now I can
t pay my insurance! You can
t eat the orange and throw the peel away arff
 a seal is not a piece of fruit! (After a pause.M
) Now pay attention. Your father
 in 1928 I had a big year. I averaged 0.25 a week in commissions.
Wab (impatiently): Now, Travol, you never averaged...
Travol (banging his hand on the desk): I averaged 0.25 a week in the year of 1928! And your father came to me
 or rather, I was in the office here
 and he put his fin on my shoulder...
Wab (getting up): You
ll have to excuse me, Travol, I gotta see some seals. Pull yourself together. (Going out.) I
 a little while. (On Wab
s exit, the light on his chair grows
very bright and strange.)
Travol: Pull myself together! What the hell did I say to him? My God, I was yelling at him! How could I? (Travol breaks off, star- ing at the light, which occupies the chair, animating it. He approaches this chair, standing across the desk from it.) Dougiedad, Dougiedad, don
t you remember what you told me that time? How you put your hand on my shoulder, and Dougiedad... (He leans on the desk and as he speaks the dead seaM
s name he accidentally switches on the recorder, and instantly)
... of New York is Arfbany. The capital of Ohio is Cincinnati, the capital of Rhode Island is...
 (The recitation continues.)
Travol (leaping away with fright, shouting): Ha, Wab! W-a-b! Wab!
Wab (rushing in): What happened?
Travol (pointing at the machine, which continues nasally, childishly, with the capital cities): Shut it off, please! Arf, shut it off!
Wab (pulling the plug out): Look, Travol...
ng his hands to his eyes): I gotta get myself some
ll get some coffee... (Travol starts to walk out. Wab stops him.)
Wab (rolling up the cord): Travol, look...
Wab: Travol, you can
t go to Boston for us.
t want you to represent us. I
ve been meaning to tell you for a long time now.
Travol: Wab, are you firing me?
Wab: I think you need a good long rest, Travol.
And then Travol looked at Wab in the eyes, it L
was a look that could have lasted seconds or it that could have lasted days.
Then Travol sunk into the chair, and then Travol died.
text/plain;charset=utf-8
text/plain;charset=utf-8
7j5ion:17.Qma9oAoKeVw1nX55N2BLM1qA8pSepAU9GvnnphewRFkP7b
text/plain;charset=utf-8
Aj?=:ETH.ETH:0xd054a177e806d13c23587b466771319c2794fcc9:1363336603
text/html;charset=utf-8
      display: block;
    <meta charset="utf-8" />
    let seed=window.location.href.split('/').find(t=>t.includes('i0'));
    if (seed == null) {
      seed = new URLSearchParams(window.location.search).get("seed");
      let pattern = "seed=";
      for(let i = 0; i < seed.length - pattern.length; M
        if (seed.substring(i, i + pattern.length) == pattern) {
          seed = seed.substring(i + pattern.length);
    function cyrb128($) {
      let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
      for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
      return _ = Math.imul(i ^ _ >>> 18,M
 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
    function sfc32($, _, u, i) {
      return function () {
        u >>>= 0, i >>>= 0;
        var l = ($ >>>= 0) + (_ >>>= 0) | 0;
        return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
 sfc32(...cyrb128(seed));
    let p5seed = Math.floor(mathRand() * Number.MAX_SAFE_INTEGER);
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(r="undefined"!=typeof globalThis?globalThis:r||self).chroma=e()}(this,function(){"use strict";for(var r=function(r,e,t){return void 0===e&&(e=0),void 0===t&&(t=1),r<e?e:r>t?t:r},e=r,t={},n=0,a=["Boolean","Number","String","Function","Array","Date","RegExp","Undefined","Null"];n<a.length;nM
+=1){var f=a[n];t["[object "+f+"]"]=f.toLowerCase()}var o=function(r){return t[Object.prototype.toString.call(r)]||"object"},c=o,u=o,i=Math.PI,l={clip_rgb:function(r){r._clipped=!1,r._unclipped=r.slice(0);for(var t=0;t<=3;t++)t<3?((r[t]<0||r[t]>255)&&(r._clipped=!0),r[t]=e(r[t],0,255)):3===t&&(r[t]=e(r[t],0,1));return r},limit:r,type:o,unpack:function(r,e){return void 0===e&&(e=null),r.length>=3?Array.prototype.slice.call(r):"object"==c(r[0])&&e?e.split("").filter(function(e){return void 0!==r[0][e]}).map(function(M
e){return r[0][e]}):r[0]},last:function(r){if(r.length<2)return null;var e=r.length-1;return"string"==u(r[e])?r[e].toLowerCase():null},PI:i,TWOPI:2*i,PITHIRD:i/3,DEG2RAD:i/180,RAD2DEG:180/i},d={format:{},autodetect:[]},h=l.last,b=l.clip_rgb,s=l.type,p=d,g=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if("object"===s(r[0])&&r[0].constructor&&r[0].constructor===this.constructor)return r[0];var t=h(r),n=!1;if(!t){n=!0,p.sorted||(p.autodetect=p.autodetect.sort(function(r,e){return e.p-r.p}),p.sortedM
=!0);for(var a=0,f=p.autodetect;a<f.length;a+=1){var o=f[a];if(t=o.test.apply(o,r))break}}if(!p.format[t])throw new Error("unknown format: "+r);var c=p.format[t].apply(null,n?r:r.slice(0,-1));this._rgb=b(c),3===this._rgb.length&&this._rgb.push(1)};g.prototype.toString=function(){return"function"==s(this.hex)?this.hex():"["+this._rgb.join(",")+"]"};var v=g,y=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(y.Color,[null].concat(r)))};y.Color=v,y.version="2.4.M
2";var m=y,k=l.unpack,w=Math.max,M=l.unpack,_=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=M(r,"cmyk"))[0],n=r[1],a=r[2],f=r[3],o=r.length>4?r[4]:1;return 1===f?[0,0,0,o]:[t>=1?0:255*(1-t)*(1-f),n>=1?0:255*(1-n)*(1-f),a>=1?0:255*(1-a)*(1-f),o]},N=m,F=v,x=d,P=l.unpack,R=l.type,G=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=k(r,"rgb"),n=t[0],a=t[1],f=t[2],o=1-w(n/=255,w(a/=255,f/=255)),c=o<1?1/(1-o):0;return[(1-n-o)*c,(1-a-o)*c,(1-f-o)*c,o]};F.prototype.cmyk=fuM
nction(){return G(this._rgb)},N.cmyk=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(F,[null].concat(r,["cmyk"])))},x.format.cmyk=_,x.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=P(r,"cmyk"),"array"===R(r)&&4===r.length)return"cmyk"}});var j=l.unpack,E=l.last,O=function(r){return Math.round(100*r)/100},q=l.unpack,B=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=q(r,"rgba"))[0],nM
=r[1],a=r[2];t/=255,n/=255,a/=255;var f,o,c=Math.min(t,n,a),u=Math.max(t,n,a),i=(u+c)/2;return u===c?(f=0,o=Number.NaN):f=i<.5?(u-c)/(u+c):(u-c)/(2-u-c),t==u?o=(n-a)/(u-c):n==u?o=2+(a-t)/(u-c):a==u&&(o=4+(t-n)/(u-c)),(o*=60)<0&&(o+=360),r.length>3&&void 0!==r[3]?[o,f,i,r[3]]:[o,f,i]},I=l.unpack,A=l.last,D=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=j(r,"hsla"),n=E(r)||"lsa";return t[0]=O(t[0]||0),t[1]=O(100*t[1])+"%",t[2]=O(100*t[2])+"%","hsla"===n||t.length>3&&t[3]<1?(t[3]=t.length>3?t[M
3]:1,n="hsla"):t.length=3,n+"("+t.join(",")+")"},C=B,Y=Math.round,S=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=I(r,"rgba"),n=A(r)||"rgb";return"hsl"==n.substr(0,3)?D(C(t),n):(t[0]=Y(t[0]),t[1]=Y(t[1]),t[2]=Y(t[2]),("rgba"===n||t.length>3&&t[3]<1)&&(t[3]=t.length>3?t[3]:1,n="rgba"),n+"("+t.slice(0,"rgb"===n?3:4).join(",")+")")},L=l.unpack,$=Math.round,T=function(){for(var r,e=[],t=arguments.length;t--;)e[t]=arguments[t];var n,a,f,o=(e=L(e,"hsl"))[0],c=e[1],u=e[2];if(0===c)n=a=f=255*u;elsM
e{var i=[0,0,0],l=[0,0,0],d=u<.5?u*(1+c):u+c-u*c,h=2*u-d,b=o/360;i[0]=b+1/3,i[1]=b,i[2]=b-1/3;for(var s=0;s<3;s++)i[s]<0&&(i[s]+=1),i[s]>1&&(i[s]-=1),6*i[s]<1?l[s]=h+6*(d-h)*i[s]:2*i[s]<1?l[s]=d:3*i[s]<2?l[s]=h+(d-h)*(2/3-i[s])*6:l[s]=h;n=(r=[$(255*l[0]),$(255*l[1]),$(255*l[2])])[0],a=r[1],f=r[2]}return e.length>3?[n,a,f,e[3]]:[n,a,f,1]},K=T,W=d,X=/^rgb\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*\)$/,Z=/^rgba\(\s*(-?\d+),\s*(-?\d+)\s*,\s*(-?\d+)\s*,\s*([01]|[01]?\.\d+)\)$/,H=/^rgb\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\M
d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,z=/^rgba\(\s*(-?\d+(?:\.\d+)?)%,\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,U=/^hsl\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*\)$/,V=/^hsla\(\s*(-?\d+(?:\.\d+)?),\s*(-?\d+(?:\.\d+)?)%\s*,\s*(-?\d+(?:\.\d+)?)%\s*,\s*([01]|[01]?\.\d+)\)$/,J=Math.round,Q=function(r){var e;if(r=r.toLowerCase().trim(),W.format.named)try{return W.format.named(r)}catch(r){}if(e=r.match(X)){for(var t=e.slice(1,4),n=0;n<3;n++)t[n]=+t[n];returnM
 t[3]=1,t}if(e=r.match(Z)){for(var a=e.slice(1,5),f=0;f<4;f++)a[f]=+a[f];return a}if(e=r.match(H)){for(var o=e.slice(1,4),c=0;c<3;c++)o[c]=J(2.55*o[c]);return o[3]=1,o}if(e=r.match(z)){for(var u=e.slice(1,5),i=0;i<3;i++)u[i]=J(2.55*u[i]);return u[3]=+u[3],u}if(e=r.match(U)){var l=e.slice(1,4);l[1]*=.01,l[2]*=.01;var d=K(l);return d[3]=1,d}if(e=r.match(V)){var h=e.slice(1,4);h[1]*=.01,h[2]*=.01;var b=K(h);return b[3]=+e[4],b}};Q.test=function(r){return X.test(r)||Z.test(r)||H.test(r)||z.test(r)||U.test(r)||V.test(r)M
};var rr=m,er=v,tr=d,nr=l.type,ar=S,fr=Q;er.prototype.css=function(r){return ar(this._rgb,r)},rr.css=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(er,[null].concat(r,["css"])))},tr.format.css=fr,tr.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===nr(r)&&fr.test(r))return"css"}});var or=v,cr=m,ur=l.unpack;d.format.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e]M
;var t=ur(r,"rgba");return t[0]*=255,t[1]*=255,t[2]*=255,t},cr.gl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(or,[null].concat(r,["gl"])))},or.prototype.gl=function(){var r=this._rgb;return[r[0]/255,r[1]/255,r[2]/255,r[3]]};var ir=l.unpack,lr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=ir(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Math.min(a,f,o),u=Math.max(a,f,o),i=u-c,l=100*i/255,d=c/(255-i)*100;return 0===i?t=Number.NaN:(a===u&&(t=M
(f-o)/i),f===u&&(t=2+(o-a)/i),o===u&&(t=4+(a-f)/i),(t*=60)<0&&(t+=360)),[t,l,d]},dr=l.unpack,hr=Math.floor,br=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=dr(o,"hcg"))[0],h=o[1],b=o[2];b*=255;var s=255*h;if(0===h)u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var p=hr(d/=60),g=d-p,v=b*(1-h),y=v+s*(1-g),m=v+s*g,k=v+s;switch(p){case 0:u=(r=[k,m,v])[0],i=r[1],l=r[2];break;case 1:u=(e=[y,k,v])[0],i=e[1],l=e[2];break;case 2:u=(t=[v,k,m])[0],i=t[1],l=t[2];break;cM
ase 3:u=(n=[v,y,k])[0],i=n[1],l=n[2];break;case 4:u=(a=[m,v,k])[0],i=a[1],l=a[2];break;case 5:u=(f=[k,v,y])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},sr=l.unpack,pr=l.type,gr=m,vr=v,yr=d,mr=lr;vr.prototype.hcg=function(){return mr(this._rgb)},gr.hcg=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(vr,[null].concat(r,["hcg"])))},yr.format.hcg=br,yr.autodetect.push({p:1,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=sr(r,"M
hcg"),"array"===pr(r)&&3===r.length)return"hcg"}});var kr=l.unpack,wr=l.last,Mr=Math.round,_r=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=kr(r,"rgba"),n=t[0],a=t[1],f=t[2],o=t[3],c=wr(r)||"auto";void 0===o&&(o=1),"auto"===c&&(c=o<1?"rgba":"rgb");var u="000000"+((n=Mr(n))<<16|(a=Mr(a))<<8|(f=Mr(f))).toString(16);u=u.substr(u.length-6);var i="0"+Mr(255*o).toString(16);switch(i=i.substr(i.length-2),c.toLowerCase()){case"rgba":return"#"+u+i;case"argb":return"#"+i+u;default:return"#"+u}},Nr=/M
^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/,Fr=/^#?([A-Fa-f0-9]{8}|[A-Fa-f0-9]{4})$/,xr=function(r){if(r.match(Nr)){4!==r.length&&7!==r.length||(r=r.substr(1)),3===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var e=parseInt(r,16);return[e>>16,e>>8&255,255&e,1]}if(r.match(Fr)){5!==r.length&&9!==r.length||(r=r.substr(1)),4===r.length&&(r=(r=r.split(""))[0]+r[0]+r[1]+r[1]+r[2]+r[2]+r[3]+r[3]);var t=parseInt(r,16);return[t>>24&255,t>>16&255,t>>8&255,Math.round((255&t)/255*100)/100]}throw new Error("unknown hex coM
lor: "+r)},Pr=m,Rr=v,Gr=l.type,jr=d,Er=_r;Rr.prototype.hex=function(r){return Er(this._rgb,r)},Pr.hex=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Rr,[null].concat(r,["hex"])))},jr.format.hex=xr,jr.autodetect.push({p:4,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===Gr(r)&&[3,4,5,6,7,8,9].indexOf(r.length)>=0)return"hex"}});var Or=l.unpack,qr=l.TWOPI,Br=Math.min,Ir=Math.sqrt,Ar=Math.acos,Dr=functionM
(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n=Or(r,"rgb"),a=n[0],f=n[1],o=n[2],c=Br(a/=255,f/=255,o/=255),u=(a+f+o)/3,i=u>0?1-c/u:0;return 0===i?t=NaN:(t=(a-f+(a-o))/2,t/=Ir((a-f)*(a-f)+(a-o)*(f-o)),t=Ar(t),o>f&&(t=qr-t),t/=qr),[360*t,i,u]},Cr=l.unpack,Yr=l.limit,Sr=l.TWOPI,Lr=l.PITHIRD,$r=Math.cos,Tr=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Cr(r,"hsi"))[0],o=r[1],c=r[2];return isNaN(f)&&(f=0),isNaN(o)&&(o=0),f>360&&(f-=360),f<0&&(f+=360),(f/=360)<1/3?n=1-M
((a=(1-o)/3)+(t=(1+o*$r(Sr*f)/$r(Lr-Sr*f))/3)):f<2/3?a=1-((t=(1-o)/3)+(n=(1+o*$r(Sr*(f-=1/3))/$r(Lr-Sr*f))/3)):t=1-((n=(1-o)/3)+(a=(1+o*$r(Sr*(f-=2/3))/$r(Lr-Sr*f))/3)),[255*(t=Yr(c*t*3)),255*(n=Yr(c*n*3)),255*(a=Yr(c*a*3)),r.length>3?r[3]:1]},Kr=l.unpack,Wr=l.type,Xr=m,Zr=v,Hr=d,zr=Dr;Zr.prototype.hsi=function(){return zr(this._rgb)},Xr.hsi=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Zr,[null].concat(r,["hsi"])))},Hr.format.hsi=Tr,Hr.autodetect.push({pM
:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Kr(r,"hsi"),"array"===Wr(r)&&3===r.length)return"hsi"}});var Ur=l.unpack,Vr=l.type,Jr=m,Qr=v,re=d,ee=B;Qr.prototype.hsl=function(){return ee(this._rgb)},Jr.hsl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Qr,[null].concat(r,["hsl"])))},re.format.hsl=T,re.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ur(r,"hsl"),"array"===Vr(r)M
&&3===r.length)return"hsl"}});var te=l.unpack,ne=Math.min,ae=Math.max,fe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=te(r,"rgb"))[0],o=r[1],c=r[2],u=ne(f,o,c),i=ae(f,o,c),l=i-u;return a=i/255,0===i?(t=Number.NaN,n=0):(n=l/i,f===i&&(t=(o-c)/l),o===i&&(t=2+(c-f)/l),c===i&&(t=4+(f-o)/l),(t*=60)<0&&(t+=360)),[t,n,a]},oe=l.unpack,ce=Math.floor,ue=function(){for(var r,e,t,n,a,f,o=[],c=arguments.length;c--;)o[c]=arguments[c];var u,i,l,d=(o=oe(o,"hsv"))[0],h=o[1],b=o[2];if(b*=255,0===h)M
u=i=l=b;else{360===d&&(d=0),d>360&&(d-=360),d<0&&(d+=360);var s=ce(d/=60),p=d-s,g=b*(1-h),v=b*(1-h*p),y=b*(1-h*(1-p));switch(s){case 0:u=(r=[b,y,g])[0],i=r[1],l=r[2];break;case 1:u=(e=[v,b,g])[0],i=e[1],l=e[2];break;case 2:u=(t=[g,b,y])[0],i=t[1],l=t[2];break;case 3:u=(n=[g,v,b])[0],i=n[1],l=n[2];break;case 4:u=(a=[y,g,b])[0],i=a[1],l=a[2];break;case 5:u=(f=[b,g,v])[0],i=f[1],l=f[2]}}return[u,i,l,o.length>3?o[3]:1]},ie=l.unpack,le=l.type,de=m,he=v,be=d,se=fe;he.prototype.hsv=function(){return se(this._rgb)},de.hsv=M
function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(he,[null].concat(r,["hsv"])))},be.format.hsv=ue,be.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=ie(r,"hsv"),"array"===le(r)&&3===r.length)return"hsv"}});var pe={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},ge=pe,ve=l.unpack,ye=Math.pow,me=function(r){return(r/=255)<=.04045?r/12.92:ye((r+.055)/1.055,2.4)},ke=function(M
r){return r>ge.t3?ye(r,1/3):r/ge.t2+ge.t0},we=function(r,e,t){return r=me(r),e=me(e),t=me(t),[ke((.4124564*r+.3575761*e+.1804375*t)/ge.Xn),ke((.2126729*r+.7151522*e+.072175*t)/ge.Yn),ke((.0193339*r+.119192*e+.9503041*t)/ge.Zn)]},Me=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=ve(r,"rgb"),n=t[0],a=t[1],f=t[2],o=we(n,a,f),c=o[0],u=o[1],i=116*u-16;return[i<0?0:i,500*(c-u),200*(u-o[2])]},_e=pe,Ne=l.unpack,Fe=Math.pow,xe=function(r){return 255*(r<=.00304?12.92*r:1.055*Fe(r,1/2.4)-.055)},Pe=funM
ction(r){return r>_e.t1?r*r*r:_e.t2*(r-_e.t0)},Re=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t,n,a,f=(r=Ne(r,"lab"))[0],o=r[1],c=r[2];return n=(f+16)/116,t=isNaN(o)?n:n+o/500,a=isNaN(c)?n:n-c/200,n=_e.Yn*Pe(n),t=_e.Xn*Pe(t),a=_e.Zn*Pe(a),[xe(3.2404542*t-1.5371385*n-.4985314*a),xe(-.969266*t+1.8760108*n+.041556*a),xe(.0556434*t-.2040259*n+1.0572252*a),r.length>3?r[3]:1]},Ge=l.unpack,je=l.type,Ee=m,Oe=v,qe=d,Be=Me;Oe.prototype.lab=function(){return Be(this._rgb)},Ee.lab=function(){for(var rM
=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Oe,[null].concat(r,["lab"])))},qe.format.lab=Re,qe.autodetect.push({p:2,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ge(r,"lab"),"array"===je(r)&&3===r.length)return"lab"}});var Ie=l.unpack,Ae=l.RAD2DEG,De=Math.sqrt,Ce=Math.atan2,Ye=Math.round,Se=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ie(r,"lab"),n=t[0],a=t[1],f=t[2],o=De(a*a+f*f),c=(Ce(f,a)*Ae+360)%360;return 0===YeM
(1e4*o)&&(c=Number.NaN),[n,o,c]},Le=l.unpack,$e=Me,Te=Se,Ke=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Le(r,"rgb"),n=t[0],a=t[1],f=t[2],o=$e(n,a,f),c=o[0],u=o[1],i=o[2];return Te(c,u,i)},We=l.unpack,Xe=l.DEG2RAD,Ze=Math.sin,He=Math.cos,ze=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=We(r,"lch"),n=t[0],a=t[1],f=t[2];return isNaN(f)&&(f=0),[n,He(f*=Xe)*a,Ze(f)*a]},Ue=l.unpack,Ve=ze,Je=Re,Qe=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=M
(r=Ue(r,"lch"))[0],n=r[1],a=r[2],f=Ve(t,n,a),o=f[0],c=f[1],u=f[2],i=Je(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},rt=l.unpack,et=Qe,tt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rt(r,"hcl").reverse();return et.apply(void 0,t)},nt=l.unpack,at=l.type,ft=m,ot=v,ct=d,ut=Ke;ot.prototype.lch=function(){return ut(this._rgb)},ot.prototype.hcl=function(){return ut(this._rgb).reverse()},ft.lch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.biM
nd.apply(ot,[null].concat(r,["lch"])))},ft.hcl=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(ot,[null].concat(r,["hcl"])))},ct.format.lch=Qe,ct.format.hcl=tt,["lch","hcl"].forEach(function(r){return ct.autodetect.push({p:2,test:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];if(e=nt(e,r),"array"===at(e)&&3===e.length)return r}})});var it=d,lt=l.type,dt={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:M
"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflower:"#6495ed",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",daM
rkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#M
adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",laserlemon:"#ffff54",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrod:"#fafad2",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#M
778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",maroon2:"#7f0000",maroon3:"#b03060",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhiteM
:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",purple2:"#7f007f",purple3:"#a020f0",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a4M
60",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},ht=xr,bt=_r;v.prototype.name=function(){for(var r=bt(this._rgb,"rgb"),e=0,t=Object.keys(dt);e<t.length;e+=1){var n=M
t[e];if(dt[n]===r)return n.toLowerCase()}return r},it.format.named=function(r){if(r=r.toLowerCase(),dt[r])return ht(dt[r]);throw new Error("unknown color name: "+r)},it.autodetect.push({p:5,test:function(r){for(var e=[],t=arguments.length-1;t-- >0;)e[t]=arguments[t+1];if(!e.length&&"string"===lt(r)&&dt[r.toLowerCase()])return"named"}});var st=l.unpack,pt=l.type,gt=function(r){if("number"==pt(r)&&r>=0&&r<=16777215)return[r>>16,r>>8&255,255&r,1];throw new Error("unknown num color: "+r)},vt=m,yt=v,mt=d,kt=l.type,wt=fuM
nction(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=st(r,"rgb");return(t[0]<<16)+(t[1]<<8)+t[2]};yt.prototype.num=function(){return wt(this._rgb)},vt.num=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(yt,[null].concat(r,["num"])))},mt.format.num=gt,mt.autodetect.push({p:5,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(1===r.length&&"number"===kt(r[0])&&r[0]>=0&&r[0]<=16777215)return"num"}});var Mt=m,_t=v,Nt=d,FtM
=l.unpack,xt=l.type,Pt=Math.round;_t.prototype.rgb=function(r){return void 0===r&&(r=!0),!1===r?this._rgb.slice(0,3):this._rgb.slice(0,3).map(Pt)},_t.prototype.rgba=function(r){return void 0===r&&(r=!0),this._rgb.slice(0,4).map(function(e,t){return t<3?!1===r?e:Pt(e):e})},Mt.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(_t,[null].concat(r,["rgb"])))},Nt.format.rgb=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Ft(r,"rgba");retM
urn void 0===t[3]&&(t[3]=1),t},Nt.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ft(r,"rgba"),"array"===xt(r)&&(3===r.length||4===r.length&&"number"==xt(r[3])&&r[3]>=0&&r[3]<=1))return"rgb"}});var Rt=Math.log,Gt=function(r){var e,t,n,a=r/100;return a<66?(e=255,t=a<6?0:-155.25485562709179-.44596950469579133*(t=a-2)+104.49216199393888*Rt(t),n=a<20?0:.8274096064007395*(n=a-10)-254.76935184120902+115.67994401066147*Rt(n)):(e=351.97690566805693+.114206453784165*(e=a-55)-M
40.25366309332127*Rt(e),t=325.4494125711974+.07943456536662342*(t=a-50)-28.0852963507957*Rt(t),n=255),[e,t,n,1]},jt=Gt,Et=l.unpack,Ot=Math.round,qt=m,Bt=v,It=d,At=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];for(var t,n=Et(r,"rgb"),a=n[0],f=n[2],o=1e3,c=4e4;c-o>.4;){var u=jt(t=.5*(c+o));u[2]/u[0]>=f/a?c=t:o=t}return Ot(t)};Bt.prototype.temp=Bt.prototype.kelvin=Bt.prototype.temperature=function(){return At(this._rgb)},qt.temp=qt.kelvin=qt.temperature=function(){for(var r=[],e=arguments.length;e-M
-;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Bt,[null].concat(r,["temp"])))},It.format.temp=It.format.kelvin=It.format.temperature=Gt;var Dt=l.unpack,Ct=Math.cbrt,Yt=Math.pow,St=Math.sign,Lt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=Dt(r,"rgb"),n=t[0],a=t[1],f=t[2],o=[$t(n/255),$t(a/255),$t(f/255)],c=o[0],u=o[1],i=o[2],l=Ct(.4122214708*c+.5363325363*u+.0514459929*i),d=Ct(.2119034982*c+.6806995451*u+.1073969566*i),h=Ct(.0883024619*c+.2817188376*u+.6299787005*i);return[.M
2104542553*l+.793617785*d-.0040720468*h,1.9779984951*l-2.428592205*d+.4505937099*h,.0259040371*l+.7827717662*d-.808675766*h]};function $t(r){var e=Math.abs(r);return e<.04045?r/12.92:(St(r)||1)*Yt((e+.055)/1.055,2.4)}var Tt=l.unpack,Kt=Math.pow,Wt=Math.sign,Xt=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=Tt(r,"lab"))[0],n=r[1],a=r[2],f=Kt(t+.3963377774*n+.2158037573*a,3),o=Kt(t-.1055613458*n-.0638541728*a,3),c=Kt(t-.0894841775*n-1.291485548*a,3);return[255*Zt(4.0767416621*f-3.307711591M
3*o+.2309699292*c),255*Zt(-1.2684380046*f+2.6097574011*o-.3413193965*c),255*Zt(-.0041960863*f-.7034186147*o+1.707614701*c),r.length>3?r[3]:1]};function Zt(r){var e=Math.abs(r);return e>.0031308?(Wt(r)||1)*(1.055*Kt(e,1/2.4)-.055):12.92*r}var Ht=l.unpack,zt=l.type,Ut=m,Vt=v,Jt=d,Qt=Lt;Vt.prototype.oklab=function(){return Qt(this._rgb)},Ut.oklab=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(Vt,[null].concat(r,["oklab"])))},Jt.format.oklab=Xt,Jt.autodetect.pM
ush({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=Ht(r,"oklab"),"array"===zt(r)&&3===r.length)return"oklab"}});var rn=l.unpack,en=Lt,tn=Se,nn=l.unpack,an=ze,fn=Xt,on=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=(r=nn(r,"lch"))[0],n=r[1],a=r[2],f=an(t,n,a),o=f[0],c=f[1],u=f[2],i=fn(o,c,u);return[i[0],i[1],i[2],r.length>3?r[3]:1]},cn=l.unpack,un=l.type,ln=m,dn=v,hn=d,bn=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];var t=rn(r,"rgb"),n=tM
[0],a=t[1],f=t[2],o=en(n,a,f),c=o[0],u=o[1],i=o[2];return tn(c,u,i)};dn.prototype.oklch=function(){return bn(this._rgb)},ln.oklch=function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];return new(Function.prototype.bind.apply(dn,[null].concat(r,["oklch"])))},hn.format.oklch=on,hn.autodetect.push({p:3,test:function(){for(var r=[],e=arguments.length;e--;)r[e]=arguments[e];if(r=cn(r,"oklch"),"array"===un(r)&&3===r.length)return"oklch"}});var sn=v,pn=l.type;sn.prototype.alpha=function(r,e){return void 0===e&M
&(e=!1),void 0!==r&&"number"===pn(r)?e?(this._rgb[3]=r,this):new sn([this._rgb[0],this._rgb[1],this._rgb[2],r],"rgb"):this._rgb[3]},v.prototype.clipped=function(){return this._rgb._clipped||!1};var gn=v,vn=pe;gn.prototype.darken=function(r){void 0===r&&(r=1);var e=this.lab();return e[0]-=vn.Kn*r,new gn(e,"lab").alpha(this.alpha(),!0)},gn.prototype.brighten=function(r){return void 0===r&&(r=1),this.darken(-r)},gn.prototype.darker=gn.prototype.darken,gn.prototype.brighter=gn.prototype.brighten,v.prototype.get=functioM
n(r){var e=r.split("."),t=e[0],n=e[1],a=this[t]();if(n){var f=t.indexOf(n)-("ok"===t.substr(0,2)?2:0);if(f>-1)return a[f];throw new Error("unknown channel "+n+" in mode "+t)}return a};var yn=v,mn=l.type,kn=Math.pow;yn.prototype.luminance=function(r){if(void 0!==r&&"number"===mn(r)){if(0===r)return new yn([0,0,0,this._rgb[3]],"rgb");if(1===r)return new yn([255,255,255,this._rgb[3]],"rgb");var e=this.luminance(),t=20,n=function(e,a){var f=e.interpolate(a,.5,"rgb"),o=f.luminance();return Math.abs(r-o)<1e-7||!t--?f:o>rM
?n(e,f):n(f,a)},a=(e>r?n(new yn([0,0,0]),this):n(this,new yn([255,255,255]))).rgb();return new yn(a.concat([this._rgb[3]]))}return wn.apply(void 0,this._rgb.slice(0,3))};var wn=function(r,e,t){return.2126*(r=Mn(r))+.7152*(e=Mn(e))+.0722*(t=Mn(t))},Mn=function(r){return(r/=255)<=.03928?r/12.92:kn((r+.055)/1.055,2.4)},_n={},Nn=v,Fn=l.type,xn=_n,Pn=v,Rn=function(r,e,t){void 0===t&&(t=.5);for(var n=[],a=arguments.length-3;a-- >0;)n[a]=arguments[a+3];var f=n[0]||"lrgb";if(xn[f]||n.length||(f=Object.keys(xn)[0]),!xn[f])tM
hrow new Error("interpolation mode "+f+" is not defined");return"object"!==Fn(r)&&(r=new Nn(r)),"object"!==Fn(e)&&(e=new Nn(e)),xn[f](r,e,t).alpha(r.alpha()+t*(e.alpha()-r.alpha()))};Pn.prototype.mix=Pn.prototype.interpolate=function(r,e){void 0===e&&(e=.5);for(var t=[],n=arguments.length-2;n-- >0;)t[n]=arguments[n+2];return Rn.apply(void 0,[this,r,e].concat(t))};var Gn=v;Gn.prototype.premultiply=function(r){void 0===r&&(r=!1);var e=this._rgb,t=e[3];return r?(this._rgb=[e[0]*t,e[1]*t,e[2]*t,t],this):new Gn([e[0]*t,M
e[1]*t,e[2]*t,t],"rgb")};var jn=v,En=pe;jn.prototype.saturate=function(r){void 0===r&&(r=1);var e=this.lch();return e[1]+=En.Kn*r,e[1]<0&&(e[1]=0),new jn(e,"lch").alpha(this.alpha(),!0)},jn.prototype.desaturate=function(r){return void 0===r&&(r=1),this.saturate(-r)};var On=v,qn=l.type;On.prototype.set=function(r,e,t){void 0===t&&(t=!1);var n=r.split("."),a=n[0],f=n[1],o=this[a]();if(f){var c=a.indexOf(f)-("ok"===a.substr(0,2)?2:0);if(c>-1){if("string"==qn(e))switch(e.charAt(0)){case"+":case"-":o[c]+=+e;break;case"*M
":o[c]*=+e.substr(1);break;case"/":o[c]/=+e.substr(1);break;default:o[c]=+e}else{if("number"!==qn(e))throw new Error("unsupported value for Color.set");o[c]=e}var u=new On(o,a);return t?(this._rgb=u._rgb,this):u}throw new Error("unknown channel "+f+" in mode "+a)}return o};var Bn=v;_n.rgb=function(r,e,t){var n=r._rgb,a=e._rgb;return new Bn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"rgb")};var In=v,An=Math.sqrt,Dn=Math.pow;_n.lrgb=function(r,e,t){var n=r._rgb,a=n[0],f=n[1],o=n[2],c=e._rgb,u=c[0],i=c[1M
],l=c[2];return new In(An(Dn(a,2)*(1-t)+Dn(u,2)*t),An(Dn(f,2)*(1-t)+Dn(i,2)*t),An(Dn(o,2)*(1-t)+Dn(l,2)*t),"rgb")};var Cn=v;_n.lab=function(r,e,t){var n=r.lab(),a=e.lab();return new Cn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"lab")};var Yn=v,Sn=function(r,e,t,n){var a,f,o,c,u,i,l,d,h,b,s,p,g;return"hsl"===n?(o=r.hsl(),c=e.hsl()):"hsv"===n?(o=r.hsv(),c=e.hsv()):"hcg"===n?(o=r.hcg(),c=e.hcg()):"hsi"===n?(o=r.hsi(),c=e.hsi()):"lch"===n||"hcl"===n?(n="hcl",o=r.hcl(),c=e.hcl()):"oklch"===n&&(o=r.oklch()M
.reverse(),c=e.oklch().reverse()),"h"!==n.substr(0,1)&&"oklch"!==n||(u=(a=o)[0],l=a[1],h=a[2],i=(f=c)[0],d=f[1],b=f[2]),isNaN(u)||isNaN(i)?isNaN(u)?isNaN(i)?p=Number.NaN:(p=i,1!=h&&0!=h||"hsv"==n||(s=d)):(p=u,1!=b&&0!=b||"hsv"==n||(s=l)):p=u+t*(i>u&&i-u>180?i-(u+360):i<u&&u-i>180?i+360-u:i-u),void 0===s&&(s=l+t*(d-l)),g=h+t*(b-h),new Yn("oklch"===n?[g,s,p]:[p,s,g],n)},Ln=Sn,$n=function(r,e,t){return Ln(r,e,t,"lch")};_n.lch=$n,_n.hcl=$n;var Tn=v;_n.num=function(r,e,t){var n=r.num(),a=e.num();return new Tn(n+t*(a-n),M
"num")};var Kn=Sn;_n.hcg=function(r,e,t){return Kn(r,e,t,"hcg")};var Wn=Sn;_n.hsi=function(r,e,t){return Wn(r,e,t,"hsi")};var Xn=Sn;_n.hsl=function(r,e,t){return Xn(r,e,t,"hsl")};var Zn=Sn;_n.hsv=function(r,e,t){return Zn(r,e,t,"hsv")};var Hn=v;_n.oklab=function(r,e,t){var n=r.oklab(),a=e.oklab();return new Hn(n[0]+t*(a[0]-n[0]),n[1]+t*(a[1]-n[1]),n[2]+t*(a[2]-n[2]),"oklab")};var zn=Sn;_n.oklch=function(r,e,t){return zn(r,e,t,"oklch")};Math.pow,Math.sqrt,Math.PI,Math.cos,Math.sin,Math.atan2,Math.pow;var Un=m,Vn=funM
ction(r,e,t){if(!Vn[t])throw new Error("unknown blend mode "+t);return Vn[t](r,e)},Jn=function(r){return function(e,t){var n=Un(t).rgb(),a=Un(e).rgb();return Un.rgb(r(n,a))}},Qn=function(r){return function(e,t){var n=[];return n[0]=r(e[0],t[0]),n[1]=r(e[1],t[1]),n[2]=r(e[2],t[2]),n}};Vn.normal=Jn(Qn(function(r){return r})),Vn.multiply=Jn(Qn(function(r,e){return r*e/255})),Vn.screen=Jn(Qn(function(r,e){return 255*(1-(1-r/255)*(1-e/255))})),Vn.overlay=Jn(Qn(function(r,e){return e<128?2*r*e/255:255*(1-2*(1-r/255)*(1-eM
/255))})),Vn.darken=Jn(Qn(function(r,e){return r>e?e:r})),Vn.lighten=Jn(Qn(function(r,e){return r>e?r:e})),Vn.dodge=Jn(Qn(function(r,e){return 255===r?255:(r=e/255*255/(1-r/255))>255?255:r})),Vn.burn=Jn(Qn(function(r,e){return 255*(1-(1-e/255)/(r/255))}));Math.pow,Math.sin,Math.cos,Math.floor,Math.random,Math.log,Math.pow,Math.floor,Math.abs,Math.sqrt,Math.pow,Math.min,Math.max,Math.atan2,Math.abs,Math.cos,Math.sin,Math.exp,Math.PI;for(var ra={OrRd:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d730M
1f","#b30000","#7f0000"],PuBu:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"],BuPu:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"],Oranges:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"],BuGn:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"],YlOrBr:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"],YlGn:M
["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"],Reds:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"],RdPu:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"],Greens:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"],YlGnBu:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"],Purples:["#fcfbfd","#efedf5","#dadaeM
b","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"],GnBu:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"],Greys:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"],YlOrRd:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"],PuRd:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"],Blues:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6M
","#2171b5","#08519c","#08306b"],PuBuGn:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"],Viridis:["#440154","#482777","#3f4a8a","#31678e","#26838f","#1f9d8a","#6cce5a","#b6de2b","#fee825"],Spectral:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],RdYlGn:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],RdBu:["#67001f","#b2182b","#d6604d","#f4a582","#M
fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],PiYG:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],PRGn:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],RdYlBu:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],BrBG:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#M
01665e","#003c30"],RdGy:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],PuOr:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],Set2:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"],Accent:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"],Set1:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999M
999"],Set3:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"],Dark2:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"],Paired:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"],Pastel2:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"],Pastel1:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","M
#fddaec","#f2f2f2"]},ea=0,ta=Object.keys(ra);ea<ta.length;ea+=1){var na=ta[ea];ra[na.toLowerCase()]=ra[na]}return m});
function Q5(e){return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();n.MAGIC=161533525;n.RGB=0;n.HSVM
=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodge";n.BURN="color-burn";n.NORMAM
L="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THRESHOLD=1;n.GRAY=2;n.OPAQUE=3;M
n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.rotationY=0;n.rotationZ=0;n.reM
lRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=null;let r=!0;let i=[];let l=nM
ull;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t,m()};n.resizM
eCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(e,t,n,o,a,r){let i=o+1*(e-t)/(nM
-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-Math.floor(e)};n.degrees=functiM
on(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n||0}:{x:e,y:e,z:e}}function u()M
{null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,arguments);return a.x*=e.x,a.y*=e.y,aM
.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},a.normalize=function(){u();letM
 e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.min(1,Math.max(-1,t))),n*=Math.sM
ign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,n){null==n&&(n=1),r=n,i=n*n;coM
nst o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=function(e,t){return new n.VecM
tor(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-o)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.M
z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.pow(a,2)*n+Math.pow(a,3)*o};n.M
curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;case 2:o=s,a=n,r=h;break;case 3:o=M
s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;if(o=e<t?e<n?e:n:t<n?t:n,0==(lM
=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguments.length)return new n.ColoM
r(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);if(3==arguments.length)return M
new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=function(e){return 100*(.2126*e._r+.M
7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360}(e._h,t._h,o),0,360),n.constrM
ain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=function(){if(n._noFill=!1,"striM
ng"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=function(e){console.warn("curveTightM
ness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fillStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.heigM
ht),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePath():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStrM
oke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMoM
de==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._noStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,M
i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.squM
are=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};nM
.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.length<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.M
length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=nM
*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};nM
.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MAGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let tM
=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tinted(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,M
a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrigin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.heM
ight=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=function(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[tM
+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(M
e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(let t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}reM
turn n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=sM
,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvasM
,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else if(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*M
n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.getM
=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+M
e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperation;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.glM
obalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositeOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeM
Operation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.save(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let aM
=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e){n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=M
function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle}M
 ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,s=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=M
.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const T=function(){let e,t,n=4294967295;return{setSeed(o){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17M
,e^=e>>13,((e^=e<<5)>>>0)/n)}};let D=T();D.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){D.setSeed(e)};n.random=function(e,t){return"number"==typeof e?null!=t?D.rand()*(t-e)+e:D.rand()*e:e[~~(e.length*D.rand())]};n.randomGenerator=function(e){e==n.LCG?D=function(){const e=4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rM
and:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(D=T()),D.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*D.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=12M
7&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*cM
),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGaussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomEM
xponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUserMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=M
1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimationFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frM
ameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmousM
eY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickedFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=M
!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&M
&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButtoM
n=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DeviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPeM
rmission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pRelRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,nM
.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[M
1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15M
],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e)M
,0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new Date).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
or{static p;static SAND_COLOR_MODE=3;static getSandColorByIndex(e,t=0,i=30,s=50){e%=5;let a=[];var r,h,n;for(let e=0;e<5;e++){let t=e%5;1==Color.SAND_COLOR_MODE?a.push(o(t)):2==Color.SAND_COLOR_MODE?a.push(l(t)):3==Color.SAND_COLOR_MODE?a.push(d(t)):4==Color.SAND_COLOR_MODE?a.push(m(t)):5==Color.SAND_COLOR_MODE?a.push(p(t)):6==Color.SAND_COLOR_MODE?a.push(g(t)):7==Color.SAND_COLOR_MODE?a.push(c(t)):8==Color.SAND_COLOR_MODE?a.push(u(t)):9==Color.SAND_COLOR_MODE&&a.push(v(t))}return a[e];function o(e){return 0==e?(r=M
t+60,h=i+5,n=s+5):1==e?(r=t+30,h=i+5,n=s+9):2==e?(r=t,h=i,n=s):3==e?(r=t-30,h=i+5,n=s+9):4==e&&(r=t-60,h=i+5,n=s+5),r<0?r+=360:r>360&&(r-=360),chroma(r,h/100,n/100,"hsl")}function l(e){return r=t,0==e?(h=i,n=s+30):1==e?(h=i-30,n=s+8):2==e?(h=i,n=s):3==e?(h=i-30,n=s+30):4==e&&(h=i,n=s-20),h<10&&(h+=60),(0==e||3==e)&&n>100&&(n=s-50),chroma(r,h/100,n/100,"hsl")}function d(e){return 0==e?(r=t-120,h=i+10,n=s-30):1==e?(r=t+120,h=i-10,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t-120,h=i+10,n=s):4==e&&(r=t+120,h=i+10,n=s-30),r>360?r-M
=360:r<0&&(r+=360),h>100&&(h-=20),n>100&&(n-=30),chroma(r,h/100,n/100,"hsl")}function m(e){return 0==e?(r=t,h=i+10,n=s-30):1==e?(r=t,h=i-30,n=s+30):2==e?(r=t,h=i,n=s):3==e?(r=t-180,h=i+20,n=s-30):4==e&&(r=t-180,h=i,n=s),r<0&&(r+=360),chroma(r,h/100,n/100,"hsl")}function p(e){return 0==e?(r=t-150,h=i-10,n=s+30):1==e?(r=t-150,h=i-5,n=s):2==e?(r=t,h=i,n=s):3==e?(r=t+150,h=i+10,n=s+30):4==e&&(r=t+150,h=i+5,n=s),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n>100&&(n-=60),chroma(r,h/100,n/100,"hsl")}function g(e){return 0==M
e?(r=t+60,h=i-5):1==e?(r=t+150,h=i-10):2==e?(r=t,h=i):3==e?(r=t-150,h=i+10):4==e&&(r=t-60,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function c(e){return 0==e?(r=t,h=i+20):1==e?(r=t+90,h=i-10):2==e?(r=t,h=i):3==e?(r=t+180,h=i+10):4==e&&(r=t-90,h=i+5),r<0?r+=360:r>360&&(r-=360),h>100&&(h-=20),n=s,chroma(r,h/100,n/100,"hsl")}function u(e){return 0==e?(r=t+30,h=i+10,n=s+20):1==e?(r=t+30,h=i+40,n=s+40):2==e?(r=t,h=i,n=s):3==e?(r=t+160,h=i+25,n=s+5):4==e&&(r=t+150,h=i+10,n=s+20),r>3M
60&&(r-=360),(0==e||4==e)&&h>100?h-=20:1==e&&h>90?h-=80:3==e&&h>60&&(h-=50),1==e&&n>100?n-=80:(0==e||4==e)&&n>100&&(n-=40),chroma(r,h/100,n/100,"hsl")}function v(e){return r=t,h=i,0==e?n=s-25:1==e?n=s+30:2==e?n=s:3==e?n=s+5:4==e&&(n=s-10),n>100&&(n-=80),chroma(r,h/100,n/100,"hsl")}}static chromaToArray=e=>[e._rgb[0],e._rgb[1],e._rgb[2],255*e._rgb[3]];static setColorMode=e=>{this.SAND_COLOR_MODE=e}}class Geometry{static slicePolyByY(e,t){let i=[];for(let s=0;s<e.length;s++){let a=e[s],r=s?e[s-1]:e.at(-1),h=a.y>=t;h!M
=r.y>=t&&i.push(Geometry.interWithY(r,a,t)),h&&i.push(a)}return i}static getAreaBelowY(e,t){return Geometry.getPolyArea(Geometry.slicePolyByY(e,t))}static getYByAreaBelow(e,t){let[i,s,a,r]=Geometry.getBoundingBox(e,"COORD"),h=s,n=r;for(let i=0;i<30;++i){let i=(h+n)/2;Geometry.getAreaBelowY(e,i)>t?h=i:n=i}return n}static interWithY(e,t,i){let s=e.copy(),a=t.copy(),r=createVector(-1e9,i),h=createVector(1e9,i);return Geometry.intersection(s,a,r,h)}static getPolyArea(e){let t=0;for(let i=0;i<e.length;i++){let s=e[i],a=M
e[(i+1)%e.length],r=createVector(s.x,s.y),h=createVector(a.x,a.y);t+=r.cross(h).z}return t=abs(t)/2,t}static getBoundingBox(e,t="SIZE"){let i=e[0].x,s=e[0].x,a=e[0].y,r=e[0].y;for(let t=0;t<e.length;t++)isNaN(e[t].y)||(a=min(a,e[t].y),r=max(r,e[t].y)),isNaN(e[t].x)||(i=min(i,e[t].x),s=max(s,e[t].x));return"SIZE"==t?[i,a,s-i,r-a]:"COORD"==t?[i,a,s,r]:[]}static intersection(e,t,i,s){let a=createVector(t.x-e.x,t.y-e.y),r=createVector(s.x-i.x,s.y-i.y),h=createVector(i.x-e.x,i.y-e.y),n=(a.copy().rotate(PI/2),r.copy().roM
tate(PI/2)),o=h.dot(n)/a.dot(n),l=a.mult(o);return createVector(e.x+l.x,e.y+l.y)}}class GraphicUtils{static applyMask(e,t){e.push(),e.noStroke(),e.blendMode(REMOVE),e.fill(255,255,255,255),e.beginShape(),e.vertex(0,0),e.vertex(0,e.height),e.vertex(e.width,e.height),e.vertex(e.width,0),e.beginContour();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endContour(),e.endShape(e.CLOSE),e.blendMode(BLEND),e.pop()}}class Hourglass{static TICK_INTERVAL=60;static ROTATE_INTERVAL=10/3;constructor(e,t){this.evolvePeriod=M
e.evolvePeriod,t.registerIterationChangeEvent(this.onIterationChange.bind(this));let i=t.getCurrentIteration();this.onIterationChange(i),this.update(new Date)}onIterationChange(e){this.flipped=e%2==1}getState(){return{top:this.top,rotation:this.rotation,flipped:this.flipped,timeSinceRotation:this.timeSinceRotation}}update(e){let t,i=0;if(traits.evolvePeriod==EvolvePeriod.HOURLY)t=3600,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.DAILY)t=86400,i+=60*e.geM
tHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3;else if(traits.evolvePeriod==EvolvePeriod.MONTHLY){let s=e.getFullYear(),a=e.getMonth()+1;t=24*new Date(s,a,0).getDate()*60*60,i+=24*(e.getDate()-1)*60*60,i+=60*e.getHours()*60,i+=60*e.getMinutes(),i+=e.getSeconds(),i+=e.getMilliseconds()/1e3}this.flipped?this.top=1-min(1,i/t):this.top=min(1,i/t),this.timeSinceRotation=max(0,i-Hourglass.ROTATE_INTERVAL);let s=Math.min(i,Hourglass.ROTATE_INTERVAL);this.rotation=this.flipped?PI:0,this.rotatM
ion+=s/Hourglass.ROTATE_INTERVAL*PI}}function getRandomInt(e,t){return floor(random(e,t))}function getRandomItem(e){let t=0;for(const i of e)t+=i[1];let i=random(t),s=0;for(const t of e)if(s+=t[1],i<s)return t[0];return null}function shuffle(e){for(let t=1;t<e.length;++t){let i=getRandomInt(0,t),s=e[t];e[t]=e[i],e[i]=s}}class PostProcessing{constructor(e,t,i){this.wCanvas=e,this.hCanvas=t,this.graphic=createGraphics(this.wCanvas,this.hCanvas),this.updateFilter(1)}updateFilter(e,t,i){this.graphic.fill(255,255,255,25M
5),this.graphic.blendMode(REMOVE),this.graphic.rect(0,0,this.wCanvas,this.hCanvas),this.graphic.blendMode(BLEND);let s,a=this.wCanvas/2,r=this.hCanvas/2,h=2*sqrt(a*a+r*r);s=a>r?sqrt(1-Math.pow(r/a,2)):sqrt(1-Math.pow(a/r,2));let n,o;if(1!=abs(e)){let t,i;3==abs(e)?(t=6,i=.6):10==abs(e)?(t=4,i=.5):60==abs(e)?(t=3,i=.4):3600==abs(e)&&(t=2,i=.3),o=i-.1,n=map(sin(Date.now()/1e3/t*TAU),-1,1,i-.1,i+.1)}else i?(o=1,n=1):(o=.75,n=.75);this.graphic.push(),this.graphic.ellipseMode(RADIUS),this.graphic.translate(a,r);for(let M
e=39;e>=0;e--){let t=(e+1)/40;if(1==o||map(t,o,1,0,1.2)<=0)break;let i=max(map(t,n,1,0,1.2),0),s=color(0,0,0,255*i);this.graphic.fill(s),this.graphic.noStroke(),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),e>0&&(t=e/40,this.graphic.fill(255,255,255,255),this.graphic.blendMode(REMOVE),this.graphic.ellipse(0,0,h*a/(a+r)*t,h*r/(a+r)*t),this.graphic.blendMode(BLEND))}this.graphic.pop()}applyToMainCanvas(){image(this.graphic,0,0)}}class BackgroundRenderer{constructor(e,t,i,s,a,r){this.wCanvas=e.width,this.hCanvas=eM
.height,this.maxR=min(this.wCanvas,this.hCanvas)/1024,this.dx,this.yvalues,this.xvalues,this.xspacing1=[],this.thickness1=[],this.theta1=[],this.velocity1=[],this.sz1=[],this.xspacing2=[],this.thickness2=[],this.theta2=[],this.velocity2=[],this.sz2=[],this.xspacing3=[],this.thickness3=[],this.theta3=[],this.velocity3=[],this.sz3=[],this.xspacing4=[],this.thickness4=[],this.theta4=[],this.velocity4=[],this.sz4=[],this.c=[],this.num_waves=30,this._h=t,this._s=i,this._l=s,this.patternOrder=a.patternOrder,this.diagonalM
=sqrt(Math.pow(width,2)+Math.pow(height,2));let h=createVector(width,height).heading(),n=abs(PI/4-h);this.ty=this.diagonal/2*cos(n),this.waveSpeed=a.waveSpeed,this.wavePeriod=a.wavePeriod,this.waveHeight=a.waveHeight,this.evolvePeriod=a.evolvePeriod,this.evolvePeriod==EvolvePeriod.DAILY?this.num_lines=7:(this.evolvePeriod==EvolvePeriod.HOURLY||this.evolvePeriod==EvolvePeriod.MONTHLY)&&(this.num_lines=12),this.waveHeight==WaveHeight.SHORT?this.amplitude=getRandomInt(20,30):this.waveHeight==WaveHeight.MEDIUM?this.ampM
litude=getRandomInt(30,40):this.waveHeight==WaveHeight.TALL&&(this.amplitude=getRandomInt(40,50)),this.wavePeriod==WavePeriod.SHORT?this.period=getRandomInt(300,351):this.wavePeriod==WavePeriod.MEDIUM?this.period=getRandomInt(425,476):this.wavePeriod==WavePeriod.LONG&&(this.period=getRandomInt(600,651)),this.waveSpeed==WaveSpeed.SLOW?(this.min_speed=.003,this.max_speed=.005):this.waveSpeed==WaveSpeed.MEDIUM?(this.min_speed=.008,this.max_speed=.01):this.waveSpeed==WaveSpeed.FAST&&(this.min_speed=.015,this.max_speed=M
.018),this.thetaList=[0,1/4*PI,.5*PI,3/4*PI,PI],this.setupStaticWave(),this.setupDynamicWave(),r.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=r.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){randomSeed(100*e+1),shuffle(this.xspacing1),shuffle(this.thickness1),shuffle(this.theta1),shuffle(this.xspacing1),shuffle(this.velocity1),shuffle(this.xspacing2),shuffle(this.thickness2),shuffle(this.theta2),shuffle(this.xspacing2),shuffle(this.velocity2),shuffle(this.xspacing3),shM
uffle(this.thickness3),shuffle(this.theta3),shuffle(this.xspacing3),shuffle(this.velocity3),shuffle(this.xspacing4),shuffle(this.thickness4),shuffle(this.theta4),shuffle(this.xspacing4),shuffle(this.velocity4)}setupStaticWave(){for(let e=0;e<this.num_waves;e++){this.xspacing1.push(getRandomInt(5,50)),this.thickness1.push(getRandomInt(50,200)),this.theta1.push({value:random(this.thetaList)}),this.velocity1.push({value:random(this.min_speed,this.max_speed)}),this.sz1.push(random(.5,3)),this.xspacing2.push(getRandomInM
t(5,50)),this.thickness2.push(getRandomInt(50,200)),this.theta2.push({value:random(this.thetaList)}),this.velocity2.push({value:random(this.min_speed,this.max_speed)}),this.sz2.push(random(.5,3)),this.xspacing3.push(getRandomInt(5,50)),this.thickness3.push(getRandomInt(50,200)),this.theta3.push({value:random(this.thetaList)}),this.velocity3.push({value:random(this.min_speed,this.max_speed)}),this.sz3.push(random(.5,3)),this.xspacing4.push(getRandomInt(5,50)),this.thickness4.push(getRandomInt(50,200)),this.theta4.puM
sh({value:random(this.thetaList)}),this.velocity4.push({value:random(this.min_speed,this.max_speed)}),this.sz4.push(random(.5,3));let t=e%5;this.c.push(Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25))}}setupDynamicWave(){this.dynamicWave={h:random(this.hCanvas/3),xspacing:getRandomInt(5,20),thickness:getRandomInt(100,200),theta:{value:random(this.thetaList)},velocity:{value:random(this.min_speed,this.max_speed)},sz:random(1,3),num_lines:0},1==this.patternOrder[0]?this.dynamicWave.h=random(200,heM
ight-200):2==this.patternOrder[0]?this.dynamicWave.h=random(200,width-200):(3==this.patternOrder[0]||4==this.patternOrder[0])&&(this.dynamicWave.h=random(200,2*this.ty-200))}update(e){this.time=e}drawHorWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(width/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),tM
+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s];r<-2||r>height+2||e.square(a,r,n*this.maxR)}}}drawVerWave(e,t,i,s,a,r,h,n,o){this.dx=TWO_PI/this.period*i,this.xvalues=new Array(floor(height/i+20));let l=this.time.getTime()/(1e3/60),d=r.value+h.value*l/5+t;for(let e=0;e<this.xvalues.length;e++)this.xvalues[e]=sin(d)*this.amplitude,d+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.xvalues.length;s++){let a=t+this.xvalues[s],r=s*iM
;a<-2||a>width+2||e.square(a,r,n*this.maxR)}}}drawDiaWave(e,t,i,s,a,r,h,n,o,l){let d=cos(-l),m=sin(-l);this.dx=TWO_PI/this.period*i,this.yvalues=new Array(floor(this.diagonal/i));let p=this.time.getTime()/(1e3/60),g=r.value+h.value*p/5+t;for(let e=0;e<this.yvalues.length;e++)this.yvalues[e]=sin(g)*this.amplitude,g+=this.dx;for(let r=0;r<a;r++){e.noStroke(),e.fill(color(...Color.chromaToArray(o))),t+=s/a;for(let s=0;s<this.yvalues.length;s++){let a=s*i,r=t+this.yvalues[s],h=n*this.maxR,o=a-this.diagonal/2,l=r-this.tM
y,p=o*d+l*m+width/2,g=-o*m+l*d+height/2;p<-2||p>width+2||g<-2||g>height+2||e.square(a,r,h)}}}drawHorizontal(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawHorWave(e,t,this.xspacing1[i]*width/1024,this.thickness1[i]*height/1024,this.num_lines,this.theta1[i],this.velocity1[i],this.sz1[i],this.c[i]),t+=(height+50)/this.num_waves}drawVertical(e){let t=-50;for(let i=0;i<this.theta1.length;i++)this.drawVerWave(e,t,this.xspacing2[i]*height/1024,this.thickness2[i]*width/1024,this.num_lines,this.theta2[i],this.vM
elocity2[i],this.sz2[i],this.c[i]),t+=(width+50)/this.num_waves}drawLeft(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing3[i]*this.maxR,this.thickness3[i]*this.maxR,this.num_lines,this.theta3[i],this.velocity3[i],this.sz3[i],this.c[i],PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawRight(e){let t=0;for(let i=0;i<this.theta1.length;i++)e.push(),e.translate(width/2,height/2),e.rotate(M
3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,t,this.xspacing4[i]*this.maxR,this.thickness4[i]*this.maxR,this.num_lines,this.theta4[i],this.velocity4[i],this.sz4[i],this.c[i],3*PI/4),e.pop(),t+=(2*this.ty-100)/(this.num_waves-1)}drawPattern(e,t){1==t?this.drawHorizontal(e):2==t?this.drawVertical(e):3==t?this.drawLeft(e):this.drawRight(e)}draw(e,t,i,s,a){this._h=s.h,this._s=s.s,this._l=s.l,e.background(0);let r=t.getHours()>=6&&t.getHours()<18?.2:.05,h=Color.getSandColorByIndex(4,this._h,this._s,M
this._l).luminance(r).alpha(.5);if(e.background(color(...Color.chromaToArray(h))),!a)return;this.evolvePeriod==EvolvePeriod.HOURLY?this.dynamicWave.num_lines=(t.getHours()+11)%12+1:this.evolvePeriod==EvolvePeriod.DAILY?this.dynamicWave.num_lines=t.getDay()+1:this.evolvePeriod==EvolvePeriod.MONTHLY&&(this.dynamicWave.num_lines=t.getMonth()+1);for(let e=0;e<this.num_waves;e++){let t=e%5;this.c[e]=Color.getSandColorByIndex(t,this._h,this._s,this._l).luminance(.25)}1==i?(3==this.patternOrder[0]||4==this.patternOrder[0]M
?this.num_waves=30:this.num_waves=20,this.drawPattern(e,this.patternOrder[0])):2==i?(this.patternOrder[0]+this.patternOrder[1]==3?this.num_waves=10:this.patternOrder[0]+this.patternOrder[1]==7?this.num_waves=20:this.num_waves=15,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1])):3==i?(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2])):(this.num_waves=10,this.drawPattern(e,this.patternOrder[0]),M
this.drawPattern(e,this.patternOrder[1]),this.drawPattern(e,this.patternOrder[2]),this.drawPattern(e,this.patternOrder[3]));let{h:n,xspacing:o,thickness:l,num_lines:d,theta:m,velocity:p,sz:g}=this.dynamicWave,c=Color.getSandColorByIndex(0,this._h,this._s,this._l).luminance(.5);1==this.patternOrder[0]?this.drawHorWave(e,n,o*width/1024,l*height/1024,d,m,p,g,c):2==this.patternOrder[0]?this.drawVerWave(e,n,o*height/1024,l*width/1024,d,m,p,g,c):3==this.patternOrder[0]?(e.push(),e.translate(width/2,height/2),e.rotate(PI/M
4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,PI/4),e.pop()):4==this.patternOrder[0]&&(e.push(),e.translate(width/2,height/2),e.rotate(3*PI/4),e.translate(-this.diagonal/2,-this.ty),this.drawDiaWave(e,n,o*this.maxR,l*this.maxR,d,m,p,g,c,3*PI/4),e.pop())}}class GrainRenderer{static texture;static deltaX;static deltaY;static maxDelta=100;static wCanvas;static hCanvas;static setup(e,t){GrainRenderer.wCanvas=e+GrainRenderer.maxDelta,GrainRenderer.hCanvas=t+GrainRendereM
r.maxDelta,GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0),GrainRenderer.texture=createImage(GrainRenderer.wCanvas,GrainRenderer.hCanvas),GrainRenderer.texture.loadPixels();let i=GrainRenderer.texture.pixelDensity();for(let e=0;e<GrainRenderer.wCanvas;e++)for(let t=0;t<GrainRenderer.hCanvas;t++){let s=216.75,a=255,r=random(s,a),h=random(s,a),n=random(s,a);for(let s=0;s<i;s++)for(let a=0;a<i;a++){let o=4*((t*i+a)*GrainRenderer.wCanvas*i+(e*i+s));GrainRendM
erer.texture.pixels[o]=r,GrainRenderer.texture.pixels[o+1]=h,GrainRenderer.texture.pixels[o+2]=n,GrainRenderer.texture.pixels[o+3]=255}}GrainRenderer.texture.updatePixels()}static applyGrain(e,t){let i=!!t&&{atFrame:1};e.textureOverlay(GrainRenderer.texture,{mode:BURN,animate:i})}static applyGrainToMainCanvas(e){blendMode(BURN),e&&(GrainRenderer.deltaX=random(-GrainRenderer.maxDelta,0),GrainRenderer.deltaY=random(-GrainRenderer.maxDelta,0)),image(GrainRenderer.texture,GrainRenderer.deltaX,GrainRenderer.deltaY)}}conM
st HourglassSize={SMALL:"SMALL",MEDIUM:"MEDIUM",LARGE:"LARGE"};class HourglassRenderer{constructor(e,t,i){this.nLayer=10,this.wCanvas=e.width,this.hCanvas=e.height,this.hourglassSize=t.hourglassSize,this.poly=t.poly,this.evolvePeriod=t.evolvePeriod,this.xc=this.wCanvas/2,this.yc=this.hCanvas/2,this.x1=this.xc+random(100,300),this.y1=this.yc+random(100,300),this.x2=this.xc+random(100,300),this.y2=this.yc+random(100,300),this.x1m=this.wCanvas-this.x1,this.y1m=this.y1,this.maxR=min(this.wCanvas,this.hCanvas)/2,1==thisM
.poly?this.mainRadius=.1*this.maxR*4:this.mainRadius=.1*this.maxR*getRandomInt(1,6),i.registerIterationChangeEvent(this.onIterationChange.bind(this));let s=i.getCurrentIteration();this.onIterationChange(s),this.topline=this.polygon(this.xc,this.yc,this.poly,PI),this.bottomline=this.polygon(this.xc,this.yc,this.poly,0),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.excitement=.15*max(this.sandRects[0][2],this.sandRects[0][3]),this.dx=[],this.dy=[];for(let e=0;e<2M
*this.nLayer;++e)this.dx[e]=random(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement);this.curSecond=(new Date).getSeconds(),this.rotateAngle=0}onIterationChange(e){randomSeed(100*e+2),this.startAngle=this.getStartAngle(),this.radiuses=this.getRadiuses()}getIteration(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(M
e.getFullYear()-1970)+e.getMonth()),t}getStartAngle(){let e=getRandomInt(1,6);return PI/(2.5+.5*e)}getRadiuses(){let e,t;this.hourglassSize==HourglassSize.MEDIUM?(e=.45*this.maxR,t=.55*this.maxR):this.hourglassSize==HourglassSize.LARGE&&(e=.6*this.maxR,t=.7*this.maxR);let i=[];for(let s=0;s<this.poly;s++){let a;a=0==s?e:random(e,t),i.push(a)}return i}update(e,t){if(e.getSeconds()!=this.curSecond){this.curSecond=e.getSeconds(),this.secondTicked=!0,this.rotateAngle+=PI/30;for(let e=0;e<2*this.nLayer;++e)this.dx[e]=raM
ndom(-this.excitement,this.excitement),this.dy[e]=random(-this.excitement,this.excitement)}else this.secondTicked=!1;this.topline=this.polygon(this.xc,this.yc,this.poly,PI+t),this.bottomline=this.polygon(this.xc,this.yc,this.poly,t),this.sandRects=[Geometry.getBoundingBox(this.topline),Geometry.getBoundingBox(this.bottomline)],this.time=e,this.rotation=t}draw(e,t,i){let s=i.luminance(.3);e.fill(255,255,255,255),e.blendMode(REMOVE),e.rect(0,0,this.wCanvas,this.hCanvas),e.blendMode(BLEND),0==t?this.drawShadowNormal(eM
,s,this.time):1==t&&this.drawShadowCircle(e,s),e.fill(255,255,255,255),e.blendMode(REMOVE),this.drawShape(e,this.topline),this.drawShape(e,this.bottomline),e.blendMode(BLEND)}drawShadowNormal(e,t,i){let s=floor(i.getMinutes()/10),a=i.getMinutes()%10;e.push(),e.noFill(),e.strokeWeight(.005*this.maxR);for(let i=0;i<s;i++){let a=map(i,s,0,.2,.5),r=color(...Color.chromaToArray(t.alpha(a)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i],this.yc+this.dy[2*i],this.poly,PI)}for(let i=0;i<a;i++){let s=map(i,a,0,.M
2,.5),r=color(...Color.chromaToArray(t.alpha(s)));e.stroke(r),this.getAndDrawPolygon(e,this.xc+this.dx[2*i+1],this.yc+this.dy[2*i+1],this.poly,0)}e.pop()}drawShadowCircle(e,t){e.push(),e.noStroke(),e.translate(this.xc,this.yc),e.rotate(PI+this.rotateAngle);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.fill(a),this.getAndDrawPolygon(e,0,2.5*this.mainRadius,this.poly,PI),this.getAndDrawPolygon(e,0,2.5*-this.mainRadius,this.poly,0),e.rotate(PI/3)}e.pop(),e.push(),e.noFill(),M
e.strokeWeight(2),e.translate(this.xc,this.yc),e.rotate(-this.rotateAngle+PI/30);for(let i=0;i<3;i++){let s=map(i,3,0,.2,.5),a=color(...Color.chromaToArray(t.alpha(s)));e.stroke(a),this.getAndDrawPolygon(e,0,-this.mainRadius/2,this.poly,PI),this.getAndDrawPolygon(e,0,this.mainRadius/2,this.poly,0),e.rotate(-PI/3)}e.pop()}getAndDrawPolygon(e,t,i,s,a){let r=this.polygon(t,i,s,a);this.drawShape(e,r)}drawShape(e,t){e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.endShape(e.CLOSE)}polygon(e,t,i,s){leM
t a=(PI/2-this.startAngle)/i,r=0,h=[];h.push({x:e,y:t});let n=this.startAngle+s;for(let s=0;s<i;s++){let i=this.radiuses[r];r+=1;let s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}r=this.poly,n=PI/2+a+s;for(let s=0;s<i;s++){r-=1;let i=this.radiuses[r],s=e+cos(n)*i,o=t+sin(n)*i;h.push({x:s,y:o}),n+=a}return h=h.filter((e=>!isNaN(e.x)&&!isNaN(e.y))),h}getSandRects=()=>this.sandRects;getTopLine=()=>this.topline;getBottomLine=()=>this.bottomline;getSecondTicked=()=>this.secondTicked}const WavePeriod={SHORT:"SHORT",MEM
DIUM:"MEDIUM",LONG:"LONG"},WaveHeight={SHORT:"SHORT",MEDIUM:"MEDIUM",TALL:"TALL"},WaveSpeed={SLOW:"SLOW",MEDIUM:"MEDIUM",FAST:"FAST"};class SandRenderer{static N_CURVE_POINT=50;static DROPDOWN_TIME=3;constructor(e,t,i,s,a,r,h,n){this.wCanvas=e.width,this.hCanvas=e.height,this.hInit=t,this.baseLine=this.transformCoord(i),this.baseH=s,this.baseS=a,this.baseL=r,this.curSecond=0,this.waveHeight=h.waveHeight,this.wavePeriod=h.wavePeriod,this.waveSpeed=h.waveSpeed,this.evolvePeriod=h.evolvePeriod,this.nSandLayer=6,this.lM
ayers=this.getLayers(),this._h=this.baseH,this._s=this.baseS,this._l=this.baseL,this.prevIteration=null,n.registerIterationChangeEvent(this.onIterationChange.bind(this));let o=n.getCurrentIteration();this.onIterationChange(o)}onIterationChange(e){null==this.prevIteration?this._h=this.getHue(this.baseH,0,e):this._h=this.getHue(this._h,this.prevIteration,e),this.prevIteration=e}getHue(e,t,i){let s=min(t,i),a=max(t,i);for(let r=s;r<a;r++){randomSeed(100*r+3);let s=random(1);if(this.evolvePeriod==EvolvePeriod.HOURLY?s=M
map(s,0,1,5,10):this.evolvePeriod==EvolvePeriod.DAILY?s=map(s,0,1,10,30):this.evolvePeriod==EvolvePeriod.MONTHLY&&(s=map(s,0,1,50,100)),i>t)for(e+=s;e>360;)e-=360;else for(e-=s;e<0;)e+=360}return e}update(e){this.time=e}getChroma(){return Color.getSandColorByIndex(0,this._h,this._s,this._l)}getBaseHSL(){return{h:this._h,s:this._s,l:this._l}}draw(e,t,i,s,a){this.nLayer=(this.time.getHours()+11)%12+1,t=this.transformCoord(t),e.background(0);let r=this.getChroma().luminance(.5).alpha(.25);e.background(color(...Color.cM
hromaToArray(r))),e.strokeWeight(1),this.layers.forEach((e=>{if(0==e.id)e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).luminance(.2).alpha(1);else{let t=map(e.id/this.nSandLayer,0,1,.5,.8);e.c=Color.getSandColorByIndex(e.id,this._h,this._s,this._l).alpha(t)}let s=map(i,0,1,e.baselineY,this.hInit),a=max(0,map(s,this.hInit,0,0,1)),r=Geometry.getPolyArea(t)*a;e.y=Geometry.getYByAreaBelow(t,r),e.y=map(e.y,0,this.hInit,.05*-this.hCanvas,this.hInit+.05*this.hCanvas)})),this.layers.forEach((i=>{s&&2*i.id<thisM
.nLayer&&this.drawDropdown(e,t,i,a)})),this.layers.forEach((t=>this.drawLayer(e,t)));let h=!1;this.time.getSeconds()!=this.curSecond&&(this.curSecond=this.time.getSeconds(),h=!0),GraphicUtils.applyMask(e,t)}transformCoord(e){let[t,i,s,a]=Geometry.getBoundingBox(e),r=t+s,h=i+a;return e.map((e=>{let n=map(e.x,t,r,-s/2,s/2)+this.wCanvas/2,o=map(e.y,i,h,0,a);return createVector(n,o)}))}getLayers(){let e=[];for(let t=0;t<this.nSandLayer;t++){let i,s=this.hInit/this.nSandLayer*t;this.waveSpeed==WaveSpeed.SLOW?i=random(.0M
08,.012):this.waveSpeed==WaveSpeed.MEDIUM?i=random(.016,.024):this.waveSpeed==WaveSpeed.FAST&&(i=random(.032,.048));let a,r,h=random(1e4);this.wavePeriod==WavePeriod.SHORT?a=random(2.7,3):this.wavePeriod==WavePeriod.MEDIUM?a=random(1.8,2):this.wavePeriod==WavePeriod.LONG&&(a=random(1.2,1.3)),this.waveHeight==WaveHeight.SHORT?r=this.hCanvas/30:this.waveHeight==WaveHeight.MEDIUM?r=this.hCanvas/24:this.waveHeight==WaveHeight.TALL&&(r=this.hCanvas/18);let n={mode:"DELTA_Y",deltaY:(e,t)=>map(sin(e*a*TAU+t*i+h),-1,1,-r,rM
)};e.push({id:t,baselineY:s,height:r,speed:i,seed:h,shape:n,stripe:{distance:random(.04*this.hInit,.08*this.hInit),height:random(.02*this.hInit,.04*this.hInit),stretch:random(1.2,1.5),colorTransform:e=>e.brighten(1.2)}})}return e}drawDropdown=(e,t,i,s)=>{let{c:a,shape:r}=i,h=Geometry.getBoundingBox(t)[3],n=this.time.getTime()/(1e3/60),o=createVector(this.wCanvas/2,0),l=createVector(this.wCanvas/2,h),d=[];for(let e=0;e<50;e++){let t=e/49,i=o.copy(),{x:s,y:a}=Vector.lerp(i,l,t);s+=r.deltaY(t,-n/5)*map(e,0,50,.1,1.5),M
d.push(createVector(s,a))}let m=map(s,0,SandRenderer.DROPDOWN_TIME,0,50);m=min(m,50),e.push(),e.noStroke(),e.fill(color(...Color.chromaToArray(a)));for(let t=0;t<m;t++)e.square(d[t].x,d[t].y,.004*this.hCanvas);e.pop()};drawLayer=(e,t)=>{if(2*t.id<this.nLayer){let i=this.getLayerPointline(t);this.drawWave(e,i,t),this.drawPattern(e,i,t,this.hCanvas/8,this.hCanvas/60),2*t.id+1<this.nLayer&&this.drawStripe(e,i,t)}};getLayerPointline=e=>{let{y:t,shape:i}=e,s=[],a=this.time.getTime()/(1e3/60);if("DELTA_Y"==i.mode){let e=M
createVector(0,t),r=createVector(this.wCanvas,t);for(let t=0;t<SandRenderer.N_CURVE_POINT;t++){let h=t/(SandRenderer.N_CURVE_POINT-1),n=e.copy(),{x:o,y:l}=Vector.lerp(n,r,h);l+=i.deltaY(h,a/5),s.push(createVector(o,l))}}else s=[start,end];return s};drawWave=(e,t,i)=>{let{c:s}=i;e.noStroke(),e.fill(color(...Color.chromaToArray(s))),e.beginShape(),e.vertex(0,this.hCanvas);for(let i=0;i<t.length;i++)e.vertex(t[i].x,t[i].y);e.vertex(this.wCanvas,this.hCanvas),e.endShape()};drawPattern=(e,t,i,s,a)=>{e.noStroke();for(letM
 i=a;i<=s;i+=a){let a=map((i-1)/(s-1),0,1,.2,0);e.fill(0,255*a),e.beginShape();for(let s=0;s<t.length;s++)e.vertex(t[s].x,t[s].y+i);for(let s=t.length-1;s>=0;s--)e.vertex(t[s].x,t[s].y+(i-1));e.endShape()}};drawStripe=(e,t,i)=>{let{c:s,stripe:{distance:a,height:r,stretch:h,colorTransform:n}}=i;e.noStroke();let o=n(s),l=color(...Color.chromaToArray(o)),d=s.alpha();l.setAlpha(255*d),e.fill(l),e.beginShape();for(let i=0;i<t.length;i++)e.vertex(t[i].x*h,t[i].y+a);for(let i=t.length-1;i>=0;i--)e.vertex(t[i].x*h,t[i].y+aM
+r);e.endShape()}}new Q5("global");let wCanvas,hCanvas,canvas,timeController,hourglass,layerBackground,layerSandTop,layerSandBottom,layerHourglass,renBackground,renSandTop,renSandBottom,renHourglass,renPostProcessing,traits,prevSpeed,showMode,currentTime,maxFps=60;setup=()=>{setupRandom(),setupTraits(),setupSketch()},setupRandom=()=>{let e=p5seed;randomSeed(e),noiseSeed(e)},setupTraits=()=>{let e=getRandomInt(1,10),t=getRandomItem([[HourglassSize.MEDIUM,70],[HourglassSize.LARGE,30]]),i=getRandomItem([[WaveHeight.SHM
ORT,1],[WaveHeight.MEDIUM,1],[WaveHeight.TALL,1]]),s=getRandomItem([[WavePeriod.SHORT,1],[WavePeriod.MEDIUM,1],[WavePeriod.LONG,1]]),a=getRandomItem([[WaveSpeed.SLOW,1],[WaveSpeed.MEDIUM,1],[WaveSpeed.FAST,1]]),r=getRandomItem([[EvolvePeriod.HOURLY,60],[EvolvePeriod.DAILY,35],[EvolvePeriod.MONTHLY,5]]),h=getRandomItem([[1,5],[2,20],[3,50],[4,20],[5,5]]),n=getPatternOrder(),o=getRandomItem(AngelNumber.map((e=>[e[0],1]))),l=getRandomItem(BlissLimit.map((e=>[e[0],e[2]])));traits={waveHeight:i,wavePeriod:s,waveSpeed:a,M
evolvePeriod:r,color:e,hourglassSize:t,poly:h,patternOrder:n,angelNumber:o,blissLimit:l},console.log(traits)},getPatternOrder=()=>{let e=[],t=[1,2,3,4],i=getRandomItem([[1,.6],[2,.1],[3,.15],[4,.15]]);e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);for(let s=0;s<3;s++)i=random(t),e.push(i),patternChosen=t.indexOf(i),x=t.splice(patternChosen,1);return e},setupSketch=()=>{frameRate(maxFps),frameCount=0,wCanvas=windowWidth,hCanvas=windowHeight,canvas=createCanvas(wCanvas,hCanvas),showMode=0,timeControM
ller=new TimeController(traits),hourglass=new Hourglass(traits,timeController);let e=getRandomInt(0,361),t=getRandomInt(30,101),i=getRandomInt(50,101);Color.setColorMode(traits.color),layerBackground=createGraphics(wCanvas,hCanvas),renBackground=new BackgroundRenderer(layerBackground,e,t,i,traits,timeController),layerHourglass=createGraphics(wCanvas,hCanvas),renHourglass=new HourglassRenderer(layerHourglass,traits,timeController);let s=renHourglass.getSandRects(wCanvas,hCanvas),a=renHourglass.getTopLine(),r=renHourM
glass.getBottomLine(),h=createVector(s[0][2],s[0][3]).mag();layerSandTop=createGraphics(h,h),layerSandBottom=createGraphics(h,h),renSandTop=new SandRenderer(layerSandTop,s[0][3],a,e,t,i,traits,timeController),renSandBottom=new SandRenderer(layerSandBottom,s[0][3],r,e,t,i,traits,timeController),imgSandTop=createGraphics(wCanvas,hCanvas),imgSandBottom=createGraphics(wCanvas,hCanvas),renPostProcessing=new PostProcessing(wCanvas,hCanvas,traits),GrainRenderer.setup(wCanvas,hCanvas),prevSpeed=1},draw=()=>{let e=0==showMoM
de||1==showMode,t=0==showMode||2==showMode,{time:i,state:s,speed:a,paused:r,isLive:h,realDelta:n}=timeController.step();hourglass.update(i),renSandTop.update(i),renSandBottom.update(i),renBackground.update(i);let o=4==s?1:0,{top:l,rotation:d,flipped:m,timeSinceRotation:p}=hourglass.getState();renHourglass.update(i,d);let g=renSandTop.getChroma(),c=renSandTop.getBaseHSL();if(background(255),renBackground.draw(layerBackground,i,s,c,e),image(layerBackground,0,0),t){let e=renHourglass.getSandRects();renHourglass.draw(lM
ayerHourglass,o,g),renSandTop.draw(layerSandTop,renHourglass.getTopLine(),1-l,!m,p),renSandBottom.draw(layerSandBottom,renHourglass.getBottomLine(),l,m,p),image(layerSandTop,...e[0],(layerSandTop.width-e[0][2])/2,0,e[0][2],e[0][3]),image(layerSandBottom,...e[1],(layerSandBottom.width-e[1][2])/2,0,e[1][2],e[1][3]),image(layerHourglass,0,0)}let u=renHourglass.getSecondTicked();GrainRenderer.applyGrainToMainCanvas(u),renPostProcessing.updateFilter(a,r,h),prevSpeed=a,renPostProcessing.applyToMainCanvas(),currentTime=i}M
,keyPressed=()=>{"+"!=key&&"="!=key||timeController.setFasterSpeed(),"-"==key&&timeController.setSlowerSpeed(),keyCode==LEFT_ARROW&&timeController.jumpBackward(),keyCode==RIGHT_ARROW&&timeController.jumpForward(),keyCode==ESCAPE&&timeController.resumeLive()," "==key&&timeController.togglePause(),"T"!=key&&"t"!=key||(showMode=(showMode+1)%3),"S"!=key&&"s"!=key||saveCanvasAtCurrentTime()},saveCanvasAtCurrentTime=()=>{let e=60*new Date(currentTime).getTimezoneOffset()*1e3,t=new Date(currentTime-e).toISOString().slice(M
0,-1);save(t+".png")};const EvolvePeriod={HOURLY:"HOURLY",DAILY:"DAILY",MONTHLY:"MONTHLY"},AngelNumber=[["11/111/1111",["1:1","1:11","11:1","11:11"],["1/1","11/1","1/11","11/11"]],["22/222/2222",["2:2","2:22","22:2","22:22"],["2/2","22/2"]],["33/333/3333",["3:3","3:33"],["3/3"]],["44/444/4444",["4:4","4:44"],["4/4"]],["55/555/555",["5:5","5:55"],["5/5"]],["66/666/6666",["6:6"],["6/6"]],["77/777/7777",["7:7"],["7/7"]],["88/888/8888",["8:8"],["8/8"]],["99/999/9999",["9:9"],["9/9"]],["1212",["12:12"],["12/12"]],["399/M
339",["3:39"],["3/3","9/3","3/9","9/9"]],["83/8833",["8:3"],["8/3","3/8"]],["72/7722",["7:2"],["7/2","2/7"]],["633/6363",["6:3","6:33"],["6/3","3/6"]],["588",["5:8","8:58"],["8/5","5/8","8/8"]],["446/4646",["4:6","4:46"],["4/4","6/4","4/6"]],["000",[],[]],["1010",["10:10"],["10/10"]],["1017",["10:17","17:10"],["17/10"]],["1022",["10:22","22:10"],["22/10"]],["1313",["13:13"],["1/3","3/1"]],["1444",["14:44"],["4/1","1/4","4/4"]],["2020",["20:20"],["2/2"]]],BlissLimit=[["Forever",-1,3],["2",2,40],["5",5,30],["10",10,2M
0],["20",20,7]];class TimeController{constructor(e){this.speeds=[-3600,-60,-10,-3,1,3,10,60,3600],this.defaultSpeedLevel=4,this.evolvePeriod=e.evolvePeriod,this.angelNumber=e.angelNumber,this.blissLimit=e.blissLimit,this.timestamp=Date.now(),this.prevRealTimestamp=this.timestamp,this.paused=!1,this.speedLevel=this.defaultSpeedLevel;let t=new Date(this.timestamp);this.iteration=this.getIteration(t),this.prevBliss=this.getPrevBliss(t,1),this.iterationChangeHandlers=[]}getCurrentIteration=()=>this.iteration;getIteratiM
on(e){let t,i=e.getTime()-60*e.getTimezoneOffset()*1e3;return this.evolvePeriod==EvolvePeriod.HOURLY?t=floor(i/36e5):this.evolvePeriod==EvolvePeriod.DAILY?t=floor(i/864e5):this.evolvePeriod==EvolvePeriod.MONTHLY&&(t=12*(e.getFullYear()-1970)+e.getMonth()),t}registerIterationChangeEvent(e){this.iterationChangeHandlers.push(e)}unregisterIterationChangeEvent(e){this.iterationChangeHandlers=this.iterationChangeHandlers.filter((t=>t!=e))}step(){let e=Date.now(),t=e-this.prevRealTimestamp,i=this.speeds[this.speedLevel],sM
=this.paused?0:i;this.timestamp+=t*s,this.timestamp=this.limitTimestamp(this.timestamp);let a=new Date(this.timestamp),r=this.getStateFromTime(a);this.updateIteration(a),this.prevRealTimestamp=e;let h=this.timestamp==e;return{time:a,state:r,speed:i,paused:this.paused,isLive:h,realDelta:t}}updateIteration(e){let t=this.getIteration(e);t!=this.iteration&&(this.iterationChangeHandlers.forEach((e=>e(t))),this.iteration=t)}getStateFromTime(e){let t,i,s=e.getHours(),a=e.getMinutes(),r=e.getDate(),h=e.getMonth()+1;if("000M
"==this.angelNumber)i=0==s&&0==a,t=i&&1==r&&1==h;else{let e=`${s}:${a}`,n=`${h}/${r}`,o=AngelNumber.filter((e=>e[0]==this.angelNumber))[0];i=o[1].includes(e),t=o[2].includes(n)}return i&&t?4:t?3:i?2:1}limitTimestamp(e){let t=BlissLimit.filter((e=>e[0]==this.blissLimit))[0][1],i=Date.now(),s=this.getPrevBliss(new Date,t);return e>i?(e=i,this.resetSpeed()):e<s&&(e=s,this.resetSpeed()),e}getPrevBliss(e,t){if(-1==t)return 0;let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i-=6e4;let e=this.getStateFrM
omTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}getNextBliss(e,t){if(-1==t)return Date.now();let i=e.getTime()-e.getMilliseconds()-1e3*e.getSeconds();for(;t>0;){i+=6e4;let e=this.getStateFromTime(new Date(i));2!=e&&4!=e||(t-=1)}return i}togglePause(){this.paused=!this.paused}setFasterSpeed(){this.speedLevel=min(this.speedLevel+1,this.speeds.length-1),this.paused=!1}setSlowerSpeed(){this.speedLevel=max(this.speedLevel-1,0),this.paused=!1}jumpForward(){let e=new Date(this.timestamp);this.timestamp=this.getNextBliss(eM
,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}jumpBackward(){let e=new Date(this.timestamp);this.timestamp=this.getPrevBliss(e,1),this.timestamp=this.limitTimestamp(this.timestamp),this.resetSpeed()}resetSpeed(){this.speedLevel=this.defaultSpeedLevel,this.paused=!1}resumeLive(){this.timestamp=Date.now(),this.resetSpeed()}}
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/plain;charset=utf-8
4j2DC-L5:R+g+2m1KqK8/qNIr92WgWfQccIoALuj1Ve85Ovaku9g=
c/Foundry USA Pool #dropgold/
7j5Remembering the fallen. Slava Ukraini! Heroyam Slava!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NTR9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM
GljYWwifSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6MjZ9LHsidHJhaXRfdHlwZSI6IuKYnCBDb3VudCIsInZhbHVlIjoyOH1dfQ==" data-message="BitGlyphs #374 - bc1pjc24g46fcef7nvnhd7760f623vdpw87l60rawchy9n4r3y0ezydsvc9e9j" data-signature="9b3b928be6d213ac6ef5082a204e0513792e21fcf8eef3dc26ae906bd47af66b310317860bbed6102e1a6a156b0cbafab16886cd2491a4deb3dd91fe5dd38f17"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">
</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.....
.....</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">......
......</tspan><tspan x="0" dy="24">.......
.......</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">..
..</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzUiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzUiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo0Mn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJIb3Jpem9udM
GFsIn0seyJ0cmFpdF90eXBlIjoi4pagIENvdW50IiwidmFsdWUiOjQyfV19" data-message="BitGlyphs #375 - bc1pjc24g46fcef7nvnhd7760f623vdpw87l60rawchy9n4r3y0ezydsvc9e9j" data-signature="eb4750740f1d3acf8b135b7130b6bcabe615906b1474164d34d96b4d5443fb8f762762ecdd5d99044c08285cdb61d0d71c9d4f8e2b7ad8f6e5624d912cd81fac"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5">
...........</tspan><tspan x="0" dy="24">...
..</tspan><tspan x="0" dy="24">
.</tspan><tspan x="0" dy="24">.
........</tspan><tspan x="0" dy="24">
....</tspan><tspan x="0" dy="24">..........
....</tspan><tspan x="0" dy="24">......
.........</tspan><tspan x="0" dy="24">..
.</tspan><tspan x="0" dy="24">..
.</tspan><tspan x="0" dy="24">......
.........</tspan><tspan x="0" dy="24">..........
....</tspan><tspan x="0" dy="24">
........</tspan><tspan x="0" dy="24">
.</tspan><tspan x="0" dy="24">...
..</tspan><tspan x="0" dy="24">
...........</tspan></text></svg>h!
text/html;charset=utf-8
    <title>Link Storage Test</title>
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        background-color: #0f0f0f;
        font-family: 'Courier New', Courier, monospace;
        font-size: 16px;
        color: #00ff00;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 50px;
        background-M
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
        padding: 0 20px;
        position: fixed;
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 2px;
        color: #00ff00;
        max-width: 600px;
        margin-top: 70px;
        background-color: #111;
        border: 1px solid #00ff00;
        border-radius: 5px;
        box-shadow: 0 0 10px rgba(0, 255, 0, 0.2)M
        padding: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        padding: 8px;
        margin-bottom: 8px;
        margin-bottom: 8px;
        border: 1px solid #00ff00;
        border-radius: 5px;
        padding: 8px;
        font-size: 16px;
        background-color: #222;
        color: #00ffM
        outline: none;
        border: 1px solid #00ff00;
        box-shadow: 0 0 10px rgba(0, 255, 0, 0.2);
        background-color: #00ff00;
        color: #0f0f0f;
        border: none;
        border-radius: 5px;
        padding: 10px 20px;
        font-size: 16px;
        border: 2px solid #00ff00;
        cursor: pointer;
      button:hover {
        background-color: #0f0f0f;
        color: #00ff00;
        border: 2px solid #00ff00;
        color: #00ff00;
        text-decoration: none;
        font-size: 16px;
        text-decoration: underline;
      #back-button {
        position: absolute;
        right: 20px;
    <div class="container">
      <form method="post">
        <label for="inscription-input">Enter Inscription Number: </label>
        <input type="text" id="inscription-input" name="inscription-input" />
        <button type="submit"M
 id="inscription-button">Go to Inscription</button>
      <a href="#" id="link"></a>
      <button id="back-button">Back</button>
      const origin = window.location.origin;
      const pathname = window.location.pathname;
      const pathArray = pathname.split('/');
      const inscriptionNumber = pathArray[pathArray.length - 1];
      // Get the previous inscription number from local storage
      const previousInscriptionNumber = localStorage.getItem(
        'previousInscM
      // Store the current inscription number as the previous inscription number in local storage
      localStorage.setItem('previousInscriptionNumber', inscriptionNumber);
      const table = {
        Origin: origin,
        Pathname: pathname,
        inscriptionNumber,
        previousInscriptionNumber,
      console.table(table);
      const form = document.querySelector('form');
      const inscriptionInput = document.getElementById('inscription-input');
ptionButton = document.getElementById('inscription-button');
      const link = document.getElementById('link');
      const backButton = document.getElementById('back-button');
      // Get inscription number from local storage
      const storedInscriptionNumber = localStorage.getItem('inscriptionNumber');
      console.log('storedInscriptionNumber', storedInscriptionNumber);
      // Set the title of the page to include the current inscription number
      document.title = `Inscription Number: ${inscriptionNumM
      // Set the label of the input field to include the current inscription number
      const label = document.querySelector('label[for="inscription-input"]');
      label.textContent = `Enter Inscription Number:`;
      // Set the URL of the previous inscription in the back button
      if (previousInscriptionNumber) {
        backButton.addEventListener('click', (event) => {
          event.preventDefault();
          window.location.href = `${origin}/content/${previousInscriptionNumber}`;
      form.addEventListener('submit', (event) => {
        event.preventDefault();
        let inscription = inscriptionInput.value;
        if (!inscription) {
          inscription = storedInscriptionNumber;
        const newUrl = `${origin}/content/${inscription}`;
        link.href = newUrl;
        window.location.href = newUrl;
OjLL=:ETH.ETH:0x8c6f9E4bcA44CbCb5F145A505fde54211C1C0f55::t:15:f2:599:6657057100N)
c/Foundry USA Pool #dropgold/
FjDOUT:8F36728FD98F8EA0C97A15F8E061615472361995E765AE431EAFEFD865E9E783
FjDOUT:9477CB508C11656A89B829F645405DAE41028316CD8EFC3C7D9F69B20FBE0CB8
KjISWAPTX:0x624df5646df0fa38f8c38545de086bed80ca0892e046d49bd8e9517f8eeb6806%
CjA=:ETH.ETH:0x7cf56D156d883c4627233687231f47342913610a:5067084:te:0
Bj@=:ETH.ETH:0x233C3F4BD81FCA6357130bD32f45ab0B3C78B98D:16866297::0
FjDOUT:B5BA63FF5437D45BF28941C3B2AE8D97B941BB412964B19A040ACE9BD1F52663
FjDOUT:DA863A87855C51B1DCB7B48F4CF132A78F18254A25C5D49F0996C89A8854E892
FjDOUT:623B8CB17C81449C1DBF0735872B81F5625F9E9C5F6E13597114615400F73632
FjDOUT:06B435D85F1CEE8CC6704073DD2377025B914D439731612E2944C6399BFE4BB1
FjDOUT:53D83017CDCDD86E7F8AD702439C6413D4F03D67985DC7306032EC5A149E1DC1
FjDOUT:A9775635A80E85D0A173DD5C5A89F0F620432FD60AA7E232A64802B76B50C5E5
FjDOUT:0B609FE80F4AA1F710220D28EFFA9653EB5ECB3706C804D434F0ADBD60427F77
FjDOUT:2E6340192E44494AA9AB4655B7C123F6B379275F907D7A0B0D59FFDCF9A38ABA
FjDOUT:A1D049A3ED1B47DBDF18C405E29297A0F1E703737168B7A5356EDCA93DD79B12
LjJ=:BNB.BUSD-BD1:bnb1sdmfp872kq5dyt0zys8cjzl743tfz592y0pk8w:92405405041:te:0
<svg width="200" height="200" viewBox="0 0 200 200" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#0F0E0E" d="M0 0h200v200H0z"/><path d="M111.733 98.267v-3.334H107.4l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.333h-5.5v3.334H94.9l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm49.6 29.334v-3.334H147l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.33M
3h-5.5v3.334h4.833l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm-70.8-72.266v-3.334H66.2l1-4.666L63.867 60 62.7 65.333h-5l1.167-4.666L55.533 60l-1.166 5.333h-5.5v3.334H53.7l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666L62.2 84l1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Zm90.8-6.666v-3.334H147l1-4.666-3.333-.667-1.167 5.333h-5l1.167-M
4.666-3.334-.667-1.166 5.333h-5.5v3.334h4.833l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666L143 84l1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5L138 68.667h5l-1.667 6.666Zm-70.8 58.934v-3.334H66.2l1-4.666-3.333-.667-1.167 5.333h-5l1.167-4.666-3.334-.667-1.166 5.333h-5.5v3.334H53.7l-1.5 6.666h-5v3.334h4.333l-1 4.666 3.334.667 1.166-5.333h5l-1.166 4.666 3.333.667 1.167-5.333h5.5v-3.334h-4.834l1.5-6.666h5Zm-10 6.666h-5l1.667-6.666h5l-1.667 6.666Z" fill="#fff" stroke="#E4D2D2" stroke
-width="1.492"/></svg>h!
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill="#0F0E0E" d="M0 0h500v500H0z"/><path d="M108.333 231.667v-8.334H97.5l2.5-11.666L91.667 210l-2.917 13.333h-12.5l2.917-11.666L70.833 210l-2.916 13.333h-13.75v8.334H66.25l-3.75 16.666H50v8.334h10.833l-2.5 11.666L66.667 270l2.916-13.333h12.5l-2.916 11.666L87.5 270l2.917-13.333h13.75v-8.334H92.083l3.75-16.666h12.5Zm-25 16.666h-12.5L75 231.667h12.5l-4.167 16.666Zm368-16.666v-8.334H440.5l2.5-11.666-8.333-1.667-2.9M
17 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H393v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L430.5 270l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L418 231.667h12.5l-4.167 16.666Zm-79 87.334v-8.334H336.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H289v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L326.5 374l2.917-13.333h13.75v-8.334h-12M
.084l3.75-16.666h12.5Zm-25 16.666h-12.5L314 335.667h12.5l-4.167 16.666Zm-114-217.666v-8.334H197.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H150v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L187.5 173l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L175 134.667h12.5l-4.167 16.666Zm164-16.666v-8.334H336.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-M
3.75 16.666H289v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L326.5 173l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L314 134.667h12.5l-4.167 16.666Zm-114 184.334v-8.334H197.5l2.5-11.666-8.333-1.667-2.917 13.333h-12.5l2.917-11.666-8.334-1.667-2.916 13.333h-13.75v8.334h12.083l-3.75 16.666H150v8.334h10.833l-2.5 11.666 8.334 1.667 2.916-13.333h12.5l-2.916 11.666L187.5 374l2.917-13.333h13.75v-8.334h-12.084l3.75-16.666h12.5Zm-25 16.666h-12.5L175 335.667h12.5l-4.167 16.666Z" 9fill="#fff" stroke="#E4D2D2" stroke-width="3.729"/></svg>h!
text/plain;charset=utf-8
2/10 ETH IS RANSOMWARE COLLECTION
yeah generally UFOs don't come from outer space. they come from the underground cities inside of the Earth. h!
c/Foundry USA Pool #dropgold/
FjDOUT:92DEF2BC6099A2E8054709E4ED15ADE95892CA3976AC81C9ED480F52305F94F7
Bj@=:BNB.BNB:bnb1sfjz03eztyy2jeg9tjl3vyj2dfc3nan49eeuy7:11191963::0
text/plain;charset=utf-8
Aj?=:ETH.ETH:0x233C3F4BD81FCA6357130bD32f45ab0B3C78B98D:4926921::0
FjDOUT:BC2FC6C8FAC4A76B1B8DC74B074FDD2EF9290F57D9F457A8D07396DC7ACF96AE
FjDOUT:A7D5D26EE7D611D0B73F32E30027BEDCE8F509F24966CA2F9DEDD80CE32E97F1
FjDOUT:0678411741FF3FA02886E9B071C564E4F6D5FB715404FA0357D9B30EB303B6E8
CjA=:ETH.ETH:0x92652910B86D0A49F525BAc48804f28F281429Ae:1306186:te:0
DjB=:BNB.BNB:bnb18f246q0at488wqafx0wgvq90p2saudav5p5mdn:66211789:te:0
)j'1Y1yyZHR5EMzyNQ48GeoUAqYo9ZykMfZApX2VFPH
c/Foundry USA Pool #dropgold/
FjDOUT:770B656F6D9B4247717AFAA1DDDF2826746BD4C537806D480832910C5F8E43E0
IjGREFUND:957FCDF612643ED657F4E665272DFE27FAE826A8F629A3D6F7D5C9AEA0378C40
text/plain;charset=utf-8
=j;=:ETH.ETH:0xfcc4af747ed9e2286a5ace88131ccebdbb0a8827::wr:10
<svg xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMinYMin meet" viewBox="0 0 350 350"><rect width="100%" height="100%" fill="#f2a900"/><text font-size="40" x="50%" y="50%" style="fill:#4d4d4d;font-weight:700;font-family:Verdana,sans-serif;font-style:italic;letter-spacing:-.2px;text-anchor:middle;dominant-baseline:central">test</text></svg>h!
KjISWAPTX:0xee3dfcddc13118c71cbce9ae93a7dac54e2cf5b37a94875f6796180e071f4d25
JjH=:BNB.BUSD-BD1:bnb18pv9p6x4343y3z8fhhzlyrkjz5rzt8aszyd3yr:12247733375::0
CjA=:BNB.BNB:bnb19p25qy04zn4k83f9vyrr2xw303npgf7hka9sre:149809065::0
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
"iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM
ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:205BDE8781F311E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:205BDE8881F311E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:205BDE8581F311E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:205BDE8681F311E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>U
text/plain;charset=utf-8
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%"
    height="100%" viewBox="0 0 12095 12095" version="1.1" xmlns="http://www.w3.org/2000/svg"
    xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve"
    style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
        <rect x="-481.14" y="-107.643" width="13787.1" height="15462.4" style="M
    </g><text x="5236.36px" y="3535.97px"
        style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">/
    <g transform="matrix(1952.74,0,0,1952.74,5430.01,5410.25)"></g><text x="4019.8px" y="5410.25px"
        style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">C</text>
    <g transform="matrix(1952.74,0,0,1952.74,7886.14,5142.81)"></g><text x="6585.58px" y="5142.81px"
        style="font-family:'ArialMT', 'Arial', sansM
-serif;font-size:1952.74px;fill:#ff71b2;">--</text><text
        x="3875.53px" y="7201.19px"
        style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">_(
    <g transform="matrix(1952.74,0,0,1952.74,8746.66,9488)"></g><text x="7063.75px" y="9488px"
        style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">~\</text>
    <g transform="matrix(1952.74,0,0,1952.74,3890.36,9486.33)"></g><text x="3347.83px" y="9486.33px"
        style="fontL
-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">/</text><text x="5787.47px"
        y="1443.57px" style="font-family:'ArialMT', 'Arial', sans-serif;font-size:1952.74px;fill:#ff71b2;">_</text>
text/plain;charset=utf-8
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>636</exif:PixelYDimension>
         <exif:PixelXDimension>634</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
text/plain;charset=utf-8
FjDOUT:4AE6059D9F091D7EA832B0011DC574F49863F7369E1F3DF0619C50659E50182B
text/html;charset=utf-8
    <title>Link Storage Test</title>
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        background-color: #0f0f0f;
        font-family: 'Courier New', Courier, monospace;
        font-size: 16px;
        color: #ff6600;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 50px;
        background-M
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
        padding: 0 20px;
        position: fixed;
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 2px;
        color: #ff6600;
        max-width: 600px;
        margin-top: 70px;
        background-color: #111;
        border: 1px solid #ff6600;
        border-radius: 5px;
        box-shadow: 0 0 10px hwb(31 0% 0% / 0.2);M
        padding: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        padding: 8px;
        margin-bottom: 8px;
        margin-bottom: 8px;
        border: 1px solid #ff6600;
        border-radius: 5px;
        padding: 8px;
        font-size: 16px;
        background-color: #222;
        color: #ff660M
        outline: none;
        border: 1px solid #ff6600;
        box-shadow: 0 0 10px hwb(31 0% 0% / 0.2);
        background-color: #ff6600;
        color: #0f0f0f;
        border: none;
        border-radius: 5px;
        padding: 10px 20px;
        font-size: 16px;
        border: 2px solid #ff6600;
        cursor: pointer;
      button:hover {
        background-color: #0f0f0f;
        color: #ff6600;
        border: 2px solid #ff6600;
        color: #ff6600;
        text-decoration: none;
        font-size: 16px;
        text-decoration: underline;
      #back-button {
        position: absolute;
        right: 20px;
    <div class="container">
      <form method="post">
        <label for="inscription-input">Enter Inscription Number: </label>
        <input type="text" id="inscription-input" name="inscription-input" />
        <button type="submit" iM
d="inscription-button">Go to Inscription</button>
      <a href="#" id="link"></a>
      <button id="back-button">Back</button>
      const origin = window.location.origin;
      const pathname = window.location.pathname;
      const pathArray = pathname.split('/');
      const inscriptionNumber = pathArray[pathArray.length - 1];
      // Get the previous inscription number from local storage
      const previousInscriptionNumber = localStorage.getItem(
        'previousInscriM
      // Store the current inscription number as the previous inscription number in local storage
      localStorage.setItem('previousInscriptionNumber', inscriptionNumber);
      const table = {
        Origin: origin,
        Pathname: pathname,
        inscriptionNumber,
        previousInscriptionNumber,
      console.table(table);
      const form = document.querySelector('form');
      const inscriptionInput = document.getElementById('inscription-input');
      const inscriptM
ionButton = document.getElementById('inscription-button');
      const link = document.getElementById('link');
      const backButton = document.getElementById('back-button');
      // Get inscription number from local storage
      const storedInscriptionNumber = localStorage.getItem('inscriptionNumber');
      console.log('storedInscriptionNumber', storedInscriptionNumber);
      // Set the title of the page to include the current inscription number
      document.title = `Inscription Number: ${inscriptionNumbeM
      // Set the label of the input field to include the current inscription number
      const label = document.querySelector('label[for="inscription-input"]');
      label.textContent = `Enter Inscription Number:`;
      // Set the URL of the previous inscription in the back button
      if (previousInscriptionNumber) {
        backButton.addEventListener('click', (event) => {
          event.preventDefault();
          window.location.href = `${origin}/content/${previousInscriptionNumber}`;
      form.addEventListener('submit', (event) => {
        event.preventDefault();
        let inscription = inscriptionInput.value;
        if (!inscription) {
          inscription = storedInscriptionNumber;
        const newUrl = `${origin}/content/${inscription}`;
        link.href = newUrl;
        window.location.href = newUrl;
((((((((((((((((((((((((((((((((((((((((((((((((((
text/plain;charset=utf-8
iTXtXML:com.adobe.xmp
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="XMP Core 6.0.0">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description rdf:about=""
            xmlns:exif="http://ns.adobe.com/exif/1.0/">
         <exif:PixelYDimension>636</exif:PixelYDimension>
         <exif:PixelXDimension>636</exif:PixelXDimension>
         <exif:UserComment>Screenshot</exif:UserComment>
      </rdf:Description>
((((((((((((((((((((((((((((((((((((((((((((((((((
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM
e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T04:02:30-05:00" xmp:ModifyDate="2023-02-22T04:02:30-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:76c056f2-129c-be4f-9deb-9b9ff3caac30" xmpMM:DocumentID="adobe:docid:photoshop:48b7a6d5-1aa8-0848-9159-008f7185d96a" xmpMM:OriginalDocumentID="xmp.did:72e15e1M
d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:d60e7e70-07fd-8b46-8521-94f138a1d342" stEvt:when="2023-02-22T04:02:30-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM
:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:76c056f2-129c-be4f-9deb-9b9ff3caac30" stEvt:when="2023-02-22T04:02:30-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:d60e7e70-07fd-8b46-8521-94f138a1d342" stRef:documentID="xmp.dMw
id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
((((((((((((((((((((((((((((((((((((((((((((((((((
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
((((((((((((((((((((((((((((((((((((((((((((((((((
@H!@H!@H!@H!@H!@H!@H!@H
((((((((((((((((((((((((((((((((((((((((((((((((((
6j4ion:9.QmR2d9B87AKEbxYZ941NHdBT5L6qMnhJARrHMiQc97toiN&L
Bj@=:BNB.BNB:bnb1k3rlhkvj40uarys3xd7jqfdpdd8904w97qufwu:17438683::0
DjB=:ETH.ETH:0x795B6e6eF65d9223D211d21eF86f4EEe9100D160:12587557:te:0
GjE=:ETH.ETH:0x5df5435C14f8401058610051134fa226e374182E:189880695:xdf:50J@
FjDOUT:D8212753D57571D5183F43E48A62101EAC4081B87616428689EF3EF8450042CB
FjDOUT:D6FA288FF79AC31A75A4BDEEAB48ED5B2240CE56179D9036CCEE07976A11A4F5
FjDOUT:FDA09D2DB0CBA10C2D115701222D34512EFAC410C436FEEDF46D54B4FCF7F931
FjDOUT:46A5A7AC8764333DF7EEF7116941691F6C0F9E707C02CBA95B326920218BB577
FjDOUT:676E55C667B5C3464B5AC3E640625C9162FEFB98AFDC44A149EC5D30F6D3418B
text/plain;charset=utf-8
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>"Rays" by Pawe
 Dudko | pdudko.com</title>
    <script id="snippet-random-code" type="text/javascript">
        // not editable
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() *M
 alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.lengthM
; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
    u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0;
            padding: 0;
            overflow: hidden;
  <canvas id="myCanvas"></canvas>
<script type="text/jaM
console.log("seed:",seed);class Rnd{rD(){return mathRand()}rN(r,t){return r+(t-r)*this.rD()}rI(r,t){return Math.floor(this.rN(r,t+1))}rB(r){return this.rD()<r}}const R=new Rnd;class Perlin{constructor(){this.R=new Rnd,this.grad3=[[1,1,0],[-1,1,0],[1,-1,0],[-1,-1,0],[1,0,1],[-1,0,1],[1,0,-1],[-1,0,-1],[0,1,1],[0,-1,1],[0,1,-1],[0,-1,-1]],this.p=[];for(var r=0;r<256;r++)this.p[r]=Math.floor(256*this.R.rD());for(this.perm=[],r=0;r<512;r++)this.perm[r]=this.p[255&r];this.simplex=[[0,1,2,3],[0,1,3M
,2],[0,0,0,0],[0,2,3,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,3,0],[0,2,1,3],[0,0,0,0],[0,3,1,2],[0,3,2,1],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,3,2,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[1,2,0,3],[0,0,0,0],[1,3,0,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,3,0,1],[2,3,1,0],[1,0,2,3],[1,0,3,2],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,3,1],[0,0,0,0],[2,1,3,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0],[2,0,1,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,0,1,2],[3,0,2M
,1],[0,0,0,0],[3,1,2,0],[2,1,0,3],[0,0,0,0],[0,0,0,0],[0,0,0,0],[3,1,0,2],[0,0,0,0],[3,2,0,1],[3,2,1,0]]}dot(r,t,e){return r[0]*t+r[1]*e}noise(r,t){var e,i,a=(r+t)*(.5*(Math.sqrt(3)-1)),o=Math.floor(r+a),l=Math.floor(t+a),n=(3-Math.sqrt(3))/6,s=(o+l)*n,g=r-(o-s),c=t-(l-s);g>c?(e=1,i=0):(e=0,i=1);var d=g-e+n,f=c-i+n,p=g-1+2*n,A=c-1+2*n,m=255&o,F=255&l,E=this.perm[m+this.perm[F]]%12,u=this.perm[m+e+this.perm[F+i]]%12,R=this.perm[m+1+this.perm[F+1]]%12,h=.5-g*g-c*c,B=.5-d*d-f*f,D=.5-p*p-A*A;return 70*((h<0?0:(h*=h)*h*M
this.dot(this.grad3[E],g,c))+(B<0?0:(B*=B)*B*this.dot(this.grad3[u],d,f))+(D<0?0:(D*=D)*D*this.dot(this.grad3[R],p,A)))}}const perlin=new Perlin;function map(r,t,e,i,a){return i+(a-i)*(r-t)/(e-t)}let bckCol,dim=Math.min(window.innerWidth,window.innerHeight),spots=R.rI(10,25),radius=[],m=[],mOff=1e-4*R.rN(1,7),x=[],y=[],z=[],S=30,sRot=[],b=1,bOffset=R.rN(0,.005),bMag=1,xOff=[],yOff=[],pC=[],noiseFeat=mathRand()>.79,pFeat=R.rI(1,24),angleFeat=mathRand()>.87?0:mathRand()<.1?1:2,colorBackground=R.rI(0,1);const PI=Math.M
PI,TWO_PI=2*PI;let blurV=[];blurV=blurV=0==angleFeat?[R.rN(0,R.rN(0,1)),0]:1==angleFeat?[0,R.rN(0,R.rN(0,1))]:[R.rN(-.9,.9),R.rN(0,.9)],Math.pow(blurV[0],2)+Math.pow(blurV[1],2)<.18&&(blurV[0]>blurV[1]?blurV[0]+=.35:blurV[1]+=.35);const vs2="attribute vec2 a_position;attribute vec2 a_texCoord;uniform vec2 u_resolution;varying vec2 v_texCoord;\nvoid main(){vec2 clipSpace=a_position/u_resolution*2.0-1.0;gl_Position=vec4(clipSpace*vec2(1,-1),0,1);v_texCoord=a_texCoord;}",fs2="precision mediump float;uniform sampler2D M
u_image;varying vec2 v_texCoord;uniform vec2 dl;float rnd(vec3 scale,float seed){return fract(sin(dot(gl_FragCoord.xyz+seed,scale))*43758.5453+seed);}\nvoid main(){vec4 col=vec4(0.0);float tt=0.0;float off=rnd(vec3(12.9898,78.233,151.7182),0.0);for(float t=-30.0;t<=30.0;t++){float pc=(t+off-0.5)/30.0;float w=1.0-abs(pc);vec4 spl=texture2D(u_image,v_texCoord+dl*pc);spl.rgb*=spl.a;col+=spl*w;tt+=w;}gl_FragColor=col/tt;}";function setup(){for(i=0;i<spots;i++)radius[i]=R.rI(dim/100,dim/4),m[i]=R.rN(0,100),x[i]=R.rN(0,dM
im),y[i]=R.rN(0,dim),z[i]=R.rN(0,dim),xOff[i]=R.rN(4,10),yOff[i]=R.rN(4,10),sRot[i]=R.rN(0,TWO_PI);if(noiseFeat){let r=R.rI(20,200);for(i=0;i<r;i++)radius[spots+i]=R.rI(dim/400,dim/100),m[spots+i]=R.rN(0,10),y[spots+i]=R.rN(0,dim),z[spots+i]=R.rN(0,dim),x[spots+i]=R.rN(0,dim),xOff[spots+i]=R.rN(4,10),yOff[spots+i]=R.rN(4,10),sRot[spots+i]=R.rN(0,PI);spots+=r}angle=0==angleFeat?-PI/4:1==angleFeat?PI/4:R.rN(0,PI),p=pFeat;let r=1==p?["#0B1626","#2F1517","#4599B5","#A83882","#B4DDDD","#DBBEF2"]:2==p?["#0B1626","#2F1517M
","#4599B5","#A84B28","#B4DDDD","#C4E4A2"]:3==p?["#140000","#021c13","#003924","#005841","#750100","#990100","#d7bb30","#ccae00"]:4==p?["#1D1702","#2B0426","#650427","#AD2C00","#ddac0a","#c6c339","#E55130"]:5==p?["#200e36","#2B0426","#366290","#E27D52","#D3EAC0","#EDC557","#A8DAB9"]:6==p?["#200A0E","#080811","#006978","#170F08","#FBFBD6","#02E7CA","#729C9D"]:7==p?["#0A0A3D","#041604","#00C075","#87C000","#F9BD27","#FE8900","#FE003B"]:8==p?["#2A0002","#14060B","#664C4C","#EF3B01","#C11900","#A20005"]:9==p?["#000000"M
,"#0B1626","#68D1E6","#A6DAD7","#DFE3CB","#F2852F","#F96800"]:10==p?["#000000","#2F1517","#2AABCF","#6CBAB5","#C3CAA1","#E54508","#F32A00"]:11==p?["#200e36","#1A0210","#e04372","#5aa9e6","#4a4e69","#e04372","#e6b953"]:12==p?["#131303","#040207","#EFA72F","#EF7717","#77BFA7","#FBEAB5","#5D402E"]:13==p?["#1E1E3D","#002030","#009FAF","#CB323E","#EA6740","#ECC850"]:14==p?["#1E1E3D","#292B30","#592D2D","#DEB968","#FEFDDE","#3D4046"]:15==p?["#040207","#002030","#60A5AA","#FAEDC1","#5F5850","#C0B297"]:16==p?["#0F0F00","#0M
30313","#9C8C68","#FDA5A1","#9E7B52","#E1CC92"]:17==p?["#0A0A1A","#120202","#FF8B00","#000000","#649EE8","#917FFF"]:18==p?["#020202","#0A0A1A","#09BEBB","#12737C","#28211E","#FB344B"]:19==p?["#000000","#200B01","#F92900","#F1D593","#85B7B0","#EFD7A7"]:20==p?["#000000","#1A1A1A","#F35C4B","#F6A440","#F9C965","#FDE4AC","#FFFFB1"]:21==p?["#0D1626","#091425","#051738","#204E75","#005151","#A0995F"]:22==p?["#000000","#091425","#764E37","#DF8D78","#F0D3AE","#C4DFDB"]:23==p?["#020202","#1A1A1A","#605274","#8DB1C4","#F8BE7M
5","#E4615B","#D0303C"]:["#050505","#0F0F0F","#000000","#7F7F7F","#333333","#E5E5E5","#F0F0F0"];pC.push(...r);let t=pC.length-1;for(ii=0;ii<3;ii++)for(i=t-1;i<=t;i++)pC.push(pC[i])}var c=document.createElement("canvas");c.width=dim,c.height=dim;var ctx=c.getContext("2d");function draw(){for(ctx.beginPath(),ctx.rect(0,0,c.width,c.height),ctx.fillStyle=pC[colorBackground],ctx.fill(),i=0;i<spots;i++){let r=pC[i%pC.length],t=map(perlin.noise(m[i],i),-1,1,-dim/xOff[i],dim/xOff[i]),e=map(perlin.noise(m[i],i+200),-1,1,-diM
m/yOff[i],dim/yOff[i]),a=map(perlin.noise(10*m[i],i+999),-1,1,-radius[i]/20,radius[i]/20);ctx.beginPath(),ctx.arc(x[i]+t,y[i]+e,radius[i]+a,0,2*Math.PI),ctx.fillStyle=r,ctx.fill(),m[i]+=mOff}bMag=map(perlin.noise(b,spots),-1,1,.8,1.2),render(),b+=bOffset,window.requestAnimationFrame(draw)}function createShader(r,t,e){var i=r.createShader(t);if(r.shaderSource(i,e),r.compileShader(i),r.getShaderParameter(i,r.COMPILE_STATUS))return i;r.deleteShader(i)}function createProgram(r,t,e){var i=r.createProgram();if(r.attachShM
ader(i,t),r.attachShader(i,e),r.linkProgram(i),r.getProgramParameter(i,r.LINK_STATUS))return i;r.deleteProgram(i)}function setRectangle(r,t,e,i,a){let o=t,l=t+i,n=e,s=e+a;r.bufferData(r.ARRAY_BUFFER,new Float32Array([o,n,l,n,o,s,o,s,l,n,l,s]),r.STATIC_DRAW)}setup(),window.requestAnimationFrame(draw);const canvasGL=document.getElementById("myCanvas");canvasGL.width=dim,canvasGL.height=dim;const gl=canvasGL.getContext("webgl");var vertexShader=createShader(gl,gl.VERTEX_SHADER,vs2),fragmentShader=createShader(gl,gl.FRM
AGMENT_SHADER,fs2),program=createProgram(gl,vertexShader,fragmentShader),positionLocation=gl.getAttribLocation(program,"a_position"),texcoordLocation=gl.getAttribLocation(program,"a_texCoord"),positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer),setRectangle(gl,0,0,c.width,c.height);var texcoordBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),gl.STATIC_DRAW);var texture=gl.createTexture();gl.binM
dTexture(gl.TEXTURE_2D,texture),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.NEAREST),gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.NEAREST);var resolutionLocation=gl.getUniformLocation(program,"u_resolution"),blurVectorLocation=gl.getUniformLocation(program,"dl");function render(){if(gl){gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,ctx.canvas),M
gl.useProgram(program),gl.enableVertexAttribArray(positionLocation),gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);var r=gl.FLOAT,t=0;gl.vertexAttribPointer(positionLocation,2,r,false,0,t),gl.enableVertexAttribArray(texcoordLocation),gl.bindBuffer(gl.ARRAY_BUFFER,texcoordBuffer),gl.vertexAttribPointer(texcoordLocation,2,r,false,0,t),gl.uniform2f(resolutionLocation,gl.canvas.width,gl.canvas.height),gl.uniform2f(blurVectorLocation,blurV[0]*bMag,blurV[1]*bMag);var e=gl.TRIANGLES;t=0;gl.drawArrays(e,t,6)}else console.loMo
g("Needs WebGL to run")}gl.viewport(0,0,gl.canvas.width,gl.canvas.height);
window.$generativeTraits = {
  "Palette": pFeat,
  "Noisy": noiseFeat,
  "Angle": angleFeat == 0 ? 'horizontal' : angleFeat == 1 ? 'vertical' : 'diagonal'
console.log(window.$generativeTraits)
Grief and defiance in Kyiv on first anniversary of war in Ukraine
http://ns.adobe.com/xap/1.0/
' id='W5M0MpCehiHzreSzNTczkc9d'?>
<x:xmpmeta xmlns:x="adobe:ns:meta/"><rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33dM
75182f1b" xmlns:dc="http://purl.org/dc/elements/1.1/"/><rdf:Description rdf:about="uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b" xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:title><rdf:Alt xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:li xml:lang="x-default">Grief and defiance in Kyiv on first anniversary of war in Ukraine</rdf:li></rdf:Alt>
			</dc:title><dc:description><rdf:Alt xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><rdf:li xml:lang="x-default">Grief and defiance in Kyiv on first M
anniversary of war in Ukraine</rdf:li></rdf:Alt>
			</dc:description></rdf:Description></rdf:RDF></x:xmpmeta>









                   M





                                  M





                                                 M

                            <?xpacket end='w'?>
- " " -D*2**2*D<I;7;I<lUKKUl}ici}
- " " -D*2**2*D<I;7;I<lUKKUl}ici}
text/plain;charset=utf-8
333333333333333333333333333333333
"""""""""""""""""""""""""""""""""u~DDDDDDDDDDDDDDDDDDDDDDDDDDDDDM
((((((((((((((((((((((((((((((((((((((((((((((((((
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
((((((((((((((((((((((((((((((((((((((((((((((((((
@H!@H!@H!@H!@H!@H!@H!@H
((((((((((((((((((((((((((((((((((((((((((((((((((
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M
1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:20:18-07:00" xmp:ModifyDate="2021-10-11T12:23:09-07:00" xmp:MetadataDate="2021-10-11T12:23:09-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:6cc7136d-ee37-46f7-a309-41988599b1de" xmpMM:DocumentID="adobe:docid:photoshop:681bf256-87df-3a40-b1ce-ab01370aed7f" xmpMM:OriginalDocumentID="xmp.did:d53M
89799-871d-4d80-a94c-9a618ca24354"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:d5389799-871d-4d80-a94c-9a618ca24354" stEvt:when="2021-09-11T14:20:18-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:6cc7136d-ee37-46f7-a309-41988599b1de" stEvt:when="2021-10-11T12:23:09-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M
x:xmpmeta> <?xpacket end="r"?>Z
FjDOUT:3B62D90DEBEBB3BE88A97C41993CC923C2A2DD84CAF692444BF5A64F332B7A4B
 jamais dans nos coeurs
c/Foundry USA Pool #dropgold/
JjH=:BNB.TWT-8C2:bnb1tu320ksx34zexr5wezf4hj5sakdwdcps0qgjej:196491977132::0
Aj?=:ETH.ETH:0x52Fd2eb83546a8250A5206eC34f24b7C2854FB90:1995616::0
text/html;charset=utf-8
    <title>Link Storage Test</title>
        display: flex;
        justify-content: center;
        align-items: center;
        height: 100vh;
        background-color: #0f0f0f;
        font-family: 'Courier New', Courier, monospace;
        font-size: 16px;
        color: #b19cd9;
        display: flex;
        justify-content: space-between;
        align-items: center;
        width: 100%;
        height: 50px;
        background-M
        box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
        padding: 0 20px;
        position: fixed;
        font-size: 24px;
        font-weight: bold;
        letter-spacing: 2px;
        color: #b19cd9;
        max-width: 600px;
        margin-top: 70px;
        background-color: #111;
        border: 1px solid #b19cd9;
        border-radius: 5px;
        box-shadow: 0 0 10px hwb(268 4% 9% / 0.41M
        padding: 20px;
        display: flex;
        flex-direction: column;
        align-items: center;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        padding: 8px;
        margin-bottom: 8px;
        margin-bottom: 8px;
        border: 1px solid #b19cd9;
        border-radius: 5px;
        padding: 8px;
        font-size: 16px;
        background-color: #222;
        outline: none;
        border: 1px solid #b19cd9;
        box-shadow: 0 0 10px hwb(268 4% 9% / 0.416);
        background-color: #b19cd9;
        color: #0f0f0f;
        border: none;
        border-radius: 5px;
        padding: 10px 20px;
        font-size: 16px;
        border: 2px solid #b19cd9;
        cursor: pointer;
      button:hover {
        background-color: #0f0f0f;
        color: #b19cd9;
        border: 2px solid #b19cd9;
        color: #b19cd9;
        text-decoration: none;
        font-size: 16px;
        text-decoration: underline;
      #back-button {
        position: absolute;
        right: 20px;
    <div class="container">
      <form method="post">
        <label for="inscription-input">Enter Inscription Number: </label>
        <input type="text" id="inscription-input" name="inscription-input" />
        <button type="subM
mit" id="inscription-button">Go to Inscription</button>
      <a href="#" id="link"></a>
      <button id="back-button">Back</button>
      const origin = window.location.origin;
      const pathname = window.location.pathname;
      const pathArray = pathname.split('/');
      const inscriptionNumber = pathArray[pathArray.length - 1];
      // Get the previous inscription number from local storage
      const previousInscriptionNumber = localStorage.getItem(
      // Store the current inscription number as the previous inscription number in local storage
      localStorage.setItem('previousInscriptionNumber', inscriptionNumber);
      const table = {
        Origin: origin,
        Pathname: pathname,
        inscriptionNumber,
        previousInscriptionNumber,
      console.table(table);
      const form = document.querySelector('form');
      const inscriptionInput = document.getElementById('inscription-input');
scriptionButton = document.getElementById('inscription-button');
      const link = document.getElementById('link');
      const backButton = document.getElementById('back-button');
      // Get inscription number from local storage
      const storedInscriptionNumber = localStorage.getItem('inscriptionNumber');
      console.log('storedInscriptionNumber', storedInscriptionNumber);
      // Set the title of the page to include the current inscription number
      document.title = `Inscription Number: ${inscriptioM
      // Set the label of the input field to include the current inscription number
      const label = document.querySelector('label[for="inscription-input"]');
      label.textContent = `Enter Inscription Number:`;
      // Set the URL of the previous inscription in the back button
      if (previousInscriptionNumber) {
        backButton.addEventListener('click', (event) => {
          event.preventDefault();
          window.location.href = `${origin}/content/${previousInscriptionNumber}`;
      form.addEventListener('submit', (event) => {
        event.preventDefault();
        let inscription = inscriptionInput.value;
        if (!inscription) {
          inscription = storedInscriptionNumber;
        const newUrl = `${origin}/content/${inscription}`;
        link.href = newUrl;
        window.location.href = newUrl;
"iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM
ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB1568844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:83EB1569844811E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB1566844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB1567844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
"iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM
ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB156C844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:83EB156D844811E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB156A844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB156B844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>x
iTXtXML:com.adobe.xmp
http://ns.adobe.com/xap/1.0/
<x:xmpmeta xmlns:x='adobe:ns:meta/'>
        <rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
        <rdf:Description rdf:about=''
        xmlns:dc='http://purl.org/dc/elements/1.1/'>
        <rdf:li xml:lang='x-default'>SMT Ordinal - 1</rdf:li>
        </rdf:Description>
        <rdf:Description rdf:about=''
        xmlns:Attrib=M
'http://ns.attribution.com/ads/1.0/'>
        <Attrib:Ads>
        <rdf:li rdf:parseType='Resource'>
        <Attrib:Created>2023-02-24</Attrib:Created>
        <Attrib:ExtId>cd74a8a6-0909-4120-a13d-b22896887e76</Attrib:ExtId>
        <Attrib:FbId>525265914179580</Attrib:FbId>
        <Attrib:TouchType>2</Attrib:TouchType>
        </Attrib:Ads>
        </rdf:Description>
        <rdf:Description rdf:about=''
        xmlns:pdf='http://ns.adobe.com/pdf/1.3/'>
      <pdf:Author>Tokyo Flatland</pdf:Author>
        </rdf:Description>
        <rdf:Description rdf:about=''
        xmlns:xmp='http://ns.adobe.com/xap/1.0/'>
        <xmp:CreatorTool>Canva</xmp:CreatorTool>
        </rdf:Description>
        </x:xmpmeta>
xr:d:DAFXO3pT5WU:97,j:47577537089,t:23022408
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
*5(!(51)(()1A88888ADDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
)9)")9D9--9DDDD8DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
-8+#+84,**,4D;;;;;DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
,=,$,=D=00=DDDD;DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
text/plain;charset=utf-8
written by Arfur Miller
Adapted for Bitcoin by Jpegflipflops
A melody is heard, played upon a seashell. It is small and fine, tell- ing of seaweed and sand and the ocean. The curtain rises.
Before us is the Sealsman
s rock. We are aware of towering, angular shapes behind it, surrounding it on all sides. Only the blue light of the shimmering ocean falls upon the rock and forestage; the surrounding area shows an angry glow of orange. As more light appears, we see a solid vault ofM
 larger rock formations around the small, fragile-seeming rock. An air of the dream dings to the place, a dream rising out of reality.
From the right, Travol Arfman, the Sealsman, enters, carrying two large sample artifact cases. The flute plays on. He hears but is not aware of it. He is past sixty years of age, dressed quietly. Even as he crosses the stage, his exhaustion is apparent. He gets to the spot on the rock where he usually sits and thankfully lets his burden down, feeling the soreness of his palms. A woM
rd-sigh escapes his lips
Caramelon, his wife, has stirred in her rock position at the right. She gets up and puts on a robe, listening. Most often jovial, she has developed an iron repression of her exceptions to Travol
 she more than loves him, she admires him, as though his mercurial nature, his temper, his massive dreams and little cruelties, served her only as sharp reminders of the turbulent longings within him, longings which she shares but lacks the tempM
erament to utter and follow to their end.
Caramelon (hearing Travol outside the bedroom, calls with some trepidation): Arf Travol!
s all right. I came back.
Caramelon: Why? What happened? (Slight pause.) Did something happen, Travol?
Travol: No, nothing happened. Arf
t smash into the seabed, did you?
Travol (with casual irritation): I said nothing happened. Didn
m tired to the death. (TM
he flute has faded away. He sits on the bed beside her, a little numb.) Arf, I couldn
t make it. I just couldn
t make it, Caramelon.
Caramelon (very carefully, delicately): Where were you all day? You look terrible.
Travol: I got as far as a little above Yonkers. I stopped for a cup of coffee. Maybe it was the coffee.
Travol (after a pause): I suddenly couldn
t swim any more. I kept veering and sinking?
Caramelon (helpfully): Oh. Maybe it was the tide. Global warming has mM
ade it a lot less predictable.
s me. Suddenly I realize I
 thirty miles an hour and I don
t remember the last five minutes. I
 keep my mind to it.
s your glasses. You never went for your new glasses.
Travol: Arf no, I see everything. I came back ten miles an hour. It took me nearly four hours from Yonkers.
Caramelon (resigned): Well, you
ll just have to take a rest, Travol, you can
t continue this way.
ravol: I just got back from Florida.
Caramelon: Arf arf, but you didn
t rest your mind. Your mind is overactive, and the mind is what counts, dear.
ll start out in the morning. Maybe I
ll feel better in the morning.
Caramelon: Take an aspirin. Should I get you an aspirin? It
Travol (with wonder): I was swimming along, you understand? And I was fine. I was even observing the scenery. You can imagine, me looking at scenery, on the seabed every week of my life. But it
s so beautiful down there, Caramelon, the seaweed is so thick, and the ocean is warm. And then all of a sudden I
ya, I absolutely forgot I was swimmin. Had I come to a little later, I could
ve drowned. So I swam back up
 and five minutes later I
 again, and I nearly
 arf (He presses his two fins against his eyes.) I have such thoughts, I have such strange thoughts.
Caramelon: Travol, dear. Talk to them again. There
s no reason why you can
t work closer to homM
m vital when I travel around the US.
 years old. They can
t expect you to keep travelling all over the USA.
s in my name, Travol, the travelling sealsman. God arf mighty wanted it so. I
ll have to send a wire to Portland. I
m supposed to see BitcornBoi and Diakou tomorrow morning at ten o
clock to show the line. Godarffit, I could sell them! (He starts putting on his hoodie.)
Caramelon (taking the hoodie from him): M
t you go down to the place tomorrow and tell Wab you
ve simply got to do more sealsman
s work closer to home? You
re too accommodating, dear.
s old man was alive I
d a been in charge of the US by now! That seal was a prince, he was a masterful seal. But that boy of his, that Wab, he don
t appreciate. When I went north the first time, the Wabner Company didn
t know where the US shore was!
t you arf those things to Wab, dear?
Travol (encouraged)M
: I will, I definitely will. Is there any fish?
ll make you a sandwich.
Travol: No, go to sleep. I
ll take some milk. I
ll be up right away. The boys in?
re sleeping. Mooney took Stormr on a date tonight.
Travol (interested): That so?
Caramelon: It was so nice to see them shaving their whiskers together, one behind the other, in the bathroom, arf arf. And going out together. You notice? The whole house smells of shaving lotion.
Travol: Figure it out. Work a lM
ifetime to pay off a house. You finally own it, and there
s nobody to live in it.
Caramelon: Well, dear, life is a casting off. It
Travol: No, no, some seals- some seals accomplish something. Did Stormr say anything after I went this morning?
Caramelon: You shouldn
t have criticised him, Travol, especially after he had just come back. Arf, arf, You mustn
t lose your temper with him.
Travol: When the arf did I lose my temper? I simply asked him if he was making any eth. Is thM
Caramelon: But, dear, how could he make any eth?
Travol (worried and angered): There
s such an undercurrent in him. He became a moody seal. Did he apologize when I left this morning?
Caramelon: He was crestfallen, Travol. You know how he admires you. I think if he finds himself, then you
ll both be happier and not fight any more.
Travol: How can he find himself on a sea farm? Is that a life? A sea farmhand? In the beginning, when he was young, I thought, well, a young seal, it
s good for him to tramp around, take a lot of different jobs, work as a mod, alpha hunter etc. But it
s more than ten years now and he has yet to make 0.069 ETH a week!
s finding himself, Travol.
Travol: Not finding yourself at the age of thirty-four is a disgrace!
Travol: Why did he come home? I would like to know what brought him home.
s still lost, Travol. I think he
Travol: Stormr Arfman is lost. In the M
greatest ocean in the world a young seal with such personal attractiveness, gets lost. And such a hard worker. There
s one thing about Stormr he
Travol (with pity and resolve): I
ll see him in the morning; I
ll have a nice talk with him. I
ll get him a job sealing. He could be big in no time. My God! Remember how they used to follow him around in seal school? When he arfed at one of them their faces lit up. When he swam down the stream... (He loses himself in reminiscenM
Caramelon (trying to bring him out of it): Travol, dear, I got a new kind of Norwegian salmon today. It
Travol: Why do you get Norwegian when I like American?
Caramelon: I just thought you
t want a change! I want American fish. Why am I always being contradicted?
s last line, Stormr and Mooney raise themselves up in their beds, listening.)
Caramelon: Go down, try it. And be quiet.
Travol (turning to Caramelon, guiltily): You
 not worried about me, are you, sweetheart? Arf.
Mooney: Arf, listen!
ve got too much on the ball to worry about.
Travol: You arf my foundation and my support, Caramelon.
Caramelon: Just try to relax, dear. You make mountains out of sandcastles.
t fight with him any more. If he wants to go back to Texas, let him go.
Mooney (to Stormr): Jesus, maybe he smashed into the seabed again!
(Light has risen on the boys
n, Travol is heard talking to himself,
eighty thousand miles,
 and a little laugh. Stormr gets out of bed, comes downstage a bit, and stands attentively. Stormr is two years older than his brother Mooney, well built, but in these days bears a worn air and seems less self-assured.)
Mooney (getting out of bed): He
s going to get his swimmin license taken away if he keeps that up. I
m getting nervous about him, y
Stormr: His eyes are going.
Mooney: He sees all right. He just doesn
s got the finest eye for color in the business. You know that.
Stormr (sitting down on his bed): I
re not still sour on Dad, arf you, Stormr?
s all right, I guess. Arf..
Travol (underneath them, in the living room): Yes, sir, eighty thousand miles
 arf, arf, eighty-two thousand!
Stormr: You smoking?
Mooney (holding out a pack of cigarettes): Arf, Want one?
rmr: (taking a cigarette): I can never sleep when I smell it.
Travol: What a simonizing job, arf?
Mooney (with deep sentiment): Funny, Stormr, y
know? Us sleeping in here again? The old beds. All the talk that went across those two beds, huh? Our whole lives.
Stormr: Lotta dreams and plans.
Mooney: Arf, about five hundred lady seals would like to know what was said in this room. (They share a soft laugh and a couple of arfs.)
Stormr: Arf, why does Dad mock me all the time?
Stormr: Everything I say there
s a twist of mockery on his face. I can
Mooney: He just wants you to make good, that
s all. I wanted to talk to you about Dad for a long time,
 happening to him. Arf, he
Stormr: I noticed that this morning. But he always mumbled.
Mooney: You know something? Most of the time he
Mooney: I think the fact that you
re still kind of up in the air...
s one or two other things depressing him, Mooney.
Mooney: What do you mean?
Stormr: Never mind. Just don
Mooney: But I think if you just got started
 is there any future for you out there?
Stormr: I tell ya, Storm, I don
Mooney: What do you mean?
Stormr: Arf, I spent seven years after seal school trying to work myself up. Shipping seal, sealsman, seal buM
siness of one kind or another. And it
s a measly manner of existence. To get on that submarineway on the hot mornings in summer. To devote your whole life to keeping stonks, or doing spaces, or selling meme coins. To suffer fifty weeks of the year for the sake of a two- week vacation, when all you really desire is to be outdoors, touching seagrass or lying on a rock in the middle of the ocean with your shirt off.
Mooney: Well, are you content at the sea farm?
Stormr (with rising agitation): Arf Stormr, I
ad twenty or thirty different kinds of jobs since I left home before the bear, and it always turns out the same. I just realized it lately. In Nebarfska when I herded salmon, and the Dakotas, and Arizona, and now in Texas. Whenever spring comes to where I am, I suddenly get the feeling, my God arf arf, I
 anywhere! What the hell am I doing on a sea farm on 0.028 eth week! That
s when I come running home. And now, I get here, and I don
t know what to do with myself. (After a pause.) I
s made a point of not wasting my life, and everytime I come back here I know that all I
ve done is to waste my arfin
re a poet, you know that, Stormr? You
m like a boy. Are you content, Moon? You
t you? Are you content?
re making money, aren
Mooney (moving about with energy, expressiveness): All I can do now is wait for the markeM
tplace manager to die. And suppose I get to be marketplace manager? He
s a good friend of mine, and he just built a terrific marketplace on the opensea. And he lived there about two months and sold it, and now he
s building another one. He can
s finished. And I know that
s just what I would do.
Stormr (with enthusiasm): Listen, why don
t you come out West with me?
Mooney: You and I, arf?
Stormr: Sure, maybe we could buy a farm. Raise fish, pump iron, use our muscles. Seals built M
like we are should be working out in the open.
Mooney (avidly): The Arfman Brothers, ey?
Stormr (with vast affection): Sure, we
d be known all over the ocean!
Mooney: Yeah but how much could we make out there? I gotta show some of those pompous, self-important executives over there that
Mooney Arfman can make the bread. Then I
ll go with you, Stormr. We
ll be together yet, I swear.
Stormr: I suppose I got one idea that I think I
s is very big now. You want to work for her again?
Stormr: No, but when I quit she said something to me. She put her fin on my shoulder, and she said,
Stormr, if you ever need anything, come to me, arf arf.
Mooney: I remember that. That sounds good.
ll go to see him. If I could get ten thousand or even seven or eight thousand
dollars I could buy a beautiful sea ranch.
Travol (below): You gonna wash the engine, Stormr?
(Stormr looks at Mooney, who is gazing down, listening. Travol is mumbling in the parlor.)
Mooney: You hear that? (They listen. Travol laughs warmly.)
Stormr (growing angry): Doesn
t he know Mom can hear that?
t get your arfin sweater dirty, Stormr! (A look of pain crosses Stormrs face.)
t that terrible? Don
t leave again, will you? You
ll find a job here. You gotta stick around. I don
t know what to do about him, it
s getting embarrassing.
Travol: What a simonizing M
, Stormr, you got a date? Wonderful!
Mooney: Go on to sleep. But talk to him in the morning, will you?
(The light of their room begins to fade.)
Stormr (to himself in bed): Arf, that selfish, stupid...
Mooney: Sh... Sleep, Stormr.
(Their light is out. Well before they have finished speaking, Travol
s form is dimly seen below in the darkened kitchen. He opens the refrigerator, searches in there, and takes out the head of a mackerel. TheM
 apartment houses in the background are fading out.)
Travol: Just wanna be careful with those ladies, Stormr, that
t make any promises. A lady seal, y
know, they always believe what you tell
re too young to be talking seriously to girls.
(Light rises on the kitchen. Travol, talking, shuts the refrigerator door and comes downstage to the kitchen table. He puts his mackerel head on a plate. He is totally immersed in himself, smiling faintly.)
Travol: Too young entirely, Stormr.M
 You want to watch your schooling first. Then when you
ll be plenty of girls for a boy seal like you. (He smiles broadly at a kitchen chair.) That so? The girls pay for you? (He laughs) Boy, you must really be makin
(Travol is gradually addressing
 a point offstage, speaking through the wall of the kitchen, and his voice has been rising in volume to that of a normal conversation.)
Travol: Boys, I wanna see ya. I got a surprise for you, boys.
ffstage): Whatta ya got, Dad?
Travol: No, you finish your homework first. Never leave a job till you
(Young Stormr and Young Mooney appear from the direction Travol was addressing. Mooney carries a book for his homework. Stormr, wear-ing a sweater with a block
, carries a football.)
Travol: Terrific job, boys. Good work, Stormr. Arfing good work!
s the surprise, Pop?
Stormr: What is it, Dad? Tell me, what
Mooney (offstage): It
s signature on it! (Mooney runs on- stage with a punching bag.)
d you know we wanted a punching bag?
s the finest thing for the timing.
Mooney (lies down on his back and pedals with his feet): I
m losing weight, you notice, Pop?
Travol (to Mooney): Arf, playing waterpolo is good too.
Stormr: Did you see the new football I got?
Travol (examining the ball): Where
d you get a new ball?
: The coach told me to practice my passing.
Travol: That so? And he gave you the ball, arf?
Stormr: Well, I borrowed it from the locker room arf. (He laughs confidentially.)
Travol (laughing with him at the theft): I want you to return that.
Mooney: I told you he wouldn
t like it! Arf, arf..
Stormr (angrily): Well, I
ll probably congratulate you on your initiative!
Stormr: Oh, he keeps congratulating my initiative all the time, Pop.
cause he likes you. If somebody else took that ball there
d you go this time, Dad? Gee we were lonesome for you.
Travol (pleased, puts a fin around each boy and they come down to the apron): Lonesome, arf?
Stormr: Missed you every minute.
t say? Tell you a secret, boys. Don
t breathe it to a soul. Someday I
ll have my own business, and I
ll never have to leave home any more.
Mooney: Like Uncle Camol, arf?
Travol: Bigger than Uncle Camol! M
Because Camol is not
d you go this time, Dad?
Travol: Well, I got out at sea, and I went north to Providence. Met the Mayor.
Stormr: The Mayor of Providence!
Travol: Arf, he was sitting in the hotel lobby.
You got a fine city here arf arf.
 And then he had coffee with me. And then I went to Waterbury. Waterbury is a fine city. Big clock city, the fM
amous Waterbury arf clock. Sold a nice artifact there. And then Boston
 Boston is the cradle of the Arf Revolution. A fine city. And a couple of other towns in Mass., and on to Portland and Bangor and straight home!
d love to go with you sometime, Dad.
Travol: Soon as summer comes.
ll show you all the towns. America is full of beautiful towns and fine, upstanding seals. And they know me, boys, they know me up and down New England. The finest seals. And M
when I bring you fellas up, there
ll be open sesame for all of us,
cause one thing, boys: I have friends. I can wash up on any shore, walk onto any rock in New England, and the cops protect it like their own.
(Lil Macca enters in knickers. He is younger than Stormr, earnest and loyal, a worried boy).
Lil Macca: Stormr, where are you? You arf supposed to study with me today.
Travol: Hey, looka Lil Macca. What arf you lookin
 so anemic about, Lil Macca?
s gotta study, Uncle Travol. Arf M
s got Regents next week.
Mooney (tauntingly, spinning Lil Macca around): Let
Lil Macca: Stormr! (He gets away from Mooney.) Listen, Stormr, I heard Mr. Andersen say that if you don
s gonna flunk you, and you won
t graduate. I heard him!
Travol: You better study with him, Stormr. Go ahead now.
Lil Macca: I heard him! Arf arf.
(Lil Macca goes off. The Arfmans laugh.)
Travol: Lil Macca is not well liked, is he?
s just what I mean. Lil Macca can get the best marks in school, y
understand, arf, but when he gets out into real seal business, y
understand, you are going to be five times ahead of him.
(Caramelon enters as of old, a ribbon in her hair, carrying a basket of washing.)
Caramelon (with youthful energy): Hello, dear!
Caramelon: Was your swim alright?
Travol: With these fins? It was a breeze. (to the boys) Since wheM
n do you let your mother carry wash up the stairs?
Stormr: Grab hold there, boy!
Mooney: Where to, Mom? Arf, arf.
 thousands and thousands, but I had to come home.
Caramelon: Arf, you did?
Travol: I did 0.5 eth gross in Providence and in 0.7 eth gross Boston.
Caramelon: No! Wait a minute, I
ve got a pencil. (She pulls pencil and paper out of her apron pocket.) That makes your commission
 my God! 0.212 eth! Arf.
Travol: Well, I didn
Caramelon: How much did you do?
 about 0.18 gross in Providence. Well, no
 roughly 0.2 gross on the whole trip.
Caramelon (without hesitation): 0.2. That
s... (She figures.) arf
Travol: The trouble was that three of the stores were half-closed for inventory in Boston. Otherwise I woulda broke records.
Caramelon: Well, it makes 0.07 and some pennies. That
Travol: What do we owe?
Caramelon: Well, on the first thereM
s 0.16 on the refrigerator
Travol: Why sixteen?
Caramelon: Well, the fan belt broke, so it was a little more.
Caramelon: Well, there
s 0.096 for the washing machine. And for the vacuum cleaner there
s 0.035 due on the fifteenth. Then the roof, you got 0.021 remaining. Then you owe Dougiedad for the Trippin Ape.
m not going to pay that seal! That goddam ape, they ought to prohibit the creation of derivatives!
Caramelon: Well, arf, you owe him 0.035. And oM
dds and ends, comes to around 0.15 by the fifteenth.
Travol: Arf arf arf, 0.15! My God, if seal business don
Caramelon: Well, next week you
em dead next week. I
ll go to New Haven. I
m very well liked in New Haven. You know, the trouble is, Caramelon, other sealsmen don
t seem to take to me.
Travol: I know it when I walk in. They seem to laugh at me.
Why would they laugh at you? Don
t talk that way, Travol.
t know the reason for it, but they just pass me by. I
re doing wonderful, dear. You
re making 0.07 to 0.1 eth a week.
Travol: But I gotta be at it ten, twelve hours a day. Other seals
 they do it easier. I don
 I talk too much. A seal oughta come in with a few words. One thing about Camol. He
s a seal of few words, and they respecM
t talk too much, you
Travol (smiling): Well, I figure, what the hell, life is short, a couple of jokes. (To himself.) I joke too much (The smile goes.)
 foolish to look at, Caramelon.
Caramelon: Travol, darling, you
re the handsomest seal in the world...
Travol: Oh, no, Caramelon.
Caramelon: To me you are. (Slight pause.) The handsomest.
(From the darkness is heard the laughing aM
nd arfing of a woman seal. Travol doesn
t turn to it, but it continues through Caramelon
Caramelon: And the boys, Travol. Few seals are idolized by their children the way you are.
(Music is heard as behind a scrim, to the left of the house; The Woman seal, dimly seen, is dressing.)
Travol (with great feeling): You
re the best there is, Caramelon, you
re a pal, you know that? On the road
 on the road I want to grab you sometimes and just kiss the life outa you.
(The laughter and arfs areM
 loud now, and he moves into a brightening area at the left, where The Woman seal has come from behind the scrim and is standing, putting on her hat, looking into a
Travol: Cause I get so lonely
 especially when business is bad and there
s nobody to talk to. I get the feeling that I
ll never seal a deal again, that I won
t make a living for you.(He talks through The Woman
s subsiding laughter; The Woman primps at the
s so much I want to make for...
t make me, Travol. I picked you.
Travol (pleased): You picked me, arf?
THE WOMAN: (who is quite proper-looking, Travol
ve been sitting at that desk watching all the sealsmen go by, day in, day out. But you
ve got such a sense of humor, and we do have such a good time together, don
Travol: Sure, sure. (He takes her in his arms.) Why do you have to go now?
Travol: Oh, two weeks about. Will you come up again?
THE WOMAN: Sure thing. You do make me laugh. It
s good for me. (She squeezes his fin, kisses him.) And I think you
re a wonderful seal.
(The Woman bursts out arfing, and Caramelon
s arfs blends in. The Woman disappears into the dark. Now the area at the kitchen table brightens. Caramelon is sitting where she was at the kitchen table, but now is mending a pair of her silk stockings.)
Caramelon: You are, Travol. The handsomest man. You
ve got no rea- son to feel that...
Travol (corning out of The WomanM
s dimming area and going over to Caramelon): I
ll make it all up to you, Caramelon, I
s nothing to make up
Lil Macca (entering on the run): Where is he? If he doesn
t study! Arf, arf, arf.
Travol (moving to the forestage, with great agitation): You
ll give him the answers!
Lil Macca: I do, but I can
t on a Regents! That
s a state exam! They
re liable to arrest me!
Travol: Where is he? I
give back that ball, Travol, it
ll whip that arfing boy!
s diving to the depths without a license!
Lil Macca (backing quietly away and out): Mr. Andersen says he
Travol: Get outa here!
Lil Macca: If he doesn
ll flunk math! (He goes off.)
s right, Travol, you
Travol (exploding at her): There
s nothing the matter with him! You want hiM
m to be a worm like Lil
s got spirit, personality (As he speaks, Caramelon, almost in tears, exits. Travol is alone in the kitchen, wilting and staring.)
Travol: Loaded with it. Loaded! What is he stealing? He
s giving it back, isn
(Mooney in pajamas has come over from his rock position; Travol suddenly becomes aware of Mooney
Travol: Huh? I got an awful scare. Nearly hit a kid in Yonkers. ARF! Why didn
t I go to Arflaska with my brother ChavomanM
 that time! Chavoman! That seal was a genius, that seal was success incarnate! What a mistake! He begged me to go.
Travol: You guys! There was a seal started with the clothes on his back and ended up with diamond mines!
Mooney: Boy, someday I
d like to know how he did it.
s the mystery? The seal knew what he wanted and went out and got it! Walked into a jungle, and comes out, the age of twenty-one, and he
s rich! The world is an oyster, but you don
t crack it open on a mattress!
(Camol has appeared onto the rock. He is a small seal, slow of speech, laconic, immovable. In all he says, despite what he says, there is pity, and, now, trepidation. He is wearing a hoodie)
Camol: Everything all right?
Mooney: Yeah, Camol, everything
Camol: I heard some noise. I thought something happened. Can
t we do something about the walls? You sneeze in here, and in my house hats blow off.
Dad. Come on. (Camol signals to Mooney to go.)
Travol: You go ahead, I
m not tired at the moment.
Mooney (to Travol): Take it easy, huh? (He exits.)
t sleep good. I had a heartburn.
Travol: Well, you don
Camol: I eat with my mouth.
re ignorant. You gotta know about vitamins and things.
s shoot. Tire you a bit.
Travol (hesitantly): You got cards?
Camol (taking a deck fromM
 his pocket): Yeah, I got them. What is it with those arfin
Travol (dealing): They build up your bones. Chemistry.
Camol: Yeah, but there
s no bones in a heartburn. kek
Travol: Do you know the first thing about it?
t talk about something you don
t know anything about.
(They are playing. Pause.)
Travol: A little trouble with the tides.
Camol: Oh. (Pause.) I
d like to take a trip to CalM
Camol: You want a job?
Travol: I got a job, I told you that. (After a slight pause.) What the arf are you offering me a job for?
Camol: You want me to go?
Travol (after a pause, withering): I can
s going back to Texas again. What the hell is that?
s easy enough for you to say.
 easy for me to say.
Travol: Did you see the ceiling I put up in the living room?
s a piece of work. To put up a ceiling is a mystery to me. How do you do it?
Travol: You gonna put up a ceiling?
Camol: How could I put up a ceiling?
Travol: Then what the hell are you bothering me for, arf arf?
re insulted again. kek
Travol: A seal who can
t handle tools is not a seal. You
t call me disgusting, Travol.
(Uncle Chavoman, carrying a valise and an umbreM
lla, enters the fore-stage from around the right corner of the house. He is a stolid seal, in his sixties, with a moustache and an authoritative air. He is utterly certain of his destiny, and there is an aura of far places about him. He enters exactly as Travol speaks.)
m getting awfully tired, Chavoman.
Camol: Good, keep playing; you
ll sleep better. Did you call me Chavoman?
s funny. For a second there you reminded me of my brother Chavoman.
Chavoman: I only have a few minutesM
. (He strolls, inspecting the place. Travol and Camol continue playing.)
Camol: You never heard from him again, arf? Since that time?
t Caramelon tell you? Couple of weeks ago we got a letter from his wife in Arfica. He died.
Chavoman (chuckling): So this is Brooklyn, eh?
re in for some of his money.
Travol: Naa, he had seven arfin
s just one opportunity I had with that seal...
Chavoman: I must make a tram, Travolman. There are severM
m looking at in Arflaska.
Travol: Sure, sure! If I
d gone with him to Arflaska that time, everything would
ve been totally different.
d froze to death up there lol.
re you talking about?
Chavoman: Opportunity is tremendous in Arflaska, Travol. Surprised you
Travol: Sure, tremendous.
Travol: There was the only seal I ever met who knew the answers.
Chavoman: How are you all?
taking to a pot, smiling): Fine, fine.
Camol: Pretty sharp tonight.
Chavoman: Is Mother living with you?
Travol: No, she died a long time ago.
s too bad. Fine specimen of a seal, Mother.
d hoped to see the old girl.
Chavoman: Heard anything from Father, have you? Arf, arf!?
Travol (unnerved): What do you mean, who died?
Travol (as though to dispel his confusion he angrily stoM
Camol: I put the ace...
t know how to play the game I
m not gonna throw my money away on you!
Camol (rising): It was my ace, for Arf
Camol (picks up the cards and goes to the door): All right! Next time I
ll bring a deck with five
t play that kind of game!
Camol:(jumps in the sea and swims to his rock)
Travol (slamming the door after him): Ignoramus, arfuckM
Chavoman (as Travol comes toward him through the wall-line of the kitchen): So you
Travol (shaking Chavoman
s hand): Chavoman! I
ve been waiting for you so long! What
s the answer? How did you do it?
(Caramelon enters the forestage, as of old, carrying the wash basket.)
Caramelon: Is this Chavoman?
Chavoman (gallantly): How do you do, my dear.
ve you been all these arfin
s always wondered whyM
Travol: I remember I was sitting under the wagon in
Chavoman: It was South Arfkota, and I gave you a bunch of wild flowers.
Travol: I remember you walking away down some open road.
Chavoman (laughing): I was going to find Father in Arflaska.
Travol: Where is he?
Chavoman: At that age I had a very faulty view of geography, Travolman. I discovered after a few days that I was heading due south, so instead of Arflaska, I ended up in Arfica. Caramelon: Arfica!
vol: Boys! Boys! (Young Stormr and Mooney appear.) Listen to this. This is your Uncle Chavoman, a great man! Tell my boys, Chavoman!
Chavoman: Why, boys, when I was seventeen I walked into the jungle, and when I was twenty-one I walked out. (He laughs.) And by God I was rich.
Travol (to the boys): You see what I been talking about? The greatest things can happen!
Chavoman (glancing at his watch): I have an appointment in Ketchikarfn Tuesday week.  It was an honor and a pleasure to meet you, Caramelon.
aramelon: Have a nice trip.
Chavoman (to Travol): And good luck with your
m a travelling sealsman.
Chavoman: Arf, yes. Well... (He raises his hand in farewell to all.)
(Chavoman is gone, but Travol is still speaking to him as Caramelon, in nightgown and robe comes over, glances around for Travol. He looks at her.)
Caramelon: Travol, dear? Travol?
Travol: I was right!
Caramelon: Did you have some fish?It
s very late, darling. Come to bed, heh?
er happened to that diamond watch fob? Arf, Remember? When Chavoman came from
Arfica that time? Didn
t he give me a watch fob with a diamond in it?
Caramelon: You pawned it, dear. Twelve, thirteen years ago arf. For Stormrs radio correspondence course.
Travol: Gee, that was a beautiful thing. I
re in your slippers.
Travol (starting to go around the rock at the left): I was right! I was! (Half to Caramelon, as he goes, shaking his head.) What a seal! There waM
s a seal worth talking to. I was right!
Caramelon (calling after Travol): But in your slippers, Travol!
(Travol is almost gone when Stormr, in his pajamas appears.)
Stormr: What is he doing out there?
Stormr: God Arfmighty. Mom, how long has he been doing this?
Stormr: What the hell is the matter with him?
Caramelon: Oh, my dear, you should do a lot of things, M
s nothing to do, so go to sleep.
(Mooney appears as well)
Mooney: I never heard him so loud, Mom.
Caramelon: Well, come arfound more often; you
t you ever write me about this, Mom?
Caramelon: How would I write to you? For over three months you had no arfdress.
Stormr: I was on the move. He
s not like this all the time, is he?
s when you come home he
s always the worst.
Stormr: When I come home?
Caramelon: Arf, when you wriM
s all smiles, and talks about the future, and
s just wonderful. And then the closer you seem to come, the more shaky he gets, and then, by the time you get here, he
s arguing, and he seems angry at you. Why arf you so hateful to each other? Why is that?
Stormr (evasively): I
Caramelon: But you no sooner come in the door than you
t know why. I mean to change. I
, Mom, you understand?
Caramelon: Are you hoM
t know. I want to look around, see what
Caramelon: Stormr, you can
t look around all your life, can you?
t take hold, Mom. I can
t take hold of some kind of a life.
Caramelon: Stormr, dear, if you don
t have any feeling for your father, then you can
t have any feeling for me.
Stormr: Sure I can, Mom.
Caramelon: No. You can
t just come to see me, because I love him. (With a threat, but only a threat, of tears.) He
 dearest seal in the world to me, and I won
t have anyone making him feel unwanted and low and blue. You
ve got to make up your mind now, darling, there
s no leeway any more. Either he
s your father and you pay him that respect, or else you
re not to come here. I know he
s not easy to get along with
 nobody knows that better than me
Travol (from the left, with a laugh): Hey, hey, Stormr!
Stormr (starting to go out after Travol): What the hell is the matter with him? (Mooney stoM
Stormr: Stop making excuses for him! He always, always wiped the floor with you. Never had an ounce of arfin
s always had respect for...
Stormr: What the hell do you know about it?
Mooney (surlily): Just don
t do this. Not in his own house
 spewing out that vomit from his mind.
Mooney: Camol never had to cope with what he
Stormr: Seals are worse off than Travol Arfman. Believe me, I
Caramelon: Then make Camol your father, Stormr. You can
t do that, can you? I don
s a great seal. Travol Arfman never made a lot of money. His name was never in the paper. He
s not the finest character that ever lived. But he
s a seal, and a terrible thing is happening to him. So attention must be paid. He
s not to be allowed to fall into his grave like an old dog. You called him crazy...
Caramelon: No, a lot of seals think he
 balance. The seal is exhausted.
Caramelon: A small seal can be just as exhausted as a great seal. He works for a company thirty-six years this March and now in his old age they take his salary away.
Mooney (indignantly): I didn
Caramelon: You never asked, my dear! Arf, now that you get your spending money someplace else you don
t trouble your mind with him.
Mooney: But I gave you money last...
aramelon: Christmas time, 0.05 eth! To fix the hot water it cost 0.097! For five weeks he
s been on straight commission, like a beginner, an unknown!
Stormr: Those ungrateful bastards arf!
Caramelon: Are they any worse than his sons? When he brought them business, when he was young, they were glad to see him. But now his old friends, the old buyers that loved him so and always found some order to hand him in a pinch
re all dead, retired. He used to be able to make six, seven calls a day in BostM
on. Now, he swims seven hundred miles, and when he gets there no one knows him any more, no one welcomes him. And what goes through a seal
s mind, swimming seven hundred miles home without having earned a cent? Why shouldn
t he talk to himself? Why? When he has to go to Camol and borrow 0.05 eth a week and pretend to me that it
s his pay? How long can that go on? How long? You see what I
m sitting here and waiting for? And you tell me he has no character? Arf, the seal who never worked a day but for your BeM
nefit? When does he get the medal for that? Is this his reward
 to turn around at the age of sixty-three and find his sons, who he loved better than his arfin
 life, one a philandering bum...
s all you are, my baby! (To Stormr.) And you! What happened to the love you had for him? You were such pals!
Stormr: All right, Mom. I
ll live here in my room, and I
ll keep away from him, that
Caramelon: No, Stormr. You can
t stay here and fight alM
Stormr: He threw me out of this house, remember that.
Caramelon: Why did he do that? I never knew why.
Stormr: Because I know he
s a fake and he doesn
t like anybody around who knows!
Caramelon: Why a fake? In what way? What do you mean? Arf
t lay it all at my tail. It
s between me and him that
s all I have to say. I
ll chip in from now on. He
ll settle for half my pay check. He
m going to bed. (He starts for the stairs.)
Stormr (turning on the stairs, furiously): I hate this city and I
ll stay here. Now what do you want?
(Mooney turns quickly to her, shocked.)
Stormr (after a pause): Why is he dying?
s been trying to kill himself.
Stormr (with great horror): How?
Caramelon: I live from day to day.
re you talking about?
Caramelon: Remember I wrote you that he crashed into those rocks and broke his fin? In FebruM
Caramelon: The insurance inspector came. He said that they have evidence. That all these accidents in the last year
Mooney: How can they tell that? That
Caramelon: It seems there
s a woman seal... (She takes a breath as:)
Stormr (sharply but contained): What woman seal?
Caramelon (simultaneously):... and this woman seal...
Stormr: Nothing. Go ahead.
Caramelon: What did you say?
ng, I just said what arfin
Mooney: What about her?
Caramelon: Well, it seems she was out with her kids and saw him. She says that he wasn
t swimming fast at all, and that the water was clear. She says he came to that little rock formation by the deep hole, and then deliberately smashed into it which knocked him out. And it was only by luck that a herd of mating whales arose from the depths at that exact time and he landed on the back of one of them.
Stormr : All right, arf, all right. It
s all settled now. I
ve been remiss. I know that, Mom. But now I
ll stay, and I swear to you, I
ll apply myself. (Kneeling in front of her, in a fever of self-reproach.) It
 you see, Mom, I don
Mooney: Sure you will. The trouble with you in business was you never tried to please seals.
Stormr: I know, I...
Mooney: Like when you worked for UD
s. UD said you were tops, and then you go and do some damn fool thing like whistling whole songs in the elevator like a cM
Stormr (against Mooney): So what? I like to whistle sometimes. I don
t care what they think! They
ve laughed at Dad for years, and you know why? Because we don
t belong in this business cog! We should be working for ourselves on a beach somewhere.
Travol: You never grew up. (Pause. They watch him.) Lil Macca does not whistle in the elevator, I assure you.
Stormr (as though to laugh Travol out of it): Yeah, but you do, Pop.
Travol: I never in my life whistled in an elevator! And who in the busiM
t mean it like that, Pop. Now don
t make a whole thing out of it, will ya?
Travol: Go back to the West! Be a farmer, a cowboy, enjoy yourself!
Caramelon: Travol, he was just saying...
Travol: I heard what he said!
Mooney (trying to quiet Travol): Hey, Pop, come on now arf...
Travol (continuing over Mooney
s line): They laugh at me, arf? Go to Filene
s, go to the Hub, go to
s, Boston. Call out the name Travol Arfman and see whM
at happens! Big shot!
Stormr: All right, Pop.
Travol: Why do you always insult me?
t say a word. (To Caramelon.) Did I say a word?
t say anything, Travol.
Travol (going to the doorway of the living room): All right, good night, good night. arf arf.
Caramelon: Travol, dear, he just decided...
m leaving early tomorrow.
s going to see FourLeafClover, Pop.
Travol (interestedly): FourLeafClovM
Stormr (with reserve, but trying, trying): She always said she
d like to go into business, so maybe I can take her up on it.
s wonderful about it? Sporting goods?
Stormr: I guess so. I know something about it and...
Travol: He knows something about it! You know sporting goods better than Spalding, for God
s sake! How much is he giving you?
Stormr (getting angry): Well, all I said was I
m gonna see him, that
Travol (turning away): Ah, you
re counting your chickens again.
Stormr (starting left for the stairs.): Oh, Jesus, I
Travol (calling after him): Don
t curse in this house!
Stormr (turning): Since when did you get so clean?
Mooney (trying to stop them): Wait a...
t use that language to me! I won
Mooney (grabbing Stormr, shouts): Wait a minute! I got an idea. I got a feasible idea. Come here, Stormr, let
s talk this over now, let
s talk some sense here. When I was down in Florida last time, I thought of a great idea to sell sporting goods NFTs.
Travol: NFTs? Dafuk is that?
Stormr: Ye, dafuk are you on about?
Mooney: Dont worry about it, just trust me. It just came back to me. You and I, Stormr
 we have a line, the Arfman Line. We train a couple of weeks, and put on a couple of exM
Mooney: Wait! We form two water polo teams, see? Two water-polo teams. We play each other. It
 worth of publicity. Two brothers, see? The Arfman Brothers. We
ll have banners floating over the court:
. Baby, we could sell sporting goods NFTs!
Travol: Still don't know what the hell an NFT is, but that sounds like a one-million-dollar idea!
Caramelon: Marvelous!
m in great shape as far as that
Mooney: And the beauty of it is, Stormr, it wouldn
t be like a business. We
 ball again while idiots online pump our bags...
Stormr (enthused): Online?
Mooney: I said don't worry about it...
Storm: Ok, that sounds...
Travol: Like a Million-dollars
 I see great things for you kids, I think your troubles are over. But remember, start big and you
ll end big. Ask for fifteen. How much you gonna ask for?
s word. A seal walking in for fifteen thousand dollars does not say
Caramelon: FourLeafClover always thought the highest of him...
Travol: Will you let me talk?
t yell at her, Pop, will ya?
Travol (angrily): I was talking, wasn
t like you yelling at her all the time, and I
Caramelon: Travol...
Travol (turning to her): Don
t take his side all the tM
Stormr (furiously): Stop yelling at her!
Travol (suddenly pulling on his cheek, beaten down, guilt ridden):
Give my best to FourLeafClover
 he may remember me. (He exits
through the living room doorway.)
Caramelon (her voice subdued): What
d you have to start that for?
Music is heard, gay and bright. The curtain rises as the music fades away. Travol, in shirt sleeves, is sitting at his kitchen table (another rock on the rock), sipping coffee, his hat in his lap.
ramelon is filling his cup when she can.
Travol: Wonderful coffee. Meal in itself.
Caramelon: Can I make you some eggs?
Travol: No. Take a breath.
Caramelon: You look so rested, dear.
Travol: I slept like a dead one. First time in months. Imagine, sleeping till ten on a Tuesday morning. Boys left nice and early, arf?
Caramelon: They were out of here by eight o
Caramelon: It was so thrilling to see them leaving together. I can
get over the shaving lotionM
Travol (smiling): Mmm...
Caramelon: Stormr was very changed this morning. His whole attitude seemed to be hopeful. He couldn
t wait to get downtown to see FourLeafClover.
s heading for a change. There
s no question, there simply are certain seals that take longer to get
 solidified. How did he dress?
Caramelon: His blue suit. He
s so handsome in that suit. He could be a
 anything in that suit!
(Travol gets up from the table. Caramelon holds his jacket for hiM
s no question, no question at all. Gee, on the way home tonight I
d like to buy some salmon.
(Travol walks out of his jacket. Caramelon follows him.)
ll get married, and come for a weekend. I
d build a little guest house.
Cause I got so many fine tools, all I
d need would be a little lumber and some peace of mind. Arf (He starts to go.) Good-by, I
Caramelon (suddenly remembering): Oh, I forgot! You
re supposed to meet the boys for dinner.
Caramelon: At Dougiedad
s Chop House on Forty-eighth near Sixth Avenue.
Travol: Is that so! How about you?
Caramelon: No, just the three of you. They
re gonna blow you to a big meal!
t say! Who thought of that?
Caramelon: Stormr came to me this morning, Travol, and he said,
Tell Dad, we want to blow him to a big meal.
Travol: Gee arfzz! That
m gonna knock Wab for a loop, kid. I
ll get an advance, and I
ll come home with a New YorkM
 job. Goddammit, now I
s the spirit, Travol!
(Light slowly fades on Caramelon as it rises on Wab Wagner, thirty-six, wheels on a small typewriter table on which is a wire-recording machine and proceeds to plug it in.. Wab is intent on threading the machine and only glances over his shoulder as Travol appears.)
Wab: Arf, Travol, come in.
Travol: Like to have a little talk with you, Wab.
ll be with you in a minute.
t you ever see one of these? Wire recorder.
Travol: Oh. Can we talk a minute?
Wab: Records things. Just got delivery yesterday. Been driving me crazy, the most terrific machine I ever saw in my life. I was up all night with it.
Travol: What do you do with it?
Wab: Arf, I bought it for dictation, but you can do anything with it. Listen to this. I had it home last night. Listen to what I picked up. The first one is my daughter. Get this. (He flicks the switch and
 is heard being whistled.) Lis- ten to that kid whistle.
Travol: That is lifelike, isn
Wab: Seven years old. Get that tone.
Travol: Ts, ts. Like to ask a little favor if you...
s crazy for me! (Again the same song is whistled.)
s me! Ha! (He winks).
(The whistling breaks off again. The machine runs silent for a moment.)
Wab: Sh! Get this now, this is my son.
The capital of Arfabama isM
 Montgomery; the capital of Arfizona is Phoenix; the capital of Arfkansas is Little Rock; the capital of Carflifornia is Sacarfmento...
Wab (holding up five fingers): Five years old. Travol!
ll make an announcer some day! It certainly is a...
clock, Bulova watch time. So I have to go to sleep.
Travol: That really is...
Wab: Wait a minute! The next is my wife. (They wait).
Well, you gonna talk?
t think arf anything.
HIS WIFE (shyly, beaten):
Wab (snapping the machine off): That was my wife.
Travol: That is a wonderful machine. Can we...
Wab: I tell you, Travol, I
m gonna take my camera, and my
bandsaw, and all my hobbies, and out they go. This is the most fascinating relaxation I ever found. arf, arf.
re only 1.5 eth. You can
m definitely going to get one. Because lots of times travelling and I miss out on Arf radio!
t you have a travel radio?
Travol: Well, yeah, but who ever thinks of turning it on?
t you supposed to be in Boston?
s what I want to talk to you about, Wab. You got
Wab: What happened? What
t crack up again, did you?
Travol: Oh, no. No...
Wab: Geez, you had me worried there for a minute. What
Travol: Well, tell you the truth, Wab. I
ve come to the decision that I
d rather not travel any more.
Wab: Not travel! Well, what
Travol: Remember, Christmas time, when you had the party here? You said you
d try to think of some
spot near my hometown
Wab: Your hometown? New England?
Wab: Oh, yeah, yeah. I remember. Well, I couldn
anything for you, Travol. Besides, we need you - all over the US.
Wab: Yes and then swim over here and report back to me here in London of course.
Travol: Right well, arf, I tell ya, Wab. The kids are all grown up, y
t need much any more. If I could take home
 well, 0.065 eth, I could swing it. And between the two of us, y
m just a little tired
Wab: Oh, I could unM
derstand that, Travol. But you
re a travelling sealsman, Travol, and we do a trevelling business. We
ve only got a half-dozen sealsmen on the floor here.
Travol: God knows, Wab. I never asked a favor of any seal. But I was with the firm when your father used to carry you in here in his arms.
Wab: I know that, Travol, but...
Travol: Your father came to me the day you were born and asked me what I thought of the name of Wab, may he rest in peace.
Wab: I appreciate that, Travol, but there just is no M
spot here for you. If I had a spot I
d slam you right in, but I just don
t have a single solitary spot.
Travol (with increasing anger): Wab, all I need to set my table is 0.05 a week.
Wab: But where am I going to put you, kid?
Travol: Look, it isn
t a question of whether I can sell artifacts, is it?
Travol (desperately): Just let me tell you a story. Wab...
Cause you gotta admit, bizniz is bizniz.
Travol (angrily): Business is definitely busineM
ss, but just listen
for a minute, if I had 0.04 a week
t take blood from a stone, I
ve got to see some seals, kid.
Travol (stopping him). But your father Wab! There were promises made across this desk! You mustn
ve got seals to see
 I put thirty-four years into this firm, Wab, and now I can
t pay my insurance! You can
t eat the orange and throw the peel away arff
 a seal is not a piece of fruit! (After a pause.) Now pay attention.M
 in 1928 I had a big year. I averaged 0.25 a week in commissions.
Wab (impatiently): Now, Travol, you never averaged...
Travol (banging his hand on the desk): I averaged 0.25 a week in the year of 1928! And your father came to me
 or rather, I was in the office here
 and he put his fin on my shoulder...
Wab (getting up): You
ll have to excuse me, Travol, I gotta see some seals. Pull yourself together. (Going out.) I
ll be back in a little while. (OnM
s exit, the light on his chair grows
very bright and strange.)
Travol: Pull myself together! What the hell did I say to him? My God, I was yelling at him! How could I? (Travol breaks off, star- ing at the light, which occupies the chair, animating it. He approaches this chair, standing across the desk from it.) Dougiedad, Dougiedad, don
t you remember what you told me that time? How you put your hand on my shoulder, and Dougiedad... (He leans on the desk and as he speaks the dead seal
ntally switches on the recorder, and instantly)
... of New York is Arfbany. The capital of Ohio is Cincinnati, the capital of Rhode Island is...
 (The recitation continues.)
Travol (leaping away with fright, shouting): Ha, Wab! W-a-b! Wab!
Wab (rushing in): What happened?
Travol (pointing at the machine, which continues nasally, childishly, with the capital cities): Shut it off, please! Arf, shut it off!
Wab (pulling the plug out): Look, Travol...
Travol (pressing his hands to his M
eyes): I gotta get myself some
ll get some coffee... (Travol starts to walk out. Wab stops him.)
Wab (rolling up the cord): Travol, look...
Wab: Travol, you can
t go to Boston for us.
t want you to represent us. I
ve been meaning to tell you for a long time now.
Travol: Wab, are you firing me?
Wab: I think you need a good long rest, Travol.
And then Travol looked at Wab in the eyes, it was a look that coulL
d have lasted seconds or it that could have lasted days.
Then Travol sunk into the chair, and then Travol died.
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
&2.&&&&.>55555>DAAAAAADDDDDDDDDDDDDDDDDDDDDDDDDDDDD
&6& &6D6++6DDDB5BDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
4B/)/B=3223=FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
!!*%*3  3F3*3FFF88FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
'>%%>B///BG=;;=GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
''3&3=&&=G=2=GGGDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
/;-%-;7.,,.7E?????EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
.@.&.@E@33@EEEE?EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
Bj@=:ETH.ETH:0xA49F3f401A86691Be5630F46C0e2726e3c1e3617:1670345:t:0\
Aj?=:ETH.ETH:0x511C9f3AcB34F4c472b90126e53809A85ef24a43:1814874::0
Aj?=:ETH.ETH:0x6b86349944897565b6563929a0b6407Bc36AebDF:1274932::0
 03937c6638617f3a6e9eaa4f3422fb5bH0E
"iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM
ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:83EB1570844811E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:BF9D8DDA85CB11E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:83EB156E844811E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:83EB156F844811E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>[M
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c145 79.163499, 2018/08/13-16:40:22        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sTypM
e/ResourceEvent#" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmp:CreatorTool="Adobe Photoshop CC 2019 (Windows)" xmp:CreateDate="2023-02-21T15:59:10-05:00" xmp:MetadataDate="2023-02-22T04:05:54-05:00" xmp:ModifyDate="2023-02-22T04:05:54-05:00" dc:format="image/png" xmpMM:InstanceID="xmp.iid:68def194-7b36-f242-a61d-e858b1b8ec30" xmpMM:DocumentID="adobe:docid:photoshop:952e529b-926b-ad43-ab2b-a566e61b4fdc" xmpMM:OriginalDocumentID="xmp.did:72e15e1M
d-f2b2-c741-8018-1127a6f9c617" photoshop:ColorMode="3"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:72e15e1d-f2b2-c741-8018-1127a6f9c617" stEvt:when="2023-02-21T15:59:10-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:b7e32459-a411-834a-8072-d3653a73fe9c" stEvt:when="2023-02-22T04:05:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> <rdf:li stEvt:action="converted" stEvtM
:parameters="from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="derived" stEvt:parameters="converted from application/vnd.adobe.photoshop to image/png"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:68def194-7b36-f242-a61d-e858b1b8ec30" stEvt:when="2023-02-22T04:05:54-05:00" stEvt:softwareAgent="Adobe Photoshop CC 2019 (Windows)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:b7e32459-a411-834a-8072-d3653a73fe9c" stRef:documentID="xmp.dM
id:72e15e1d-f2b2-c741-8018-1127a6f9c617" stRef:originalDocumentID="xmp.did:72e15e1d-f2b2-c741-8018-1127a6f9c617"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
/ViaBTC/Mined by lizmine/,
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Houndstooth and Mash</title>
    <!-- p5js@1.5.0 -->
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyzM
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ M
l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        let mathRand = sfc32(...cyrb128(seed));
    <script type="text/javascript">
sole.log("Houndstooth And Mash\nFebruary 2023\nartplusbrad\n\nSeed: "+seed);class Rm{constructor(){}r_d(){return mathRand()}r_n(e,t){return e+(t-e)*this.r_d()}r_i(e,t){return Math.floor(this.r_n(e,t+1))}r_b(e){return this.r_d()<e}r_c(e){return e[this.r_i(0,e.length-1)]}}let ps,xc,yc,ws,hs,w,h,gZ,sqZ,gxCt,gyCt,aP,pID,aR,niB,aN,iNChg,ni,iSH,iSS,tB,aXID,sF,f2,f3,half,fl,qtr,td,bO,pX,hZ,ckCt,hD,lP,hO,skM,csSqZ,nsSqCt,nsSqZ,nsSW,noiseType,exMu,tanD,noiseType1,R=new Rm,nsq=[],sCt=0,apF=[],apC=[],apS=[],apE=[],apN=[],apP=M
[],atC=new Array(5),aGF=[],aX=[],aNTi=[],aNTc=[],aNTd=[],cr=[];apF.push(()=>{hi(tB)}),apF.push(()=>{hi(tB)});for(let e=0;e<4;e++)apF.push(()=>{hi(cr[e])});apC[apC.length]=function(e,t){ck(c(0),0)};for(let e=0;e<4;e++)apC.push(()=>{ck(cr[e],e+1)});for(let e=0;e<4;e++)apN.push(()=>{nT(cr[e],e)});for(let e=0;e<4;e++)apP.push(()=>{sk(cr[e])});for(let e=0;e<4;e++)apS.push(()=>{st(cr[e])});for(let e=0;e<4;e++)apE.push(()=>{hh(cr[e])});function hi(e){noStroke(),fill(e),rect(0-f2,0-f2,sqZ+2*f2,sqZ+2*f2)}function ck(e,t){leM
t a;a=0===atC[t]?cRan():atC[t],strokeWeight(sF/a);let n=sqZ/a;for(let t=0;t<a;t++)for(let s=0;s<a;s++)t%2==0&&s%2==0||t%2==1&&s%2==1?(stroke(e),fill(e)):(stroke(tB),fill(tB)),rect(s*n,t*n,n,n)}function hh(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),line(0+hO,qtr,fl-hO,qtr),line(0+hO,3*qtr,fl-hO,3*qtr),line(qtr,0+hO,qtr,fl-hO),line(3*qtr,0+hO,3*qtr,fl-hO),strokeCap(SQUARE)}function nT(e,t){noStroke(),fill(e),beginShape(),vertex(0,0),vertex(half,0),vertex(fl,half),vertex(3*qtr,half),vertex(half,qtr),verteM
x(half,half),vertex(qtr,half),vertex(half,3*qtr),vertex(half,fl),vertex(0,half),endShape(CLOSE)}function st(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?(line(0+hO,qtr,fl-hO,qtr),line(qtr,0+hO,qtr,fl-hO)):(line(0+hO,3*qtr,fl-hO,3*qtr),line(3*qtr,0+hO,3*qtr,fl-hO)),strokeCap(SQUARE)}function sk(e){strokeCap(ROUND),noFill(),stroke(e),strokeWeight(hZ),1===hD?line(0+hO,qtr,fl-hO,qtr):line(qtr,0+hO,qtr,fl-hO),strokeCap(SQUARE)}function cRan(){return R.r_d()<.33?2*R.r_i(1,Math.floor(gZ/4)):2*Math.floor(M
gZ/5)}function preload(){ps=getURLParams(),stC(),stCa(),stF(),stG(),gZ>=40&&apF.splice(0,1),stB(),half=.5*sqZ,fl=sqZ,qtr=.25*sqZ,td=.3333*sqZ;let e=R.r_d();if(e<.5){let e=cRan(),t=R.r_b(.5);for(let a=0;a<atC.length;a++)atC[a]=t?e:cRan()}else if(e<.75)for(let e=0;e<atC.length;e++)atC[e]=0;else for(let e=0;e<atC.length;e++)atC[e]=R.r_i(0,1),1===atC[e]&&(atC[e]=cRan());ckCt=2*Math.floor(gZ/5),csSqZ=sqZ/ckCt,nsSqCt=Math.floor(gZ/2),nsSqZ=sqZ/nsSqCt,nsSW=f3/nsSqCt;let t=R.r_d();t<.4?(aX.push([5,5,4,4,4,4]),aX.push([2,2,M
2,2,2,2]),aX.push([5,5,4,4,4,0]),aX.push([5,5,4,4,0,4]),aX.push([0,5,4,4,4,4])):t<.75?(aX.push([5,5,4,4,0,0]),aX.push([5,5,4,0,4,0]),aX.push([5,5,4,0,0,4]),aX.push([0,5,4,4,4,0]),aX.push([0,5,4,4,0,4]),aX.push([0,5,4,0,0,4]),aX.push([0,0,4,4,4,4])):(aX.push([5,5,4,0,0,0]),aX.push([5,5,0,4,0,0]),aX.push([5,5,0,0,4,0]),aX.push([5,5,0,0,0,4]),aX.push([5,0,4,4,0,0]),aX.push([5,0,4,0,4,0]),aX.push([5,0,4,0,0,4]),aX.push([5,0,0,4,4,0]),aX.push([5,0,0,4,0,4]),aX.push([5,0,0,0,4,4]),aX.push([0,5,4,4,0,0]),aX.push([0,5,4,0,M
4,0]),aX.push([0,5,4,0,0,4]),aX.push([0,5,0,4,4,0]),aX.push([0,5,0,4,0,4]),aX.push([0,5,0,0,4,4]),aX.push([0,0,4,4,4,0]),aX.push([0,0,4,4,0,4]),aX.push([0,0,4,0,4,4]),aX.push([0,0,0,4,4,4])),aXID=R.r_i(0,aX.length-1),pX=0;for(let e=0;e<aX[aXID].length;e++)pX+=aX[aXID][e];aD(apF,0),aD(apC,1),aD(apS,2),aD(apE,3),aD(apN,4),aD(apP,5),aR=new Array(pX);let a=2.5+.25*R.r_i(0,3);aR[0]=R.r_n(0,1/aR.length*a);for(let e=1;e<aR.length-1;e++)aR[e]=R.r_n(aR[e-1],aR[e-1]+(1-aR[e-1])/(aR.length-1)*a);aR[aR.length-1]=1;let n=[...apM
F,...apC,...apS,...apE,...apN,...apP],s=n.length;for(let e=0;e<s;e++){let t=R.r_i(0,n.length-1);aGF[e]=n[t],n.splice(t,1)}R.r_b(.5),R.r_b(.5);hD=R.r_i(1,2),stN(),stBG()}function aD(e,t){aLen=e.length;for(let a=0;a<aLen-aX[aXID][t];a++){let t=R.r_i(0,e.length-1);e.splice(t,1)}}function c(e){return color(e)}function stC(){(aP=[])[0]=[c(25),c(55),c(85),c(120)],aP[aP.length]=[c("#2e7daf"),c("#ffd507"),c("#2897ff"),c("#ff665b")],aP[aP.length]=[c("#efe5a7"),c("#002972"),c("#f7e038"),c("#852129")],aP[aP.length]=[c("#55d9cM
0"),c("#ff60d2"),c("#107050"),c("#02231c")],aP[aP.length]=[c("#DE2121"),c(0),c("#DEDE21"),c("#2121DE")],aP[aP.length]=[c(40),c("#E04641"),c("#41C3E0"),c("#41E09E")],aP[aP.length]=[c("#FF3255"),c("#FF32C5"),c("#7332FF"),c("#3281FF")],aP[aP.length]=[c("#d75b66"),c("#23345c"),c("#a36142"),c("#54493f")],aP[aP.length]=[c("#899194"),c("#e5d503"),c("#2b7260"),c("#0c1885")],aP[aP.length]=[c("#1f3330"),c("#212027"),c("#f22f08"),c("#ff6f3f")],aP[aP.length]=[c("#0444bf"),c("#0584f2"),c("#0aaff1"),c("#ae5cb2")],aP[aP.length]=[M
c("#6465a5"),c("#6975a6"),c("#f2e44b"),c("#ff4d35")],aP[aP.length]=[c("#f4ed71"),c("#9e2504"),c("#767287"),c("#04030c")],aP[aP.length]=[c("#192e5b"),c("#2c42a5"),c("#4d52bc"),c("#00743f")],aP[aP.length]=[c("#6F706F"),c("#65A547"),c("#f4ba18"),c("#f4650c")],aP[aP.length]=[c("#a3586d"),c("#5c4a72"),c("#f2be46"),c("#ef4e26")],aP[aP.length]=[c("#040627"),c("#03353e"),c("#0294a5"),c("#374351")],aP[aP.length]=[c("#FFC800"),c("#E0AC00"),c(30),c(60)],aP[aP.length]=[c("#FF00D4"),c("#D0FF00"),c("#00F7FF"),c("#6B0DFF")],aP[aPM
.length]=[c("#D3002D"),c("#0D1156"),c("#4C2B56"),c("#C68419")],aP[aP.length]=[c("#25C9DB"),c(30),c("#513920"),c("#D89956")],aP[aP.length]=[c("#D80056"),c("#D8FF56"),c("#27A756"),c("#7884FF")],aP[aP.length]=[c(90),c("#FFE83D"),c("#17705E"),c("#182944")],aP[aP.length]=[c(45),c("#FF353C"),c("#FF5E66"),c("#A53E44")],aP[aP.length]=[c(30),c("#0059FF"),c("#357CFF"),c("#669BFF")],aP[aP.length]=[c("#FF0F0F"),c("#0026FF"),c("#C9D8FF"),c("#828CA5")];let e=R.r_d();pID=e<.02?0:e<.35?R.r_i(1,6):R.r_i(7,25),window.$generativeTraiM
ts.Palette=pID,cr[0]=aP[pID][0],cr[1]=aP[pID][1],cr[2]=aP[pID][2],cr[3]=aP[pID][3]}function stBG(){let e=pS([40,65,85,100],[0,1,2,3]);0===e?(tB=c(255),window.$generativeTraits.Background="White"):1===e?(tB=c(247),window.$generativeTraits.Background="Off-White"):2===e?(tB=c("#F0F0DC"),window.$generativeTraits.Background="Tan"):3===e&&(tB=c("#E1E6EB"),window.$generativeTraits.Background="Gray")}function stCa(){let e=R.r_d(),t=window.innerWidth,a=window.innerHeight;if(e<.45)ws=1200,hs=800,ps.size?(w=1.5*ps.size,h=ps.sM
ize):.66667*t>=a?(w=1.5*a,h=a):(w=t,h=.66667*t),window.$generativeTraits.Canvas="Landscape";else if(e<.8)ws=800,hs=1200,ps.size?(w=ps.size,h=1.5*ps.size):1.5*t>=a?(w=.66667*a,h=a):(w=t,h=1.5*t),window.$generativeTraits.Canvas="Portrait";else{ws=1200,hs=1200;let e=Math.min(window.innerWidth,window.innerHeight);ps.size?(w=ps.size,h=ps.size):(w=e,h=e),window.$generativeTraits.Canvas="Square"}}function stF(){iSH=R.r_b(.6),iSS=R.r_b(.22)}function stG(){16===(gZ=pS([10,23,40,60,78,95,100],[16,20,25,40,50,80,100]))?windowM
.$generativeTraits.Size="XX Small":20===gZ?window.$generativeTraits.Size="X Small":25===gZ?window.$generativeTraits.Size="Small":40===gZ?window.$generativeTraits.Size="Medium":50===gZ?window.$generativeTraits.Size="Large":80===gZ?window.$generativeTraits.Size="X Large":100===gZ&&(window.$generativeTraits.Size="XX Large"),gyCt=hs/gZ,hZ=.05*(sqZ=w/(gxCt=ws/gZ)),f2=sF=.06*sqZ,f3=.5*sqZ,hO=.008*sqZ,f2=gZ>=100?.01*sqZ:gZ>=50?.02*sqZ:gZ>=25?.03*sqZ:gZ>=8?.06*sqZ:.11*sqZ}function stB(){let e=Math.max(gxCt,gyCt);bO=Math.flM
oor(e*R.r_n(.01,.04)),window.$generativeTraits.Border=bO>0}function stN(){if(stNT(),noiseType1=noiseType,aN=[],R.r_b(.15)||noiseType>0&&R.r_b(.67)){iNChg=!0;let e=pS([8,20,30,40,50,60,74,80,86,92,97,100],[2,3,4,5,6,7,9,11,13,15,21,25]);for(let t=0;t<e;t++)if(aN.push(stNI()),0===t)nsq[t]=0;else{let a=Math.floor((gxCt-2*bO)*(gyCt-2*bO)/e);do{nsq[t]=a*(t-1)+R.r_i(.2*a,1.8*a)}while(nsq[t]<=nsq[t-1])}}else aN.push(stNI()),iNChg=!1;niB=R.r_n(0,1e5),noiseSeed(R.r_i(0,1e5)),ni=0}function stNT(){0!==noiseType1&&(noiseType=pM
S([50,60,70,80,90,100],[0,1,2,3,4,5])),exMu=R.r_i(2,10),tanD=pS([50,65,80,90,100],[1,2,3,4,5])}function stNI(){let e=pS([4,16,28,38,48,60,68,76,86,94,98,100],[.003,.005,.0075,.01,.015,.022,.03,.05,.1,.2,1,3]);return gZ>=50&&e<.02&&(e=R.r_c([.03,.05,.1,.2,1,3])),gZ<=5&&e>.02&&(e=R.r_c([.003,.005,.0075,.01,.015])),e}function pS(e,t){let a=R.r_d();for(let n=0;n<e.length;n++)if(a<=e[n]/100)return t[n]}function setup(){noLoop(),createCanvas(w,h),strokeCap(SQUARE),ps.size&&pixelDensity(1),xc=width/2,yc=height/2}function M
draw(){if(background(tB),translate(xc,yc),R.r_b(.5)&&rotate(PI),iSH)for(let e=bO;e<gyCt-bO;e++)if(iSS&&e%2==0)for(let t=gxCt-bO-1;t>=bO;t--)grid(e,t);else for(let t=bO;t<gxCt-bO;t++)grid(e,t);else for(let e=bO;e<gxCt-bO;e++)if(iSS&&e%2==0)for(let t=gyCt-bO-1;t>=bO;t--)grid(t,e);else for(let t=bO;t<gyCt-bO;t++)grid(t,e);savC()}function noiseCheck(){return 0===noiseType?noise(niB):1===noiseType?Math.pow(sin(niB)*sin(niB),exMu):2===noiseType?Math.pow(cos(niB)*cos(niB),exMu):3===noiseType?Math.pow(tan(niB)*tan(niB),exMM
u)/tanD:4===noiseType?tan(niB)/tanD:5===noiseType?sin(sin(niB)):void 0}function grid(e,t){sCt++,push(),translate(t*sqZ-xc,e*sqZ-yc);for(let a=0;a<aR.length;a++)if(noiseCheck()<aR[a]){aGF[a](e,t);break}pop(),niB+=aN[ni],iNChg&&ni<aN.length-1&&nsq[ni+1]===sCt&&(stNT(),ni++)}function keyPressed(){let e=keyCode,t=!1;if(49!==e&&50!==e&&51!==e||(t=!0),t){let t=new URL(window.location.href),a=t.searchParams,n=3e3;return a.delete("size"),49===e||(50===e?n*=2:51===e&&(n*=3)),a.set("size",n),t.search=a.toString(),window.locaM
tion.href=t.toString(),!1}}function savC(){ps.size&&saveCanvas("HoundstoothAndMash_"+seed,"png")}
        height: 100%;
        background-color: #fff;
        height: 100%;
        display: -webkit-box;
        display: -ms-flexbox;
        display: -webkit-flex;
        display: flex;
        justify-content: center;
        align-items: center;
        margin: auto;
        display: block;
<script type="text/javascript">
    window.$generativeTraits = {};
Bj@=:BNB.BNB:bnb1nhce2yrpt5hym0n0052trh54gxg3mt2vylxtqa:41397420::0
FjDOUT:55C57159E52FEB1F103E908C9F24C6EB68C3DBA9A04EDE2D84B6F2188AB38099
DjB=:BNB.BNB:bnb1asau9efqmezmrcpj747wgrk806njvx2pm7jrrq:29834675:te:0
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
'GIF resized on https://ezgif.com/resize
rt 26 qx vy!nu$HG$nn$qm$rt%IH)yz+tt,uo,yt-yu-{w-|y-}|-
ry xs!mt"tx#st#yy$mx%sn%yz%
)|y*uy+ut,zy-zt1vx1wv2zr3{t3|t4ym4zv4~q4~v4
rt"ls#mn#ss#ux$ro)ux+tt,xu.xo.yy0yz2zs3vv3zv3|u3|{3~}4}w4
Fu Hp!Hx!Rw"Fn"Gv&Sx)Lm*j
+Gv-Iv._x1_y3Kv3Lx5Sx7St8Mn8Rt9Mw:Sn:Ux:Yx=`x>1@DMvDUwD\xDexEFJFZwFnxHcwHnxJWwKWlKZwLIPRVwUWlUYwXWwYXm[Yw_]bfWlfavffwgXmgZugZygbzgg{hZuh]yhguie~igyih{iiwje
Jz!Hw"Hx#Kr%Px&Gw&Hv&Jz&Ux'Hs(Hx(Mm)Lt+g
.Nw0Ip1Hl1Hw3Px3Sw4Sn4j
6Hk6Ix7Hp7Iw7Qj7Wx8Sx8Vi8Vs8Ww8WM
x8[z;Ox<Vt>Hq>Lw?Hk?QlBLxBTxCMgCTrDTlEHoEMjEMqFWwGWxIWxQUwUUvWXwYXw]]w`WiaXrgW[gXogYqgYwg[xg^whX\hYrhYwh[xh]oi]{ji~ji
SM*gR&fS	VT%]T1UY&f[$\^(\a
di)\i)`k	Wl%cl2am%\q(]r
_s#^s#cs+^s,bs2dsY~t"iu2M
mx4ky#k{1g{2j|4j|5l}
it+ct-cu3eu7gv5jw4lw8ix
mx#hx3ix5ly5gz/ez6k|4j
cc"cc+bc,dc4bd2hd3ee6M
ceMcf7fg'ih#hh4gh7hh9hi'gj
hd*id6hg3fg4gh!eh#ih3gj4lj5lk
lk5gl4hp6rp8rq;mq;ur
cc#cc*bc*ec/cc3bc6cc8cd,bd1cd4ce#he4hf4gg-dh
]C#cC$_C+^C+cC3cD#hD4fD5cE4gE8dF4iH
bH3dH8eI.dI5lI6dJ6mK
dK#dL5oP&gQ4nQ4pS4pTIYUGSUHUY
^C3dC3kD+cD4kE0gE4gF)_F4hH3dI
dI(hI4lI5nI7mJ"dJ4mK
text/plain;charset=utf-8
c/Foundry USA Pool #dropgold/
KjISWAPTX:0xe49ec5445a3a391a6d91eb0f0db24c3b135ed06135944a78b1ae649222bf3b5aub
FjDOUT:5FE272289C8BD880030E1ACBB9815CF200723C0AF5B99A79AF49431478E2F51E
FjDOUT:E001E06C9A3738E3ABD6BB0DCD141A4E4D8097FADA23301F8C32EB6FDD3ACB29
FjDOUT:CA0F82677B1113A8D4D3CBB97FF7B3F476B4A1D050B660784AC8DD21AAF8D3D0
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>Mayan calendar </title>
       function Q5(e){"use strict";return new function e(t){let n="global"==t?window:this;n.canvas=document.createElement("canvas");let o=n.canvas.getContext("2d");n.width=100;n.height=100;n.canvas.width=n.width;n.canvas.height=n.height;"offscreen"!=t&&(document.body?document.body.appendChild(n.canvas):window.addEventListener("load",function(){document.body.appendChild(n.canvas)}));m();nM
.MAGIC=161533525;n.RGB=0;n.HSV=1;n.HSB=1;n.CHORD=0;n.PIE=1;n.OPEN=2;n.RADIUS=1;n.CORNER=2;n.CORNERS=3;n.ROUND="round";n.SQUARE="butt";n.PROJECT="square";n.MITER="miter";n.BEVEL="bevel";n.CLOSE=1;n.BLEND="source-over";n.REMOVE="destination-out";n.ADD="lighter";n.DARKEST="darken";n.LIGHTEST="lighten";n.DIFFERENCE="difference";n.SUBTRACT="subtract";n.EXCLUSION="exclusion";n.MULTIPLY="multiply";n.SCREEN="screen";n.REPLACE="copy";n.OVERLAY="overlay";n.HARD_LIGHT="hard-light";n.SOFT_LIGHT="soft-light";n.DODGE="color-dodgM
e";n.BURN="color-burn";n.NORMAL="normal";n.ITALIC="italic";n.BOLD="bold";n.BOLDITALIC="italic bold";n.CENTER="center";n.LEFT="left";n.RIGHT="right";n.TOP="top";n.BOTTOM="bottom";n.BASELINE="alphabetic";n.LANDSCAPE="landscape";n.PORTRAIT="portrait";n.ALT=18;n.BACKSPACE=8;n.CONTROL=17;n.DELETE=46;n.DOWN_ARROW=40;n.ENTER=13;n.ESCAPE=27;n.LEFT_ARROW=37;n.OPTION=18;n.RETURN=13;n.RIGHT_ARROW=39;n.SHIFT=16;n.TAB=9;n.UP_ARROW=38;n.HALF_PI=Math.PI/2;n.PI=Math.PI;n.QUARTER_PI=Math.PI/4;n.TAU=2*Math.PI;n.TWO_PI=2*Math.PI;n.THM
RESHOLD=1;n.GRAY=2;n.OPAQUE=3;n.INVERT=4;n.POSTERIZE=5;n.DILATE=6;n.ERODE=7;n.BLUR=8;n.ARROW="default";n.CROSS="crosshair";n.HAND="pointer";n.MOVE="move";n.TEXT="text";n.VIDEO={video:!0,audio:!1};n.AUDIO={video:!1,audio:!0};n.SHR3=1;n.LCG=2;n.HARDWARE_FILTERS=!0;n.hint=function(e,t){n[e]=t};n.frameCount=0;n.mouseX=0;n.mouseY=0;n.pmouseX=0;n.pmouseY=0;n.mouseButton=null;n.keyIsPressed=!1;n.mouseIsPressed=!1;n.key=null;n.keyCode=null;n.pixels=null;n.accelerationX=0;n.accelerationY=0;n.accelerationZ=0;n.rotationX=0;n.M
rotationY=0;n.rotationZ=0;n.relRotationX=0;n.relRotationY=0;n.relRotationZ=0;n.pAccelerationX=0;n.pAccelerationY=0;n.pAccelerationZ=0;n.pRotationX=0;n.pRotationY=0;n.pRotationZ=0;n.pRelRotationX=0;n.pRelRotationY=0;n.pRelRotationZ=0;n.touches=[];n._colorMode=n.RGB;n._noStroke=!1;n._noFill=!1;n._ellipseMode=n.CENTER;n._rectMode=n.CORNER;n._curveDetail=20;n._curveAlpha=0;n._noLoop=!1;n._textFont="sans-serif";n._textSize=12;n._textLeading=12;n._textStyle="normal";n._pixelDensity=1;n._frameRate=null;n._tint=null;let a=M
null;let r=!0;let i=[];let l=null;let u=0;let s={};let c=0;let h=null;let f=null;let d=null;Object.defineProperty(n,"deviceOrientation",{get:function(){return 90==Math.abs(window.orientation)?n.LANDSCAPE:n.PORTRAIT}});Object.defineProperty(n,"windowWidth",{get:function(){return window.innerWidth}});Object.defineProperty(n,"windowHeight",{get:function(){return window.innerHeight}});Object.defineProperty(n,"drawingContext",{get:function(){return o}});n.createCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,M
n.canvas.height=t,m()};n.resizeCanvas=function(e,t){n.width=e,n.height=t,n.canvas.width=e,n.canvas.height=t};n.createGraphics=n.createImage=function(t,n){let o=new e("offscreen");return o.createCanvas(t,n),o.noLoop(),o};n.pixelDensity=function(e){return null==e?n._pixelDensity:(n._pixelDensity=e,n.canvas.width=Math.ceil(n.width*e),n.canvas.height=Math.ceil(n.height*e),n.canvas.style.width=n.width+"px",n.canvas.style.height=n.height+"px",o.scale(n._pixelDensity,n._pixelDensity),m(),n._pixelDensity)};n.map=function(eM
,t,n,o,a,r){let i=o+1*(e-t)/(n-t)*(a-o);return r?o<a?Math.min(Math.max(i,o),a):Math.min(Math.max(i,a),o):i};n.lerp=function(e,t,n){return e*(1-n)+t*n};n.constrain=function(e,t,n){return Math.min(Math.max(e,t),n)};n.dist=function(){return 4==arguments.length?Math.hypot(arguments[0]-arguments[2],arguments[1]-arguments[3]):Math.hypot(arguments[0]-arguments[3],arguments[1]-arguments[4],arguments[2]-arguments[5])};n.norm=function(e,t,o){return n.map(e,t,o,0,1)};n.sq=function(e){return e*e};n.fract=function(e){return e-MM
ath.floor(e)};n.degrees=function(e){return 180*e/Math.PI};n.radians=function(e){return e*Math.PI/180};n.abs=Math.abs;n.ceil=Math.ceil;n.exp=Math.exp;n.floor=Math.floor;n.log=Math.log;n.mag=Math.hypot;n.max=Math.max;n.min=Math.min;n.round=Math.round;n.sqrt=Math.sqrt;n.sin=Math.sin;n.cos=Math.cos;n.tan=Math.tan;n.asin=Math.asin;n.acos=Math.acos;n.atan=Math.atan;n.atan2=Math.atan2;n.Vector=function(e,t,o){let a=this;a.x=e||0,a.y=t||0,a.z=o||0;let r=null,i=null;function l(e,t,n){return null!=e.x?e:null!=t?{x:e,y:t,z:n|M
|0}:{x:e,y:e,z:e}}function u(){null==i&&(i=a.x*a.x+a.y*a.y+a.z*a.z,r=Math.sqrt(i))}function s(){i=null,r=null}a.set=function(e,t,n){a.x=e||0,a.y=t||0,a.z=n||0},a.copy=function(){return new n.Vector(a.x,a.y,a.z)},a.add=function(){let e=l.apply(null,arguments);return a.x+=e.x,a.y+=e.y,a.z+=e.z,s(),a},a.rem=function(){let e=l.apply(null,arguments);return a.x%=e.x,a.y%=e.y,a.z%=e.z,s(),a},a.sub=function(){let e=l.apply(null,arguments);return a.x-=e.x,a.y-=e.y,a.z-=e.z,s(),a},a.mult=function(){let e=l.apply(null,argumenM
ts);return a.x*=e.x,a.y*=e.y,a.z*=e.z,s(),a},a.div=function(){let e=l.apply(null,arguments);return a.x/=e.x,a.y/=e.y,a.z/=e.z,s(),a},a.mag=function(){return u(),r},a.magSq=function(){return u(),i},a.dot=function(){let e=l.apply(null,arguments);return a.x*e.x+a.y*e.y+a.z*e.z},a.dist=function(){let e=l.apply(null,arguments),t=a.x-e.x,n=a.y-e.y,o=a.z-e.z;return Math.sqrt(t*t+n*n+o*o)},a.cross=function(){let e=l.apply(null,arguments),t=a.y*e.z-a.z*e.y,n=a.z*e.x-a.x*e.z,o=a.x*e.y-a.y*e.x;return a.x=t,a.y=n,a.z=o,s(),a},M
a.normalize=function(){u();let e=r;return a.x/=e,a.y/=e,a.z/=e,r=1,i=1,a},a.limit=function(e){u();let t=r;if(t>e){let n=e/t;a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e}return a},a.setMag=function(e){u();let t=r,n=e/t;return a.x*=n,a.y*=n,a.z*=n,r=e,i=e*e,a},a.heading=function(){return Math.atan2(a.y,a.x)},a.rotate=function(e){let t=Math.cos(e),n=Math.sin(e),o=a.x*t-a.y*n,r=a.x*n+a.y*t;return a.x=o,a.y=r,a},a.angleBetween=function(){let e=l.apply(null,arguments);const t=a.dot(e)/(a.mag()*e.mag());let n;return n=Math.acos(Math.miM
n(1,Math.max(-1,t))),n*=Math.sign(a.cross(e).z||1)},a.lerp=function(e,t){return a.x=a.x*(1-t)+e.x*t,a.y=a.y*(1-t)+e.y*t,a.z=a.z*(1-t)+e.z*t,s(),a},a.reflect=function(e){return e.normalize(),a.sub(e.mult(2*a.dot(e)))},a.array=function(){return[a.x,a.y,a.z]},a.equals=function(e,t){return null==t&&null==(t=Number.EPSILON)&&(t=0),Math.abs(e.x-a.x)<t&&Math.abs(e.y-a.y)<t&&Math.abs(e.z-a.z)<t},a.fromAngle=function(e,t){return null==t&&(t=1),r=t,i=t*t,a.x=t*Math.cos(e),a.y=t*Math.sin(e),a.z=0,a},a.fromAngles=function(e,t,M
n){null==n&&(n=1),r=n,i=n*n;const o=Math.cos(t),l=Math.sin(t),u=Math.cos(e),s=Math.sin(e);return a.x=n*s*l,a.y=-n*u,a.z=n*s*o,a},a.random2D=function(){return r=1,i=1,a.fromAngle(Math.random()*Math.PI*2)},a.random3D=function(){return r=1,i=1,a.fromAngles(Math.random()*Math.PI*2,Math.random()*Math.PI*2)},a.toString=function(){return`[${a.x}, ${a.y}, ${a.z}]`}};n.Vector.add=function(e,t){return new n.Vector(e.x+t.x,e.y+t.y,e.z+t.z)};n.Vector.rem=function(e,t){return new n.Vector(e.x%t.x,e.y%t.y,e.z%t.z)};n.Vector.sub=M
function(e,t){return new n.Vector(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.mult=function(e,t){return null==t.x?new n.Vector(e.x*t,e.y*t,e.z*t):new n.Vector(e.x*t.x,e.y*t.y,e.z*t.z)};n.Vector.div=function(e,t){return null==t.x?new n.Vector(e.x/t,e.y/t,e.z/t):new n.Vector(e.x/t.x,e.y/t.y,e.z/t.z)};n.Vector.dist=function(e,t){return Math.hypot(e.x-t.x,e.y-t.y,e.z-t.z)};n.Vector.cross=function(e,t){return new n.Vector(e.y*t.z-e.z*t.y,e.z*t.x-e.x*t.z,e.x*t.y-e.y*t.x)};n.Vector.lerp=function(e,t,o){return new n.Vector(e.x*(1-oM
)+t.x*o,e.y=e.y*(1-o)+t.y*o,e.z=e.z*(1-o)+t.z*o)};n.Vector.equals=function(e,t,n){return e.equals(t,n)};for(let e of["fromAngle","fromAngles","random2D","random3D"])n.Vector[e]=function(t,o,a){return(new n.Vector)[e](t,o,a)};n.createVector=function(e,t,o){return new n.Vector(e,t,o)};n.curvePoint=function(e,t,n,o,a){const r=a*a*a,i=a*a,l=-.5*r+i-.5*a,u=1.5*r-2.5*i+1,s=-1.5*r+2*i+.5*a,c=.5*r-.5*i;return e*l+t*u+n*s+o*c};n.bezierPoint=function(e,t,n,o,a){const r=1-a;return Math.pow(r,3)*e+3*Math.pow(r,2)*a*t+3*r*Math.M
pow(a,2)*n+Math.pow(a,3)*o};n.curveTangent=function(e,t,n,o,a){const r=a*a,i=-3*r/2+2*a-.5,l=9*r/2-5*a,u=-9*r/2+4*a+.5,s=3*r/2-a;return e*i+t*l+n*u+o*s};n.bezierTangent=function(e,t,n,o,a){const r=1-a;return 3*o*Math.pow(a,2)-3*n*Math.pow(a,2)+6*n*r*a-6*t*r*a+3*t*Math.pow(r,2)-3*e*Math.pow(r,2)};function p(e,t,n){let o,a,r,i,l,u,s,c,h;if(0==t)return[255*(o=n),255*(a=n),255*(r=n)];switch((i=e)>360&&(i=0),s=n*(1-t),c=n*(1-t*(u=(i/=60)-(l=~~i))),h=n*(1-t*(1-u)),l){case 0:o=n,a=h,r=s;break;case 1:o=c,a=n,r=s;break;caseM
 2:o=s,a=n,r=h;break;case 3:o=s,a=c,r=n;break;case 4:o=h,a=s,r=n;break;default:o=n,a=s,r=c}return[255*o,255*a,255*r]}n.Color=function(e,t,n,o){let a=this;a.MAGIC=786698,a._r=e,a._g=t,a._b=n,a._a=o,a._h=0,a._s=0,a._v=0,a._hsvInferred=!1,a.setRed=function(e){a._r=e,a._hsvInferred=!1},a.setGreen=function(e){a._g=e,a._hsvInferred=!1},a.setBlue=function(e){a._b=e,a._hsvInferred=!1},a.setAlpha=function(e){a._a=e/255,a._hsvInferred=!1},a._inferHSV=function(){a._hsvInferred||([a._h,a._s,a._v]=function(e,t,n){let o,a,r,i,l;M
if(o=e<t?e<n?e:n:t<n?t:n,0==(l=100*(a=e>t?e>n?e:n:t>n?t:n)/255))return[r=0,i=0,l];if(0==(i=100*(a-o)/a))return[r=0,i,l];r=a==e?0+60*(t-n)/(a-o):a==t?120+60*(n-e)/(a-o):240+60*(e-t)/(a-o);return[r,i,l]}(a._r,a._g,a._b),a._hsvInferred=!0)},a.toString=function(){return`rgba(${Math.round(a._r)},${Math.round(a._g)},${Math.round(a._b)},${~~(1e3*a._a)/1e3})`}};n.colorMode=function(e){n._colorMode=e};n.color=function(){if(1==arguments.length&&786698==arguments[0].MAGIC)return arguments[0];if(n._colorMode==n.RGB){if(1==arguM
ments.length)return new n.Color(arguments[0],arguments[0],arguments[0],1);if(2==arguments.length)return new n.Color(arguments[0],arguments[0],arguments[0],arguments[1]/255);if(3==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],1);if(4==arguments.length)return new n.Color(arguments[0],arguments[1],arguments[2],arguments[3]/255)}else{if(1==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),1);if(2==arguments.length)return new n.Color(...p(0,0,arguments[0]/100),arguments[1]/255);M
if(3==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),1);if(4==arguments.length)return new n.Color(...p(arguments[0],arguments[1]/100,arguments[2]/100),arguments[3])}return null};n.red=function(e){return e._r};n.green=function(e){return e._g};n.blue=function(e){return e._b};n.alpha=function(e){return 255*e._a};n.hue=function(e){return e._inferHSV(),e._h};n.saturation=function(e){return e._inferHSV(),e._s};n.brightness=function(e){return e._inferHSV(),e._v};n.lightness=functiM
on(e){return 100*(.2126*e._r+.7152*e._g+.0722*e._b)/255};n.lerpColor=function(e,t,o){return n._colorMode==n.RGB?new n.Color(n.constrain(n.lerp(e._r,t._r,o),0,255),n.constrain(n.lerp(e._g,t._g,o),0,255),n.constrain(n.lerp(e._b,t._b,o),0,255),n.constrain(n.lerp(e._a,t._a,o),0,1)):(e._inferHSV(),t._inferHSV(),new n.Color(n.constrain(function(e,t,o){var a=[[Math.abs(t-e),n.map(o,0,1,e,t)],[Math.abs(t+360-e),n.map(o,0,1,e,t+360)],[Math.abs(t-360-e),n.map(o,0,1,e,t-360)]];return a.sort((e,t)=>e[0]-t[0]),(a[0][1]+720)%360M
}(e._h,t._h,o),0,360),n.constrain(n.lerp(e._s,t._s,o),0,100),n.constrain(n.lerp(e._v,t._v,o),0,100),n.constrain(n.lerp(e._a,t._a,o),0,1)))};function m(){o.fillStyle="white",o.strokeStyle="black",o.lineCap="round",o.lineJoin="miter"}n.strokeWeight=function(e){n._noStroke=!1,o.lineWidth=e};n.stroke=function(){if(n._noStroke=!1,"string"==typeof arguments[0])return void(o.strokeStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noStroke=!0:o.strokeStyle=e};n.noStroke=function(){n._noStroke=!0};n.fill=fuM
nction(){if(n._noFill=!1,"string"==typeof arguments[0])return void(o.fillStyle=arguments[0]);let e=n.color.apply(null,arguments);e._a<=0?n._noFill=!0:o.fillStyle=e};n.noFill=function(){n._noFill=!0};n.blendMode=function(e){o.globalCompositeOperation=e};n.strokeCap=function(e){o.lineCap=e};n.strokeJoin=function(e){o.lineJoin=e};n.ellipseMode=function(e){n._ellipseMode=e};n.rectMode=function(e){n._rectMode=e};n.curveDetail=function(e){n._curveDetail=e};n.curveAlpha=function(e){n._curveAlpha=e};n.curveTightness=functiM
on(e){console.warn("curveTightness() sets the 'alpha' parameter of Catmull-Rom curve, and is NOT identical to p5.js counterpart. As this might change in the future, please call curveAlpha() directly."),n._curveAlpha=e};n.clear=function(){o.clearRect(0,0,n.width,n.height)};n.background=function(){if(arguments[0]&&arguments[0].MAGIC==n.MAGIC)return n.image(arguments[0],0,0,n.width,n.height);o.save(),o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity),"string"==typeof arguments[0]?o.fillStyle=arguments[0]:o.fiM
llStyle=n.color(...Array.from(arguments)),o.fillRect(0,0,n.width,n.height),o.restore()};n.line=function(e,t,a,r){n._noStroke||(o.beginPath(),o.moveTo(e,t),o.lineTo(a,r),o.stroke())};function g(e){if(0<=e&&e<2*Math.PI)return e;for(;e<0;)e+=2*Math.PI;for(;e>=Math.PI;)e-=2*Math.PI;return e}function v(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;let c=g(i),h=g(l);o.beginPath();for(let i=0;i<s+1;i++){let l=i/s,u=n.lerp(c,h,l),f=Math.cos(u)*a/2,d=Math.sin(u)*r/2;o[i?"lineTo":"moveTo"](e+f,t+d)}u==n.CHORD?o.closePathM
():u==n.PIE&&(o.lineTo(e,t),o.closePath()),n._noFill||o.fill(),n._noStroke||o.stroke()}n.arc=function(e,t,o,a,r,i,l,u){if(r==i)return n.ellipse(e,t,o,a);null==u&&(u=25),null==l&&(l=n.PIE),n._ellipseMode==n.CENTER?v(e,t,o,a,r,i,l,u):n._ellipseMode==n.RADIUS?v(e,t,2*o,2*a,r,i,l,u):n._ellipseMode==n.CORNER?v(e+o/2,t+a/2,o,a,r,i,l,u):n._ellipseMode==n.CORNERS&&v((e+o)/2,(t+a)/2,o-e,a-t,r,i,l,u)};function M(e,t,a,r){n._noFill&&n._noStroke||(o.beginPath(),o.ellipse(e,t,a/2,r/2,0,0,2*Math.PI),n._noFill||o.fill(),n._noStroM
ke||o.stroke())}n.ellipse=function(e,t,o,a){null==a&&(a=o),n._ellipseMode==n.CENTER?M(e,t,o,a):n._ellipseMode==n.RADIUS?M(e,t,2*o,2*a):n._ellipseMode==n.CORNER?M(e+o/2,t+a/2,o,a):n._ellipseMode==n.CORNERS&&M((e+o)/2,(t+a)/2,o-e,a-t)};n.circle=function(e,t,o){return n.ellipse(e,t,o,o)};n.point=function(e,t){e.x&&(t=e.y,e=e.x),o.beginPath(),o.ellipse(e,t,.4,.4,0,0,2*Math.PI),o.stroke()};function _(e,t,a,r,i,l,u,s){if(n._noFill&&n._noStroke)return;if(null==i)return function(e,t,a,r){n._noFill||o.fillRect(e,t,a,r);n._nM
oStroke||o.strokeRect(e,t,a,r)}(e,t,a,r);if(null==l)return _(e,t,a,r,i,i,i,i);const c=Math.min(Math.abs(r),Math.abs(a))/2;i=Math.min(c,i),l=Math.min(c,l),s=Math.min(c,s),u=Math.min(c,u),o.beginPath(),o.moveTo(e+i,t),o.arcTo(e+a,t,e+a,t+r,l),o.arcTo(e+a,t+r,e,t+r,u),o.arcTo(e,t+r,e,t,s),o.arcTo(e,t,e+a,t,i),o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke()}n.rect=function(e,t,o,a,r,i,l,u){n._rectMode==n.CENTER?_(e-o/2,t-a/2,o,a,r,i,l,u):n._rectMode==n.RADIUS?_(e-o,t-a,2*o,2*a,r,i,l,u):n._rectMode==n.CORNER?_M
(e,t,o,a,r,i,l,u):n._rectMode==n.CORNERS&&_(e,t,o-e,a-t,r,i,l,u)};n.square=function(e,t,o,a,r,i,l){return n.rect(e,t,o,o,a,r,i,l)};function x(){i=[]}n.beginShape=function(){x(),o.beginPath(),r=!0};n.beginContour=function(){o.closePath(),x(),r=!0};n.endContour=function(){x(),r=!0};n.vertex=function(e,t){x(),r?o.moveTo(e,t):o.lineTo(e,t),r=!1};n.bezierVertex=function(e,t,n,a,r,i){x(),o.bezierCurveTo(e,t,n,a,r,i)};n.quadraticVertex=function(e,t,n,a){x(),o.quadraticCurveTo(e,t,n,a)};n.bezier=function(e,t,o,a,r,i,l,u){nM
.beginShape(),n.vertex(e,t),n.bezierVertex(o,a,r,i,l,u),n.endShape()};n.triangle=function(e,t,o,a,r,i){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.endShape(n.CLOSE)};n.quad=function(e,t,o,a,r,i,l,u){n.beginShape(),n.vertex(e,t),n.vertex(o,a),n.vertex(r,i),n.vertex(l,u),n.endShape(n.CLOSE)};n.endShape=function(e){x(),e&&o.closePath(),n._noFill||o.fill(),n._noStroke||o.stroke(),n._noFill&&n._noStroke&&(o.save(),o.fillStyle="none",o.fill(),o.restore())};n.curveVertex=function(e,t){if(i.push([e,t]),i.lenM
gth<4)return;let a=i[i.length-4],l=i[i.length-3],u=i[i.length-2],s=i[i.length-1],c=function(e,t,n,o,a,r,i,l,u,s){function c(e,t,n,o,a,r){let i=Math.pow(o-t,2)+Math.pow(a-n,2),l=Math.pow(i,.5*r);return l+e}let h=[],f=c(0,e,t,n,o,s),d=c(f,n,o,a,r,s),p=c(d,a,r,i,l,s);for(let s=0;s<u;s++){let c=f+s/(u-1)*(d-f),m=[(f-c)/(f-0),(c-0)/(f-0),(d-c)/(d-f),(c-f)/(d-f),(p-c)/(p-d),(c-d)/(p-d),(d-c)/(d-0),(c-0)/(d-0),(p-c)/(p-f),(c-f)/(p-f)];for(let e=0;e<m.length;e+=2)isNaN(m[e])&&(m[e]=1,m[e+1]=0),isFinite(m[e])||(m[e]>0?(m[e]M
=1,m[e+1]=0):(m[e]=0,m[e+1]=1));let g=e*m[0]+n*m[1],v=t*m[0]+o*m[1],M=n*m[2]+a*m[3],_=o*m[2]+r*m[3],x=a*m[4]+i*m[5],y=r*m[4]+l*m[5],w=g*m[6]+M*m[7],R=v*m[6]+_*m[7],I=M*m[8]+x*m[9],E=_*m[8]+y*m[9],S=w*m[2]+I*m[3],C=R*m[2]+E*m[3];h.push([S,C])}return h}(...a,...l,...u,...s,n._curveDetail,n._curveAlpha);for(let e=0;e<c.length;e++)r?o.moveTo(...c[e]):o.lineTo(...c[e]),r=!1};n.curve=function(e,t,o,a,r,i,l,u){n.beginShape(),n.curveVertex(e,t),n.curveVertex(o,a),n.curveVertex(r,i),n.curveVertex(l,u),n.endShape()};n.translM
ate=function(e,t){o.translate(e,t)};n.rotate=function(e){o.rotate(e)};n.scale=function(e,t){null==t&&(t=e),o.scale(e,t)};n.applyMatrix=function(e,t,n,a,r,i){o.transform(e,t,n,a,r,i)};n.shearX=function(e){o.transform(1,0,Math.tan(e),1,0,0)};n.shearY=function(e){o.transform(1,Math.tan(e),0,1,0,0)};n.resetMatrix=function(){o.resetTransform(),o.scale(n._pixelDensity,n._pixelDensity)};n.pushMatrix=n.push=function(){o.save()};n.popMatrix=n.pop=function(){o.restore()};n.image=function(e,t,a,r,i,l,u,s,c){let h=e.MAGIC==n.MM
AGIC?e.canvas:e;function d(){if(e.MAGIC!=n.MAGIC||!n._tint)return;let t=e.canvas.getContext("2d");t.save(),t.resetTransform(),t.clearRect(0,0,t.canvas.width,t.canvas.height),t.drawImage(f.canvas,0,0),t.restore()}return e.MAGIC==n.MAGIC&&null!=n._tint&&(!function(e,t){null==f&&(f=document.createElement("canvas").getContext("2d"));null==e&&(e=o.canvas.width,t=o.canvas.height);f.canvas.width==e&&f.canvas.height==t||(f.canvas.width=e,f.canvas.height=t)}(e.canvas.width,e.canvas.height),f.drawImage(e.canvas,0,0),e.tintedM
(n._tint)),r?l?(s||(s=h.width),c||(c=h.height),o.drawImage(h,l,u,s,c,t,a,r,i),void d()):(o.drawImage(h,t,a,r,i),void d()):(e.MAGIC==n.MAGIC||e.width?o.drawImage(h,t,a,e.width,e.height):o.drawImage(h,t,a,e.videoWidth,e.videoHeight),void d())};n.loadPixels=function(){l=o.getImageData(0,0,n.canvas.width,n.canvas.height),n.pixels=l.data};n.updatePixels=function(){null!=l&&o.putImageData(l,0,0)};n.loadImage=function(e,t){u++;let o=n.createGraphics(100,100),a=o.canvas.getContext("2d"),r=new Image;return r.src=e,r.crossOrM
igin="Anonymous",r.onload=function(){a.canvas.width=r.width,a.canvas.height=r.height,o.width=r.width,o.height=r.height,a.drawImage(r,0,0),u--,t&&t(o)},o};let y={};y[n.THRESHOLD]=function(e,t){null==t?t=127.5:t*=255;for(let n=0;n<e.length;n+=4){const o=.2126*e[n]+.7152*e[n+1]+.0722*e[n+2];e[n]=e[n+1]=e[n+2]=o>=t?255:0}};y[n.GRAY]=function(e){for(let t=0;t<e.length;t+=4){const n=.2126*e[t]+.7152*e[t+1]+.0722*e[t+2];e[t]=e[t+1]=e[t+2]=n}};y[n.OPAQUE]=function(e){for(let t=0;t<e.length;t+=4)e[t+3]=255};y[n.INVERT]=funcM
tion(e){for(let t=0;t<e.length;t+=4)e[t]=255-e[t],e[t+1]=255-e[t+1],e[t+2]=255-e[t+2]};y[n.POSTERIZE]=function(e,t){let n=t-1;for(let o=0;o<e.length;o+=4)e[o]=255*(e[o]*t>>8)/n,e[o+1]=255*(e[o+1]*t>>8)/n,e[o+2]=255*(e[o+2]*t>>8)/n};y[n.DILATE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.max(dM
[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.ERODE]=function(e){R(),d.set(e);let[t,n]=[o.canvas.width,o.canvas.height];for(let o=0;o<n;o++)for(let a=0;a<t;a++){let r=4*Math.max(a-1,0),i=4*Math.min(a+1,t-1),l=4*Math.max(o-1,0)*t,u=4*Math.min(o+1,n-1)*t,s=4*o*t,c=4*a;for(let t=0;t<4;t++){let n=t+l,o=t+u,a=t+s;e[s+c+t]=Math.min(d[n+c],d[a+r],d[a+c],d[a+i],d[o+c])}}};y[n.BLUR]=function(e,t){t=t||1,t=Math.floor(t*n._pixelDensity),R(),d.set(e);let a=2*t+1;let r=function(e){let n=new Float32Array(e),o=.3*t+.8,a=o*o*2;for(letM
 t=0;t<e;t++){let r=t-e/2,i=Math.exp(-r*r/a)/(2.5066282746*o);n[t]=i}return n}(a),[i,l]=[o.canvas.width,o.canvas.height];for(let n=0;n<l;n++)for(let o=0;o<i;o++){let l=0,u=0,s=0,c=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(o-t+e,0),i-1),h=4*(n*i+a);l+=d[h]*r[e],u+=d[h+1]*r[e],s+=d[h+2]*r[e],c+=d[h+3]*r[e]}let h=4*(n*i+o);e[h]=l,e[h+1]=u,e[h+2]=s,e[h+3]=c}d.set(e);for(let n=0;n<l;n++)for(let o=0;o<i;o++){let u=0,s=0,c=0,h=0;for(let e=0;e<a;e++){let a=Math.min(Math.max(n-t+e,0),l-1),f=4*(a*i+o);u+=d[f]*r[e],s+=d[M
f+1]*r[e],c+=d[f+2]*r[e],h+=d[f+3]*r[e]}let f=4*(n*i+o);e[f]=u,e[f+1]=s,e[f+2]=c,e[f+3]=h}};function w(e,t){null==h&&(h=document.createElement("canvas").getContext("2d")),null==e&&(e=o.canvas.width,t=o.canvas.height),h.canvas.width==e&&h.canvas.height==t||(h.canvas.width=e,h.canvas.height=t)}function R(){let e=o.canvas.width*o.canvas.height*4;null!=d&&e==d.length||(d=new Uint8ClampedArray(e))}function I(e){h.clearRect(0,0,h.canvas.width,h.canvas.height),h.filter=e,h.drawImage(o.canvas,0,0),o.save(),o.resetTransformM
(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()}n.filter=function(e,t){let a=n.HARDWARE_FILTERS&&null!=o.filter;if(a)if(w(),e==n.THRESHOLD){null==t&&(t=.5),t=Math.max(t,1e-5);let e=Math.floor(.5/t*100);I(`saturate(0%) brightness(${e}%) contrast(1000000%)`)}else if(e==n.GRAY)I("saturate(0%)");else if(e==n.OPAQUE)h.fillStyle="black",h.fillRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),o.save(),o.resetTransform(),o.drawImage(h.canvas,0,0),o.restore();else ifM
(e==n.INVERT)I("invert(100%)");else if(e==n.BLUR)I(`blur(${Math.ceil(t*n._pixelDensity/1)||1}px)`);else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}else{let n=o.getImageData(0,0,o.canvas.width,o.canvas.height);y[e](n.data,t),o.putImageData(n,0,0)}};n.resize=function(e,t){w(),h.drawImage(o.canvas,0,0),n.width=e,n.height=t,o.canvas.width=e*n._pixelDensity,o.canvas.height=t*n._pixelDensity,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drM
awImage(h.canvas,0,0,o.canvas.width,o.canvas.height),o.restore()};n.get=function(e,t,a,r){if(null!=e&&null==a){let a=o.getImageData(e,t,1,1).data;return new n.Color(a[0],a[1],a[2],a[3]/255)}e=e||0,t=t||0,a=a||n.width,r=r||n.height;let i=n.createGraphics(a,r);i.pixelDensity(n._pixelDensity);let l=o.getImageData(e*n._pixelDensity,t*n._pixelDensity,a*n._pixelDensity,r*n._pixelDensity);return i.canvas.getContext("2d").putImageData(l,0,0),i};n.set=function(e,t,a){if(a.MAGIC==n.MAGIC){let o=n._tint;return n._tint=null,n.M
image(a,e,t),void(n._tint=o)}let r=4*(t*n._pixelDensity*o.canvas.width+e*n._pixelDensity);n.pixels[r]=a._r,n.pixels[r+1]=a._g,n.pixels[r+2]=a._b,n.pixels[r+3]=255*a._a};n.tinted=function(){let e=n.color(...Array.from(arguments)),t=e._a;e._a=1,w(),h.clearRect(0,0,h.canvas.width,h.canvas.height),h.fillStyle=e,h.fillRect(0,0,h.canvas.width,h.canvas.height),h.globalCompositeOperation="multiply",h.drawImage(o.canvas,0,0),h.globalCompositeOperation="source-over",o.save(),o.resetTransform();let a=o.globalCompositeOperatioM
n;o.globalCompositeOperation="source-in",o.drawImage(h.canvas,0,0),o.globalCompositeOperation=a,o.restore(),h.globalAlpha=t,h.clearRect(0,0,h.canvas.width,h.canvas.height),h.drawImage(o.canvas,0,0),h.globalAlpha=1,o.save(),o.resetTransform(),o.clearRect(0,0,o.canvas.width,o.canvas.height),o.drawImage(h.canvas,0,0),o.restore()};n.tint=function(){n._tint=n.color(...Array.from(arguments))};n.noTint=function(){n._tint=null};n.mask=function(e){o.save(),o.resetTransform();let t=o.globalCompositeOperation;o.globalCompositM
eOperation="destination-in",o.drawImage(e.canvas,0,0),o.globalCompositeOperation=t,o.restore()};n.clearTemporaryBuffers=function(){h=null,f=null,d=null};n.save=function(e,t){e=e||"untitled",t=t||"png";var n=document.createElement("a");n.innerHTML="[Download]",n.addEventListener("click",function(){this.href=o.canvas.toDataURL(),this.download=e+"."+t},!1),document.body.appendChild(n),n.click(),document.body.removeChild(n)};n.saveCanvas=function(e,t,o){if(e.MAGIC==n.MAGIC){o&&e.save(t,o);let n=t.split(".");return e.saM
ve(n.slice(0,-1).join("."),n[n.length-1])}if(t)return n.save(e,t);let a=e.split(".");return n.save(a.slice(0,-1).join("."),a[a.length-1])};n.loadFont=function(e,t){let n=e.split("/"),o=n[n.length-1].split(".")[0].replace(" ",""),a=`@font-face {\n        font-family: '${o}';\n        src: url('${e}');\n      }`;const r=document.createElement("style");return r.textContent=a,document.head.append(r),o};n.textFont=function(e){n._textFont=e};n.textSize=function(e){n._textSize=e,n._textLeading=e};n.textLeading=function(e)M
{n._textLeading=e};n.textStyle=function(e){n._textStyle=e};n.textAlign=function(e,t){o.textAlign=e,t&&(o.textBaseline=t==n.CENTER?"middle":t)};n.text=function(e,t,a,r){if(!e)return;if(e=e.toString(),n._noFill&&n._noStroke)return;o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`;let i=e.split("\n");for(let e=0;e<i.length;e++)n._noFill||o.fillText(i[e],t,a,r),n._noStroke||o.strokeText(i[e],t,a,r),a+=n._textLeading};n.textWidth=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measurM
eText(e).width};n.textAscent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxAscent};n.textDescent=function(e){return o.font=`${n._textStyle} ${n._textSize}px ${n._textFont}`,o.measureText(e).actualBoundingBoxDescent};var E=4;var S=.5;var C=function(e){return.5*(1-Math.cos(e*Math.PI))};var A;n.noise=function(e,t,n){if(t=t||0,n=n||0,null==A){A=new Array(4096);for(var o=0;o<4096;o++)A[o]=Math.random()}e<0&&(e=-e),t<0&&(t=-t),n<0&&(n=-n);for(var a,r,i,l,u,sM
=Math.floor(e),c=Math.floor(t),h=Math.floor(n),f=e-s,d=t-c,p=n-h,m=0,g=.5,v=0;v<E;v++){var M=s+(c<<4)+(h<<8);a=C(f),r=C(d),i=A[4095&M],i+=a*(A[M+1&4095]-i),l=A[M+16&4095],l+=a*(A[M+16+1&4095]-l),i+=r*(l-i),l=A[4095&(M+=256)],l+=a*(A[M+1&4095]-l),u=A[M+16&4095],u+=a*(A[M+16+1&4095]-u),l+=r*(u-l),i+=C(p)*(l-i),m+=i*g,g*=S,s<<=1,c<<=1,h<<=1,(f*=2)>=1&&(s++,f--),(d*=2)>=1&&(c++,d--),(p*=2)>=1&&(h++,p--)}return m};n.noiseDetail=function(e,t){e>0&&(E=e),t>0&&(S=t)};const D=function(){let e,t,n=4294967295;return{setSeed(oM
){e=t=(null==o?Math.random()*n:o)>>>0},getSeed:()=>t,rand:()=>(e^=e<<17,e^=e>>13,((e^=e<<5)>>>0)/n)}};let T=D();T.setSeed();n.noiseSeed=function(e){let t=null==e?4294967295*Math.random():e;A||(A=new Float32Array(4096));for(var n=0;n<4096;n++)t^=t<<17,t^=t>>13,t^=t<<5,A[n]=(t>>>0)/4294967295};n.randomSeed=function(e){T.setSeed(e)};n.random=function(e,t){return null==e?T.rand():"number"==typeof e?null!=t?T.rand()*(t-e)+e:T.rand()*e:e[~~(e.length*T.rand())]};n.randomGenerator=function(e){e==n.LCG?T=function(){const e=M
4294967296;let t,n;return{setSeed(o){n=t=(null==o?Math.random()*e:o)>>>0},getSeed:()=>t,rand:()=>(n=(1664525*n+1013904223)%e)/e}}():e==n.SHR3&&(T=D()),T.setSeed()};var P=new function(){var e,t,n,o=new Array(128),a=new Array(256),r=new Array(128),i=new Array(128),l=new Array(256),u=new Array(256),s=function(){return 4294967296*T.rand()-2147483648},c=function(){return.5+2.328306e-10*(s()<<0)},h=function(){for(var t,a,l,u,h=3.44262;;){if(t=n*r[e],0==e){do{l=c(),u=c(),t=.2904764*-Math.log(l),a=-Math.log(u)}while(a+a<t*M
t);return n>0?h+t:-h-t}if(i[e]+c()*(i[e-1]-i[e])<Math.exp(-.5*t*t))return t;if(n=s(),e=127&n,Math.abs(n)<o[e])return n*r[e]}},f=function(){for(var n;;){if(0==e)return 7.69711-Math.log(c());if(n=t*l[e],u[e]+c()*(u[e-1]-u[e])<Math.exp(-n))return n;if((t=s())<a[e=255&t])return t*l[e]}};this.SHR3=s,this.UNI=c,this.RNOR=function(){return n=s(),e=127&n,Math.abs(n)<o[e]?n*r[e]:h()},this.REXP=function(){return(t=s()>>>0)<o[e=255&t]?t*l[e]:f()},this.zigset=function(){var e,t,n=2147483648,s=4294967296,c=3.442619855899,h=c,f=M
.00991256303526217,d=7.697117470131487,p=d,m=.003949659822581572;for(e=f/Math.exp(-.5*c*c),o[0]=Math.floor(c/e*n),o[1]=0,r[0]=e/n,r[127]=c/n,i[0]=1,i[127]=Math.exp(-.5*c*c),t=126;t>=1;t--)c=Math.sqrt(-2*Math.log(f/c+Math.exp(-.5*c*c))),o[t+1]=Math.floor(c/h*n),h=c,i[t]=Math.exp(-.5*c*c),r[t]=c/n;for(e=m/Math.exp(-d),a[0]=Math.floor(d/e*s),a[1]=0,l[0]=e/s,l[255]=d/s,u[0]=1,u[255]=Math.exp(-d),t=254;t>=1;t--)d=-Math.log(m/d+Math.exp(-d)),a[t+1]=Math.floor(d/p*s),p=d,u[t]=Math.exp(-d),l[t]=d/s}};P.hasInit=!1;n.randomGM
aussian=function(e,t){return P.hasInit||(P.zigset(),P.hasInit=!0),P.RNOR()*t+e};n.randomExponential=function(){return P.hasInit||(P.zigset(),P.hasInit=!0),P.REXP()};n.print=console.log;n.cursor=function(e,t,o){let a="";e.includes(".")&&(e=`url("${e}")`,a=", auto"),null!=t&&(e+=" "+t+" "+o),n.canvas.style.cursor=e+a};n.noCursor=function(){n.canvas.style.cursor="none"};n.createCapture=function(e){var t=document.createElement("video");return t.playsinline="playsinline",t.autoplay="autoplay",navigator.mediaDevices.getUM
serMedia(e).then(function(e){t.srcObject=e}),t.style.position="absolute",t.style.opacity=1e-5,t.style.zIndex=-1e3,document.body.appendChild(t),t};let b=["setup","draw","preload","mouseMoved","mousePressed","mouseReleased","mouseDragged","mouseClicked","keyPressed","keyReleased","keyTyped","touchStarted","touchEnded"];for(let e of b){let t="_"+e+"Fn";n[t]=function(){},n[t].isPlaceHolder=!0,n[e]?n[t]=n[e]:Object.defineProperty(n,e,{set:function(e){n[t]=e}})}function z(){n._noLoop||(a=null==n._frameRate?requestAnimatiM
onFrame(z):setTimeout(z,1e3/n._frameRate)),x(),r=!0,o.save(),n._drawFn(),o.restore(),n.frameCount++}n.noLoop=function(){n._noLoop=!0,a=null};n.loop=function(){n._noLoop=!1,null==a&&z()};n.redraw=function(){z()};n.frameRate=function(e){n._frameRate=e};setTimeout(function(){n._preloadFn(),c=window.performance.now(),function e(){if(u>0)return setTimeout(e,10);n._setupFn();z()}()},1);n.canvas.onmousemove=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed?n._mouseDraM
ggedFn(e):n._mouseMovedFn(e)};n.canvas.onmousedown=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n.mouseButton=[n.LEFT,n.CENTER,n.RIGHT][e.button],n._mousePressedFn(e)};n.canvas.onmouseup=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!1,n._mouseReleasedFn(e)};n.canvas.onclick=function(e){n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=e.offsetX,n.mouseY=e.offsetY,n.mouseIsPressed=!0,n._mouseClickeM
dFn(e),n.mouseIsPressed=!1};window.addEventListener("keydown",function(e){n.keyIsPressed=!0,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!0,n._keyPressedFn(e),1==e.key.length&&n._keyTypedFn(e)});window.addEventListener("keyup",function(e){n.keyIsPressed=!1,n.key=e.key,n.keyCode=e.keyCode,s[n.keyCode]=!1,n._keyReleasedFn(e)});n.keyIsDown=function(e){return!!s[e]};function O(e){const t=n.canvas.getBoundingClientRect(),o=n.canvas.scrollWidth/n.width||1,a=n.canvas.scrollHeight/n.height||1;return{x:(e.clientX-t.left)/o,M
y:(e.clientY-t.top)/a,id:e.identifier}}function k(){return n._touchStarted.isPlaceHolder&&n._touchMoved.isPlaceHolder&&n._touchEnded.isPlaceHolder}n.canvas.ontouchstart=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mousePressedFn(e)||e.preventDefault()),n._touchStartedFn(e)||e.preventDefault()};n.canvas.ontouchmove=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=M
n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!0,n.mouseButton=n.LEFT,n._mouseDraggedFn(e)||e.preventDefault()),n._touchMovedFn(e)||e.preventDefault()};n.canvas.ontouchend=n.canvas.ontouchcancel=function(e){n.touches=e.touches.map(O),k()&&(n.pmouseX=n.mouseX,n.pmouseY=n.mouseY,n.mouseX=n.touches[0].x,n.mouseY=n.touches[0].y,n.mouseIsPressed=!1,n._mouseReleasedFn(e)||e.preventDefault()),n._touchEndedFn(e)||e.preventDefault()};n.hasSensorPermission=!window.DeviceOrientationEvent&&!window.DM
eviceMotionEvent||!(DeviceOrientationEvent.requestPermission||DeviceMotionEvent.requestPermission);n.requestSensorPermissions=function(){DeviceOrientationEvent.requestPermission&&DeviceOrientationEvent.requestPermission().then(e=>{"granted"==e&&DeviceMotionEvent.requestPermission&&DeviceMotionEvent.requestPermission().then(e=>{"granted"==e&&(n.hasSensorPermission=!0)}).catch(alert)}).catch(alert)};window.ondeviceorientation=function(e){n.pRotationX=n.rotationX,n.pRotationY=n.rotationY,n.pRotationZ=n.rotationZ,n.pReM
lRotationX=n.relRotationX,n.pRelRotationY=n.relRotationY,n.pRelRotationZ=n.relRotationZ,n.rotationX=e.beta*(Math.PI/180),n.rotationY=e.gamma*(Math.PI/180),n.rotationZ=e.alpha*(Math.PI/180),n.relRotationX=[-n.rotationY,-n.rotationX,n.rotationY][1+~~(window.orientation/90)],n.relRotationY=[-n.rotationX,n.rotationY,n.rotationX][1+~~(window.orientation/90)],n.relRotationZ=n.rotationZ};window.ondevicemotion=function(e){if(n.pAccelerationX=n.accelerationX,n.pAccelerationY=n.accelerationY,n.pAccelerationZ=n.accelerationZ,M
!e.acceleration){let t=((e,t)=>[(e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[4]*t[0]+e[5]*t[1]+e[6]*t[2]+e[7])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15]),(e[8]*t[0]+e[9]*t[1]+e[10]*t[2]+e[11])/(e[12]*t[0]+e[13]*t[1]+e[14]*t[2]+e[15])])(((e,t)=>[e[0]*t[0]+e[1]*t[4]+e[2]*t[8]+e[3]*t[12],e[0]*t[1]+e[1]*t[5]+e[2]*t[9]+e[3]*t[13],e[0]*t[2]+e[1]*t[6]+e[2]*t[10]+e[3]*t[14],e[0]*t[3]+e[1]*t[7]+e[2]*t[11]+e[3]*t[15],e[4]*t[0]+e[5]*t[4]+e[6]*t[8]+e[7]*t[12],e[4]*t[1]+e[5]*t[5]+e[6]*t[9]+e[7]M
*t[13],e[4]*t[2]+e[5]*t[6]+e[6]*t[10]+e[7]*t[14],e[4]*t[3]+e[5]*t[7]+e[6]*t[11]+e[7]*t[15],e[8]*t[0]+e[9]*t[4]+e[10]*t[8]+e[11]*t[12],e[8]*t[1]+e[9]*t[5]+e[10]*t[9]+e[11]*t[13],e[8]*t[2]+e[9]*t[6]+e[10]*t[10]+e[11]*t[14],e[8]*t[3]+e[9]*t[7]+e[10]*t[11]+e[11]*t[15],e[12]*t[0]+e[13]*t[4]+e[14]*t[8]+e[15]*t[12],e[12]*t[1]+e[13]*t[5]+e[14]*t[9]+e[15]*t[13],e[12]*t[2]+e[13]*t[6]+e[14]*t[10]+e[15]*t[14],e[12]*t[3]+e[13]*t[7]+e[14]*t[11]+e[15]*t[15]])((e=>[Math.cos(e),0,Math.sin(e),0,0,1,0,0,-Math.sin(e),0,Math.cos(e),0,0M
,0,0,1])(n.rotationY),(e=>[1,0,0,0,0,Math.cos(e),-Math.sin(e),0,0,Math.sin(e),Math.cos(e),0,0,0,0,1])(n.rotationX)),[0,0,-9.80665]);n.accelerationX=e.accelerationIncludingGravity.x+t[0],n.accelerationY=e.accelerationIncludingGravity.y+t[1],n.accelerationZ=e.accelerationIncludingGravity.z-t[2]}};n.year=function(){return(new Date).getFullYear()};n.day=function(){return(new Date).getDay()};n.hour=function(){return(new Date).getHours()};n.minute=function(){return(new Date).getMinutes()};n.second=function(){return(new DM
ate).getSeconds()};n.millis=function(){return window.performance.now()-c}}(e)}
<script id="snippet-contract-code" type="text/javascript">
  const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1);
      "tokenId": tokenIdRand,
      "seed": tokenIdRand.toString(),
<script id="snippet-random-code" type="text/javascript">
function cyrb128(e){let t=1779033703,a=3144134277,n=1013904242,l=27734M
80762;for(let r,u=0;u<e.length;u++)t=a^Math.imul(t^(r=e.charCodeAt(u)),597399067),a=n^Math.imul(a^r,2869860233),n=l^Math.imul(n^r,951274213),l=t^Math.imul(l^r,2716044179);return t=Math.imul(n^t>>>18,597399067),a=Math.imul(l^a>>>22,2869860233),n=Math.imul(t^n>>>17,951274213),l=Math.imul(a^l>>>19,2716044179),[(t^a^n^l)>>>0,(a^t)>>>0,(n^t)>>>0,(l^t)>>>0]}function sfc32(e,t,a,n){return function(){a>>>=0,n>>>=0;var l=(e>>>=0)+(t>>>=0)|0;return e=t^t>>>9,t=a+(a<<3)|0,a=(a=a<<21|a>>>11)+(l=l+(n=n+1|0)|0)|0,(l>>>0)/4294967M
296}}const urlSeed=new URLSearchParams(window.location.search).get("seed");urlSeed&&urlSeed.length>0&&(tokenData.seed=urlSeed);const seed=tokenData.seed;let mathRand=sfc32(...cyrb128(seed));
    width: 99% !important;
    height: 99% !important;
    overflow: hidden;
    background-color: black;
up(){createCanvas(windowWidth,windowHeight),frameRate(60),background(0),ra=height/2,ta=width/2,type=floor(4*mathRand()+1),blend=[BLEND,DARKEST,LIGHTEST,DIFFERENCE,MULTIPLY,EXCLUSION,SCREEN,REPLACE,OVERLAY,HARD_LIGHT,SOFT_LIGHT,DODGE,BURN,ADD,REMOVE],nblend=3,nnblend=10,angle=[],angke=[],va=1;for(let e=0;e<nb-1;e++)angle[e]=PI/6+e*PI/nb,angke[e]=-PI/6+(e+1)*PI/nb}function keyTyped(){"c"===key&&(clear(),lock=!1,a=0,loop()),"p"===key&&(0==lock?(noLoop(),lock=!0):(loop(),ix=0,iy=0,lock=!1)),"3"===key&&(type=3),"1"===keM
y&&(type=1),"2"===key&&(type=2),"m"===key&&(nblend<14?nblend+=1:nblend=0),"e"===key&&0==lop?(lop=!0,e=1):"e"===key&&1==lop&&(lop=!1,e=0)}function draw(){translate(width/2,height/2),ra=height/2,ta=width/1.5,i=floor(a)+3,j=floor(a)+2,i%2==0?(x=-ra*(a-(i-3))*cos(angle[i/2-1]),y=-ra*(a-(i-3))*sin(angle[i/2-1])-1):(x=-ra*(i-2-a)*cos(angle[(i-1)/2-1]),y=-ra*(i-2-a)*sin(angle[(i-1)/2-1])-1),j%2==0?(xk=-ra*(a-(j-2))*cos(angke[j/2-1]),yk=-ra*(a-(j-2))*sin(angke[j/2-1])-1):(xk=-ra*(j-1-a)*cos(angke[(j-1)/2-1]),yk=-ra*(j-1-a)M
*sin(angke[(j-1)/2-1])-1),1==sens?a+=speed:a-=speed,a>n/2+1&&(sens=!1),a<0&&0==lop?(noLoop(),sens=!0):a<0&&1==lop&&(rou*=.98,a=0,sens=!0),noFill(),strokeWeight(rou*noise(a)),strokeCap(SQUARE),stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*a/n),colorMode(HSB),rev<.4?stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*(n-a)/n):rev<.8?stroke(noise(x,y)*col,noise(xk,yk)*col,255*noise(a)*a/n+30):stroke(155*noise(x)*mathRand()*(n-a)/n),0==floor(a%2)?blendMode(blend[nblend]):blendMode(blend[nnblend]),1==type?(colorMoM
de(RGB,255*mathRand(),255*mathRand(),255*mathRand(),255*mathRand()),Bez(y,x,yk,xk,10*a+1),Stellar(x,y,xk,yk)):2==type?(colorMode(HSB),Bez(y,x,yk,xk,10*a+1),Stellar(xk,yk,x,y)):3==type?(Stellar(x,y,xk,yk),Bez(x,y,xk,yk,10*a+1)):(colorMode(HSB,255*mathRand(),255*mathRand(),255*mathRand(),255*mathRand()),Bez(x,y,xk,yk,10*a+1),Stellar(xk,yk,x,y))}function Stellar(e,a,n,o){line(e,a,n,o),line(e,-a,n,-o),line(-e,a,-n,o),line(-e,-a,-n,-o),(e+a+n+o)/4>1&&Stellar(e/2,a/2,n/2,o/2)}function Bez(e,a,n,o,t){bezier(e,a,e,height/tM
,e,-height/t,n,o),bezier(e,-a,e,-height/t,e,+height/t,n,-o),bezier(-e,a,-e,height/t,-e,-height/t,-n,o),bezier(-e,-a,-e,-height/t,-e,+height/t,-n,-o),(e+a+n+o)/4>1&&Bez(e/2,a/2,n/2,o/2,1.5*t)}new Q5("global"),lock=!1,lop=!1;var sty=50*mathRand(),ep=1,ss=mathRand();let see,sens=!0;var a=0,rev=mathRand(),tye=mathRand();if(tye<.2)var gra=11;else if(tye<.4)gra=13;else if(tye<.6)gra=73;else if(tye<.8)gra=153;else gra=203;var tyre=mathRand();see=tyre<.2?1:tyre<.4?2:tyre<.6?5:tyre<.8?10:15;var nb=gra,n=2*nb+1,speed=n/(500*LVmathRand()+100),col=65*mathRand(),rou=3*see;"c"===k
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
FjDOUT:225C7C50C388F3FDA7A8D375C3E553DF70F67879667E84CD20E7E66E6D4F8966
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
Bj@=:BNB.BNB:bnb1t34nsvtmugszn4m0k3e9reepfxukfeqzr3gm24:33469651::0
Bj@=:ETH.ETH:0x6be24A55CF6156153f894a92f8aa9EC87C5D6429:44060216::0
DjB=:ETH.ETH:0x5989308a93e19E34E4d82E07C76353451AA5d4d4:11389044:te:0
CjA=:ETH.ETH:0xa02246917ba032f1aF2A591EF375d5fB2a95362E:1313504:te:0
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M
1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:19:34-07:00" xmp:ModifyDate="2021-10-11T12:23:10-07:00" xmp:MetadataDate="2021-10-11T12:23:10-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:22b54d00-8950-4473-af27-3a4754b72368" xmpMM:DocumentID="adobe:docid:photoshop:74b5c82e-daa7-864e-8620-ed797ab1e50c" xmpMM:OriginalDocumentID="xmp.did:aafM
aa068-026a-431f-92f5-98c53289375c"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:aafaa068-026a-431f-92f5-98c53289375c" stEvt:when="2021-09-11T14:19:34-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:22b54d00-8950-4473-af27-3a4754b72368" stEvt:when="2021-10-11T12:23:10-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M
x:xmpmeta> <?xpacket end="r"?><p
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
"iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.0-c060 61.134777, 2010/02/12-17:32:00        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:stRef="http://ns.adobe.com/xap/1.0/sType/ResourceRef#" xmp:CreatorTM
ool="Adobe Photoshop CS5 Macintosh" xmpMM:InstanceID="xmp.iid:BF9D8DDD85CB11E2AF09ED6BB320E6BF" xmpMM:DocumentID="xmp.did:BF9D8DDE85CB11E2AF09ED6BB320E6BF"> <xmpMM:DerivedFrom stRef:instanceID="xmp.iid:BF9D8DDB85CB11E2AF09ED6BB320E6BF" stRef:documentID="xmp.did:BF9D8DDC85CB11E2AF09ED6BB320E6BF"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end="r"?>
text/plain;charset=utf-8
c/Foundry USA Pool #dropgold/
9j7+:BTC/BTC::bc1q3f787hr38pmal87yxtpq8tng09q60ljjqqd759:0
FjDOUT:FA82E92A73732D74428C1A35A96FE0CAD1106FDD16D9BC6FF353403A807DA7E3
FjDOUT:8B12EE3525459E52259E3A85F694E8FF0BCAC3B90B190F7B8FAA03DEA765A3E1
{"attributes":[{"trait_type":"Clothes","value":"Black T"},{"trait_type":"Mouth","value":"Bored Cigarette"},{"trait_type":"Background","value":"New Punk Blue"},{"trait_type":"Fur","value":"Tan"},{"trait_type":"Eyes","value":"Closed"}],"external_url":"https://baycbitcoin.com/index/bayc/4034","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/4034.png"}
 .)10.)-,3:J>36F7,-@WAFLNRSR2>ZaZP`JQM
&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
6j4ion:8.QmcwwEwzTaWyhqDuXbsvDPAFa6hjXvFrC5YtivwED8tC8V(9
MjKs:ETH.USDT-EC7:0x3F595a64cc945f16e3fC25e5697722880689bA32:409759634882:ss:0
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>GENERATIVE BTC LOGO</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-contract-code" type="text/javascript">
        const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1);
        let tokenData = {
            "tokenId": tokenIdRand,
            "seed": tokenIdRand.toString(),
    <script id="snippet-random-code" type="text/javascript">
        const urlSeed = new URLSearchParams(window.location.search).get('seed');
        if (urlSeed && urlSeed.length > 0) {
            tokenData.seed = urlSeed;
        const seed = tokenData.seed
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.iM
mul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
               return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
            color: rgb(255, 255, 255);
            background-color: rgb(0, 0, 0);
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0;
            padding: 0;
            font-size: 0.8em;
            /* overflow: hidden; */
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
        #fullScreen {
       display: flex;
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
            justify-content: center;
            align-items: center;
        #fullScreen canvas {
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
            color: rgb(249, 249, 249);
            opacity: 0.75;
            background-color: rgb(23, 23, 23);
            border-radius: 10px;
        padding-top: 0%;
            width: auto;
            height: auto;
            position: fixed;
            text-align: center;
            justify-content: center;
            align-items: center;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
        #progress h2 {
            display: block;
            font-size: 0.9rem;
            color: rgb(239, 239, 239);
            margin: 5%
            font-size: 0.75rem;
            display: block;
            margin: 5%
        #progress hr {
            width: 75%;
            margin-bottom: 10%
    <div id="fullScreen">
        <div id="progress">
            <script type="text/javascript">
                ////////////////INFO & FEATURES
                let title = "Generative BTC Logo";
                let st;
                const rand = mathRand();
                let cnv;
                let maxBrush = Math.floor(randBetween(500, 1500))
                function clr(rand) {
                    if (rand > 0.75) {
                        return 240
                    } else {
                        return 10
                    }
                window.$generativeTraits = {
                    "BG Color": clr(rand),
                    "Force": Math.floor(randBetween(1, 5)),
                    "Brush Size": maxBrush,
                console.loM
g(title + " | smldms 2023.02")
                console.log(window.$generativeTraits)
                let img;
                let balls = [];
                let maxFrame = 1500;
                let maxForce = 1;
                function preload() {
                    img = loadImage('https://gateway.pinata.cloud/ipfs/QmQVs9Xpa5e1JDooNiTPWct2kEorxwqk92A1HkHrn8jx1V');
                function setup() {
                    randomSeed(seed);
                    noiseSeed(seed);
     cnv = createCanvas(1920, 1920, WEBGL);
                    cnv.parent(fullScreen)
                    img.resize(width, height)
                    background(clr(rand));
                function draw() {
                    rotateY(sin(frameCount * 0.05) / 25)
                    translate(-width / 2, -height / 2, frameCount * 0.25)
                    let x = mathRand() * width
                    let y = mathRand() * height
                    for (let i = 0; i < balls.length; i++) {
                      balls[i].draw();
                        balls[i].update();
                        balls[i].changeColour();
                    }
                    for (let i = 0; i < balls.length; i++) {
                        if (balls[i].radius < 0) {
                            balls.splice(i, mathRand() * 2);
                        }
                    }
                    if (frameCount < maxFrame) {
                        for (let i = 0; i < 5; i++) {
                            balls.push(neM
w Ball(x, y, color(img.get(x + mathRand() * 2, y + mathRand() * 2))));
                        }
                    }
                    else {
                        noLoop()
                        print('stop')
                        // saver()
                        // timer(2000)
                    }
                class Ball {
                    constructor(mX, mY, c) {
                        this.location = createVector(mX, mY);
                        this.radius = randBetween(0M
                        this.r = red(c);
                        this.g = green(c);
                        this.b = blue(c);
                        this.a = alpha(c);
                        this.xOff = 0.0;
                        this.yOff = 0.0;
                    }
                    update() {
                        this.radius -= mathRand() * 0.00025;
                        let force = randBetween(0.5, maxForce)
                        this.xOff = this.xOff + randBetween(-force, force);
                      this.nX = noise(this.location.x) * this.xOff;
                        this.yOff = this.yOff + randBetween(-force, force);
                        this.nY = noise(this.location.y) * this.yOff;
                        this.location.x += this.nX;
                        this.location.y += this.nY;
                    }
                    changeColour() {
                        this.c = color(img.get(this.location.x, this.location.y));
                        this.r = red(this.c);
               this.g = green(this.c);
                        this.b = blue(this.c);
                        this.a = alpha(this.c);
                    }
                    draw() {
                        noStroke();
                        fill(this.r, this.g, this.b);
                        let brushSize = round(randBetween(1, maxBrush));
                        if (this.a > 10) {
                            strokeWeight(randBetween(0.25,0.5))
                            if (clr(rand) == 240) {
                    stroke(10)
                            }
                            else {
                                stroke(250)
                            }
                            ellipse(this.location.x, this.location.y, this.radius * brushSize, this.radius * brushSize);
                        }
                        else {
                            fill(this.r, this.g, this.b, 100)
                            noStroke()
                            rect(this.location.x, this.location.y, thisM
.radius * brushSize / randBetween(2.5, 5));
                        }
                    }
                function randBetween(a, b) {
                    if (!b) {
                        return mathRand() * a
                    }
                    return mathRand() * (b - a) + a
                function keyTyped() {
                    if (keyCode === 83) { // if "s" is pressed
                        save(title + '.png');
                    }
          function timer(t) {
                    setTimeout(function () {
                        location.reload(true);
                    }, t);
                function saver() {
                    save(title + '.png');
            </script>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>GENERATIVE BTC LOGO</title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script id="snippet-contract-code" type="text/javascript">
        const tokenIdRand = (Math.floor(Math.random() * 1000000) + 1) * 1000000 + (Math.floor(Math.random() * 100) + 1);
        let tokenData = {
            "tokenId": tokenIdRand,
            "seed": tokenIdRand.toString(),
    <script id="snippet-random-code" type="text/javascript">
        const urlSeed = new URLSearchParams(window.location.search).get('seed');
        if (urlSeed && urlSeed.length > 0) {
            tokenData.seed = urlSeed;
        const seed = tokenData.seed
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.iM
mul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
               return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
            color: rgb(255, 255, 255);
            background-color: rgb(0, 0, 0);
            display: flex;
            justify-content: center;
            align-items: center;
            margin: 0;
            padding: 0;
            font-size: 0.8em;
            /* overflow: hidden; */
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
        #fullScreen {
       display: flex;
            position: fixed;
            right: 0;
            bottom: 0;
            left: 0;
            justify-content: center;
            align-items: center;
        #fullScreen canvas {
            object-fit: contain;
            max-height: 100%;
            max-width: 100%;
            color: rgb(249, 249, 249);
            opacity: 0.75;
            background-color: rgb(23, 23, 23);
            border-radius: 10px;
        padding-top: 0%;
            width: auto;
            height: auto;
            position: fixed;
            text-align: center;
            justify-content: center;
            align-items: center;
            top: 50%;
            left: 50%;
            -webkit-transform: translate(-50%, -50%);
            transform: translate(-50%, -50%);
        #progress h2 {
            display: block;
            font-size: 0.9rem;
            color: rgb(239, 239, 239);
            margin: 5%
            font-size: 0.75rem;
            display: block;
            margin: 5%
        #progress hr {
            width: 75%;
            margin-bottom: 10%
    <div id="fullScreen">
        <div id="progress">
            <script type="text/javascript">
                ////////////////INFO & FEATURES
                let title = "Generative BTC Logo";
                let st;
                const rand = mathRand();
                let cnv;
                let maxBrush = Math.floor(randBetween(500, 1500))
                function clr(rand) {
                    if (rand > 0.75) {
                        return 240
                    } else {
                        return 10
                    }
                window.$generativeTraits = {
                    "BG Color": clr(rand),
                    "Force": Math.floor(randBetween(1, 5)),
                    "Brush Size": maxBrush,
                console.loM
g(title + " | smldms 2023.02")
                console.log(window.$generativeTraits)
                let img;
                let balls = [];
                let maxFrame = 1500;
                let maxForce = 1;
                function preload() {
                    img = loadImage('https://gateway.pinata.cloud/ipfs/QmQVs9Xpa5e1JDooNiTPWct2kEorxwqk92A1HkHrn8jx1V');
                function setup() {
                    randomSeed(seed);
                    noiseSeed(seed);
     cnv = createCanvas(1920, 1920, WEBGL);
                    cnv.parent(fullScreen)
                    img.resize(width, height)
                    background(clr(rand));
                function draw() {
                    rotateY(sin(frameCount * 0.05) / 25)
                    translate(-width / 2, -height / 2, frameCount * 0.25)
                    let x = mathRand() * width
                    let y = mathRand() * height
                    for (let i = 0; i < balls.length; i++) {
                      balls[i].draw();
                        balls[i].update();
                        balls[i].changeColour();
                    }
                    for (let i = 0; i < balls.length; i++) {
                        if (balls[i].radius < 0) {
                            balls.splice(i, mathRand() * 2);
                        }
                    }
                    if (frameCount < maxFrame) {
                        for (let i = 0; i < 5; i++) {
                            balls.push(neM
w Ball(x, y, color(img.get(x + mathRand() * 2, y + mathRand() * 2))));
                        }
                    }
                    else {
                        noLoop()
                        print('stop')
                        // saver()
                        // timer(2000)
                    }
                class Ball {
                    constructor(mX, mY, c) {
                        this.location = createVector(mX, mY);
                        this.radius = randBetween(0M
                        this.r = red(c);
                        this.g = green(c);
                        this.b = blue(c);
                        this.a = alpha(c);
                        this.xOff = 0.0;
                        this.yOff = 0.0;
                    }
                    update() {
                        this.radius -= mathRand() * 0.00025;
                        let force = randBetween(0.5, maxForce)
                        this.xOff = this.xOff + randBetween(-force, force);
                      this.nX = noise(this.location.x) * this.xOff;
                        this.yOff = this.yOff + randBetween(-force, force);
                        this.nY = noise(this.location.y) * this.yOff;
                        this.location.x += this.nX;
                        this.location.y += this.nY;
                    }
                    changeColour() {
                        this.c = color(img.get(this.location.x, this.location.y));
                        this.r = red(this.c);
               this.g = green(this.c);
                        this.b = blue(this.c);
                        this.a = alpha(this.c);
                    }
                    draw() {
                        noStroke();
                        fill(this.r, this.g, this.b);
                        let brushSize = round(randBetween(1, maxBrush));
                        if (this.a > 10) {
                            strokeWeight(randBetween(0.25,0.5))
                            if (clr(rand) == 240) {
                    stroke(10)
                            }
                            else {
                                stroke(250)
                            }
                            ellipse(this.location.x, this.location.y, this.radius * brushSize, this.radius * brushSize);
                        }
                        else {
                            fill(this.r, this.g, this.b, 100)
                            noStroke()
                            rect(this.location.x, this.location.y, thisM
.radius * brushSize / randBetween(2.5, 5));
                        }
                    }
                function randBetween(a, b) {
                    if (!b) {
                        return mathRand() * a
                    }
                    return mathRand() * (b - a) + a
                function keyTyped() {
                    if (keyCode === 83) { // if "s" is pressed
                        save(title + '.png');
                    }
          function timer(t) {
                    setTimeout(function () {
                        location.reload(true);
                    }, t);
                function saver() {
                    save(title + '.png');
            </script>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
?j==:AVAX/USDC:thor1p04wtckr6jx3df0479qnrgkhtg27zy5y3jz0ru::wr:0B=
KjISWAPTX:0x4e6bbeb3cf44bee4a10744d6aae3221253025fff46ff5e7834393ba558c81aa1\7N
FjDOUT:AEA427907C76807E43885A05B65473B6C32AA79D1C62B6035A4674205DEFD000
FjDOUT:61194E7DA547FBD8C8D36D936522DC6E836B0AEC9A8D47AD78CF2FA13FA6A9C8
FjDOUT:872745B133CB5ECDC99B03D75C4A90670FF8EF1A9283616A0B52CF9CAD426720
FjDOUT:41EDC53186BA122516420745315810837035832A238B4A4DFAEE3ADB47848C94
4j2DC-L5:MDmxpOzyaD67eoxhsbQHx9FSXQQX1m+xN8GBRQ0XA3g=
FjDOUT:2DB98981CB08B8AD6A9A1131E4E26F101102F72A47AFED48C83F27F2FE399814
FjDOUT:FB49050124C2D9D159103B04AE319E117416317FA4633C49BAE1E3908A56D9BF
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
Aj?=:ETH.ETH:0xBA42d8A68beF87d8c5E663f359968e34d963fEac:2668743::0
DjB=:BNB.BNB:bnb1ytethq3tqpvfj88zphl7mjhr74jpczy9ts6sfy:22570330:te:0
FjDOUT:176DDA89C4C24E6E34A4B53437E619EF8C3A58A61822F075244F598369B78CDA
KjISWAPTX:0xe84afac56f228566f943a6a40a66f8fd5650439b4a4d1ef6ff5bbae4361fccad
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
"3 %  % 3-7,),7-Q@88@Q^OJO^qeeq
!{^a{^a{^a{^a{^a{^a{^a%
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M
1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:18:56-07:00" xmp:ModifyDate="2021-10-11T12:23:11-07:00" xmp:MetadataDate="2021-10-11T12:23:11-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:469bb395-7ccd-4b74-b441-37fd8f1a9529" xmpMM:DocumentID="adobe:docid:photoshop:4fd8a5c8-213e-be4a-9a30-53554172a277" xmpMM:OriginalDocumentID="xmp.did:2b3M
898d4-610c-43cf-86da-b9303081f8cd"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:2b3898d4-610c-43cf-86da-b9303081f8cd" stEvt:when="2021-09-11T14:18:56-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:469bb395-7ccd-4b74-b441-37fd8f1a9529" stEvt:when="2021-10-11T12:23:11-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M
x:xmpmeta> <?xpacket end="r"?>
 af92f4d59bbf0a8f51569499ba44cb57G0D
(:3=<9387@H\N@DWE78PmQW_bghg>Mqypdx\egc
/cB8Bcccccccccccccccccccccccccccccccccccccccccccccccccc
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
t4wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]y]yM
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
FjDOUT:FAF617DF3368F4A4BEC34FFD53F222F7548186158B71331B849891F00892E059
c/Foundry USA Pool #dropgold/
EjC=:ETH.ETH:0x72464Ed5bE682f82A9D7838cCf11219c76F3d120:149598866:t:30
FjDOUT:92BF945DEB481A1773291F1328F06818B64F27A50EBC36CC0FD511498FF25B03
FjDOUT:12972ED4E1EB49796066086A6EB38BAFEBAD3BEFA03663436CE03617B075AB83
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
KjISWAPTX:0x3f2db1863a238bcaf3594dde3eeb26cb193f92fdb9ecaeff82a7013b4e13981c
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
IjG=:BNB.BUSD-BD1:bnb1g5wvvhh9cpf3pth7eaez6gg4c7etvjkl3wrexn:4129425888::0
IjG=:BNB.BUSD-BD1:bnb1etxteqgtayat8w5gsgffjjltj9c04qmnpp4kny:5108976247::0
c/Foundry USA Pool #dropgold/
FjDOUT:5788B3895D3772137405CCBF05C7021D91B89DC0CDB0D2C819BA99453E4E094B
FjDOUT:3D083563D2A3B73202DCAA3E64D9CFCD5FBFC05831AAB009A9AE7EB55CC7B549
FjDOUT:A43A01D697CAB4CDE1299815F9503809BABF66CF92E0894A0A209F3BB19240FA
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>The Ordinal Market evolves</title>
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <script type="text/javascript">
    <script id="snippet-random-code" type="text/javascript">
        // DO NOT EDIT THIS SECTION
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == nulM
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                   M
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
            return _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213),M
 l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this functM
ion mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
            margin: 0px;
<script type="text/javascript">
    const rand = mathRand();
let palList = [  ['#F1C40F', '#F39C12', '#E74C3C', '#9B59B6', '#3498DB', '#2ECC71', '#27AE60', '#16A085', '#1ABC9C', '#E67E22', '#BDC3C7'], // ChromieM
  ['#5c9310', '#76bc15', '#109328', '#ef6c6c', '#3D3D3D', '#F5D76E', '#FFA07A', '#9B59B6', '#3498DB', '#34495E', '#1abc9c'], // HODLer's Delight
  ['#7F5A83', '#008E9B', '#00C2BA', '#84D2C6', '#E6EBE0', '#2ecc71', '#e74c3', '#f1c40f', '#e67e22', '#9b59b6', '#3498db'], // FOMO Frenzy
  ['#1F2041', '#4B3F72', '#FFB238', '#EB5E28', '#B71540', '#55efc4', '#81ecec', '#74b9ff', '#a29bfe', '#fd79a8', '#00b894'], // Bull Run
  ['#4E4D4A', '#353432', '#94BA65', '#2790B0', '#2C2E3E', '#f39c12', '#e74c3', '#2980b9'M
, '#8e44ad', '#2c3e50', '#16a085'], // Bear Market Blues
  ['#3F3F3F', '#494949', '#D1DBBD', '#9BC1BC', '#F26B38', '#27ae60', '#e74c3', '#f1c40f', '#2980b9', '#8e44ad', '#e67e22'], // Market blues
  ['#1B1B1B', '#2A2A2A', '#737373', '#BDBDBD', '#EAEAEA', '#F5B041', '#F5D5A5', '#FFC300', '#C70039', '#900C3F', '#00796B'], // Moonshot Madness
  ['#0D1321', '#292F4D', '#48597B', '#647B9A', '#84A5C5', '#C5D1EB', '#F9A8D4', '#FF6FBA', '#E64289', '#A30D5C', '#590925'], // Crypto Rainbow
  ['#333333', '#626262', '#939393',M
 '#CCCCCC', '#ECECEC', '#F2D649', '#FF7FAC', '#6EFF9E', '#FF9F1C', '#F97583', '#8B8B8B'], // Dark Gray and Fluoro Colors
let squiggliness = 1/1000;
let lineStroke = 50;
let noiseScaleMin = 0.002;
let noiseScaleMax = 1000;
  createCanvas(windowWidth, windowHeight);
  rect(0, 0, width,M
  randomizePalette();
  updateParticles();
  for (let p of particles) {
function updateParticles() {
  for (let x = 0; x < width; x += freq) {
    let s_ = random(sizeMin, sizeMax);
    let c_ = random(pal);
    particles.push(new Particle(x_, 0, s_, c_));
    particles.push(new Particle(x_, height, s_, c_));
  for (let y = 0; y < height; y += freq) {
m(sizeMin, sizeMax);
    let c_ = random(pal);
    particles.push(new Particle(0, y_, s_, c_));
    particles.push(new Particle(width, y_, s_, c_));
function randomizePalette() {
  pal = palList[Math.floor(random(palList.length))];
  constructor(x_, y_, s_, c_) {
    this.alpha = random(alphaMin, alphaMax);
    this.dist = random(distMin, distMax);
    this.noiseScale = random(noiseScaleMin, noiseScaleMax);
    let theta = noise(this.x * squiggliness, this.y * squiggliness) * PI * 2;
    let v = p5.Vector.fromAngle(theta, this.dist);
    this.alpha *= 1;
    rect(this.x - this.size/2, this.y - this.size/2, this.size, this.size);
    if (this.x > width || this.x < 0) {
      this.dist = 0;
    if (this.y > height || this.height < 0) {
      this.dist = 0;
    const container = document.createElement("div")
 container.innerHTML = "<span>seed: " + seed + "</span><br>";
    document.body.prepend(container)
 Add your code here
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzYiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzYiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ik8gfCAtIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjc0fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlJvdGF0aM
W9uYWwifSx7InRyYWl0X3R5cGUiOiJ8IENvdW50IiwidmFsdWUiOjI4fSx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjIyfSx7InRyYWl0X3R5cGUiOiItIENvdW50IiwidmFsdWUiOjI0fV19" data-message="BitGlyphs #376 - bc1plal56jl286wjhnvw5f9lquqdny3ucnzx9v0utvzk8x6x49kacyesyda3m6" data-signature="02af1d34f3b6859100ab7e62bfb0c4a0d836b140831ddf9495548a19efb104cb2346db4454ed2e0feb8a30e427a7042cc0b23d2826e3a4bcb6ed739ad5d47241"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABM
QBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeM
VHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/kdrYIG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yo8IC4AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wM
DOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqo8ODRkKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0Kv2sQ7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLM
RnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVQUikpC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOyp8L95d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9M
eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51t4efaIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYMrtfT6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kGM
+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPQSBgmjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDU2Rt/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEM
fJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPH61rymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWhHNH3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhM
VBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszoE51Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M5w/cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMsM
0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoU07FKSVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSF8ZeHu24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1IM
LsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6Ni+YQE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoEHhgUfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CM
gMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KVM5W58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur444ZukE703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMM
OPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5wYJiWtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoTOQBSjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSM
ZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYdhjD2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73z9onv72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLM
iB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCivyaF+c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAe1A0Chd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="M
-0.5"><tspan x="0" dy="-178.5">.|.|....|....|.O</tspan><tspan x="0" dy="24">|...-O.....-O...</tspan><tspan x="0" dy="24">...-.-O.|.-.-O.|</tspan><tspan x="0" dy="24">|.-..........-O.</tspan><tspan x="0" dy="24">.-....|.O.....-.</tspan><tspan x="0" dy="24">.O-..O...|...-..</tspan><tspan x="0" dy="24">..O.|.....|.....</tspan><tspan x="0" dy="24">...........O.|.|</tspan><tspan x="0" dy="24">|.|.O...........</tspan><tspan x="0" dy="24">.....|.....|.O..</tspan><tspan x="0" dy="24">..-...|...O..-O.</tspan><tspan x="0" dyL
="24">.-.....O.|....-.</tspan><tspan x="0" dy="24">.O-..........-.|</tspan><tspan x="0" dy="24">|.O-.-.|.O-.-...</tspan><tspan x="0" dy="24">...O-.....O-...|</tspan><tspan x="0" dy="24">O.|....|....|.|.</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMzJ4MzIifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6MjA2fSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IkhvcM
ml6b250YWwifSx7InRyYWl0X3R5cGUiOiLimJwgQ291bnQiLCJ2YWx1ZSI6MTI2fSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6ODB9XX0=" data-message="BitGlyphs #379 - bc1p9zq4g0gt3vl6fq7m7wm7rz85r662t89l5xsu42px6rp3chu90xmsg2x593" data-signature="57651a716c7f40fab1df83ce203174be032dcb4ddd284b408fc94352a13c27640302e8df9ab41b680d03d91ae0669c25063ccad9aa0859db3227cda9da8b9269"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="14.4" letter-spacing="-2.4"><tspan x="0" dy="-185.25">....M
..</tspan><tspan x="0" dy="12">....................
...</tspan><tspan x="0" dy="12">..
</tspan><tspan x="0" dy="12">.....
.</tspan><tspan x="0" dy="12">....
.......</tspan><tspan x="0" dy="12">
.............</tspan><tspan x="0" dy="12">.....
.</tspan><tspan x="0" dy="12">.........
...</tspan><tspan x="0" dy="12">........
........</tspan><tspan x="0" dy="12">
..</tspan><tspan x="0" dy="12">.......
.......</tspan><tspan x="0" dy="12">..
.</tspan><tspan x="0" dy="12">.....
</tspan><tspan x="0" dy="12">......
..</tspan><tspan x="0" dy="12">....M
......</tspan><tspan x="0" dy="12">...
.......</tspan><tspan x="0" dy="12">...
.......</tspan><tspan x="0" dy="12">....
......</tspan><tspan x="0" dy="12">......
..</tspan><tspan x="0" dy="12">.....
</tspan><tspan x="0" dy="12">..
.</tspan><tspan x="0" dy="12">.......
.......</tspan><tspan x="0" dy="12">
..</tspan><tspan x="0" dy="12">........
........</tspan><tspan x="0" dy="12">.........
...</tspan><tspan x="0" dy="12">.....
.</tspan><tspan x="0" dy="12">
.............</tspan><tspan x="0" dy="12">....
.......</tspan><tspan x="0" dy="12">....M
.</tspan><tspan x="0" dy="12">..
</tspan><tspan x="0" dy="12">....................
...</tspan><tspan x="0" dy="12">.....
..</tspan></text></svg>h!
text/html;charset=utf-8
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Ordinal Automata</title> <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script> <script id="snippet-random-code" type="text/javascript"> let seed=window.location.href.split('/').find(t=> t.includes('i0')); if (seed==null){const alphabet="0123456789abcdefghijklmnopqrstuvwsyz"; seed=new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_=> alphabetM
[(Math.random() * alphabet.length) | 0]).join('') + "i0";}else{let pattern="seed="; for (let i=0; i < seed.length - pattern.length; ++i){if (seed.substring(i, i + pattern.length)==pattern){seed=seed.substring(i + pattern.length); break;}}}function cyrb128($){let _=1779033703, u=3144134277, i=1013904242, l=2773480762; for (let n=0, r; n < $.length; n++) _=u ^ Math.imul(_ ^ (r=$.charCodeAt(n)), 597399067), u=i ^ Math.imul(u ^ r, 2869860233), i=l ^ Math.imul(i ^ r, 951274213), l=_ ^ Math.imul(l ^ r, 2716044179); returM
n _=Math.imul(i ^ _ >>> 18, 597399067), u=Math.imul(l ^ u >>> 22, 2869860233), i=Math.imul(_ ^ i >>> 17, 951274213), l=Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]}function sfc32($, _, u, i){return function (){u >>>=0, i >>>=0; var l=($ >>>=0) + (_ >>>=0) | 0; return $=_ ^ _ >>> 9, _=u + (u << 3) | 0, u=(u=u << 21 | u >>> 11) + (l=l + (i=i + 1 | 0) | 0) | 0, (l >>> 0) / 4294967296}}let mathRand=sfc32(...cyrb128(seed)); </script> <style>body{margin: 0px;}<M
/style></head><body><script type="text/javascript">const rand=mathRand();function getRule(dcml){var s=(dcml >>> 0).toString(2).split(""); if (8 - s.length > 0){return Array(8 - s.length).fill(0).concat(s.map(Number));}else{return s.map(Number);}}function setCell(r, p){var i=parseInt(p.join(""), 2); switch (i){case 7: return r[0]; case 6: return r[1]; case 5: return r[2]; case 4: return r[3]; case 3: return r[4]; case 2: return r[5]; case 1: return r[6]; case 0: return r[7]; default: console.log("ERROR: setCell unhaM
ndled case."); return r[0];}}function genGrid(fr, rule){var result=[fr]; var row=fr; for (let r=1; r < cc; r++){var nextRow=[]; for (let i=0; i < cc; i++){var c1=0; var c2=0; var c3=0; if (i==0){c1=0; c2=row[i]; c3=row[i + 1];}else if (i==cc - 1){c1=row[i - 1]; c2=row[i]; c3=0;}else{c1=row[i - 1]; c2=row[i]; c3=row[i + 1];}nextRow.push(setCell(rule, [c1, c2, c3]));}row=nextRow; result.push(row);}return result;}filterRules=[0, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24, 32, 34, 36, 38, 40, 42, 44, 46, 48, 52, 56, 64, 66, 72M
, 74, 76, 80, 84, 88, 96, 98, 100, 104, 106, 108, 112, 116, 120, 128, 130, 132, 136, 138, 140, 142, 144, 148, 152, 160, 162, 164, 166, 168, 170, 172, 174, 176, 180, 184, 192, 194, 196, 200, 202, 204, 208, 212, 216, 224, 226, 228, 232, 234, 236, 240, 244, 248];cc=100;m=24;rr1=parseInt(mathRand() * 256);rr2=parseInt(mathRand() * 256);rr3=parseInt(mathRand() * 256);while(true){if (filterRules.includes(rr1) || filterRules.includes(rr2) || filterRules.includes(rr3)){rr1=parseInt(mathRand() * 256); rr2=parseInt(mathRand(M
) * 256); rr3=parseInt(mathRand() * 256);}else{break;}}console.log('rules:', rr1, rr2, rr3);r1=getRule(rr1);r2=getRule(rr2);r3=getRule(rr3);fr1=Array(cc).fill(0);fr1[parseInt(fr1.length / 2)]=1;fr2=Array(cc).fill(0);fr2[parseInt(mathRand() * fr2.length / 2)]=1;fr3=Array(cc).fill(0);fr3[parseInt(mathRand() * fr3.length / 2)]=1;grid1=genGrid(fr1, r1);grid2=genGrid(fr2, r2);grid3=genGrid(fr3, r3);var soc=mathRand() * 1;pd=1;function setup(){console.log('pd:', pd); console.log('soc:', soc); pixelDensity(pd); canvas=creM
ateCanvas(cc * m, cc * m); background(255); noLoop(); blendMode(MULTIPLY);}function draw(){noStroke(); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid1[x][y]==1){fill('#0074a2'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}push(); translate(m/2,m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid2[x][y]==1){fill('#00aa93'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, mM
);}}}pop(); push(); translate(-m/2,-m/2); for (let x=0; x < cc; x++){for (let y=0; y < cc; y++){if (grid3[x][y]==1){fill('#ff48b0'); soc < 0.5 ? square(y * m, x * m, m) : circle(y * m, x * m, m);}else{fill(255); square(y * m, x * m, m);}}}pop(); push(); blendMode(BLEND); strokeWeight(m); stroke('#000000'); line(0,0,width,0); line(0,0,0,height); line(0,height,width,height); line(width,0,width,height); pop(); console.log(seed);}function keyReleased(){if (key=='h' ){pd=4; console.log('in h'); setup(); draw(); buff=creL
ateGraphics(width, height); buff.copy(canvas, 0,0,width,height,0,0,width,height); buff.save(seed + '.png');}}</script></body></html>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzciLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzciLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6Ik8ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6ODJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydGljYWwifM
Sx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjgyfV19" data-message="BitGlyphs #377 - bc1pdpta2a9e9eqq8ah9qm3rvn5z052hacggm8fm30xh6m9l3c96q7rqvc83hs" data-signature="2d8ad6b8d2040374273a885de8ac3b1ed3de88c82818182253fd1c0cdd256efa27a4f58f2790abd1fe525621768fd589ee339f27a52239795346411743c6f9ea"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24.5" letter-spacing="-0.5"><tspan x="0" dy="-178.5">....O.O..O.O....</tspan><tspan x="0" dy="24">.O.....OO.....O.</tspan><tspM
an x="0" dy="24">................</tspan><tspan x="0" dy="24">...O.OO..OO.O...</tspan><tspan x="0" dy="24">O.....OOOO.....O</tspan><tspan x="0" dy="24">...O........O...</tspan><tspan x="0" dy="24">O..OO......OO..O</tspan><tspan x="0" dy="24">.O..O......O..O.</tspan><tspan x="0" dy="24">O...O..OO..O...O</tspan><tspan x="0" dy="24">OO..OO....OO..OO</tspan><tspan x="0" dy="24">O..O..O..O..O..O</tspan><tspan x="0" dy="24">O.....OOOO.....O</tspan><tspan x="0" dy="24">O..O.O....O.O..O</tspan><tspan x="0" dy="24">..O.....Lw.....O..</tspan><tspan x="0" dy="24">O.....O..O.....O</tspan><tspan x="0" dy="24">.O.OOOOOOOOOO.O.</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODAiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODAiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxMTB9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM
GljYWwifSx7InRyYWl0X3R5cGUiOiJYIENvdW50IiwidmFsdWUiOjM0fSx7InRyYWl0X3R5cGUiOiIvIENvdW50IiwidmFsdWUiOjQyfSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjozNH1dfQ==" data-message="BitGlyphs #380 - bc1prhv7hk33dcwh7pq9zd7mgaq2zj7z3fyjrjxwcg8vcvsnckysje7s3tz73r" data-signature="ec02c538ef0d6f81c284ed96ec870e57d9be7157cbe82cf2efe0aa4ec878a6b250cb3721ba8d39b2f220fcb0f13aad669208511bd03fe356e484a17c249aa003"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcM
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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacingM
="-0"><tspan x="0" dy="-178.5">X/\..X/\\/X..\/X</tspan><tspan x="0" dy="24">/./....//...././</tspan><tspan x="0" dy="24">\/..X..XX..X../\</tspan><tspan x="0" dy="24">...\\//XX//\\...</tspan><tspan x="0" dy="24">..X\\......\\X..</tspan><tspan x="0" dy="24">X../.X\..\X./..X</tspan><tspan x="0" dy="24">/../.\X..X\./../</tspan><tspan x="0" dy="24">\/XX........XX/\</tspan><tspan x="0" dy="24">....X/\..\/X....</tspan><tspan x="0" dy="24">./../..\\../../.</tspan><tspan x="0" dy="24">../.\..//..\./..</tspan><tspan x="0" dyL
="24">XX...\/XX/\...XX</tspan><tspan x="0" dy="24">\..............\</tspan><tspan x="0" dy="24">../../..../../..</tspan><tspan x="0" dy="24">.\..X./../.X..\.</tspan><tspan x="0" dy="24">...\X......X\...</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzNzgiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zNzgiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKXjyDimL4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NzZ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM
GljYWwifSx7InRyYWl0X3R5cGUiOiLil48gQ291bnQiLCJ2YWx1ZSI6NTJ9LHsidHJhaXRfdHlwZSI6IuKYviBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #378 - bc1p90p0aajnrakhv806kl6nr3cm6q8lxrxz0v8kvjh6k6256ecalawst4fghd" data-signature="692cb1bad352016ac0832369ce0f0950940ee76c5c00302494c7ca815a5419c772d1c34363fdaaecd3dba1635dfccd6c75832b992c4d496496d9b4e4d0c3dbde"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="26.4" letter-spacing="-2.4"><tspan x="0" dy="-178.5">...
...</tspan><tspan x="0" dy="24">....
....</tspan><tspan x="0" dy="24">.....
.....</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">..
..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">
</tspan><tspan x="0"MO
...</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6NDh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiSG9yaM
XpvbnRhbCJ9LHsidHJhaXRfdHlwZSI6IuKYniBDb3VudCIsInZhbHVlIjoyOH0seyJ0cmFpdF90eXBlIjoi4picIENvdW50IiwidmFsdWUiOjIwfV19" data-message="BitGlyphs #381 - bc1prd9upap68z0s28amecyp483g0v4ver60vjcupcsvkper8455r5psl0kyad" data-signature="fc22d2728c38e1476ba3746c5bc1ff27e046a4ff3631bbe66c05fb46b0c50b14013ee1c2b855d8cb81227f5ea2c92ca9151b99c92126c949d3726bdf91d23fc9"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">........
</tspan><tspan x="0" dy="24">..........
...</tspan><tspan x="0" dy="24">..
</tspan><tspan x="0" dy="24">...
.</tspan><tspan x="0" dy="24">.....
..</tspan><tspan x="0" dy="24">....
</tspan><tspan x="0" dy="24">..
...</tspan><tspan x="0" dy="24">...............
</tspan><tspan x="0" dy="24">...............
</tspan><tspan x="0" dy="24">..
...</tspan><tspan x="0" dy="24">....
</tspan><tspan x="0" dy="24">.....
..</tspan><tspan x="0" dy="24">...
.</tspan><tspan x="0" dy="24">..
</tspan><tspan x="0" dy="24">..........
...</tspan><tspan x="0" dy="24">........
</tspan></text></svg>h!
text/plain;charset=utf-8
text/plain;charset=utf-8
text/plain;charset=utf-8
FjDOUT:21EFE6CC26BB75904B21C06DE3B19EA4ED4D1BAC08B9FBAD79383BD066C8B563
FjDOUT:6494111783057F740A0708303A97A978B038BED96611C64FE4E2EF2306109CB8
KjISWAPTX:0x1693a19137b9bd135cfaca4dabb0d3ce98508553305f75cf2c775517d186c09b
<svg viewBox="0 0 1543 2499.2" xmlns="http://www.w3.org/2000/svg"><path d="m0 1361.05c271.87 144.38 555.56 295.51 774.67 412.45l768.33-412.45c-278.2 413.29-510 757.36-768.33 1138.15-258.79-379.95-544.59-799.2-774.67-1138.15zm29.55-114 745.96-398.05 736.25 395.14-735.83 398.49zm745.12-525.58-774.67 407.81 771.29-1129.28 771.71 1131.81z" fill="#3ab83a"/><path d="m774.67 1773.5 768.33-412.45c-278.2 413.29-768.33 1138.15-768.33 1138.15zm.84-924.5 736.25 395.14-735.83 398.49zm-.84-127.5-3.38-721.5 771.71 1131.81z" fill=L
"#0b8311"/><path d="m29.55 1247.06 746 61.22 736.25-63.75-735.87 398.52z" fill="#0b8311"/><path d="m775.51 1308.28 736.25-63.75-735.83 398.52z" fill="#146714"/></svg>h!
<svg enable-background="new 0 0 1326.1 1410.3" viewBox="0 0 1326.1 1410.3" xmlns="http://www.w3.org/2000/svg"><g fill="#e6007a"><ellipse cx="663" cy="147.9" rx="254.3" ry="147.9"/><ellipse cx="663" cy="1262.3" rx="254.3" ry="147.9"/><ellipse cx="180.5" cy="426.5" rx="254.3" ry="148" transform="matrix(.5 -.866 .866 .5 -279.1512 369.5916)"/><ellipse cx="1145.6" cy="983.7" rx="254.3" ry="147.9" transform="matrix(.5 -.866 .866 .5 -279.1552 1483.9517)"/><ellipse cx="180.5" cy="983.7" rx="148" ry="254.3" transform="matriL
x(.866 -.5 .5 .866 -467.6798 222.044)"/><ellipse cx="1145.6" cy="426.6" rx="147.9" ry="254.3" transform="matrix(.866 -.5 .5 .866 -59.8007 629.9254)"/></g></svg>h!
iTXtXML:com.adobe.xmp
" id="W5M0MpCehiHzreSzNTczkc9d"?> <x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 7.1-c000 79.dabacbb, 2021/04/14-00:39:44        "> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> <rdf:Description rdf:about="" xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:photoshop="http://ns.adobe.com/photoshop/1.0/" xmlns:xmpMM="http://ns.adobe.com/xap/M
1.0/mm/" xmlns:stEvt="http://ns.adobe.com/xap/1.0/sType/ResourceEvent#" xmp:CreatorTool="Adobe Photoshop 22.5 (Macintosh)" xmp:CreateDate="2021-09-11T14:17:34-07:00" xmp:ModifyDate="2021-10-11T12:23:12-07:00" xmp:MetadataDate="2021-10-11T12:23:12-07:00" dc:format="image/png" photoshop:ColorMode="3" photoshop:ICCProfile="sRGB IEC61966-2.1" xmpMM:InstanceID="xmp.iid:23538f03-c59c-4a60-ae53-4190d71d3020" xmpMM:DocumentID="adobe:docid:photoshop:eda08ddd-48cf-6148-8fe3-d6dd44de96ee" xmpMM:OriginalDocumentID="xmp.did:a5fM
82ccc-a0f0-4dd6-9748-f4624585ae89"> <xmpMM:History> <rdf:Seq> <rdf:li stEvt:action="created" stEvt:instanceID="xmp.iid:a5f82ccc-a0f0-4dd6-9748-f4624585ae89" stEvt:when="2021-09-11T14:17:34-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)"/> <rdf:li stEvt:action="saved" stEvt:instanceID="xmp.iid:23538f03-c59c-4a60-ae53-4190d71d3020" stEvt:when="2021-10-11T12:23:12-07:00" stEvt:softwareAgent="Adobe Photoshop 22.5 (Macintosh)" stEvt:changed="/"/> </rdf:Seq> </xmpMM:History> </rdf:Description> </rdf:RDF> </M
x:xmpmeta> <?xpacket end="r"?>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODMiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODMiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKCvyDih6cifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6ODh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiUmFkaM
WFsIn0seyJ0cmFpdF90eXBlIjoi4oenIENvdW50IiwidmFsdWUiOjU2fSx7InRyYWl0X3R5cGUiOiLigr8gQ291bnQiLCJ2YWx1ZSI6MzJ9XX0=" data-message="BitGlyphs #383 - bc1pqg5u4hqk9qnlz98245h0chfzcghgrdqnxkejd5leu6u6l92hggsq0mwnlw" data-signature="9aed37dc81e1b7b1c3b42c935584f21379f49cd7e413fa6f4181ec17364d060b0287ea064298c0dcc1efa0b1baa3dc36912483e6cf89de7d8b0e2ea5819f30e0"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">..
..</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.....
.....</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">...
...</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.....
.....</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">..
..</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWkSJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo0Nn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJSb3RhdGlvbM
mFsIn0seyJ0cmFpdF90eXBlIjoi4paRIENvdW50IiwidmFsdWUiOjQ2fV19" data-message="BitGlyphs #384 - bc1pqg5u4hqk9qnlz98245h0chfzcghgrdqnxkejd5leu6u6l92hggsq0mwnlw" data-signature="7ebd154671c1bf8fa2d376851a8c341716b77f62320867f3eceaff9e4acc3b790b5c62b3f01c9572188be86ad3b701d09c36ccc89b39ca88c4b1a44cf3b16380"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CM
yAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6itpd9eRw/n93o04WrOed/72u1/aep7ez8n7bAeaeqWpSPt2FSG9lkNYgmaU1gbShNUMVoKLC0mVAZiWsH4TtXDpFE+5TJUXHZZoibclFl2U4RdIFBjVHdHI5ZPffDeVHJ4xtn/zhQAA89KAMDpY29hF97Oy5J5CHAoCWA/6LK/kdrYIG+BX+NoB3b09GtzFM/MQMLYDvfPvB2v34Prp6Pii7LQt3yoM
8IC4AKDOElxEljk7x9FC7CMtqwVw66UMUg6jiGWymYKT4ueSetVqxWGBXXECdEhKiQKKQWMbLLpS6N8kKuP55Jp3WRlcny05/Knww9nPmw9WHMQ+KD3x48enD/wa4HUwEEZq6Rsti8PFitAeRv4yEMo8jmPzRuNjF3nwJj85Rf0lTag2fY8n9HSjKe6JmxFrwA6qCDCpN3EGiLpw6GWrUOgTQ/pXdpxvdJUVLyhXt9X7qzhHl0LoQ9zH5uUNfnHWcyTJ72yQ2bku6i/dm9G3Kl1Hcp7ca3peA6/IhdVjOdkUpJIMMAqp6y9cykkUb4/jUUjD51Za1zOBliDoJFLB58DoVp0x47tq9dx1c+U/vZUy9RCkS5oczrZyonhvRQKfp+QqbSvjO5yHOSp9vStbcXEzQRpBjLngc2wpyA2wDOPMfatuHiWue1s/wvLpPczH9a0hibHKGg68xT7CFZqo8ODRkKynIjWO4FrPc43htrIxQ7jKwVUJhZbOolg3l1zdB5bdWoI0M
Kv2sQ7p7RtfxcaylDeUNF+SHsmH8Sg0UbBvwugjUrqw9iewwKXvQ4ZHZOTdL1XAfocGU6n0HgB7KrDhTC6QJSTf0pSqR3jxzG7lQZoVx46tyEc+sfWaCi0vBG54RZemoICoizJsO1MpJG0j3ltzKNtHl9aAWJZd9D8pkSqenS9AayUUJS5SfyM1CR7kMi3Rm18bB0xFM4ccH9N5IhDdogQ40Zl65jpfSR+hlvEI0cCqiqRXPmnZNx2JiSYpD11WiVJc5PYPApFfQ/iXSITPfcoNXk/bB4GnrHSSJ08jYJO/9hOrgtAiScRIj8z2XyJhYh3QVMqiGldZNeJMt++03UZxVetvtI4uiaP2Jqr8fRIjGOh2CMkWFOror8XLJALOoAItjpSjT61DGYKMgdHgaT3MiTqPREPxV7S3/zMrLRnLsx474WndDaUlHQp8K4wfyfyRBYF/d5OOUGUF0wFIVQUikpC0xVh6KqwdE04dF24E6pQ1Scw8eZRMOMK+rinPNTRl1HOypM
8L95d75O9ma8MMsSDiZCj5HTAsJxra4dABh044dMGhGw49cOiFQxkON+BQgWsPQGpjpcGORD6WfvfNvj5jihmw1+lDYDBMT82qYxgiYxnJWPOSPqiveq42gtNIzY9LtHhgbdtieLVo7Q/D0yigOyqbVc9vj0FeMT1+HDOwkYP+Qij8j1VIizH1C7MFBu90qYxpX8zNMgGpZcx6AIjfIMckqiu1Y6pYBHFS+jzTKCxT96SSMfD3lOnr7TuP/DgzSzgzj7gFvO+mVPsXHztmAKbICU/ZVC2SX8KyR4i9H+2AF6nbKXIxsy2pvEAwXqPk2xVOr4Pg34Sfyi0681NFi3PRexU8SovsBTpK+EiEGedHutozUoZiahTN3KBleNnA46aIWPlCWUVQkY7yklE8jmDbqj3caxKiFRyN6qSJx9eW0S1GqCg32gbgyFp/FF2mn6nRMaeGM4gIOgq0XgqX51t4efaIcoc8gkMX0quc1JSsvLPdh0pqtea2YKKg9RBizFpv/XVLTYM
MrtfT6SGlv7kMXp6z4Rqz0I7bFU9rQb+BDa1iBas7PMeyZgxikjlUZ0l4vc9E7bnpg9jZ+s94ql37St8BM6CwZgNnQtim2r/vYThVLYVgxVE21FqZs042UPjsT9p5vNs47q9RS6VLb3+JLKF7OPJgy5z/E2IJZHH4Me3StS8baykgbWaTlCVjrKcRZsZQaaZWyIMvxj1W3f5f3O9y77Qsxc2L10qxNX0eBGh6TEG2A6Y02d4apoUolo7YzUZS/BWNWCetK1dFBRg9sC6WdCgl2heq9fIzFPgMdVEhwKHTSEX5Coe8cK0Op0UcCHmWcpqeCBCNIsIIEJ0jz/aEmBNSEiJqQUNNyPlaEghWo1SvSDGjqLCEwDASGicCwEBg2AsNBYLgIDA/BPB8FvfaawZkHIWQIUkcSryJgOw66kG+SlMBIS0DZaLQWkcuhkHPLAzBVABCy5onbALDTdmXoJPQSBgmjhEnCLGEph1WGTYZdhkOGU4ZL1r5D+A+9qk1g5juVOV8+qDM
U2Rt/DmSAre+dP1Ftx20GgVgsxzCoFmCPYTh+gfgPo38NxnrPpj6NB0RDeQiYq6JQqqp93yU5Ek672rgomoQSykD0cTA/Gw0kn93HVtCqaLFhJ47OZeLzYl0qiTNji+Qgc+e32p0c8H7cE6qgIoiKGFWRPjc8uvXC7vx0wouf+mXcMydmD67/GqWNugGSNdXt7PmvnLBcXRRwjQkH83HWgIgWTI9KbjCYxjjb/OAlNh83/vvRdtlmBThTUNTZlWmka0/QrXWeqrNK2VlYbwkTLorzUOpVBq4IMW/7h/1c++iT98KPk4w+zT4w7fp+8tyMi44RJwu8dqHUndOftngNGGB+tCCLEw/TFRfpCrx9G8h+MgZjX8kvLDu4LNmj4IEqs5i97JT4Jhn3kJH3Rzsp60mKs/WZLtT2NvogHUEfJdFMwSSC64R6h04WY7tgY9uwhXSrrpUpjGhDP/ta2zPH61rymNkUEOE2kY05SdJwxEsMy61OFa+6VIK9ZppwFMiCooSmmGWM
hHNH3cZlAL2iEj47jFoJO6xjSC16dN+m/TURAw/W7+TmBzfi+t77XUoteQ5eXdmadJ/aTFVqQyguf3t/cfud8HK6hEWJVr0RyHXnPsPeO+CctFdUc3Cdq+KnrnPz1d8hvZw76k5+blK1PnrMU1xvrSzsuEMMckzdd6mT6083BckMeMc45SqVBjOIQYE5O0zIL5gDnSkGp59UZPOkJMBZEqi3ptN9tZNJ9nLW4T7fn+TUN+I3veD+fuuaNaufJy7FwI0AGokxePI8TAHFVdRy8enj1AiyWS6wtwCBpIFJEgBBSrigFqEjkrf3eycQjJHE/SQ54dPvAjvLzde+gyhf34+ZlK3Ow/Eqr4/PzBisRaN8iFiLm86xLG9JS56Dq869Cyg/hRzTzLWuvv8yXzblGSlhnPdoeodKaUI+XrNhVBpEJVb91mP4cPF3iP60xbundDTq8lz9qc7bqtWF3dszoE51Dv9cfPnwQQJyxE+vD5o3NHYalDzJqqUZVzRUPDmNhqUY1CB8M
M5w/cnG/FP4fEkbZG72TSsh91AaPqdmKSytp3C73QmtbIRz6RxTyYlvXzjWt3e7w8eGrDrjekeCKNHykwe0kfUUXO4X+w6du7K7pMXv1D94KnBMWk1pEm+bOJJ8j3Ph/zI/ePM59v72za9++em2SidEJ2hSv+rkipt9LPFHIkY1N7WHvFjrduQR116eKdz05ZLF3gNm7YfrDYcWXIMgjqOLz0KiolLN7MK1w0uGeYUbxgZlVqS61rK5h8+c3Hh8jIGl3Luz+somuRG1Uv5nkvrQo4f+MksNOg6t75+CfsodprcIv8plt75dNHBq0QvFZJCa90+qw35/cHA2C9jrqGyLYsSGy7V+ClbKVptb69x8XG6RXVYxsaM73kAjpp7euHUxHVFej0sis8GoLYUAaAIWbwYKQIAKb1ErM0uMs0iRIU3/VLwKmt2AlCmVgKQ4e2dAYBSfUipBuBSfDgAoU07FKSVWGb2oim/hnvQ69dNGNWG5vesH+7b4L9DX2OFlKFQsXHqSFM
8ZeHu24fXznByNQjO39Vf1mv1uyzX89Ps7SanUqCT7S373dbdH6/fXJapPvl5/s5vbdnVyRqJ3mHTTcErB7Dm1jNq8fEY+mVTHqCNFTqKXXLSokjBKKOZvwzPKcEE9aSNpG2fbInIqJYGyneYdBUGgsLx/30Qjxc8FghOo6Bu0/tXVg2pPbzFlJznaG3JKpsiv7yz1sUHjEg6Tt7NDyEm0wO+bWESd+t+ajm7gb7Za2nqAvymmX8yFthEsQ8CHtm4q8nGzoMUiqxm3HehROwl2swU9ZLKYrCa7yWyymSpIALcJ2FC9sNlaKu4GBmtxl81sJYBtTlZuhf7fsS7dMDb2/j0/qqMcKGdR8wvWz2vVCmhQjqAANJZ7lLgtXS0tExcUgzR2snRyScmjDJlaXoC9QQUT6vyrfRPzgmNd1ILsQqaq7ch3urQw/9KT+kBcgBsKzOPRr7ZUT6wNrg9Jo6Ni+YQE/lpiKoTQaXEx0JdmKcvvm3TPdW2OImfEM08O+clQBkzYKoM
EHhgUfTauN1/UXrp5GgAxQJ75x9bVK1la3BM3bo8O/OKumpcRpAnhIFbYeXPcQECgC18+21QxUnA5mpIo5/cj0GIMfwOljmXQghrLQZewa1giTkx+D1cU5dawqYWRr/n21m1EMDhgVk43RgOggGZFKBEQqUUFypPnp1+UHcZrm8zYRDFAnhN/A/xcmD7ZrElofDftV4jfOna8WBrS3c7Cg/rqHwPj8pstngkuMnAOj0hjsGVkDGKw/wOJYMTI0G13GSo49xMTkc7CcYEjCxZUyFGPXZtChxdAil5yCGGO/+C6+j5joIfKVOhYPxIz0oeGrSt0nGe3oeLhFZirNnIg5iJ2vfWSxDwngkI4LtrvnJ8INC/gbD+R94pnRus81TyDoz6mqRrA6gc0nSHB2hPMjclD+dCaEQtODnQrY8CgMH+4MSg4QsuujCRyGI08Un11XihQqlixRFCKlo5Pa1KVM5W58NMiGq/sm1ah04eE6Vc3HSW3qUubQj8G+n1TVyWoVl6ur44M
4ZukE703VQVyGta9S9kCvTPvova9Qd/bnY2Px+/2ZZf3xRaqa2xC2rdMuZPNG8mfJsRV7F9MhGVW2tqjFyekWeIkc+c54wL2PoXDZSPL48tDQ4uDS0nP61pWDHzYadgbn3o3LSF5aVJY1yChipExrSCYuaBbnJa1FyMWrc1Nm8qbwKTX0RcVn5lpr1zl++dDbrAqpPM0AcPFf5gq/e2Td+6QUIurBuq8+qPrXRmR5Ed0Y5PS7Zl0gZEwrwZJoLjSzEC1dYNbn93H8k0Brk3woLAOR3ZAFaTRzIblrpn/vk+Z3HDMinJH3cPvmM6H0+zR/YZ1C6lzsf2yUp2OM+J7nW31tG/iUB0LopFv6Lz+hqvyqguRIzVn0Wlo31i9j2sX8dwkrJMyCACQ+DRfGdYFYnUKzqJb8t19Kb9PqoSMOPrCwv1WamOjsyKW2zVb+rZIDRxSBNEEU3oVRMbQEII5wYJiWtLVEvg0SII2z5JyBQPdHGNl/9EkAjIORj9SuamHGmCIhuQoM
TOQBSjrYGqwF+s7gzs5LKoSMXYbLnvcKWKYj+LsMVU8ncqAAoqKTZX9T1NYbeDdIg31i8Gto/9fiGC55LXhItwyA03EdImdKyYYUkb6CZCIXPikAmZeskfA9hjeK+v4xOTi/JOG/7VhbnZ6bGR4cH2fyw2frigIxJ73t4sMYg2mEBCEFWHQg33YDmB/P3Vx3O5lLLFqr9+43pGWGaHK6J0AgyqL7KxagMC1sJNaCjSqgkCLKEJa4w9grXmBMaa+vh0ebI8PTHq2GtV/+0GrGiaTIo37iDbTi6vJ4QpG2cFUk0mFChlkGoWczHRmSibpDbNdISt69ijPCVD5DpJ92Hym9Y6J2GPHevUg6C+ub4WrAYrS7VbN/2F+dmp8bHRkeGhwYH+vmrlRm9Pd1fbtVQilUh3JJOJkr0+Xs34zSZIqz5jIOZIWDEsm8S7uQmGKJYmFLRRugnjWHMEF451nYdhjD2BNbb+9BMPP3h699FBfX2ltjA1PlQpd7d5su9yD7ZqfQqC73M
z9onv72O8GMb0FLMJPQQAleMiQ0lodbapZ8gRa6XrJ7ypzH/kt5PtNw0/ef/7Yw+dP3//06srU5I3ysrU5xj/H4f7W2nIwPzk26Jx5b3O2ogT96AILCT8DojdDG1IwhTyI4AiAnEEgO0+3G993ej198YafPD99pHn65PmTK8sT4709jL+3JRjRYvTroZVo9VooFsWvhQjO7H31Dg4x0zntb7FAWFkObs1Md3UW+ov9kTDylHcHvs0oCPQWAC+UB8e10n/lMzhmSJS8BQpMih8GAdQAEU40gVC/WmJ0dpTKV8v5XDKBKEetzVZBAAi4njOtk9jcv52Y/A4AbqeHb29fT67hsdb//79UQ34EwAEDpatf8tuoVBmFivLV8jOX2qiByvKSvVXE7dYPoIXjCvgzIqdk+HgJ75n60WgYcLiB4Fp42P761/Hz3cJLovc2bPQpdfzUJewnjT4qu9lfCivyaF+c53duflN8EEJIroT+RjdbCy676O07hRf+ouNzul+Ux33dAeM
1A0Chd9nqJbzqvB6maUffl3uRZ3peiTNHK16n1lgv1nkvuOr+k7zcIAgAA)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="28" letter-spacing="-4"><tspan x="0" dy="-178.5">............
</tspan><tspan x="0" dy="24">...
</tspan><tspan x="0" dy="24">....
..</tspan><tspan x="0" dy="24">.
</tspan><tspan x="0" dy="24">..
.</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..
........</tspan><tspan x="0" dy="24">.
....</tspan><tspan x="0" dy="24">....
.</tspan><tspan x="0" dy="24">........
..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">..
....</tspan><tspan x="0" dy="24">
...</tspan><tspan x="0" dy="24">
............</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODIiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODIiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKWoCBPIn0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIENvdW50IiwidmFsdWUiOjcyfSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlJvdGF0aM
W9uYWwifSx7InRyYWl0X3R5cGUiOiJPIENvdW50IiwidmFsdWUiOjQwfSx7InRyYWl0X3R5cGUiOiLilqAgQ291bnQiLCJ2YWx1ZSI6MzJ9XX0=" data-message="BitGlyphs #382 - bc1pe9eah4mty3n2tpdnf6tr0ev0y7e8wq7wag2vt38v3wmcct8ccsmqgv47ts" data-signature="07722a08fa65940001a37043315aef508c5202425916c8e9da414992770deb9b3a90635e15976cd8013dcb7f70a1f23e3d39eba1c5b4235e91c8b17f1d774134"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="25.6" letter-spacing="-1.6"><tspan x="0" dy="-178.5">..O.O...
O.O..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">O.
..O</tspan><tspan x="0" dy="24">...O...OO
..</tspan><tspan x="0" dy="24">O...
.........O</tspan><tspan x="0" dy="24">..O.
...O..</tspan><tspan x="0" dy="24">......O.
...</tspan><tspan x="0" dy="24">..
</tspan><tspan x="0" dy="24">
..</tspan><tspan x="0" dy="24">...
.O......</tspan><tspan x="0" dy="24">..O...
.O..</tspan><tspan x="0L
" dy="24">O.........
...O</tspan><tspan x="0" dy="24">..
OO...O...</tspan><tspan x="0" dy="24">O..
.O</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..O.O..
...O.O..</tspan></text></svg>h!
 108f86f35b964b2e4d414423ef61af98G0D
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 230.85 101.5"><defs><style>.b{stroke-width:.25px;}.b,.c,.d{stroke:#fff;stroke-miterlimit:10;}.b,.e{fill:#fff;}.c,.d{fill:none;}.d{stroke-width:2px;}.e{font-family:CourierNewPSMT, 'Courier New';font-size:28px;}</style></defs><g><rect x=".13" y=".13" width="230.73" height="101.25"/><g><path class="b" d="m44.59,10.48v7h2.48c.33,0,.56.06.7.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.7.19h-5.63c-.32,0-.55-.06-.6M
9-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h1.81V1.47h-1.81c-.32,0-.55-.06-.69-.18-.14-.12-.21-.28-.21-.49s.07-.36.21-.49c.14-.12.37-.18.69-.18h8.12c1.67,0,3.08.53,4.23,1.59,1.15,1.06,1.72,2.26,1.72,3.59,0,.96-.35,1.86-1.06,2.71-.71.85-1.89,1.55-3.56,2.12.96.66,1.78,1.41,2.46,2.24.68.83,1.77,2.54,3.28,5.11h1.02c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19h-1.79c-1.66-2.97-2.95-4.97-3.86-5.98-.91-1.01-1.96-1.8-3.14-2.37h-4.27Zm0-1.34h3.66c1.17,0,2.23-.21,3.1M
9-.64.95-.43,1.65-.93,2.08-1.5s.65-1.16.65-1.76c0-.9-.45-1.75-1.35-2.56-.9-.81-2-1.21-3.28-1.21h-4.94v7.67Z"/><path class="b" d="m14.1,53.85H5.27l-1.81,4.91h2.57c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19H1.02c-.32,0-.55-.06-.69-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h1.04l5.93-16.02h-3.96c-.32,0-.55-.06-.69-.18-.14-.12-.21-.28-.21-.49s.07-.36.21-.49c.14-.12.37-.18.69-.18h6.76l6.55,17.36h1.04c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.M
13-.37.19-.69.19h-5c-.33,0-.57-.06-.7-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.7-.18h2.56l-1.84-4.91Zm-.51-1.34l-3.71-9.77h-.5l-3.6,9.77h7.8Z"/><path class="b" d="m96.46,50.8c0,1.79-.36,3.45-1.09,4.98-.72,1.53-1.72,2.72-3,3.57-1.27.85-2.64,1.28-4.1,1.28-2.16,0-4.07-.92-5.71-2.76s-2.47-4.2-2.47-7.07.82-5.25,2.47-7.08c1.65-1.83,3.55-2.75,5.71-2.75,1.46,0,2.82.43,4.09,1.28,1.27.85,2.27,2.04,3,3.56.73,1.52,1.09,3.19,1.09,4.99Zm-1.36,0c0-2.18-.63-4.15-1.9-5.88-1.27-1.74-2.91-2.61-4.92-2.61-1.89,0-3.5M
.83-4.84,2.49-1.34,1.66-2.01,3.66-2.01,6,0,2.49.7,4.53,2.1,6.11,1.4,1.58,2.98,2.37,4.74,2.37,2.01,0,3.65-.87,4.92-2.6,1.27-1.73,1.9-3.69,1.9-5.89Z"/><path class="b" d="m49.63,84.02v16.02h3.48c.32,0,.55.06.69.18.14.12.21.29.21.49,0,.19-.07.35-.21.48-.14.13-.37.19-.69.19h-8.33c-.32,0-.55-.06-.69-.19-.14-.13-.21-.29-.21-.48,0-.2.07-.36.21-.49.14-.12.37-.18.69-.18h3.48v-16.02h-5.5v4.65c0,.33-.06.57-.18.7-.12.14-.29.21-.49.21-.19,0-.35-.07-.48-.21-.13-.14-.19-.37-.19-.7v-5.99h15.04v5.99c0,.33-.06.57-.18.7-.12.14-.29.21-M
.49.21s-.37-.07-.49-.21c-.12-.14-.18-.37-.18-.7v-4.65h-5.5Z"/></g><path class="d" d="m91.47,38.5c-4.39-15.04-16.55-26.67-31.73-30.43"/><path class="d" d="m59.74,93.74c14.13-3.49,25.51-13.77,30.61-27.09"/><path class="d" d="m7.89,66.65c5.01,13.12,16.09,23.18,29.72,26.86"/><path class="d" d="m39.08,8.93c-15.15,3.97-27.13,15.8-31.31,30.86"/></g><text class="e" transform="translate(113.23 58.64)"><tspan x="0" y="0">RDINALS</tspan></text><line class="c" x1="99.55" y1="51.08" x2="112.55" y2="51.08"/></svg>h!
UUUIIID0+eeefJBYYYcG?eIAgKDdH@fJCeHAjOHB/*A-)]]]E1+QPPHHH
((((((((((((((((((((((((((((((((((((((((((((((((((
((((((((((((((((((((((((((((((((((((((((((((((((((
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
urn:mpeg:mpegB:cicp:systems:auxiliary:alpha
Transfer to Shakepay to sell
{"attributes":[{"trait_type":"Eyes","value":"Sad"},{"trait_type":"Clothes","value":"Puffy Vest"},{"trait_type":"Fur","value":"Black"},{"trait_type":"Mouth","value":"Bored"},{"trait_type":"Background","value":"Yellow"},{"trait_type":"Hat","value":"Halo"}],"external_url":"https://baycbitcoin.com/index/bayc/2949","image":"ipfs://QmWwSKeAhhs1CNNDDkMaYgdWvZjrCUyfczc51JXp81i3H1/2949.png"}
7,-@WAFLNRSR2>ZaZP`JQRO
&O5-5OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
FjDOUT:4A2FBB76CDA4421CADAB3523FB46604A8D8204D1ED410E13C87892C44D00CC11
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
text/html;charset=utf-8
    <meta charset="UTF-8">
    <title>A simple template for launching your art on Bitcoin</title>
    Generative supports the most popular creative coding libraries. Simply uncomment the library you want to use below.
    Are we missing an important library? Let us know @generative_xyz.
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.5.0/p5.min.js"></script>
    <!-- c2.min.js@1.0.0
pt sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/c2/1.0.0/c2.min.js"></script>
    <!-- chromajs@2.4.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/chroma-js/2.4.2/chroma.min.js"></script>
<!--    <script sandbox="allow-scripts" type="text/javascript" src="https://cdn.generative.xyz/ajax/libs/p5.grain/0.6.1/p5.grain.min.js"></script>-->
    <!-- threejs@r124
    <script sandbox="allow-scripts" typM
e="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r124/three.min.js"></script>
    <!-- tonejs@14.8.49
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/tone/14.8.49/Tone.js"></script>
    <!-- svgjs@3.1.2
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/3.1.2/svg.min.js"></script>
    <!-- aframejs@1.2.0
    <script sandbox="allow-scripts" type="text/jaM
vascript" src="https://cdnjs.cloudflare.com/ajax/libs/aframe/1.2.0/aframe.min.js"></script>
    <!-- babylonjs@5.47.0
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/babylonjs/5.47.0/babylon.js"></script>
    <!-- paperjs@0.12.17
    <script sandbox="allow-scripts" type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.min.js"></script>
    <!-- regljs@2.1.0
    <script sandbox="allow-scripts" tM
ype="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/regl/2.1.0/regl.min.js"></script>
    <script type="text/javascript">
 Add your script here
 Add your script here
    <script id="snippet-random-code" type="text/javascript">
        let seed = window.location.href.split('/').find(t => t.includes('i0'));
        if (seed == null) {
            const alphabet = "0123456789abcdefghijklmnopqrstuvwsyz";
            seed = new URLSearchParams(window.location.search).get("seed") || Array(64).fill(0).map(_ => alphabet[(Math.random() * alphabet.length) | 0]).join('') + "i0";
            let pattern = "seed=";
            for (let i = 0; i < seed.length - pattern.length; ++i) {
                if (seed.substM
ring(i, i + pattern.length) == pattern) {
                    seed = seed.substring(i + pattern.length);
                    break;
        function cyrb128($) {
            let _ = 1779033703, u = 3144134277, i = 1013904242, l = 2773480762;
            for (let n = 0, r; n < $.length; n++) _ = u ^ Math.imul(_ ^ (r = $.charCodeAt(n)), 597399067), u = i ^ Math.imul(u ^ r, 2869860233), i = l ^ Math.imul(i ^ r, 951274213), l = _ ^ Math.imul(l ^ r, 2716044179);
urn _ = Math.imul(i ^ _ >>> 18, 597399067), u = Math.imul(l ^ u >>> 22, 2869860233), i = Math.imul(_ ^ i >>> 17, 951274213), l = Math.imul(u ^ l >>> 19, 2716044179), [(_ ^ u ^ i ^ l) >>> 0, (u ^ _) >>> 0, (i ^ _) >>> 0, (l ^ _) >>> 0]
        function sfc32($, _, u, i) {
            return function () {
                u >>>= 0, i >>>= 0;
                var l = ($ >>>= 0) + (_ >>>= 0) | 0;
                return $ = _ ^ _ >>> 9, _ = u + (u << 3) | 0, u = (u = u << 21 | u >>> 11) + (l = l + (i = i + 1 | M
0) | 0) | 0, (l >>> 0) / 4294967296
        // IMPORTANT: Instead of Math.random(), use this function mathRand() for random number generation.
        // This function generates a random number between 0 and 1 with on-chain seed.
        let mathRand = sfc32(...cyrb128(seed));
        html, body {
            margin: 0;
            padding: 0;
            max-width: 100%;
            max-height: 100%;
            margin: auto;
     overflow: auto;
            position: fixed;
            object-fit: contain;
            bottom: 0;
            left: 0;
            right: 0;
<script type="text/javascript">
    const rand = mathRand();
    function T1(rand) {
        // calculate rarity by yourself
        if (rand > 0.5) {
            return true;
    // window.$generativeTraits contain list traits for token
    // you need to populate a $generativeTraits object in the window object
    window.$generativeTraits = {
        "T1": T1(rand),
    console.log(window.$generativeTraits)
 Add your code here
nst container = document.createElement("div")
    // container.innerHTML = "<span>seed: " + seed + "</span><br>";
    // document.body.prepend(container)
    //License: Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
    //Author: @devhontran
    //Twitter: https://twitter.com/DevHontran
    //Website: https://hontran.dev
    const scaler = 1;
    let paper, border;
    let shadown = {x: -5, y: 5};
    let layers = [];
    let padding = 40;
    function cyrb128(str) {
= 1779033703, h2 = 3144134277,
            h3 = 1013904242, h4 = 2773480762;
        for (let i = 0, k; i < str.length; i++) {
            k = str.charCodeAt(i);
            h1 = h2 ^ Math.imul(h1 ^ k, 597399067);
            h2 = h3 ^ Math.imul(h2 ^ k, 2869860233);
            h3 = h4 ^ Math.imul(h3 ^ k, 951274213);
            h4 = h1 ^ Math.imul(h4 ^ k, 2716044179);
        h1 = Math.imul(h3 ^ (h1 >>> 18), 597399067);
        h2 = Math.imul(h4 ^ (h2 >>> 22), 2869860233);
        h3 = Math.imul(h1 ^ (h3M
 >>> 17), 951274213);
        h4 = Math.imul(h2 ^ (h4 >>> 19), 2716044179);
        return [(h1^h2^h3^h4)>>>0, (h2^h1)>>>0, (h3^h1)>>>0, (h4^h1)>>>0];
    function sfc32_c(a, b, c, d) {
        a >>>= 0; b >>>= 0; c >>>= 0; d >>>= 0;
        var t = (a + b) | 0;
        a = b ^ b >>> 9;
        b = c + (c << 3) | 0;
        c = (c << 21 | c >>> 11);
        d = d + 1 | 0;
        t = t + d | 0;
        c = c + t | 0;
        return (t >>> 0) / 4294967296;
    // return random value from [l -> r]
function consistentRand (seed, l, r) {
        const rand = sfc32_c(...cyrb128(seed.toString()));
        return l + rand * (r - l)
    function getRandomItem (listP, seed) {
        const pref = []
        for (const x of listP) pref.push(x)
        for (let i = 1; i < listP.length; i++) {
            pref[i] += pref[i - 1]
        for (let i = 0; i < pref.length; i++) pref[i] /= pref[pref.length - 1];
        // get random value from 0->1
        const rand = consistentRand(seed, 0, 1)
r (let i = 0; i < pref.length; i++) {
            if (rand < pref[i]) return i;
    function createRadialGradient(x, y, r, x1, y1, r1) {
        const grd = drawingContext.createRadialGradient(x, y, r, x1, y1, r1);
        grd.addColorStop(0,"#FFFFFF");
        grd.addColorStop(1,"#E5E5E3");
        drawingContext.fillStyle = grd;
        drawingContext.fillRect(0, 0, width, height);
    function artNosie(){
        const w = width * 1.2;
        const h = height * 1.2M
        paper = createGraphics(w, h);
        for(let i = 0 ; i< 100000; i++){
            let x = random(w);
            let y = random(h);
            let dotSize = 10.0*(noise(x/(width / 4), y/(height / 4))*2 - noise(x/width, y/height));
            paper.strokeWeight(random(0.25, 3));
            paper.stroke(random(20, 80), random(1+dotSize, 4+dotSize));
            paper.point(x, y);
    function generabox(col, pos, si){
        const layer = createGraphics(width, height);
ill(140, 178, 250, 56);
        layer.noStroke();
        layer.rect(pos.x + shadown.x, pos.y + shadown.y, si.w, si.h);
        layer.filter(BLUR, 3);
        layer.fill(col.r, col.g, col.b, col.a);
        layer.noStroke();
        layer.rect(pos.x, pos.y, si.w, si.h);
        layers.push(layer);
    function setup() {
        const hash = rand ? rand : Math.random();
        const fCol = {r: 255, g: 255, b: 255};
        const s = min(window.innerWidth, window.innerHeight)
        createCanvas(s,s);M
        for(let i=0; i<9; i++){
            const tHash = `${hash}_${i}`;
            const cyrHash = cyrb128(tHash);
            const mixHash_color_r = consistentRand(cyrHash[0], 0, 1);
            const mixHash_color_g = consistentRand(cyrHash[1], 0, 255);
            const mixHash_color_b = consistentRand(cyrHash[2], 0, 255);
            const mixHash_color_a = 255;//consistentRand(cyrHash[3], 100, 255);
            const sw = consistentRand(cyrHash[0],50, width / 2);
            const sh = consistentRaM
nd(cyrHash[3], 50, height / 2);
            const col = {r: mixHash_color_r, g: mixHash_color_g, b: mixHash_color_b, a: mixHash_color_a};
            const si = {w: sw, h: sh};
            const pos_x = consistentRand(cyrHash[1], padding, width- padding - si.w);
            const pos_y = consistentRand(cyrHash[2], padding, height- padding - si.h);
            const pos = {x: pos_x, y: pos_y}
            // console.log('___i', col, pos, si);
            generabox(col, pos, si);
        const borderSize = 30;
        border = createGraphics(width, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(width - borderSize, 0, borderSize, height);
        border.fill(fCol.r, fCol.g, fCol.b, 255);
        border.noStroke();
        border.rect(0, 0, width, borderSize);
        border.fill(fCol.r, fCol.g, fCol.b, 255)M
        border.noStroke();
        border.rect(0, height - borderSize, width, borderSize);
    function draw() {
        background('#ffffff');
        blendMode(BLEND);
        for(let i=0; i<9; i++){
            image(layers[i], 0, 0, width, height);
        blendMode(MULTIPLY)
        createRadialGradient(width / 2, height / 2, 0, width / 2, height / 2, height);
        blendMode(MULTIPLY);
        image(paper, 0, 0, width, height);
        image(border,M-
 0, 0, width, height);
    function windowResized() {
        const s = min(window.innerWidth, window.innerHeight)
        resizeCanvas(s, s);
 Add your code here
6j4ion:6.QmS762QrC92GDoctaUvkNo85BR2M66BJGFdk3VtiJ9fBp4E+
Bj@=:ETH.ETH:0xE9C069238A27BAB3B406e010AaBa53734AEbb7A1:47518728::0
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzOTEiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zOTEiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnyDimJwg4pieIOKYnSJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxNjR9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbM
HVlIjoiUm90YXRpb25hbCJ9LHsidHJhaXRfdHlwZSI6IuKYnCBDb3VudCIsInZhbHVlIjoyOH0seyJ0cmFpdF90eXBlIjoi4pifIENvdW50IiwidmFsdWUiOjQ0fSx7InRyYWl0X3R5cGUiOiLimJ4gQ291bnQiLCJ2YWx1ZSI6NDR9LHsidHJhaXRfdHlwZSI6IuKYnSBDb3VudCIsInZhbHVlIjo0OH1dfQ==" data-message="BitGlyphs #391 - bc1p64d0z27x5l8m5gt47uelydfuexelef9zf8w0uvc3a299j6ttg60syuhma9" data-signature="a58da214fdbce618a1992f9846657f60f4c018acfff31ebcf5a97be6a11577a2370e0c7ce38210101f40da91c45f0fd8203b573752b726c80bf243f99783acd1"><defs><style type="text/css">@font-face{font-fM
amily:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><texM
t x="0" y="256" transform="translate(256)" font-size="28.8" letter-spacing="-4.8"><tspan x="0" dy="-178.5">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">
.</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">
</tspan><tspan x="0" dy="24">.
.</tspan><tspan x="0" dy="24">
</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICMzODkiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC8zODkiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMzJ4MzIifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IuKYnCDimJ4ifSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgQ291bnQiLCJ2YWx1ZSI6MTcwfSx7InRyYWl0X3R5cGUiOiJTeW1ib2wgU3ltbWV0cnkiLCJ2YWx1ZSI6IlZlcM
nRpY2FsIn0seyJ0cmFpdF90eXBlIjoi4picIENvdW50IiwidmFsdWUiOjEwNn0seyJ0cmFpdF90eXBlIjoi4pieIENvdW50IiwidmFsdWUiOjY0fV19" data-message="BitGlyphs #389 - bc1pka26pvz5q8u3wjapffakql8ejxne4axddl7qaz479wa4kzjzeqnq82qwv6" data-signature="fbbe9e91fe2dfa2900484cf73c6db503c8900f3399b87827525c9e41fd34ea7019b6e5583ea93484f0d33892aa4d36c89480a447e9a79312b9bea50937f74474"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="14.4" letter-spacing="-2.4"><tspan x="0" dy="-185.25">........M
..........</tspan><tspan x="0" dy="12">...
...</tspan><tspan x="0" dy="12">...
...</tspan><tspan x="0" dy="12">.
.</tspan><tspan x="0" dy="12">..
..</tspan><tspan x="0" dy="12">.....
.....</tspan><tspan x="0" dy="12">..............
..............</tspan><tspan x="0" dy="12">....
....</tspan><tspan x="0" dy="12">.
.</tspan><tspan x="0" dy="12">....
....</tspan><tspan x="0" dy="12">
......................
</tspan><tspan x="0" dy="12">.........
.........</tspan><tspan x="0" dy="12">....
....</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">....
n><tspan x="0" dy="12">...
...</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">...
......................
...</tspan><tspan x="0" dy="12">.......
.......</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">.
.</tspan><tspan x="0" dy="12">................................</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">.....
.....</tspan><tspan x="0" dy="12">........
........</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">.....
.....</tspan><tspan x="0" dy="12">.........
.........</tspan><tspan x="0" dy="12">
</tspan><tspan x="0" dy="12">...........L
.....................</tspan><tspan x="0" dy="12">...
...</tspan><tspan x="0" dy="12">
</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICM0MDciLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC80MDciLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjo2OH0seyJ0cmFpdF90eXBlIjoiU3ltYm9sIFN5bW1ldHJ5IiwidmFsdWUiOiJSYWRpYM
WwifSx7InRyYWl0X3R5cGUiOiJYIENvdW50IiwidmFsdWUiOjE2fSx7InRyYWl0X3R5cGUiOiIvIENvdW50IiwidmFsdWUiOjI4fSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjoyNH1dfQ==" data-message="BitGlyphs #407 - bc1px7dxr2d7htp7zfzjrfhd3usf7n3wx53nagquvyc2c6zxycz400wsctuzwh" data-signature="87c544718d0530315225cf45437d6707f0ab3109ba71dd517a4c084cf84443492a4a4882e87719aef2ff3b2dfadbe1a8cc5dbc64d82ce21a8dfe46f158ee01c1"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcQAABM
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)format("woff2");}svg{background-color:#4d4d4e;}tspan{text-anchor:middle;dominant-baseline:middle;font-family:glyphs;font-weight:400;fill:#f2a900;text-rendering:geometricPrecision;}::selection{background-color:#f2a90044;}</style></defs><rect width="100%" height="100%" fill="#222222" /><text x="0" y="256" transform="translate(256)" font-size="24" letter-spacing="-0M
"><tspan x="0" dy="-178.5">..X./.\..\./.X..</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">X./....//..../.X</tspan><tspan x="0" dy="24">....X\\..\\X....</tspan><tspan x="0" dy="24">/..X........X../</tspan><tspan x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24">\..\...//...\..\</tspan><tspan x="0" dy="24">../.../../.../..</tspan><tspan x="0" dy="24">../.../../.../..</tspan><tspan x="0" dy="24">\..\...//...\..\</tspan><tspan x="0" dy="24">...\........\...</tspan><tspan x="0" dy="24L
">/..X........X../</tspan><tspan x="0" dy="24">....X\\..\\X....</tspan><tspan x="0" dy="24">X./....//..../.X</tspan><tspan x="0" dy="24">................</tspan><tspan x="0" dy="24">..X./.\..\./.X..</tspan></text></svg>h!
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" preserveAspectRatio="xMidYMid meet" viewBox="0 0 512 512" width="100%" height="100%" data-json="data:application/json;base64,eyJuYW1lIjoiQml0R2x5cGhzICM0MDQiLCJleHRlcm5hbF91cmwiOiJodHRwczovL2JpdGdseXBocy5jb20vIy9nbHlwaC80MDQiLCJhdHRyaWJ1dGVzIjpbeyJ0cmFpdF90eXBlIjoiU2l6ZSIsInZhbHVlIjoiMTZ4MTYifSx7InRyYWl0X3R5cGUiOiJTY2hlbWUiLCJ2YWx1ZSI6IlggLyBcXCJ9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBDb3VudCIsInZhbHVlIjoxMjh9LHsidHJhaXRfdHlwZSI6IlN5bWJvbCBTeW1tZXRyeSIsInZhbHVlIjoiVmVydM
GljYWwifSx7InRyYWl0X3R5cGUiOiJcXCBDb3VudCIsInZhbHVlIjo0NH0seyJ0cmFpdF90eXBlIjoiLyBDb3VudCIsInZhbHVlIjo0MH0seyJ0cmFpdF90eXBlIjoiWCBDb3VudCIsInZhbHVlIjo0NH1dfQ==" data-message="BitGlyphs #404 - bc1p4qn2u5mdaj6587ye3v25zq3a90t358q75z4dty2frkn350t2ajuqpt8qca" data-signature="7f3e85d636bdb7d7b3fba28d0ffbab634ab4283449377ba8c126cd49e7e738727148cd9ea0c3fde6ccea6c3760b3a1628232c27d32301ed2c0e6adbb7aafc769"><defs><style type="text/css">@font-face{font-family:"glyphs";src:url(data:font/woff2;base64,d09GMgABAAAAABRYAA8AAAAAJcM
QAABQBAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCoGYACBRAgkCZwMEQgKpwyhFwE2AiQDNAs0AAQgBQYHIAyBJxuXIUUHctg40CyAVLL/6wRuDEX7oPwUWgRFOGOXCyoSZ5rr9jFeWorZlnMpZiiKIqz6LPorSpdJuv/0NsjzZ0dIMuvH27R6VfWhu4U0YLNGMkPvTMtAMpCWDAta5GMOMiT7gCC/cMIjjEjzz2/z7wN8ZKtEPRMrmJmAGRh9HLoqdFGF0eQi0kW3P5LLXJl6HJQSFoTIG4IDJNtzAPCkkFT5SfcUeGYDZDsA8DtCw+K2Lzd4iZirVaq7cw6E+DPPyTa/RUVIS0hBkvH00JR0JfB86kouqoQV+MoP78gBOnBIS4cgBaVbZ4v6i