Each electron mirror is binary, i.e., ON or OFF at any instant. The mirror array is partitioned into bit-blocks to produce a grayscale 0 to 31; for example, one can use a block -mirrors wide to provide the dose corresponding to the least significant bit, or bit 0, of the desired gray level being ON, another bit-block -mirrors wide to provide the dose corresponding to bit 1 of the desired gray level being ON, a block -mirrors wide to provide the dose corresponding to bit 2 of the gray level being ON, etc., up to the largest bit-block -mirrors wide to provide the dose corresponding to the most significant bit of the gray level (bit 4 in this case). Since no mirrors are required to represent a dose of 0, the total width of the mirror array is mirrors. We chose , making our mirror array 248-mirrors wide. This choice is a practical compromise between the desire to compensate spatial nonuniformity of lenslet efficiency and illumination, which favor a large , and the need to minimize an uncorrectable blur in the direction of the stage motion, which favors a small . To make the bit-weights add up correctly, each pixel of incoming gray data is broken up into its constituent bits, and the various bits are delayed appropriately so that each controls in succession the mirrors of its corresponding bit-blocks, and the apparent movement of the projected image matches the movement of the wafer. The bits are delayed again after their traverse across (a portion of) the mirror array; this permits reassembly of the gray data in order to verify that the data were printed correctly.