ISCIIEncoding
using System.Runtime.Serialization;
namespace System.Text
{
    internal sealed class ISCIIEncoding : EncodingNLS, ISerializable
    {
        internal sealed class ISCIIEncoder : System.Text.EncoderNLS
        {
            internal int defaultCodePage;
            internal int currentCodePage;
            internal bool bLastVirama;
            internal override bool HasState {
                get {
                    if (charLeftOver == ' ')
                        return currentCodePage != defaultCodePage;
                    return true;
                }
            }
            public ISCIIEncoder(EncodingNLS encoding)
                : base(encoding)
            {
                currentCodePage = (defaultCodePage = encoding.CodePage - 57000);
            }
            public override void Reset()
            {
                bLastVirama = false;
                charLeftOver = ' ';
                m_fallbackBuffer?.Reset();
            }
        }
        internal sealed class ISCIIDecoder : System.Text.DecoderNLS
        {
            internal int currentCodePage;
            internal bool bLastATR;
            internal bool bLastVirama;
            internal bool bLastDevenagariStressAbbr;
            internal char cLastCharForNextNukta;
            internal char cLastCharForNoNextNukta;
            internal override bool HasState {
                get {
                    if (cLastCharForNextNukta == ' ' && cLastCharForNoNextNukta == ' ' && !bLastATR)
                        return bLastDevenagariStressAbbr;
                    return true;
                }
            }
            public ISCIIDecoder(EncodingNLS encoding)
                : base(encoding)
            {
                currentCodePage = encoding.CodePage - 57000;
            }
            public override void Reset()
            {
                bLastATR = false;
                bLastVirama = false;
                bLastDevenagariStressAbbr = false;
                cLastCharForNextNukta = ' ';
                cLastCharForNoNextNukta = ' ';
                m_fallbackBuffer?.Reset();
            }
        }
        private const int CodeDevanagari = 2;
        private const int CodePunjabi = 11;
        private const int MultiByteBegin = 160;
        private const int IndicBegin = 2305;
        private const int IndicEnd = 3439;
        private const byte ControlATR = 239;
        private const byte ControlCodePageStart = 64;
        private const byte Virama = 232;
        private const byte Nukta = 233;
        private const byte DevenagariExt = 240;
        private const char ZWNJ = '';
        private const char ZWJ = '';
        private readonly int _defaultCodePage;
        private static readonly char[,,] s_IndicMapping = new char[9, 2, 96] {
            {
                {
                    ' ',
                    'ँ',
                    'ं',
                    'ः',
                    'अ',
                    'आ',
                    'इ',
                    'ई',
                    'उ',
                    'ऊ',
                    'ऋ',
                    'ऎ',
                    'ए',
                    'ऐ',
                    'ऍ',
                    'ऒ',
                    'ओ',
                    'औ',
                    'ऑ',
                    'क',
                    'ख',
                    'ग',
                    'घ',
                    'ङ',
                    'च',
                    'छ',
                    'ज',
                    'झ',
                    'ञ',
                    'ट',
                    'ठ',
                    'ड',
                    'ढ',
                    'ण',
                    'त',
                    'थ',
                    'द',
                    'ध',
                    'न',
                    'ऩ',
                    'प',
                    'फ',
                    'ब',
                    'भ',
                    'म',
                    'य',
                    'य़',
                    'र',
                    'ऱ',
                    'ल',
                    'ळ',
                    'ऴ',
                    'व',
                    'श',
                    'ष',
                    'स',
                    'ह',
                    ' ',
                    'ा',
                    'ि',
                    'ी',
                    'ु',
                    'ू',
                    'ृ',
                    'ॆ',
                    'े',
                    'ै',
                    'ॅ',
                    'ॊ',
                    'ो',
                    'ौ',
                    'ॉ',
                    '्',
                    '़',
                    '।',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '०',
                    '१',
                    '२',
                    '३',
                    '४',
                    '५',
                    '६',
                    '७',
                    '८',
                    '९',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    'ॐ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ऌ',
                    'ॡ',
                    ' ',
                    ' ',
                    'ॠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'क़',
                    'ख़',
                    'ग़',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ज़',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ड़',
                    'ढ़',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'फ़',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ॢ',
                    'ॣ',
                    ' ',
                    ' ',
                    'ॄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    'ऽ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '뢿',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    'ঁ',
                    'ং',
                    'ঃ',
                    'অ',
                    'আ',
                    'ই',
                    'ঈ',
                    'উ',
                    'ঊ',
                    'ঋ',
                    'এ',
                    'এ',
                    'ঐ',
                    'ঐ',
                    'ও',
                    'ও',
                    'ঔ',
                    'ঔ',
                    'ক',
                    'খ',
                    'গ',
                    'ঘ',
                    'ঙ',
                    'চ',
                    'ছ',
                    'জ',
                    'ঝ',
                    'ঞ',
                    'ট',
                    'ঠ',
                    'ড',
                    'ঢ',
                    'ণ',
                    'ত',
                    'থ',
                    'দ',
                    'ধ',
                    'ন',
                    'ন',
                    'প',
                    'ফ',
                    'ব',
                    'ভ',
                    'ম',
                    'য',
                    'য়',
                    'র',
                    'র',
                    'ল',
                    'ল',
                    'ল',
                    'ব',
                    'শ',
                    'ষ',
                    'স',
                    'হ',
                    ' ',
                    'া',
                    'ি',
                    'ী',
                    'ু',
                    'ূ',
                    'ৃ',
                    'ে',
                    'ে',
                    'ৈ',
                    'ৈ',
                    'ো',
                    'ো',
                    'ৌ',
                    'ৌ',
                    '্',
                    '়',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '০',
                    '১',
                    '২',
                    '৩',
                    '৪',
                    '৫',
                    '৬',
                    '৭',
                    '৮',
                    '৯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ঌ',
                    'ৡ',
                    ' ',
                    ' ',
                    'ৠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ড়',
                    'ঢ়',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ৢ',
                    'ৣ',
                    ' ',
                    ' ',
                    'ৄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    ' ',
                    'ஂ',
                    'ஃ',
                    'அ',
                    'ஆ',
                    'இ',
                    'ஈ',
                    'உ',
                    'ஊ',
                    ' ',
                    'ஏ',
                    'ஏ',
                    'ஐ',
                    'ஐ',
                    'ஒ',
                    'ஓ',
                    'ஔ',
                    'ஔ',
                    'க',
                    'க',
                    'க',
                    'க',
                    'ங',
                    'ச',
                    'ச',
                    'ஜ',
                    'ஜ',
                    'ஞ',
                    'ட',
                    'ட',
                    'ட',
                    'ட',
                    'ண',
                    'த',
                    'த',
                    'த',
                    'த',
                    'ந',
                    'ன',
                    'ப',
                    'ப',
                    'ப',
                    'ப',
                    'ம',
                    'ய',
                    'ய',
                    'ர',
                    'ற',
                    'ல',
                    'ள',
                    'ழ',
                    'வ',
                    'ஷ',
                    'ஷ',
                    'ஸ',
                    'ஹ',
                    ' ',
                    'ா',
                    'ி',
                    'ீ',
                    'ு',
                    'ூ',
                    ' ',
                    'ெ',
                    'ே',
                    'ை',
                    'ை',
                    'ொ',
                    'ோ',
                    'ௌ',
                    'ௌ',
                    '்',
                    ' ',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '0',
                    '௧',
                    '௨',
                    '௩',
                    '௪',
                    '௫',
                    '௬',
                    '௭',
                    '௮',
                    '௯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    'ఁ',
                    'ం',
                    'ః',
                    'అ',
                    'ఆ',
                    'ఇ',
                    'ఈ',
                    'ఉ',
                    'ఊ',
                    'ఋ',
                    'ఎ',
                    'ఏ',
                    'ఐ',
                    'ఐ',
                    'ఒ',
                    'ఓ',
                    'ఔ',
                    'ఔ',
                    'క',
                    'ఖ',
                    'గ',
                    'ఘ',
                    'ఙ',
                    'చ',
                    'ఛ',
                    'జ',
                    'ఝ',
                    'ఞ',
                    'ట',
                    'ఠ',
                    'డ',
                    'ఢ',
                    'ణ',
                    'త',
                    'థ',
                    'ద',
                    'ధ',
                    'న',
                    'న',
                    'ప',
                    'ఫ',
                    'బ',
                    'భ',
                    'మ',
                    'య',
                    'య',
                    'ర',
                    'ఱ',
                    'ల',
                    'ళ',
                    'ళ',
                    'వ',
                    'శ',
                    'ష',
                    'స',
                    'హ',
                    ' ',
                    'ా',
                    'ి',
                    'ీ',
                    'ు',
                    'ూ',
                    'ృ',
                    'ె',
                    'ే',
                    'ై',
                    'ై',
                    'ొ',
                    'ో',
                    'ౌ',
                    'ౌ',
                    '్',
                    ' ',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '౦',
                    '౧',
                    '౨',
                    '౩',
                    '౪',
                    '౫',
                    '౬',
                    '౭',
                    '౮',
                    '౯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ఌ',
                    'ౡ',
                    ' ',
                    ' ',
                    'ౠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ౄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    'ଁ',
                    'ଂ',
                    'ଃ',
                    'ଅ',
                    'ଆ',
                    'ଇ',
                    'ଈ',
                    'ଉ',
                    'ଊ',
                    'ଋ',
                    'ଏ',
                    'ଏ',
                    'ଐ',
                    'ଐ',
                    'ଐ',
                    'ଓ',
                    'ଔ',
                    'ଔ',
                    'କ',
                    'ଖ',
                    'ଗ',
                    'ଘ',
                    'ଙ',
                    'ଚ',
                    'ଛ',
                    'ଜ',
                    'ଝ',
                    'ଞ',
                    'ଟ',
                    'ଠ',
                    'ଡ',
                    'ଢ',
                    'ଣ',
                    'ତ',
                    'ଥ',
                    'ଦ',
                    'ଧ',
                    'ନ',
                    'ନ',
                    'ପ',
                    'ଫ',
                    'ବ',
                    'ଭ',
                    'ମ',
                    'ଯ',
                    'ୟ',
                    'ର',
                    'ର',
                    'ଲ',
                    'ଳ',
                    'ଳ',
                    'ବ',
                    'ଶ',
                    'ଷ',
                    'ସ',
                    'ହ',
                    ' ',
                    'ା',
                    'ି',
                    'ୀ',
                    'ୁ',
                    'ୂ',
                    'ୃ',
                    'େ',
                    'େ',
                    'ୈ',
                    'ୈ',
                    'ୋ',
                    'ୋ',
                    'ୌ',
                    'ୌ',
                    '୍',
                    '଼',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '୦',
                    '୧',
                    '୨',
                    '୩',
                    '୪',
                    '୫',
                    '୬',
                    '୭',
                    '୮',
                    '୯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ఌ',
                    'ౡ',
                    ' ',
                    ' ',
                    'ౠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ଡ଼',
                    'ଢ଼',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ౄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    'ଽ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    ' ',
                    'ಂ',
                    'ಃ',
                    'ಅ',
                    'ಆ',
                    'ಇ',
                    'ಈ',
                    'ಉ',
                    'ಊ',
                    'ಋ',
                    'ಎ',
                    'ಏ',
                    'ಐ',
                    'ಐ',
                    'ಒ',
                    'ಓ',
                    'ಔ',
                    'ಔ',
                    'ಕ',
                    'ಖ',
                    'ಗ',
                    'ಘ',
                    'ಙ',
                    'ಚ',
                    'ಛ',
                    'ಜ',
                    'ಝ',
                    'ಞ',
                    'ಟ',
                    'ಠ',
                    'ಡ',
                    'ಢ',
                    'ಣ',
                    'ತ',
                    'ಥ',
                    'ದ',
                    'ಧ',
                    'ನ',
                    'ನ',
                    'ಪ',
                    'ಫ',
                    'ಬ',
                    'ಭ',
                    'ಮ',
                    'ಯ',
                    'ಯ',
                    'ರ',
                    'ಱ',
                    'ಲ',
                    'ಳ',
                    'ಳ',
                    'ವ',
                    'ಶ',
                    'ಷ',
                    'ಸ',
                    'ಹ',
                    ' ',
                    'ಾ',
                    'ಿ',
                    'ೀ',
                    'ು',
                    'ೂ',
                    'ೃ',
                    'ೆ',
                    'ೇ',
                    'ೈ',
                    'ೈ',
                    'ೊ',
                    'ೋ',
                    'ೌ',
                    'ೌ',
                    '್',
                    ' ',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '೦',
                    '೧',
                    '೨',
                    '೩',
                    '೪',
                    '೫',
                    '೬',
                    '೭',
                    '೮',
                    '೯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ಌ',
                    'ೡ',
                    ' ',
                    ' ',
                    'ೠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ೞ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ೄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    ' ',
                    'ം',
                    'ഃ',
                    'അ',
                    'ആ',
                    'ഇ',
                    'ഈ',
                    'ഉ',
                    'ഊ',
                    'ഋ',
                    'എ',
                    'ഏ',
                    'ഐ',
                    'ഐ',
                    'ഒ',
                    'ഓ',
                    'ഔ',
                    'ഔ',
                    'ക',
                    'ഖ',
                    'ഗ',
                    'ഘ',
                    'ങ',
                    'ച',
                    'ഛ',
                    'ജ',
                    'ഝ',
                    'ഞ',
                    'ട',
                    'ഠ',
                    'ഡ',
                    'ഢ',
                    'ണ',
                    'ത',
                    'ഥ',
                    'ദ',
                    'ധ',
                    'ന',
                    'ന',
                    'പ',
                    'ഫ',
                    'ബ',
                    'ഭ',
                    'മ',
                    'യ',
                    'യ',
                    'ര',
                    'റ',
                    'ല',
                    'ള',
                    'ഴ',
                    'വ',
                    'ശ',
                    'ഷ',
                    'സ',
                    'ഹ',
                    ' ',
                    'ാ',
                    'ി',
                    'ീ',
                    'ു',
                    'ൂ',
                    'ൃ',
                    'െ',
                    'േ',
                    'ൈ',
                    'ൈ',
                    'ൊ',
                    'ോ',
                    'ൌ',
                    'ൌ',
                    '്',
                    ' ',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '൦',
                    '൧',
                    '൨',
                    '൩',
                    '൪',
                    '൫',
                    '൬',
                    '൭',
                    '൮',
                    '൯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ഌ',
                    'ൡ',
                    ' ',
                    ' ',
                    'ൠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    'ઁ',
                    'ં',
                    'ઃ',
                    'અ',
                    'આ',
                    'ઇ',
                    'ઈ',
                    'ઉ',
                    'ઊ',
                    'ઋ',
                    'એ',
                    'એ',
                    'ઐ',
                    'ઍ',
                    'ઍ',
                    'ઓ',
                    'ઔ',
                    'ઑ',
                    'ક',
                    'ખ',
                    'ગ',
                    'ઘ',
                    'ઙ',
                    'ચ',
                    'છ',
                    'જ',
                    'ઝ',
                    'ઞ',
                    'ટ',
                    'ઠ',
                    'ડ',
                    'ઢ',
                    'ણ',
                    'ત',
                    'થ',
                    'દ',
                    'ધ',
                    'ન',
                    'ન',
                    'પ',
                    'ફ',
                    'બ',
                    'ભ',
                    'મ',
                    'ય',
                    'ય',
                    'ર',
                    'ર',
                    'લ',
                    'ળ',
                    'ળ',
                    'વ',
                    'શ',
                    'ષ',
                    'સ',
                    'હ',
                    ' ',
                    'ા',
                    'િ',
                    'ી',
                    'ુ',
                    'ૂ',
                    'ૃ',
                    'ે',
                    'ે',
                    'ૈ',
                    'ૅ',
                    'ો',
                    'ો',
                    'ૌ',
                    'ૉ',
                    '્',
                    '઼',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '૦',
                    '૧',
                    '૨',
                    '૩',
                    '૪',
                    '૫',
                    '૬',
                    '૭',
                    '૮',
                    '૯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    'ૐ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ૠ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ૄ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    'ઽ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            },
            {
                {
                    ' ',
                    ' ',
                    'ਂ',
                    ' ',
                    'ਅ',
                    'ਆ',
                    'ਇ',
                    'ਈ',
                    'ਉ',
                    'ਊ',
                    ' ',
                    'ਏ',
                    'ਏ',
                    'ਐ',
                    'ਐ',
                    'ਐ',
                    'ਓ',
                    'ਔ',
                    'ਔ',
                    'ਕ',
                    'ਖ',
                    'ਗ',
                    'ਘ',
                    'ਙ',
                    'ਚ',
                    'ਛ',
                    'ਜ',
                    'ਝ',
                    'ਞ',
                    'ਟ',
                    'ਠ',
                    'ਡ',
                    'ਢ',
                    'ਣ',
                    'ਤ',
                    'ਥ',
                    'ਦ',
                    'ਧ',
                    'ਨ',
                    'ਨ',
                    'ਪ',
                    'ਫ',
                    'ਬ',
                    'ਭ',
                    'ਮ',
                    'ਯ',
                    'ਯ',
                    'ਰ',
                    'ਰ',
                    'ਲ',
                    'ਲ਼',
                    'ਲ਼',
                    'ਵ',
                    'ਸ਼',
                    'ਸ਼',
                    'ਸ',
                    'ਹ',
                    ' ',
                    'ਾ',
                    'ਿ',
                    'ੀ',
                    'ੁ',
                    'ੂ',
                    ' ',
                    'ੇ',
                    'ੇ',
                    'ੈ',
                    'ੈ',
                    'ੋ',
                    'ੋ',
                    'ੌ',
                    'ੌ',
                    '੍',
                    '਼',
                    '.',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '੦',
                    '੧',
                    '੨',
                    '੩',
                    '੪',
                    '੫',
                    '੬',
                    '੭',
                    '੮',
                    '੯',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                },
                {
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ਖ਼',
                    'ਗ਼',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ਜ਼',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ੜ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    'ਫ਼',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    '',
                    '',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' ',
                    ' '
                }
            }
        };
        private static ReadOnlySpan<int> UnicodeToIndicChar {
            get {
                object obj = global::<PrivateImplementationDetails>.820CCB1183F4A9D725F801FA6E0951E75D357BB5BBC4D25C804033E758BBBCDE_A6;
                if (obj == null) {
                    obj = new int[1135] {
                        673,
                        674,
                        675,
                        0,
                        676,
                        677,
                        678,
                        679,
                        680,
                        681,
                        682,
                        4774,
                        686,
                        683,
                        684,
                        685,
                        690,
                        687,
                        688,
                        689,
                        691,
                        692,
                        693,
                        694,
                        695,
                        696,
                        697,
                        698,
                        699,
                        700,
                        701,
                        702,
                        703,
                        704,
                        705,
                        706,
                        707,
                        708,
                        709,
                        710,
                        711,
                        712,
                        713,
                        714,
                        715,
                        716,
                        717,
                        719,
                        720,
                        721,
                        722,
                        723,
                        724,
                        725,
                        726,
                        727,
                        728,
                        0,
                        0,
                        745,
                        4842,
                        730,
                        731,
                        732,
                        733,
                        734,
                        735,
                        4831,
                        739,
                        736,
                        737,
                        738,
                        743,
                        740,
                        741,
                        742,
                        744,
                        0,
                        0,
                        4769,
                        0,
                        8944,
                        0,
                        0,
                        0,
                        0,
                        0,
                        4787,
                        4788,
                        4789,
                        4794,
                        4799,
                        4800,
                        4809,
                        718,
                        4778,
                        4775,
                        4827,
                        4828,
                        746,
                        0,
                        753,
                        754,
                        755,
                        756,
                        757,
                        758,
                        759,
                        760,
                        761,
                        762,
                        13040,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        929,
                        930,
                        931,
                        0,
                        932,
                        933,
                        934,
                        935,
                        936,
                        937,
                        938,
                        5030,
                        0,
                        0,
                        939,
                        941,
                        0,
                        0,
                        943,
                        945,
                        947,
                        948,
                        949,
                        950,
                        951,
                        952,
                        953,
                        954,
                        955,
                        956,
                        957,
                        958,
                        959,
                        960,
                        961,
                        962,
                        963,
                        964,
                        965,
                        966,
                        0,
                        968,
                        969,
                        970,
                        971,
                        972,
                        973,
                        975,
                        0,
                        977,
                        0,
                        0,
                        0,
                        981,
                        982,
                        983,
                        984,
                        0,
                        0,
                        1001,
                        0,
                        986,
                        987,
                        988,
                        989,
                        990,
                        991,
                        5087,
                        0,
                        0,
                        992,
                        994,
                        0,
                        0,
                        996,
                        998,
                        1000,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        5055,
                        5056,
                        0,
                        974,
                        5034,
                        5031,
                        5083,
                        5084,
                        0,
                        0,
                        1009,
                        1010,
                        1011,
                        1012,
                        1013,
                        1014,
                        1015,
                        1016,
                        1017,
                        1018,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        2978,
                        0,
                        0,
                        2980,
                        2981,
                        2982,
                        2983,
                        2984,
                        2985,
                        0,
                        0,
                        0,
                        0,
                        2987,
                        2989,
                        0,
                        0,
                        2992,
                        2993,
                        2995,
                        2996,
                        2997,
                        2998,
                        2999,
                        3000,
                        3001,
                        3002,
                        3003,
                        3004,
                        3005,
                        3006,
                        3007,
                        3008,
                        3009,
                        3010,
                        3011,
                        3012,
                        3013,
                        3014,
                        0,
                        3016,
                        3017,
                        3018,
                        3019,
                        3020,
                        3021,
                        3023,
                        0,
                        3025,
                        3026,
                        0,
                        3028,
                        3029,
                        0,
                        3031,
                        3032,
                        0,
                        0,
                        3049,
                        0,
                        3034,
                        3035,
                        3036,
                        3037,
                        3038,
                        0,
                        0,
                        0,
                        0,
                        3040,
                        3042,
                        0,
                        0,
                        3044,
                        3046,
                        3048,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        7092,
                        7093,
                        7098,
                        7104,
                        0,
                        7113,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        3057,
                        3058,
                        3059,
                        3060,
                        3061,
                        3062,
                        3063,
                        3064,
                        3065,
                        3066,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        2721,
                        2722,
                        2723,
                        0,
                        2724,
                        2725,
                        2726,
                        2727,
                        2728,
                        2729,
                        2730,
                        0,
                        2734,
                        0,
                        2731,
                        2733,
                        2738,
                        0,
                        2736,
                        2737,
                        2739,
                        2740,
                        2741,
                        2742,
                        2743,
                        2744,
                        2745,
                        2746,
                        2747,
                        2748,
                        2749,
                        2750,
                        2751,
                        2752,
                        2753,
                        2754,
                        2755,
                        2756,
                        2757,
                        2758,
                        0,
                        2760,
                        2761,
                        2762,
                        2763,
                        2764,
                        2765,
                        2767,
                        0,
                        2769,
                        2770,
                        0,
                        2772,
                        2773,
                        2774,
                        2775,
                        2776,
                        0,
                        0,
                        2793,
                        6890,
                        2778,
                        2779,
                        2780,
                        2781,
                        2782,
                        2783,
                        6879,
                        2787,
                        0,
                        2784,
                        2786,
                        2791,
                        0,
                        2788,
                        2790,
                        2792,
                        0,
                        0,
                        6817,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        6826,
                        0,
                        0,
                        0,
                        0,
                        0,
                        2801,
                        2802,
                        2803,
                        2804,
                        2805,
                        2806,
                        2807,
                        2808,
                        2809,
                        2810,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        1953,
                        1954,
                        1955,
                        0,
                        1956,
                        1957,
                        1958,
                        1959,
                        1960,
                        1961,
                        1962,
                        6054,
                        0,
                        0,
                        1963,
                        1965,
                        0,
                        0,
                        1968,
                        1969,
                        1971,
                        1972,
                        1973,
                        1974,
                        1975,
                        1976,
                        1977,
                        1978,
                        1979,
                        1980,
                        1981,
                        1982,
                        1983,
                        1984,
                        1985,
                        1986,
                        1987,
                        1988,
                        1989,
                        1990,
                        0,
                        1992,
                        1993,
                        1994,
                        1995,
                        1996,
                        1997,
                        1999,
                        0,
                        2001,
                        2002,
                        0,
                        0,
                        2005,
                        2006,
                        2007,
                        2008,
                        0,
                        0,
                        2025,
                        6122,
                        2010,
                        2011,
                        2012,
                        2013,
                        2014,
                        2015,
                        0,
                        0,
                        0,
                        2016,
                        2018,
                        0,
                        0,
                        2020,
                        2022,
                        2024,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        6079,
                        6080,
                        0,
                        1998,
                        6058,
                        6055,
                        0,
                        0,
                        0,
                        0,
                        2033,
                        2034,
                        2035,
                        2036,
                        2037,
                        2038,
                        2039,
                        2040,
                        2041,
                        2042,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        1186,
                        1187,
                        0,
                        1188,
                        1189,
                        1190,
                        1191,
                        1192,
                        1193,
                        0,
                        0,
                        0,
                        0,
                        1195,
                        1197,
                        0,
                        1199,
                        1200,
                        1201,
                        1203,
                        0,
                        0,
                        0,
                        1207,
                        1208,
                        0,
                        1210,
                        0,
                        1212,
                        1213,
                        0,
                        0,
                        0,
                        1217,
                        1218,
                        0,
                        0,
                        0,
                        1222,
                        1223,
                        1224,
                        0,
                        0,
                        0,
                        1228,
                        1229,
                        1231,
                        1232,
                        1233,
                        1234,
                        1235,
                        1236,
                        0,
                        1237,
                        1239,
                        1240,
                        0,
                        0,
                        0,
                        0,
                        1242,
                        1243,
                        1244,
                        1245,
                        1246,
                        0,
                        0,
                        0,
                        1248,
                        1249,
                        1250,
                        0,
                        1252,
                        1253,
                        1254,
                        1256,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        1266,
                        1267,
                        1268,
                        1269,
                        1270,
                        1271,
                        1272,
                        1273,
                        1274,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        1441,
                        1442,
                        1443,
                        0,
                        1444,
                        1445,
                        1446,
                        1447,
                        1448,
                        1449,
                        1450,
                        5542,
                        0,
                        1451,
                        1452,
                        1453,
                        0,
                        1455,
                        1456,
                        1457,
                        1459,
                        1460,
                        1461,
                        1462,
                        1463,
                        1464,
                        1465,
                        1466,
                        1467,
                        1468,
                        1469,
                        1470,
                        1471,
                        1472,
                        1473,
                        1474,
                        1475,
                        1476,
                        1477,
                        1478,
                        0,
                        1480,
                        1481,
                        1482,
                        1483,
                        1484,
                        1485,
                        1487,
                        1488,
                        1489,
                        1490,
                        0,
                        1492,
                        1493,
                        1494,
                        1495,
                        1496,
                        0,
                        0,
                        0,
                        0,
                        1498,
                        1499,
                        1500,
                        1501,
                        1502,
                        1503,
                        5599,
                        0,
                        1504,
                        1505,
                        1506,
                        0,
                        1508,
                        1509,
                        1510,
                        1512,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        5546,
                        5543,
                        0,
                        0,
                        0,
                        0,
                        1521,
                        1522,
                        1523,
                        1524,
                        1525,
                        1526,
                        1527,
                        1528,
                        1529,
                        1530,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        2210,
                        2211,
                        0,
                        2212,
                        2213,
                        2214,
                        2215,
                        2216,
                        2217,
                        2218,
                        6310,
                        0,
                        2219,
                        2220,
                        2221,
                        0,
                        2223,
                        2224,
                        2225,
                        2227,
                        2228,
                        2229,
                        2230,
                        2231,
                        2232,
                        2233,
                        2234,
                        2235,
                        2236,
                        2237,
                        2238,
                        2239,
                        2240,
                        2241,
                        2242,
                        2243,
                        2244,
                        2245,
                        2246,
                        0,
                        2248,
                        2249,
                        2250,
                        2251,
                        2252,
                        2253,
                        2255,
                        2256,
                        2257,
                        2258,
                        0,
                        2260,
                        2261,
                        2262,
                        2263,
                        2264,
                        0,
                        0,
                        0,
                        0,
                        2266,
                        2267,
                        2268,
                        2269,
                        2270,
                        2271,
                        6367,
                        0,
                        2272,
                        2273,
                        2274,
                        0,
                        2276,
                        2277,
                        2278,
                        2280,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        6345,
                        0,
                        6314,
                        6311,
                        0,
                        0,
                        0,
                        0,
                        2289,
                        2290,
                        2291,
                        2292,
                        2293,
                        2294,
                        2295,
                        2296,
                        2297,
                        2298,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        2466,
                        2467,
                        0,
                        2468,
                        2469,
                        2470,
                        2471,
                        2472,
                        2473,
                        2474,
                        6566,
                        0,
                        2475,
                        2476,
                        2477,
                        0,
                        2479,
                        2480,
                        2481,
                        2483,
                        2484,
                        2485,
                        2486,
                        2487,
                        2488,
                        2489,
                        2490,
                        2491,
                        2492,
                        2493,
                        2494,
                        2495,
                        2496,
                        2497,
                        2498,
                        2499,
                        2500,
                        2501,
                        2502,
                        0,
                        2504,
                        2505,
                        2506,
                        2507,
                        2508,
                        2509,
                        2511,
                        2512,
                        2513,
                        2514,
                        2515,
                        2516,
                        2517,
                        2518,
                        2519,
                        2520,
                        0,
                        0,
                        0,
                        0,
                        2522,
                        2523,
                        2524,
                        2525,
                        2526,
                        2527,
                        0,
                        0,
                        2528,
                        2529,
                        2530,
                        0,
                        2532,
                        2533,
                        2534,
                        2536,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        0,
                        6570,
                        6567,
                        0,
                        0,
                        0,
                        0,
                        2545,
                        2546,
                        2547,
                        2548,
                        2549,
                        2550,
                        2551,
                        2552,
                        2553,
                        2554
                    };
                    global::<PrivateImplementationDetails>.820CCB1183F4A9D725F801FA6E0951E75D357BB5BBC4D25C804033E758BBBCDE_A6 = (int[])obj;
                }
                return new ReadOnlySpan<int>((int[])obj);
            }
        }
        private unsafe static ReadOnlySpan<byte> SecondIndicByte => new ReadOnlySpan<byte>(&global::<PrivateImplementationDetails>.6624BBD769A2E8BBB96C33C89D8020408F5BD488277E13E6EF692D114DBCD24A, 4);
        private static ReadOnlySpan<int> IndicMappingIndex {
            get {
                object obj = global::<PrivateImplementationDetails>.0454EF75A5649917DA7FE66D2B7B71AB8DEFB3E0325C8C9C7FA8C621FDE8D73B_A6;
                if (obj == null) {
                    obj = new int[12] {
                        -1,
                        -1,
                        0,
                        1,
                        2,
                        3,
                        1,
                        4,
                        5,
                        6,
                        7,
                        8
                    };
                    global::<PrivateImplementationDetails>.0454EF75A5649917DA7FE66D2B7B71AB8DEFB3E0325C8C9C7FA8C621FDE8D73B_A6 = (int[])obj;
                }
                return new ReadOnlySpan<int>((int[])obj);
            }
        }
        public ISCIIEncoding(int codePage)
            : base(codePage)
        {
            _defaultCodePage = codePage - 57000;
            if (_defaultCodePage < 2 || _defaultCodePage > 11)
                throw new ArgumentException(System.SR.Format(System.SR.Argument_CodepageNotSupported, codePage), "codePage");
        }
        void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
        {
            throw new PlatformNotSupportedException();
        }
        public override int GetMaxByteCount(int charCount)
        {
            if (charCount < 0)
                throw new ArgumentOutOfRangeException("charCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
            long num = (long)charCount + 1;
            if (base.EncoderFallback.MaxCharCount > 1)
                num *= base.EncoderFallback.MaxCharCount;
            num *= 4;
            if (num > 2147483647)
                throw new ArgumentOutOfRangeException("charCount", System.SR.ArgumentOutOfRange_GetByteCountOverflow);
            return (int)num;
        }
        public override int GetMaxCharCount(int byteCount)
        {
            if (byteCount < 0)
                throw new ArgumentOutOfRangeException("byteCount", System.SR.ArgumentOutOfRange_NeedNonNegNum);
            long num = (long)byteCount + 1;
            if (base.DecoderFallback.MaxCharCount > 1)
                num *= base.DecoderFallback.MaxCharCount;
            if (num > 2147483647)
                throw new ArgumentOutOfRangeException("byteCount", System.SR.ArgumentOutOfRange_GetCharCountOverflow);
            return (int)num;
        }
        public unsafe override int GetByteCount(char* chars, int count, System.Text.EncoderNLS baseEncoder)
        {
            return GetBytes(chars, count, null, 0, baseEncoder);
        }
        public unsafe override int GetBytes(char* chars, int charCount, byte* bytes, int byteCount, System.Text.EncoderNLS baseEncoder)
        {
            ISCIIEncoder iSCIIEncoder = (ISCIIEncoder)baseEncoder;
            EncodingByteBuffer encodingByteBuffer = new EncodingByteBuffer(this, iSCIIEncoder, bytes, byteCount, chars, charCount);
            int num = _defaultCodePage;
            bool flag = false;
            if (iSCIIEncoder != null) {
                num = iSCIIEncoder.currentCodePage;
                flag = iSCIIEncoder.bLastVirama;
                if (iSCIIEncoder.charLeftOver > ' ') {
                    encodingByteBuffer.Fallback(iSCIIEncoder.charLeftOver);
                    flag = false;
                }
            }
            while (encodingByteBuffer.MoreData) {
                char nextChar = encodingByteBuffer.GetNextChar();
                if (nextChar < ' ') {
                    if (!encodingByteBuffer.AddByte((byte)nextChar))
                        break;
                    flag = false;
                } else if (nextChar < 'ँ' || nextChar > '൯') {
                    if (flag && (nextChar == '' || nextChar == '')) {
                        if (nextChar == '') {
                            if (!encodingByteBuffer.AddByte(232))
                                break;
                        } else if (!encodingByteBuffer.AddByte(233)) {
                            break;
                        }
                        flag = false;
                    } else {
                        encodingByteBuffer.Fallback(nextChar);
                        flag = false;
                    }
                } else {
                    int num2 = UnicodeToIndicChar[nextChar - 2305];
                    byte b = (byte)num2;
                    int num3 = 15 & (num2 >> 8);
                    int num4 = 61440 & num2;
                    if (num2 == 0) {
                        encodingByteBuffer.Fallback(nextChar);
                        flag = false;
                    } else {
                        if (num3 != num) {
                            if (!encodingByteBuffer.AddByte(239, (byte)(num3 | 64)))
                                break;
                            num = num3;
                        }
                        if (!encodingByteBuffer.AddByte(b, (num4 != 0) ? 1 : 0))
                            break;
                        flag = (b == 232);
                        if (num4 != 0 && !encodingByteBuffer.AddByte(SecondIndicByte[num4 >> 12]))
                            break;
                    }
                }
            }
            if (num != _defaultCodePage && (iSCIIEncoder == null || iSCIIEncoder.MustFlush)) {
                if (encodingByteBuffer.AddByte(239, (byte)(_defaultCodePage | 64)))
                    num = _defaultCodePage;
                else
                    encodingByteBuffer.GetNextChar();
                flag = false;
            }
            if (iSCIIEncoder != null && bytes != null) {
                if (!encodingByteBuffer.fallbackBufferHelper.bUsedEncoder)
                    iSCIIEncoder.charLeftOver = ' ';
                iSCIIEncoder.currentCodePage = num;
                iSCIIEncoder.bLastVirama = flag;
                iSCIIEncoder.m_charsUsed = encodingByteBuffer.CharsUsed;
            }
            return encodingByteBuffer.Count;
        }
        public unsafe override int GetCharCount(byte* bytes, int count, System.Text.DecoderNLS baseDecoder)
        {
            return GetChars(bytes, count, null, 0, baseDecoder);
        }
        public unsafe override int GetChars(byte* bytes, int byteCount, char* chars, int charCount, System.Text.DecoderNLS baseDecoder)
        {
            ISCIIDecoder iSCIIDecoder = (ISCIIDecoder)baseDecoder;
            EncodingCharBuffer encodingCharBuffer = new EncodingCharBuffer(this, iSCIIDecoder, chars, charCount, bytes, byteCount);
            int num = _defaultCodePage;
            bool flag = false;
            bool flag2 = false;
            bool flag3 = false;
            char c = ' ';
            char c2 = ' ';
            if (iSCIIDecoder != null) {
                num = iSCIIDecoder.currentCodePage;
                flag = iSCIIDecoder.bLastATR;
                flag2 = iSCIIDecoder.bLastVirama;
                flag3 = iSCIIDecoder.bLastDevenagariStressAbbr;
                c = iSCIIDecoder.cLastCharForNextNukta;
                c2 = iSCIIDecoder.cLastCharForNoNextNukta;
            }
            bool flag4 = flag2 | flag | flag3 | (c != ' ');
            int num2 = -1;
            if (num >= 2 && num <= 11)
                num2 = IndicMappingIndex[num];
            while (encodingCharBuffer.MoreData) {
                byte nextByte = encodingCharBuffer.GetNextByte();
                if (flag4) {
                    flag4 = false;
                    if (flag) {
                        if (nextByte >= 66 && nextByte <= 75) {
                            num = (nextByte & 15);
                            num2 = IndicMappingIndex[num];
                            flag = false;
                        } else {
                            switch (nextByte) {
                            case 64:
                                break;
                            case 65:
                                goto IL_010e;
                            default:
                                goto IL_013a;
                            }
                            num = _defaultCodePage;
                            num2 = -1;
                            if (num >= 2 && num <= 11)
                                num2 = IndicMappingIndex[num];
                            flag = false;
                        }
                        continue;
                    }
                    if (flag2) {
                        switch (nextByte) {
                        case 232:
                            break;
                        case 233:
                            goto IL_017f;
                        default:
                            goto IL_0197;
                        }
                        if (!encodingCharBuffer.AddChar(''))
                            break;
                        flag2 = false;
                        continue;
                    }
                    if (flag3) {
                        switch (nextByte) {
                        case 184:
                            break;
                        case 191:
                            goto IL_01cd;
                        default:
                            goto IL_01e5;
                        }
                        if (!encodingCharBuffer.AddChar('॒'))
                            break;
                        flag3 = false;
                        continue;
                    }
                    if (nextByte == 233) {
                        if (!encodingCharBuffer.AddChar(c))
                            break;
                        c = (c2 = ' ');
                        continue;
                    }
                    if (!encodingCharBuffer.AddChar(c2))
                        break;
                    c = (c2 = ' ');
                }
                goto IL_022e;
                IL_01cd:
                if (!encodingCharBuffer.AddChar('॰'))
                    break;
                flag3 = false;
                continue;
                IL_01e5:
                if (!encodingCharBuffer.Fallback(240))
                    break;
                flag3 = false;
                goto IL_022e;
                IL_02bc:
                char c3;
                if (!encodingCharBuffer.AddChar(c3))
                    break;
                flag2 = (flag4 = true);
                continue;
                IL_017f:
                if (!encodingCharBuffer.AddChar(''))
                    break;
                flag2 = false;
                continue;
                IL_02ce:
                char c4;
                if ((c4 & 61440) == 0) {
                    flag4 = true;
                    c = c4;
                    c2 = c3;
                } else
                    flag3 = (flag4 = true);
                continue;
                IL_0197:
                flag2 = false;
                goto IL_022e;
                IL_013a:
                if (!encodingCharBuffer.Fallback(239))
                    break;
                flag = false;
                goto IL_022e;
                IL_022e:
                if (nextByte < 160) {
                    if (!encodingCharBuffer.AddChar((char)nextByte))
                        break;
                } else if (nextByte == 239) {
                    flag = (flag4 = true);
                } else {
                    c3 = s_IndicMapping[num2, 0, nextByte - 160];
                    c4 = s_IndicMapping[num2, 1, nextByte - 160];
                    if (c4 != 0) {
                        switch (nextByte) {
                        case 233:
                            break;
                        case 232:
                            goto IL_02bc;
                        default:
                            goto IL_02ce;
                        }
                    }
                    if (c3 == ' ') {
                        if (!encodingCharBuffer.Fallback(nextByte))
                            break;
                    } else if (!encodingCharBuffer.AddChar(c3)) {
                        break;
                    }
                }
                continue;
                IL_010e:
                num = _defaultCodePage;
                num2 = -1;
                if (num >= 2 && num <= 11)
                    num2 = IndicMappingIndex[num];
                flag = false;
            }
            if (iSCIIDecoder == null || iSCIIDecoder.MustFlush) {
                if (flag) {
                    if (encodingCharBuffer.Fallback(239))
                        flag = false;
                    else
                        encodingCharBuffer.GetNextByte();
                } else if (flag3) {
                    if (encodingCharBuffer.Fallback(240))
                        flag3 = false;
                    else
                        encodingCharBuffer.GetNextByte();
                } else if (c2 != 0) {
                    if (encodingCharBuffer.AddChar(c2))
                        c2 = (c = ' ');
                    else
                        encodingCharBuffer.GetNextByte();
                }
            }
            if (iSCIIDecoder != null && chars != null) {
                if ((!iSCIIDecoder.MustFlush || c2 != ' ') | flag | flag3) {
                    iSCIIDecoder.currentCodePage = num;
                    iSCIIDecoder.bLastVirama = flag2;
                    iSCIIDecoder.bLastATR = flag;
                    iSCIIDecoder.bLastDevenagariStressAbbr = flag3;
                    iSCIIDecoder.cLastCharForNextNukta = c;
                    iSCIIDecoder.cLastCharForNoNextNukta = c2;
                } else {
                    iSCIIDecoder.currentCodePage = _defaultCodePage;
                    iSCIIDecoder.bLastVirama = false;
                    iSCIIDecoder.bLastATR = false;
                    iSCIIDecoder.bLastDevenagariStressAbbr = false;
                    iSCIIDecoder.cLastCharForNextNukta = ' ';
                    iSCIIDecoder.cLastCharForNoNextNukta = ' ';
                }
                iSCIIDecoder.m_bytesUsed = encodingCharBuffer.BytesUsed;
            }
            return encodingCharBuffer.Count;
        }
        public override Decoder GetDecoder()
        {
            return new ISCIIDecoder(this);
        }
        public override Encoder GetEncoder()
        {
            return new ISCIIEncoder(this);
        }
        public override int GetHashCode()
        {
            return _defaultCodePage + base.EncoderFallback.GetHashCode() + base.DecoderFallback.GetHashCode();
        }
    }
}