Overview

Add beautiful splash screens made in other programs...

And backgrounds that make  your game come alive!

Level Next!

Once you've been making your own MakeCode Arcade games for a little while, you may want to start upping the quality of your graphics, add background music (BGM), and maybe even use the NeoPixels on your PyGamer or PyBadge to indicate in-game stats!

This guide will share some techniques for polishing up your games so they look and sound terrific!

Parts

Adafruit PyGamer Starter Kit

PRODUCT ID: 4277
Please note: you may get a royal blue or purple case with your starter kit (they're both lovely colors)What fits in your pocket, is fully Open...
OUT OF STOCK

Adafruit PyGamer for MakeCode Arcade, CircuitPython or Arduino

PRODUCT ID: 4242
What fits in your pocket, is fully Open Source, and can run CircuitPython, MakeCode Arcade or Arduino games you write yourself? That's right, it's the Adafruit...
OUT OF STOCK

Adafruit PyGamer Acrylic Enclosure Kit

PRODUCT ID: 4238
You've got your PyGamer, and you're ready to start jammin' on your favorite arcade games. You gaze adoringly at the charming silkscreen designed by Ada-friend...
OUT OF STOCK

Adafruit PyBadge for MakeCode Arcade, CircuitPython or Arduino

PRODUCT ID: 4200
Coming soon! Sign up to be notified when we have these in stockWhat's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino? That's...
OUT OF STOCK

Adafruit PyBadge LC - MakeCode Arcade, CircuitPython or Arduino

PRODUCT ID: 3939
What's the size of a credit card and can run CircuitPython, MakeCode Arcade or Arduino even when you're on a budget? That's right, it's the Adafruit...
OUT OF STOCK

Pink and Purple Braided USB A to Micro B Cable - 2 meter long

PRODUCT ID: 4148
This cable is super-fashionable with a woven pink and purple Blinka-like pattern!First let's talk about the cover and over-molding. We got these in custom colors,...
$3.95
IN STOCK

Lithium Ion Polymer Battery - 3.7v 350mAh

PRODUCT ID: 2750
Lithium ion polymer (also known as 'lipo' or 'lipoly') batteries are thin, light and powerful. The output ranges from 4.2V when completely charged to 3.7V. This battery...
$6.95
IN STOCK

Mini Oval Speaker - 8 Ohm 1 Watt

PRODUCT ID: 3923
Hear the good news! This wee speaker is a great addition to any audio project where you need 8 ohm impedance and 1W or less of power. We particularly like...
OUT OF STOCK

Background Music

A great enhancement you can make to your game is to add some background music, a.k.a., BGM. We can pay homage to old school handheld gaming systems and use short, repeating arpeggio patterns for a charming motif that plays along to your gaming action.

Arpeggiation

An arpeggio is a sequence of notes, often short and played in ascending or descending order, that may be played in octaves or in the order of a chord. In fact, and arpeggio is sometimes referred to as a "broken chord". Playing multiple synthesized notes at once is called polyphony, and is sometimes taxing on the game hardware, so instead we can approach it with single notes (monophonic) played rapidly to convey the impression of polyphony.

Many early handhelds, such as the GameBoy, could play multiple synth voices at once, so weren't actually monophonic, but designers wanted to maximize their arrangements and use one track for drum sounds, another for leads, another for a bassline, and so on. So rather than eat up three sound channels for a chord, they could opt for arpeggios instead!

Play this sample to hear two chords played followed by their equivalent arpeggiated versions.

Only use the Google Chrome browser with MakeCode!

MakeCode Background Music

To create our BGM in MakeCode Arcade, we'll start with the play tone block, which allows us to select the a note and duration per tone.

Here, I've created a quick one octave arpeggio that adds some light, happy motion to the sound, compared to a single note.

Repeat this technique to create a repeating melody line. I chose a I-V-II-V note progression of C-G-E-G, while continuing the octave arpeggio technique.

Also, I found that I preferred the lower note of each octave pair to be shorter, so I changed the durations to 1/8th notes for those, with the higher octave notes at 1/4 notes.

I'd like to loop this phrase twice, so I'll place it in a repeat block. And then I'll move the phrase up a fourth, so we play F-C-A-C twice and then go back to the beginning.

Note that for the second phrase, I needed to multiply the frequency of the High C by two and enter 1046 Hz since the MakeCode Arcade graphical UI keyboard doesn't go up that high.

By placing the music into a Forever block, MakeCode Arcade will attempt to play the music throughout the games. However, some events, such as text prompts and Game Over events will block the BGM from playing, which works out just fine!

Check out this great upgraded version of Sparky Invaders in which Noe Ruiz added background music. You can download the .png file below and drag it into a MakeCode Arcade session to try it out!

Asset Tool

The sprite editor in MakeCode Arcade is simple and effective for creating smaller pieces of game art, such as characters, power-ups, and enemies. If you want to create more complex art, animation frames, or larger background pieces, it can be a bit constraining. If you need to take things to a higher level of complexity, there's a way to use external pixel art programs and then import the results into MakeCode Arcade!

External Tools

You can imagine it being pretty difficult to create a compelling, detailed background image in this small canvas withing the MCA sprite editor:

A specialized pixel art application such as Aseprite (shown here) or Piskel has a much steeper learning curve, but also includes more advanced tools, such as canvas zooming, that make it more practical for creating backgrounds.

While it's beyond the scope of this guide to teach the finer points of Aseprite/Piskel/Photoshop or other external tools you may choose to use, it's important to note that you'll need to work in indexed color mode (not RGB) and with the same 16-color palette as your MakeCode Arcade game. In the screenshot above you can see that I've created a custom palette in Aseprite that matches the colors and order of MakeCode Arcade. If not, your images will come into MakeCode Arcade with unexpected color values!

For this background art, I adapted some of the excellent designs of OllieBerzs' Industrial Pack assets found here https://ollieberzs.itch.io/industrial-pack You can name your own price and use them in personal and commercial projects.

Asset Conversion

The question is, how can you work in a dedicated graphics application and export the images to MakeCode Arcade? Enter, the MakeCode Arcade asset tool!

This is an unofficial and unsupported tool, so caveat emptor, but I've found it to be invaluable for bringing my pixel art and animation into MakeCode Arcade.

It works just as it says on the page. You can export a .png graphic from your pixel art program, and then drag it onto the asset tool.

It will convert the image to text, which you can then copy and paste into your MakeCode Arcade program in the JavaScript mode.

Only use the Google Chrome browser with MakeCode!

The key to it all is the JavaScript tab of MakeCode Arcade where we can edit the code directly, rather than with blocks. Here, the images are represented with text. The . character represents the absence of a color, which is the same as the zero index transparency "color". All other characters from 1-9 and a-f indicates a colored pixel in one of the 15 colors in our palette.

Here's a nice example of a small sprite -- just 16x16 pixels -- where you can see the correlation between the text encoded image and the sprite editor.

Here's a hamburger!

Asset Tool Usage

To use the tool, drag a .png image onto the page. In this example, I've dragged the shipping_game_bg.png file (which I exported from Aseprite) onto the asset tool. (You can download the image shown here to try it yourself.)

The asset tool converts the image to text encoding.

Next, I copy the text formatted asset by clicking in the copy box and selecting all the text, either by dragging or right-clicking a picking "Select All" (currently the Copy button only works for smaller assets, but doesn't select all lines of larger ones) and then I right-click and choose "copy" or hit the ctrl-c/command-c copy hotkey.

Each character represents a pixel and its index color based on the 16-color palette used. Here's what the raw text looks like:

Download: file
    const shipping_game_bg = img`
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 f f c b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 f c b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f 4 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f 4 c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b b b b b b b b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b b b b b b b b b b b b b b b b b b c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b c c b b b b b b b b b b c c b b c c c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b b b b b b b c c b b c c c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b c c c b b b b b b b b b b c b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b b b b b b b c b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b c c c b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b c c b b b b b b b b b c c c b b b c c c c c b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b b b b b b b c c b b b c c c c c b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c c b b b b b b c c c c c c c c c c b c b c b c b b c c c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c c b b b b b b c c c c c c c c c c b c b c b c b b c c c c c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b c c c c b b b b b b b b b c c c c c c c c c c c b b b b b b b b c c b b c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c b b c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b c c c c b b b b b b b b b c c c b c b c b c b c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c c b c b c b c b c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b c c c c b b b b b b b b b c c b c b c b c b c c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c b c b c b c b c c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b c c c c c c b b b b b b b b b c c c c c c c c c c c b b b b b b b b c c c b c c b b b b c c c c c c c c c c c c c c c c b b b c c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c b c c b b b b c c c c c c c c c c c c c c c c b b b c c c c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c c c b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b c c c c c b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b c c c c c b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b c c c c c c c b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b c c c c c c c b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c c c c c c c b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c c c c c c c b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c b c c b b c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c c c c b b c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 6 b b b b b b b 6 6 6 6 6 6 6 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 c c c c c c c b b c c c c c c c f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 c c c c c c c b c 1 1 2 1 2 c c f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 c c f f f c c b 2 2 2 2 2 2 2 c f 4 4 4 c b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b
    6 c c f 4 f c c b 2 1 2 1 1 2 2 c f f 4 4 c b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b
    6 c c 4 f f c c b 2 2 2 2 2 2 2 c f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 c c 4 c c c c b 2 1 2 2 2 2 2 c f f f f c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b
    6 c c 4 c c c c b c 2 2 2 2 2 c b f f f f c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c
    6 c c c 4 c c c b b c c c c c b b f 4 f f c c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c
    6 6 f f 4 f f f f f f f f f f f b f 4 4 f c b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c
    6 c 6 c 6 4 6 6 6 6 6 c c c c c c f 4 4 4 c b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c
    6 c c c c 4 c c b b b c c c c c c f 4 4 4 c c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c
    6 c c f f 4 c c b b b b c b c b c f f 4 4 c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b
    6 c c f 4 f c c b c c b b b b b c f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 c c f f f c c b c c b b b b b c f f f f c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b
    6 f f f f f f f c c c c c c c c c f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
    `;
  

Interestingly, if you zoom out far enough, you can make out the image:

Import Assets

Now that we have the asset text copied, we need to paste it into MakeCode Arcade.

 

First, we'll create a simple MakeCode Arcade scene with just a background image block in the start block.

 

 

JavaScript

Next, click on the JavaScript tab at the top of MakeCode Arcade to switch from Blocks mode to JavaScript mode.

This will convert the code to the equivalent JavaScript. You'll see that there is a bit of "code folding" going on to neaten things up, but since the background image block creates a blank 160x120 pixel image, there are a lot of hidden lines here. You can unfold the code by clicking the ... ellipsis.

Now we see the entire (blank) canvas!

Next, select all of the unneeded lines of text (lines 2-121) and delete them.

Then, with your cursor at the beginning of line 2, paste the previously copied code.

We'll actually get a little more than we wanted here, so delete the new line 2 that looks like this:

const shipping_game_bg = img`

And, there will be an extraneous back tick and semicolon to eliminate at the end:

`;

So that your last line only has a back tick and closed parenthesis:

`)

In the end, the code should look like this:

Download: file
scene.setBackgroundImage(img`
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 f f c b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 f c b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f 4 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f 4 c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b b b b b b b b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b b b b b b b b b b b b b c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b b b b b b b b b b b b b c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b b b b b b b b b b b b b b b b b b c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b b b b b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b b b b c c b b b b b b b b b b c c b b c c c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b b b b b b b c c b b c c c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c b b b c c c b b b b b b b b b b c b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b b b b b b b c b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c b b b c c c b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b c c c b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c b b b b c c b b b b b b b b b c c c b b b c c c c c b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b b b b b b b c c b b b c c c c c b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b c c b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c b c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c c b b b b b b c c c c c c c c c c b c b c b c b b c c c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c c b b b b b b c c c c c c c c c c b c b c b c b b c c c c c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c b b b c c c c b b b b b b b b b c c c c c c c c c c c b b b b b b b b c c b b c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c b b c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c b b b c c c c b b b b b b b b b c c c b c b c b c b c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c c b c b c b c b c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c b b b c c c c b b b b b b b b b c c b c b c b c b c c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b b b b b b b b c b c b c b c b c c b b b b b b b b c c b c c c b b b b c c c c c c c c c c b c b c b c b b b b b b c c c c b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c b c c c c c c b b b b b b b b b c c c c c c c c c c c b b b b b b b b c c c b c c b b b b c c c c c c c c c c c c c c c c b b b c c c c c c c b b b b b b b b b b c c c c c c c c c c b b b b b b b b c c c b c c b b b b c c c c c c c c c c c c c c c c b b b c c c c c c c b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c c c b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c b b b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b c c c c c b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c b c c c c c b b b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c b b b b b b b b b b b c c c b c c c b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b c c c c c c c b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c b c c c c c c c b b b b b b b b b c c c b b b c c c b b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b b b b b b b b b b b b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b b c c c b b b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b c c c b c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c b c c b b c c b c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b b b c c c c c c c c c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c b b b b b b c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c b b b b b b b b b b b b c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b b c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b b b c c c c c c c c b b b b b b c c c c c c c c c c b c b c b c b b b b b b b b b c c c c c c c c c c c c c c b b b b b b b b b
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c c c c c c c b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b b b c c c c c c c b c b b b b b c c c c c c c c c c c c c c c c b b b b b b b b c c c c c c c c c c c c c c c c b b b b b b b b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c b c c b b c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c c c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c b b c c c c c c c c c c c c c c c c c c c c c c b b c c b
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    f 6 f 6 f 6 f 6 f 6 f 6 f 6 f 6 f f f f f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 6 b b b b b b b 6 6 6 6 6 6 6 6 f 4 f f c b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
    6 c c c c c c c b b c c c c c c c f 4 4 f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 c c c c c c c b c 1 1 2 1 2 c c f 4 4 4 c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c
    6 c c f f f c c b 2 2 2 2 2 2 2 c f 4 4 4 c b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b
    6 c c f 4 f c c b 2 1 2 1 1 2 2 c f f 4 4 c b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b
    6 c c 4 f f c c b 2 2 2 2 2 2 2 c f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 c c 4 c c c c b 2 1 2 2 2 2 2 c f f f f c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b
    6 c c 4 c c c c b c 2 2 2 2 2 c b f f f f c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c
    6 c c c 4 c c c b b c c c c c b b f 4 f f c c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c
    6 6 f f 4 f f f f f f f f f f f b f 4 4 f c b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c
    6 c 6 c 6 4 6 6 6 6 6 c c c c c c f 4 4 4 c b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c c c c b c b b c c c c b b b b c
    6 c c c c 4 c c b b b c c c c c c f 4 4 4 c c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c b c c c b b c c
    6 c c f f 4 c c b b b b c b c b c f f 4 4 c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b b b c c c c c b
    6 c c f 4 f c c b c c b b b b b c f f f 4 c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b b b b c c c b b
    6 c c f f f c c b c c b b b b b c f f f f c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b c b b b c c c b b b b b c c c b
    6 f f f f f f f c c c c c c c c c f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f f
    `)

You can test this by pressing play in the simulator, or checking the sprite editor back in Blocks mode.

Tweaks

I decided it may look better to knock down the background's perceived brightness a bit -- but how do you do that with a limited color palette? In Aseprite it is pretty simple to create a checkerboard pattern to fill the brighter sections. Here's what that looks like, after a quick trip through the asset tool and into MakeCode Arcade!

Splash Screen

Using Aseprite and the asset tool, I also made a splash screen for the game startup sequence that features the Digi-Key and Adafruit logos. Reducing logos can be tricky. I built the Adafruit logo by hand, one pixel at a time (originally for some tests our own Scott Shawcroft is doing with CircuitPython running on original Nintendo Game Boy hardware!).

I then used a dithered pattern to create the "gradient" effect from teal to purple. Dithering is another effective way of making the most out of a limited color palette while giving the illusion of a smooth-ish color gradient.

For the Digi-Key logo I downloaded a nice, clear image from a web image search and then scaled it down in Aseprite to 160px wide, and then did a bit of cleanup on some edges.

NeoPixel Display Bar

Some handheld gaming hardware that's compatible with MakeCode Arcade includes one or more NeoPixel RGB LEDs. The PyGamer and PyBadge each have a strip of five NeoPixels located just below the display screen, while the PyBadge LC has a single NeoPixel.

Or, get really fancy and plug in external NeoPixels to the PyGamer or PyBadge/PyBadge LC JST connector port!

You can use these to great effect in your games! Flash lights when you blow up an enemy, show the player sprite's life/hearts meter, or display rainbow effects when a player sets a new high score!

Here's what you need to know to use the NeoPixels in your MCA games.

Only use the Google Chrome browser with MakeCode!

Add Extension

First, open the Advanced category section and click on the Extensions item.

Next, click on the light extension, which adds the blocks we need.

Click the Light category to see the available blocks.

In order to simply light up the five NeoPixels on, say, the PyGamer, here's one arrangement that'll do that.

  • set pixels length to 5 pixels
  • set brightness to 10
  • set all pixels to magenta

By setting the proper pixel length of the strip we can then use the graphing, animation, and other blocks accurately.

Here's a very simple way to light up specific NeoPixels when you press the left button or A button.

Life Meter

In order to tie the NeoPixel bar to the health status in a typical MCA game, I lit the first three NeoPixels to red, and then added these blocks to the loop that's run when the player loses a life (in this case from overlapping an un-needed component).

First, set the brightness high, then set the NeoPixel to black at the same index as the current life number, and finally return the brightness to a moderate level. It's pretty simple!

You can add all kinds of other effects using the NeoPixel animation block and run them when different events occur in the game.

Shipping Game

Here we'll have a look at a fully featured game created in MakeCode Arcade including the enhancements shown in this guide, as well as adding a bit of animation on our player sprite. First of all, if you're new to making games with MakeCode Arcade, have a look at these fundamental guides first:

Only use the Google Chrome browser with MakeCode!

We'll look at two versions of the Digi-Key Shipping Game, before and after the enhancements were added.

Start by launching MakeCode Arcade beta using the Google Chrome web browser. Then, download the Shipping_Game_before.png file by right-clicking on the image below and saving it to your computer.

Load the Code

This is a special .png file that contains not only an image, but the entire game is embedded in it as well!

Simply drag it from the location to which you saved the image on your computer (such as the desktop as shown here) onto the Chrome browser window that is already running MakeCode Arcade (MCA).

This will open the code into the MCA editor.

If you're ever unsure where a MakeCode block comes from, you can often find it by matching the block's color to a category on the left side of the editor. You can also use the handy search function!

Give the game a test play -- it's fun! Use the controller d-pad/thumbstick to move the D-K box around the screen and collect the proper number of components to fulfill the latest order. You'll see the number of each component needed on the left side of the screen.

Now, let's take it up a level! Here's the version with these additions:

  • Splash screen background
  • Intro music
  • Factory background during gameplay
  • Background music
  • Animation for the player sprite
  • Health counter bar indicator on the NeoPixel strip

Again, download this special .png file and than drag it into your MakeCode Arcade window to open it.

Now try playing this version -- it's NEXT LEVEL!

Then, when you're ready, you can upload the game onto a PyGamer or PyBadge to bring it on the go.

Here's the version that shipped with AdaBox 012, which has a different splash screen:

Update the PyBadge/PyGamer Bootloader

You are at the bleeding edge of handheld, open source, game playing hardware and software, what with your PyBadge/PyBadge LC or PyGamer! Congratulations! It's fun and exciting! It is also changing and improving all the time, so please update your bootloaders before proceeding to put your MakeCode Arcade games on the board!!

Among lots of other reasons, update the bootloader to prevent a problem with MacOS 10.14.4, to fix button problems, and get the thumbstick to work!

PyBadge/PyBadge LC Bootloader

If you have a PyBadge or PyBadge LC, please go to this page for instructions on updating the bootloader.

A HUUUUUUGE number of people have problems because they pick a 'charge only' USB cable rather than a "Data/Sync" cable. Make 100% sure you have a good quality syncing cable. Srsly, I can't even express how many times people have nearly given up due to a flakey USB cable! Enter Alert Text...

Hardware Checks

If, after updating your board's bootloader, you still think you may have a hardware problem, here's a great way to test out all of the functions. From buttons, to the light sensor, thumbstick (PyGamer only), accelerometer (PyGamer and PyBadge only, not the LC), and more, we've got a super nifty set of hardware test .UF2 files you can use.

Click on the link for your board below for more info and a link to the appropriate UF2 file.

Another way to do a hardware check is with the handy, dandy MakeCode Arcade Basic Hardware Test. This was created with MakeCode Arcade and you can use it to check that your d-pad buttons or thumb joystick can move the yellow face around the screen, and that the A and B buttons work to play a sound (just make sure you have a speaker plugged in to the PyGamer first).

You can open this link to get to it, or download the UF2 file below and drag it onto your board's USB drive in bootloader mode.

Load a MakeCode Game on PyGamer/PyBadge

Let's load a game! For example, here's a link to Run, Blinka, Run! To open the game in the MakeCode Arcade editor, first, click the share link below. This will allow you to play the game in the browser right away.

Then, click on the Show Code button in the upper left corner. The shows the code for the game, and by clicking the Edit button in the upper right corner, it'll open into the editor where you can upload it to your PyGamer/PyBadge.

Once you have a game working on the MakeCode Arcade web editor, it's time to download it and flash it onto your board.

Please only use the Google Chrome browser with MakeCode! It has WebUSB support and seems to work best

Board Definition

In order to load a game made in MakeCode Arcade onto the PyBadge, first choose the proper board definition inside of MakeCode. Click the gear icon and then the Change Board item.

Change Board screen


Click on the image of your board, either the PyBadge/PyBadge LC or the PyGamer

This will cause the game .uf2 file for your particular board to be saved to your hard drive. You only need to do this the first time you use a new board. Thereafter you can simply click the Download button on the MakeCode Arcade editor page.

A HUUUUUUGE number of people have problems because they pick a 'charge only' USB cable rather than a "Data/Sync" cable. Make 100% sure you have a good quality syncing cable. Srsly, I can't even express how many times people have nearly given up due to a flakey USB cable!

Bootloader Mode

Now, we'll put the board into bootloader mode so we can drag on the saved .uf2 file. On the back side of the board you'll see a reset button at the top. Make sure the board is plugged into your computer via USB with a USB micro B to A data cable. Also, be sure the board is turned on.

 

Then, press the reset button. This will initiate bootloader mode.

 

When the board is in bootloader mode you'll see a screen similar to this one show up.

Drag and Drop

Now that the board is in bootloader mode, you should see a BADGEBOOT drive show up on your computer as a USB flash drive. Simply drag the arcade game .uf2 file onto the drive.

Play!

That's all there is to it! Once the file is copied over the board will restart and launch the game!

Keep an eye on Adafruit.com for additional game related content.

Troubleshooting MakeCode Arcade

If you run into trouble with MakeCode Arcade, here are some resources for getting help:

Only use the Google Chrome browser with MakeCode!
This guide was first published on May 28, 2019. It was last updated on May 28, 2019.