docs: function decodeKnownBulkArray( bundle, database, len ) {
  	const DEBUG_THIS = false;
  	// console.log("<-- @"+(bundle.i16 - bundle.ofs16/2),"EID:",bundle.u16[bundle.i16],"LEN:", len);
  	var eid = bundle.u16[bundle.i16++],
  		FACTORY = bundle.profile.decode( eid ), 
  		proplen = FACTORY.props, itemlen=0,
  		ops = [], locals = [], i = 0, op = 0, dat = 0, iref_count = 0,
  		obj = null, j = 0, k = 0, weaved_props = [], lref_objects = [];
  
  	// Read number of irefs
  	if (len < 65536) {
  		iref_count = bundle.u16[bundle.i16++];
  		if (DEBUG_THIS) console.log("-<- HINT16="+iref_count);
  	} else {
  		iref_count = bundle.u32[bundle.i32++];
  		if (DEBUG_THIS) console.log("-<- HINT32="+iref_count);
  	}
  
  	// Initialize irefs
  	locals = Array(iref_count);
  	for (i=0; i<iref_count; ++i) {
  		bundle.iref_table.push( locals[i] = FACTORY.create() );
  	}
  
  	// Get property arrays
  	if (iref_count) {
  		weaved_props = decodePrimitive( bundle, database );
  		if (weaved_props.length === undefined)
  			throw new Errors.AssertError('Decoded known bulk primitive is not array!');
  		itemlen = weaved_props.length / proplen;
  	}
  
  	// Process op-codes
  	var ans = new Array(len), obji=0, last=undefined;
  	i=0; while (i<len) {
  		k = bundle.u8[bundle.i8++];
  		if ((k & 0x80) === PRIM_BULK_KNOWN_OP.LREF_7) {
  			dat = k & 0x7F;
  			if (DEBUG_THIS) console.log("-<- LREF_7(",dat,"), i=",i);
  			ans[i++] = last = lref_objects[ dat ];
  
  		} else if ((k & 0xC0) === PRIM_BULK_KNOWN_OP.DEFINE) {
  			dat = (k & 0x3F)+1;
  			if (DEBUG_THIS) console.log("-<- DEFINE(",dat,"), i=",i);
  
  			for (j=0; j<dat; j++) {
  				// Initialize object properties and keep it on the answer array 
  				obj = locals[obji];
  				FACTORY.init( obj, weaved_props, itemlen, obji );
  				ans[i++] = obj;
  				// Forward object index
  				obji++;
  			}
  			last = obj;
  
  		} else if ((k & 0xE0) === PRIM_BULK_KNOWN_OP.REPEAT) {
  			dat = (k & 0x1F)+1;
  			if (DEBUG_THIS) console.log("-<- REPEAT(",dat,"), i=",i);
  			for (j=0; j<dat; j++) {
  				ans[i++] = last;
  			}
  
  		} else if ((k & 0xF0) === PRIM_BULK_KNOWN_OP.IREF) {
  			dat = ((k & 0x0F) << 16) | bundle.u16[bundle.i16++];
  			if (DEBUG_THIS) console.log("-<- IREF(",dat,"), i=",i);
  
  			// Import from IREF
  			if (dat >= bundle.iref_table.length)
  				throw new Errors.IRefError('Invalid IREF #'+dat+'!');
  			ans[i++] = last = bundle.iref_table[ dat ];
  			lref_objects.push( bundle.iref_table[ dat ] );
  
  		} else if ((k & 0xF8) === PRIM_BULK_KNOWN_OP.LREF_11) {
  			dat = ((k & 0x07) << 8) | bundle.u8[bundle.i8++];
  			if (DEBUG_THIS) console.log("-<- LREF_11(",dat,"), i=",i);
  			ans[i++] = last = lref_objects[ dat ];
  
  		} else if (k === PRIM_BULK_KNOWN_OP.LREF_16) {
  			dat = bundle.u16[bundle.i16++];
  			if (DEBUG_THIS) console.log("-<- LREF_16(",dat,"), i=",i);
  			ans[i++] = last = lref_objects[ dat ];
  
  		} else if (k === PRIM_BULK_KNOWN_OP.XREF) {
  			dat = bundle.readStringLT();
  			if (DEBUG_THIS) console.log("-<- XREF(",dat,"), i=",i);
  
  			// Import from XREF
  			if (database[dat] === undefined) 
  				throw new Errors.XRefError('Cannot import undefined external reference '+dat+'!');
  			ans[i++] = last = database[dat];
  
  		}
  
  	}
  
  	// Free proprty tables and return objects
  	return DEBUG
  		? __debugMeta( ans, 'array.bulk', { 'eid': eid } )
  		: ans;
  
  }