public BidiOrder(sbyte[] types, sbyte paragraphEmbeddingLevel)
{
ValidateTypes(types);
ValidateParagraphEmbeddingLevel(paragraphEmbeddingLevel);
this.initialTypes = (sbyte[])types.Clone(); // client type array remains unchanged
this.paragraphEmbeddingLevel = paragraphEmbeddingLevel;
RunAlgorithm();
}