let asciiValues = [32, 67, 82, 89, 44, 32, 78, 69,
86, 69, 82, 32, 71, 79, 78, 78,
65, 32, 83, 65, 89, 32, 71, 79,
79, 32, 76, 73, 69, 32, 65, 78,
68, 32, 72, 85, 82, 84, 32, 89,
79, 85, 46, 23, 32, 27, 214, 194,
209, 173, 241, 227, 230, 192, 203,
197, 241, 217, 241, 191, 209, 215,
192, 203, 227, 212, 241, 201, 209,
233, 213, 193, 234, 229, 227, 206,
194, 193, 211, 199, 204, 241, 201,
209, 229, 231, 192, 203, 233, 213,
194, 211, 204, 194, 205, 227, 215,
192, 194, 227, 198, 203, 201, 192,
193, 204, 211, 229, 231, 229, 194,
193, 204, 194, 205, 227, 215, 192,
232, 199, 211, 211, 199, 200, 210, 194, 212, 211,
200, 205, 203, 194, 232, 213, 199,
211, 193, 199, 200, 210, 194, 212,
211, 200, 205, 203, 194, 232, 213,
199, 211, 213, 193, 204, 193, 200, 208,
203, 199, 193, 199, 200, 210, 194, 212,
211, 200, 205, 203, 194, 232, 211, 205, 213,
199, 209, 214, 211, 209, 194, 199, 211, 199,
211, 209, 194, 193, 199, 213, 211, 194, 204,
205, 211, 205, 212, 194, 205, 211, 199, 200,
210, 194, 211, 193, 199, 200, 210, 194, 199,
211, 199, 211, 209, 194, 199, 211, 199, 211,
209, 194, 232, 211, 205, 213, 199, 209, 214,
211, 209, 194, 211, 205, 213, 199, 200, 210,
232, 199, 211, 211, 199, 200, 210, 194, 212, 211, 200, 205,
203, 194, 232, 213, 199, 211, 193, 199, 200, 210,
194, 212, 211, 200, 205, 203, 194, 232, 213, 199,
211, 213, 193, 204, 193, 200, 208, 203, 199, 193,
199, 200, 210, 194, 212, 211, 200, 205, 203, 194,
232, 211, 205, 213, 199, 209, 214, 211, 209, 194,
211, 205, 213, 199, 200, 210, 228, 199, 203, 194,
199, 211, 194, 199, 200, 210, 194, 211, 193, 205,
209, 213, 199, 209, 199, 200, 211, 205, 193, 200,
210, 194, 199, 209, 205, 204, 194, 211, 209, 213,
199, 199, 205, 193, 199, 200, 211, 209, 194, 211,
193, 199, 205, 193, 199, 200, 211, 205, 193, 200,
210, 194, 213, 199, 199, 211, 199, 205, 200, 210,
194, 199, 211, 199, 211, 209, 194, 199, 200, 211,
193, 200, 210, 194, 211, 193, 199, 211, 209, 213,
199, 209, 193, 204, 194, 213, 199, 199, 205, 193,
199, 200, 211, 209, 194, 213, 199, 199, 205, 193,
199, 200, 211, 205, 193, 200, 210, 194, 199, 209,
205, 204, 194, 211, 209, 213, 199, 193, 199, 200,
211, 205, 193, 200, 210, 194, 213, 199, 199, 211,
199, 205, 200, 210, 194, 211, 209, 213, 199, 199,
205, 193, 199, 200, 211, 209, 194, 213, 199, 199,
205, 193, 199, 200, 211, 205, 193, 200, 210, 194,
213, 199, 199, 211, 199, 205, 200, 210, 194, 211,
209, 213, 199, 193, 199, 200, 211, 205, 193, 200, 210];
231, 215, 200, 195, 205, 207, 217, 197, 197, 204,
210, 201, 211, 195, 215, 204, 217, 200, 196, 207,
199, 198, 210, 201, 215, 197, 200, 198, 196, 207,
199, 215, 204, 217, 200, 196, 207, 199, 215, 204,
197, 215, 204, 197, 207, 200, 211, 210, 201, 207,
210, 201, 217, 200, 205, 204, 215, 197, 200, 198,
196, 207, 199, 215, 204, 217, 200, 196, 207, 199,
215, 204, 197, 215, 204, 197, 207, 200, 211, 194,
195, 207, 217, 197, 217, 200, 211, 207, 194, 195,
207, 217, 197, 200, 198, 196, 207, 199, 215, 204,
217, 200, 196, 207, 199, 215, 204, 197, 215, 204,
197, 207, 200, 211, 194, 195, 207, 217, 197, 217,
200, 211, 207, 194, 195, 207, 217, 197, 200, 198,
196, 207, 199, 215, 204, 217, 200, 196, 207, 199,
215, 204, 197, 215, 204, 197, 207, 200, 211, 194,
195, 207, 217, 197, 217, 200, 211, 207, 194, 195,
207, 217, 197, 200, 198, 196, 207, 199, 215, 204,
217, 200, 196, 207, 199, 215, 204, 197, 215, 204,
197, 207, 200, 211, 194, 195, 207, 217, 197, 217,
200, 211, 207, 194, 195, 207, 217, 197, 200, 198,
196, 207, 199, 215, 204, 217, 200, 196, 207, 199,
215, 204, 197, 215, 204, 197, 207, 200, 211, 194,
195, 207, 217, 197, 217, 200, 211, 207, 194, 195,
207, 217, 197, 200, 198, 196, 207, 199, 215, 204,
217, 200, 196, 207, 199, 215, 204, 197, 215, 204,
197, 207, 200, 211, 194, 195, 207, 217, 197, 217,
200, 211, 207, 194, 195, 207, 217, 197, 200, 198,
196, 207, 199, 215, 204, 217, 200, 196, 207, 199,
215, 204, 197, 215, 204, 197, 207, 200, 211, 194,
195, 207, 217, 197, 217, 200, 211, 207, 194, 195,
207, 217, 197, 200, 198, 196, 207, 199, 215, 204,
217, 200, 196, 207, 199, 215, 204, 197, 215, 204,
197, 207, 200, 211, 194, 195, 207, 217, 197, 217,
200, 211, 207, 194, 195, 207, 217, 197, 200, 198,
196, 207, 199, 215, 204, 217, 200, 196, 207, 199,
215, 204, 197, 215, 204, 197, 207, 200, 211, 194,
195, 207, 217, 197, 217, 200, 211, 207, 194, 195,
207, 217, 197, 200, 198, 196, 207, 199, 215, 204,
217, 200, 196, 207, 199, 215, 204, 197, 215, 204,
197, 207, 200, 211, 194, 195, 207, 217];
if (random(1) < 0.05 && asciiValues.length*50 > 0) {
let index = floor(random(asciiValues.length));
diameter = map(asciiValues[index], 32, 122, 2, 4);
let char = String.fromCharCode(asciiValues[index]);
circles.push(circleData);
asciiValues.splice(index, 1);
for (let i = circles.length - 1; i >= 0; i--) {
let circleData = circles[i];
circleData.y += circleData.speed;
ellipse(circleData.x, circleData.y, circleData.diameter, circleData.diameter-2);
textAlign(CENTER, CENTER);
if (circleData.y > height+30) {
if (random(1) < 0.05 && asciiValues2.length > 0) {
let index2 = floor(random(asciiValues2.length));
diameter = map(asciiValues2[index2], 32, 122, 4, 10);
let char2 = String.fromCharCode(asciiValues2[index2]);
circles2.push(circleData2);
asciiValues2.splice(index2, 1);
for (let i = circles2.length - 1; i >= 0; i--) {
let circleData2 = circles2[i];
circleData2.y += circleData2.speed;
rect(circleData2.x, circleData2.y, circleData2.diameter-10, circleData2.diameter+3);
textAlign(CENTER, CENTER);
if (circleData2.y > height+30) {