'use strict';
const fs = require('fs');
const path = require('path');
const bitfield = require('sparse-bitfield');
/* eslint-disable-next-line security/detect-non-literal-fs-filename */
const memory = fs.readFileSync(path.resolve(__dirname, '../code-points.mem'));
let offset = 0;
/**
* Loads each code points sequence from buffer.
* @returns {bitfield}
*/
function read() {
const size = memory.readUInt32BE(offset);
offset += 4;
const codepoints = memory.slice(offset, offset + size);
offset += size;
return bitfield({ buffer: codepoints });
}
const unassigned_code_points = read();
const commonly_mapped_to_nothing = read();
const non_ASCII_space_characters = read();
const prohibited_characters = read();
const bidirectional_r_al = read();
const bidirectional_l = read();
module.exports = {
unassigned_code_points,
commonly_mapped_to_nothing,
non_ASCII_space_characters,
prohibited_characters,
bidirectional_r_al,
bidirectional_l,
};