| 
						 | 
						- 'use strict';
 - 
 - var zero = function (n, max) {
 -   n = n.toString(16).toUpperCase();
 -   while (n.length < max) {
 -     n = '0' + n;
 -   }
 -   return n;
 - };
 - 
 - module.exports = function (buffer) {
 -   var rows = Math.ceil(buffer.length / 16);
 -   var last = buffer.length % 16 || 16;
 -   var offsetLength = buffer.length.toString(16).length;
 -   if (offsetLength < 6) offsetLength = 6;
 - 
 -   var i;
 -   var str = '';
 - 
 -   var b = 0;
 -   var lastBytes;
 -   var lastSpaces;
 -   var v;
 - 
 -   for (i = 0; i < rows; i++) {
 -     str += '\u001b[36m' + zero(b, offsetLength) + '\u001b[0m  ';
 -     lastBytes = i === rows - 1 ? last : 16;
 -     lastSpaces = 16 - lastBytes;
 - 
 -     var j;
 -     for (j = 0; j < lastBytes; j++) {
 -       str += ' ' + zero(buffer[b], 2);
 -       b++;
 -     }
 - 
 -     for (j = 0; j < lastSpaces; j++) {
 -       str += '   ';
 -     }
 - 
 -     b -= lastBytes;
 -     str += '   ';
 - 
 -     for (j = 0; j < lastBytes; j++) {
 -       v = buffer[b];
 -       str += (v > 31 && v < 127) || v > 159 ? String.fromCharCode(v) : '.';
 -       b++;
 -     }
 - 
 -     str += '\n';
 -   }
 - 
 -   return str;
 - };
 
 
  |