in lib/index.js [122:139]
_find(sum, before) {
let left = 0;
let right = this._msb << 1;
let sumT = sum;
while (right > left + 1) {
let middle = (left + right) >> 1;
const sumM = this._getTree(middle);
if (middle <= this._maxVal && before(sumM, sumT)) {
sumT -= sumM;
left = middle;
} else {
right = middle;
}
}
return left;
}