private void getContextNodeLongToShort() { 
	while (_contextLength >= MIN_CONTEXT_LENGTH) {
	    _contextNode = lookupNode(_contextLength);
	    if (_contextNode == null || _contextNode.isChildless(_excludedBytes)) { --_contextLength; continue; }
	    while (_contextLength > MIN_CONTEXT_LENGTH && _contextNode.isDeterministic(_excludedBytes)) {
		// backoff to shortest deterministic node if context node is deterministic
		PPMNode backoffNode = lookupNode(_contextLength-1);
		if (backoffNode == null || !backoffNode.isDeterministic(_excludedBytes)) return;
		_contextNode = backoffNode; 
		--_contextLength;
	    }
	    return;
	}
	_contextNode = null;
    }