예제 #1
0
 public void CSS_reset(CSS_params CSS_param)
 {
     CSS_param.names.Add("font-family");
     CSS_param.names.Add("color");
     CSS_param.names.Add("font-weight");
     CSS_param.names.Add("font-size");
     CSS_param.names.Add("text-align");
     CSS_param.names.Add("font-style");
     CSS_param.names.Add("margin-top");
     CSS_param.names.Add("background-color");
     CSS_param.names.Add("font");
     CSS_param.names.Add("top");
     CSS_param.names.Add("left");
     CSS_param.names.Add("width");
     CSS_param.names.Add("text-decoration");
     CSS_param.names.Add("vertical-align");
     CSS_param.names.Add("page-break-before");
     CSS_param.names.Add("page-break-after");
     CSS_param.names.Add("list-style-type");
     CSS_param.names.Add("margin-bottom");
 }
예제 #2
0
 public void CSS_reset(CSS_params CSS_param)
 {
     CSS_param.names.Add("font-family");
     CSS_param.names.Add("color");
     CSS_param.names.Add("font-weight");
     CSS_param.names.Add("font-size");
     CSS_param.names.Add("text-align");
     CSS_param.names.Add("font-style");
     CSS_param.names.Add("margin-top");
     CSS_param.names.Add("background-color");
     CSS_param.names.Add("font");
     CSS_param.names.Add("top");
     CSS_param.names.Add("left");
     CSS_param.names.Add("width");
     CSS_param.names.Add("text-decoration");
     CSS_param.names.Add("vertical-align");
     CSS_param.names.Add("page-break-before");
     CSS_param.names.Add("page-break-after");
     CSS_param.names.Add("list-style-type");
     CSS_param.names.Add("margin-bottom");
 }
예제 #3
0
 private int get_width(ByteClass buf, int posStart, int max, ref int percent, ref int colspan, ref int rowspan, ArrayList color_list, int color_list_num, ref int bgcolor, CSS_params CSS_param, ref int valign, ref int align)
 {
     int index = 0;
     colspan = 1;
     rowspan = 1;
     int num2 = 0;
     ByteClass class2 = new ByteClass(20);
     ByteClass class3 = new ByteClass(20);
     int width = 0;
     ByteClass class4 = new ByteClass(0x29);
     bool flag = false;
     if (bgcolor != -1111)
     {
         bgcolor = 0;
     }
     percent = 0;
     ByteClass class5 = new ByteClass(0x1f);
     if (valign != -1111)
     {
         valign = this.VALIGN_TOP;
     }
     index = posStart;
     while ((buf.b[index] != 0x3e) && (index < max))
     {
         if ((((this.IS_DELIMITER(buf.b[index]) && ((buf.b[index + 1] == 0x77) || (buf.b[index + 1] == 0x57))) && ((buf.b[index + 2] == 0x69) || (buf.b[index + 2] == 0x49))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) && ((buf.b[index + 4] == 0x74) || (buf.b[index + 4] == 0x54)))) && ((buf.b[index + 5] == 0x68) || (buf.b[index + 5] == 0x48)))
         {
             index += 4;
             while ((buf.b[index] != 0x3d) && (buf.b[index] != 0x3a))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             num2 = 0;
             class2.Clear();
             while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 class2.Add(buf.b[index]);
                 index++;
             }
             if (buf.b[index] == 0x25)
             {
                 percent = 1;
             }
             width = class2.ByteToInt();
             class2.Clear();
         }
         else if (((((buf.b[index] == 0x63) || (buf.b[index] == 0x43)) && ((buf.b[index + 1] == 0x6f) || (buf.b[index + 1] == 0x4f))) && (((buf.b[index + 2] == 0x6c) || (buf.b[index + 2] == 0x4c)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && ((((buf.b[index + 4] == 0x70) || (buf.b[index + 4] == 80)) && ((buf.b[index + 5] == 0x61) || (buf.b[index + 5] == 0x41))) && ((buf.b[index + 6] == 110) || (buf.b[index + 6] == 0x4e))))
         {
             index += 6;
             while (buf.b[index] != 0x3d)
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 index++;
             }
             num2 = 0;
             class2.Clear();
             while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
             {
                 if (buf.b[index] == 0x3e)
                 {
                     return width;
                 }
                 class2.Add(buf.b[index]);
                 index++;
             }
             colspan = class2.ByteToInt();
         }
         else
         {
             if (((((buf.b[index] == 0x72) || (buf.b[index] == 0x52)) && ((buf.b[index + 1] == 0x6f) || (buf.b[index + 1] == 0x4f))) && (((buf.b[index + 2] == 0x77) || (buf.b[index + 2] == 0x57)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && ((((buf.b[index + 4] == 0x70) || (buf.b[index + 4] == 80)) && ((buf.b[index + 5] == 0x61) || (buf.b[index + 5] == 0x41))) && ((buf.b[index + 6] == 110) || (buf.b[index + 6] == 0x4e))))
             {
                 index += 6;
                 while (buf.b[index] != 0x3d)
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     index++;
                 }
                 while ((buf.b[index] < 0x30) || (buf.b[index] > 0x39))
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     index++;
                 }
                 num2 = 0;
                 class2.Clear();
                 while ((buf.b[index] >= 0x30) && (buf.b[index] <= 0x39))
                 {
                     if (buf.b[index] == 0x3e)
                     {
                         return width;
                     }
                     class2.Add(buf.b[index]);
                     index++;
                 }
                 rowspan = class2.ByteToInt();
                 class2.Clear();
                 continue;
             }
             if (((((buf.b[index] == 0x62) || (buf.b[index] == 0x42)) && ((buf.b[index + 1] == 0x67) || (buf.b[index + 1] == 0x47))) && (((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43)) && ((buf.b[index + 3] == 0x6f) || (buf.b[index + 3] == 0x4f)))) && ((((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)) && ((buf.b[index + 5] == 0x6f) || (buf.b[index + 5] == 0x4f))) && (((buf.b[index + 6] == 0x72) || (buf.b[index + 6] == 0x52)) && (buf.b[index + 7] == 0x3d))))
             {
                 index += 8;
                 if ((color_list_num != -1111) && (color_list != null))
                 {
                     class3.Clear();
                     this.read_color(buf, ref index, max, class3);
                     for (num2 = 0; num2 < color_list_num; num2++)
                     {
                         if ((class3.byteCmpi(color_list[num2].ToString()) == 0) && (bgcolor != -1111))
                         {
                             bgcolor = num2 + 3;
                         }
                     }
                 }
                 continue;
             }
             if ((((((buf.b[index] == 0x62) || (buf.b[index] == 0x42)) && ((buf.b[index + 1] == 0x61) || (buf.b[index + 1] == 0x41))) && (((buf.b[index + 2] == 0x63) || (buf.b[index + 2] == 0x43)) && ((buf.b[index + 3] == 0x6b) || (buf.b[index + 3] == 0x4b)))) && ((((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)) && ((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52))) && (((buf.b[index + 6] == 0x6f) || (buf.b[index + 6] == 0x4f)) && ((buf.b[index + 7] == 0x75) || (buf.b[index + 7] == 0x55))))) && (((((buf.b[index + 8] == 110) || (buf.b[index + 8] == 0x4e)) && ((buf.b[index + 9] == 100) || (buf.b[index + 9] == 0x44))) && (((buf.b[index + 10] == 0x2d) && ((buf.b[index + 11] == 0x63) || (buf.b[index + 11] == 0x43))) && ((buf.b[index + 12] == 0x6f) || (buf.b[index + 12] == 0x4f)))) && ((((buf.b[index + 13] == 0x6c) || (buf.b[index + 13] == 0x4c)) && ((buf.b[index + 14] == 0x6f) || (buf.b[index + 14] == 0x4f))) && (((buf.b[index + 15] == 0x72) || (buf.b[index + 15] == 0x52)) && (buf.b[index + 0x10] == 0x3a)))))
             {
                 index += 0x11;
                 if ((color_list_num != -1111) && (color_list != null))
                 {
                     class3.Clear();
                     this.read_color(buf, ref index, max, class3);
                     for (num2 = 0; num2 < color_list_num; num2++)
                     {
                         if ((class3.byteCmpi(color_list[num2].ToString()) == 0) && (bgcolor != -1111))
                         {
                             bgcolor = num2 + 3;
                         }
                     }
                 }
                 continue;
             }
             if (((((buf.b[index] == 0x63) || (buf.b[index] == 0x43)) && ((buf.b[index + 1] == 0x6c) || (buf.b[index + 1] == 0x4c))) && (((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41)) && ((buf.b[index + 3] == 0x73) || (buf.b[index + 3] == 0x53)))) && (((buf.b[index + 4] == 0x73) || (buf.b[index + 4] == 0x53)) && (buf.b[index + 5] == 0x3d)))
             {
                 index += 5;
                 class4.Clear();
                 this.read_value_exact(buf, ref index, max, class4);
                 if (class4.len > 0)
                 {
                     flag = true;
                 }
             }
             if ((((buf.b[index] == 0x69) || (buf.b[index] == 0x49)) && ((buf.b[index + 1] == 100) || (buf.b[index + 1] == 0x44))) && (buf.b[index + 2] == 0x3d))
             {
                 index += 2;
                 class4.Clear();
                 this.read_value_exact(buf, ref index, max, class4);
                 if (class4.len > 0)
                 {
                     flag = true;
                 }
             }
             if (((((buf.b[index] == 0x76) || (buf.b[index] == 0x56)) && ((buf.b[index + 1] == 0x61) || (buf.b[index + 1] == 0x41))) && (((buf.b[index + 2] == 0x6c) || (buf.b[index + 2] == 0x4c)) && ((buf.b[index + 3] == 0x69) || (buf.b[index + 3] == 0x49)))) && ((((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)) && ((buf.b[index + 5] == 110) || (buf.b[index + 5] == 0x4e))) && (buf.b[index + 6] == 0x3d)))
             {
                 index += 7;
                 class5.Clear();
                 this.read_value_exact(buf, ref index, max, class5);
                 if ((class5.len > 0) && (valign != -1111))
                 {
                     if (class5.byteCmp("center") == 0)
                     {
                         valign = this.VALIGN_CENTER;
                     }
                     else if (class5.byteCmp("middle") == 0)
                     {
                         valign = this.VALIGN_CENTER;
                     }
                     else if (class5.byteCmp("bottom") == 0)
                     {
                         valign = this.VALIGN_BOTTOM;
                     }
                     else
                     {
                         valign = this.VALIGN_TOP;
                     }
                 }
                 continue;
             }
             if (((((buf.b[index] == 0x61) || (buf.b[index] == 0x41)) && ((buf.b[index + 1] == 0x6c) || (buf.b[index + 1] == 0x4c))) && (((buf.b[index + 2] == 0x69) || (buf.b[index + 2] == 0x49)) && ((buf.b[index + 3] == 0x67) || (buf.b[index + 3] == 0x47)))) && (((buf.b[index + 4] == 110) || (buf.b[index + 4] == 0x4e)) && (buf.b[index + 5] == 0x3d)))
             {
                 index += 6;
                 class5.Clear();
                 this.read_value_exact(buf, ref index, max, class5);
                 if ((class5.len > 0) && (align != -1111))
                 {
                     if (class5.byteCmp("center") == 0)
                     {
                         align = this.ALIGN_CENTER;
                     }
                     else if (class5.byteCmp("right") == 0)
                     {
                         align = this.ALIGN_RIGHT;
                     }
                 }
                 continue;
             }
             index++;
         }
     }
     if ((CSS_param != null) && flag)
     {
         flag = false;
         num2 = 0;
         while (num2 < CSS_param.styles)
         {
             if ((class4.byteCmp(((CSS_styles)CSS_param.CSS_style[num2]).name) == 0) && ((((CSS_styles)CSS_param.CSS_style[num2]).css_tag_type == CSS_tag_type.TD_CSS) || (((CSS_styles)CSS_param.CSS_style[num2]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
             {
                 flag = true;
                 break;
             }
             num2++;
         }
         if (flag)
         {
             if ((((CSS_styles)CSS_param.CSS_style[num2]).ablaze.b[7] == 1) && (bgcolor != -1111))
             {
                 bgcolor = ((CSS_styles)CSS_param.CSS_style[num2]).background_color + 3;
             }
             if (((CSS_styles)CSS_param.CSS_style[num2]).ablaze.b[11] == 1)
             {
                 width = ((CSS_styles)CSS_param.CSS_style[num2]).width;
                 if (((CSS_styles)CSS_param.CSS_style[num2]).width_in_percent)
                 {
                     percent = 1;
                 }
             }
         }
     }
     return width;
 }
예제 #4
0
 private bool CSS_read_style_params(ByteClass buf, ref int ct, int max, CSS_styles CSS_style, CSS_params CSS_param, ArrayList font_list, ArrayList color_list)
 {
     int num2;
     ByteClass class2 = new ByteClass();
     int index = ct;
     bool quote = false;
     while (ct < max)
     {
         if (buf.b[ct] == 0x7d)
         {
             max = ct;
             break;
         }
         ct++;
     }
     while (buf.b[index] == 0x7b)
     {
         index++;
     }
 Label_0F0F:
     while ((index < max) && (buf.b[index] != 0x7d))
     {
         bool flag2;
         double num3;
         this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
         if (index < (buf.len - 1))
         {
             while (((buf.b[index] == 0x3a) || (buf.b[index] == 0x3b)) || (((buf.b[index] >= 0) && (buf.b[index] <= 0x20)) && (index < (buf.len - 1))))
             {
                 index++;
             }
         }
         new ByteClass();
         if (class2.byteCmpi((string)CSS_param.names[0]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, true);
             num2 = 0;
             bool flag = false;
             while ((num2 < CSS_param.font_list_num) && (num2 < this.MAX_FONTS))
             {
                 if (class2.byteCmpi((string)font_list[num2]) == 0)
                 {
                     flag = true;
                     break;
                 }
                 num2++;
             }
             if (!flag)
             {
                 font_list.Add(class2.ByteToString());
                 CSS_style.ablaze.b[0] = 1;
                 CSS_style.font_family = (byte)CSS_param.font_list_num;
                 CSS_param.font_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[0] = 1;
                 CSS_style.font_family = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[1]) == 0)
         {
             this.read_color(buf, ref index, max, class2);
             index += class2.len;
             num2 = 0;
             flag2 = false;
             while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
             {
                 if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                 {
                     flag2 = true;
                     break;
                 }
                 num2++;
             }
             if (!flag2)
             {
                 color_list.Add(class2.ByteToString());
                 class2.Clear();
                 CSS_style.ablaze.b[1] = 1;
                 CSS_style.color = (byte)CSS_param.color_list_num;
                 CSS_param.color_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[1] = 1;
                 CSS_style.color = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[2]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
             if (class2.byteCmpi("bold") == 0)
             {
                 CSS_style.ablaze.b[2] = 1;
                 CSS_style.font_weight = 1;
             }
             if (class2.byteCmpi("normal") == 0)
             {
                 CSS_style.ablaze.b[2] = 1;
                 CSS_style.font_weight = 0;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[3]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = this.ToFloat(class2);
             if (class2.IndexOfBegin("px") != -1)
             {
                 num3 *= 0.75;
             }
             else if (class2.IndexOfBegin("em") != -1)
             {
                 num3 *= 12;
             }
             else if (class2.byteCmp("xx-small") == 0)
             {
                 num3 = 8;
             }
             else if (class2.byteCmp("x-small") == 0)
             {
                 num3 = 10;
             }
             else if (class2.byteCmp("small") == 0)
             {
                 num3 = 12;
             }
             else if (class2.byteCmp("medium") == 0)
             {
                 num3 = 14;
             }
             else if (class2.byteCmp("large") == 0)
             {
                 num3 = 18;
             }
             else if (class2.byteCmp("x-large") == 0)
             {
                 num3 = 24;
             }
             else if (class2.byteCmp("xx-large") == 0)
             {
                 num3 = 36;
             }
             else if (class2.IndexOfBegin("%") != -1)
             {
                 num3 = (num3 * 12) / 100;
             }
             if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
             {
                 CSS_style.ablaze.b[3] = 1;
                 CSS_style.font_size = (byte)(num3 * 2);
             }
             continue;
         }
         if ((class2.byteCmpi((string)CSS_param.names[4]) == 0) || (class2.byteCmpi("align") == 0))
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             if (((class2.b[0] == 0x6c) || (class2.b[0] == 0x72)) || ((class2.b[0] == 0x63) || (class2.b[0] == 0x6a)))
             {
                 CSS_style.ablaze.b[4] = 1;
                 CSS_style.text_align = class2.b[0];
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[5]) == 0)
         {
             this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
             if (class2.byteCmpi("italic") == 0)
             {
                 CSS_style.ablaze.b[5] = 1;
                 CSS_style.font_style = 0x69;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[6]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = (int)(this.ToFloat(class2) * 20f);
             if (class2.IndexOfBegin("px") != 0)
             {
                 num3 = (int)(num3 / 1.333299994468689);
             }
             if ((num3 >= 0) && (num3 <= 250))
             {
                 CSS_style.ablaze.b[6] = 1;
                 CSS_style.margin_top = (byte)num3;
             }
             continue;
         }
         if ((class2.byteCmpi((string)CSS_param.names[7]) == 0) || (class2.byteCmpi("background") == 0))
         {
             if (!this.read_color(buf, ref index, max, class2))
             {
                 continue;
             }
             index += class2.len;
             num2 = 0;
             flag2 = false;
             while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
             {
                 if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                 {
                     flag2 = true;
                     break;
                 }
                 num2++;
             }
             if (!flag2)
             {
                 color_list.Add(class2.ByteToString());
                 class2.Clear();
                 CSS_style.ablaze.b[7] = 1;
                 CSS_style.background_color = (byte)CSS_param.color_list_num;
                 CSS_param.color_list_num++;
             }
             else
             {
                 CSS_style.ablaze.b[7] = 1;
                 CSS_style.background_color = (byte)num2;
             }
             continue;
         }
         if (class2.byteCmpi((string)CSS_param.names[8]) == 0)
         {
             int num4 = 1;
             int num5 = 1;
             for (int i = 0; ((num4 != 0) || (num5 != 0)) && (i < 10); i++)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 num4 = num5;
                 num5 = class2.b[0];
                 if (class2.byteCmpi("italic") == 0)
                 {
                     CSS_style.ablaze.b[5] = 1;
                     CSS_style.font_style = 0x69;
                 }
                 if (class2.byteCmpi("bold") == 0)
                 {
                     CSS_style.ablaze.b[2] = 1;
                     CSS_style.font_weight = 1;
                 }
                 if (class2.IndexOfBegin("px") != 0)
                 {
                     num3 = this.ToFloat(class2);
                     num3 = (int)(num3 * 0.75);
                     if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
                     {
                         CSS_style.ablaze.b[3] = 1;
                         CSS_style.font_size = (byte)(num3 * 2);
                     }
                 }
                 if (class2.IndexOfBegin("pt") != 0)
                 {
                     num3 = this.ToFloat(class2);
                     if ((num3 > this.FONT_SIZE_MIN) && (num3 < this.FONT_SIZE_MAX))
                     {
                         CSS_style.ablaze.b[3] = 1;
                         CSS_style.font_size = (byte)(num3 * 2);
                     }
                 }
                 if (class2.byteCmpi((string)CSS_param.names[1]) == 0)
                 {
                     while ((buf.b[index] == 0x3a) || (buf.b[index] == 0x20))
                     {
                         index++;
                     }
                     this.read_color(buf, ref index, max, class2);
                     index += class2.len;
                     num2 = 0;
                     flag2 = false;
                     while ((num2 < CSS_param.color_list_num) && (num2 < this.MAX_COLORS))
                     {
                         if (class2.byteCmpi(color_list[num2].ToString()) == 0)
                         {
                             flag2 = true;
                             break;
                         }
                         num2++;
                     }
                     if (!flag2)
                     {
                         color_list.Add(class2.ByteToString());
                         class2.Clear();
                         CSS_style.ablaze.b[1] = 1;
                         CSS_style.color = (byte)CSS_param.color_list_num;
                         CSS_param.color_list_num++;
                     }
                     else
                     {
                         CSS_style.ablaze.b[1] = 1;
                         CSS_style.color = (byte)num2;
                     }
                 }
             }
         }
         else if (class2.byteCmpi((string)CSS_param.names[9]) == 0)
         {
             this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
             num3 = (int)this.ToFloat(class2);
             if (num3 > 0)
             {
                 CSS_style.ablaze.b[9] = 1;
                 CSS_style.top = (byte)num3;
             }
         }
         else
         {
             if (class2.byteCmpi((string)CSS_param.names[10]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)this.ToFloat(class2);
                 if (num3 > 0)
                 {
                     CSS_style.ablaze.b[10] = 1;
                     CSS_style.left = (byte)num3;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[11]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)this.ToFloat(class2);
                 if (num3 > 0)
                 {
                     CSS_style.ablaze.b[11] = 1;
                     CSS_style.width = (byte)num3;
                     if (class2.IndexOf("%") != -1)
                     {
                         CSS_style.width_in_percent = true;
                     }
                     else
                     {
                         CSS_style.width_in_percent = false;
                     }
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[12]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("underline") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 0x75;
                 }
                 if (class2.byteCmpi("none") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 110;
                 }
                 if (class2.byteCmpi("line-through") == 0)
                 {
                     CSS_style.ablaze.b[12] = 1;
                     CSS_style.text_decoration = 0x73;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[13]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("sub") == 0)
                 {
                     CSS_style.ablaze.b[13] = 1;
                     CSS_style.vertical_align = 0x62;
                 }
                 if (class2.byteCmpi("super") == 0)
                 {
                     CSS_style.ablaze.b[13] = 1;
                     CSS_style.vertical_align = 0x72;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[14]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("avoid") == 0)
                 {
                     CSS_style.ablaze.b[14] = 1;
                     CSS_style.page_break_before = 0;
                 }
                 else if (class2.len > 0)
                 {
                     CSS_style.ablaze.b[14] = 1;
                     CSS_style.page_break_before = 1;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[15]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("avoid") == 0)
                 {
                     CSS_style.ablaze.b[15] = 1;
                     CSS_style.page_break_after = 0;
                 }
                 else if (class2.len > 0)
                 {
                     CSS_style.ablaze.b[15] = 1;
                     CSS_style.page_break_after = 1;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[0x10]) == 0)
             {
                 this.read_value_CSS(buf, ref index, max, class2, -1111, quote);
                 if (class2.byteCmpi("none") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 1;
                 }
                 else if (class2.byteCmpi("disc") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 2;
                 }
                 else if (class2.byteCmpi("circle") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 3;
                 }
                 else if (class2.byteCmpi("square") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 4;
                 }
                 else if (class2.byteCmpi("lower-roman") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 5;
                 }
                 else if (class2.byteCmpi("upper-roman") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 6;
                 }
                 else if (class2.byteCmpi("lower-alpha") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 7;
                 }
                 else if (class2.byteCmpi("upper-alpha") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 8;
                 }
                 else if (class2.byteCmpi("arabic") == 0)
                 {
                     CSS_style.ablaze.b[0x10] = 1;
                     CSS_style.list_style_type = 9;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi((string)CSS_param.names[0x11]) == 0)
             {
                 this.read_value_CSS_tolower(buf, ref index, max, class2, -1111);
                 num3 = (int)(this.ToFloat(class2) * 20f);
                 if (class2.IndexOfBegin("px") != 0)
                 {
                     num3 = (int)(num3 / 1.3333);
                 }
                 if ((num3 >= 0) && (num3 <= 250))
                 {
                     CSS_style.ablaze.b[0x11] = 1;
                     CSS_style.margin_bottom = (byte)num3;
                 }
                 goto Label_0F0F;
             }
             if (class2.byteCmpi("style") == 0)
             {
                 quote = true;
                 while ((((buf.b[index] == 0x3a) || (buf.b[index] == 0x20)) || (buf.b[index] == 0x3d)) && (index < max))
                 {
                     index++;
                 }
             }
         }
     }
 ct = index;
 for (num2 = 0; num2 < this.STYLES_KNOW; num2++)
 {
     if (CSS_style.ablaze.b[num2] == 1)
     {
         return true;
     }
 }
 return false;
 }
예제 #5
0
 private bool CSS_read_from_tags(CSS_params CSS_param, int max_buf_size, ByteClass buf, ref int ct)
 {
     int index = ct;
     int num3 = 0;
     if (max_buf_size <= 0)
     {
         return false;
     }
     if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x73)) && ((buf.b[index + 2] == 0x74) && (buf.b[index + 3] == 0x79))) && ((buf.b[index + 4] == 0x6c) && (buf.b[index + 5] == 0x65))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x53)) && ((buf.b[index + 2] == 0x74) && (buf.b[index + 3] == 0x79))) && ((buf.b[index + 4] == 0x6c) && (buf.b[index + 5] == 0x65)))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x53)) && ((buf.b[index + 2] == 0x54) && (buf.b[index + 3] == 0x59))) && ((buf.b[index + 4] == 0x4c) && (buf.b[index + 5] == 0x45))))
     {
         while ((buf.b[index + 5] != 0x3e) && (index < (CSS_param.buf_size + max_buf_size)))
         {
             index++;
         }
         index += 6;
         int num2 = 0;
         num3 = CSS_param.buf_pos;
         while ((num2 == 0) && (index < (CSS_param.buf_size + max_buf_size)))
         {
             if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x73) && (buf.b[index + 3] == 0x74))) && (((buf.b[index + 4] == 0x79) && (buf.b[index + 5] == 0x6c)) && ((buf.b[index + 6] == 0x65) && (buf.b[index + 7] == 0x3e)))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x53) && (buf.b[index + 3] == 0x74))) && (((buf.b[index + 4] == 0x79) && (buf.b[index + 5] == 0x6c)) && ((buf.b[index + 6] == 0x65) && (buf.b[index + 7] == 0x3e))))) || ((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x53) && (buf.b[index + 3] == 0x54))) && (((buf.b[index + 4] == 0x59) && (buf.b[index + 5] == 0x4c)) && ((buf.b[index + 6] == 0x45) && (buf.b[index + 7] == 0x3e)))))
             {
                 num2 = 1;
             }
             else
             {
                 CSS_param.buf.Add(buf.b[index]);
                 num3++;
                 index++;
             }
         }
         index += 7;
     }
     CSS_param.buf_size += max_buf_size;
     CSS_param.buf_pos = num3;
     CSS_param.use = true;
     ct = index;
     return true;
 }
예제 #6
0
 private bool CSS_read_file(CSS_params CSS_param)
 {
     string s = "";
     string url = CSS_param.file_name.ByteToString();
     bool flag = false;
     if ((((url.Length > 6) && ((url[0] == 'h') || (url[0] == 'H'))) && ((url[1] == 't') || (url[1] == 'T'))) && ((((url[2] == 't') || (url[2] == 'T')) && ((url[3] == 'p') || (url[3] == 'P'))) && (((url[4] == ':') && (url[5] == '/')) && (url[6] == '/'))))
     {
         flag = true;
     }
     try
     {
         if (flag)
         {
             s = this.DownloadFile(url);
         }
         else
         {
             StreamReader reader = File.OpenText(url);
             s = reader.ReadToEnd();
             reader.Close();
         }
         CSS_param.buf.Add(s);
     }
     catch
     {
         return false;
     }
     CSS_param.buf_size = CSS_param.buf.len;
     CSS_param.buf_pos += s.Length - 1;
     CSS_param.use = true;
     return true;
 }
예제 #7
0
 private bool CSS_insert_styles(ByteClass ablaze, CSS_styles style, CSS_params CSS_param, ByteClass align_def, ByteClass align_j, ByteClass align_c, ByteClass align_l, ByteClass align_r, ByteClass align, ByteClass bufout, ref int p_ct, ByteClass buf, ref int p_count2, int max, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, CSS_tag_type css_tag_type)
 {
     int ct = p_ct;
     int num2 = p_count2;
     ByteClass newb = new ByteClass(0x20);
     int num3 = 0;
     if ((!CSS_param.pos.open && (ablaze.b[9] == 1)) && ((ablaze.b[10] == 1) && (ablaze.b[11] == 1)))
     {
         CSS_param.pos.x = style.left * this.PX_TO_TWIPS;
         CSS_param.pos.y = style.top * this.PX_TO_TWIPS;
         if (this._pageOrientation == ePageOrientation.Portrait)
         {
             CSS_param.pos.w = this.page_width;
         }
         else
         {
             CSS_param.pos.w = this.page_height;
         }
         CSS_param.pos.w -= CSS_param.pos.x;
         CSS_param.pos.h = 10 * this.PX_TO_TWIPS;
         CSS_param.pos.pos_open_str = string.Concat(new object[] { @"{\pard\plain\posx", CSS_param.pos.x, @"\posy%d\absw", CSS_param.pos.w, @"\absh", CSS_param.pos.h, " " });
         CSS_param.pos.pos_close_str = @"\par}";
         CSS_param.pos.open = this.check_position_object(bufout, ct, max, style.css_tag_type);
         if (CSS_param.pos.open)
         {
             buf.Add(CSS_param.pos.pos_open_str);
             num2 += CSS_param.pos.pos_open_str.Length;
         }
     }
     if (((ablaze.b[14] == 1) && (this._preservePageBreaks == 1)) && (style.page_break_before == 1))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num2 += 0x10;
     }
     else if (((ablaze.b[15] == 1) && (this._preservePageBreaks == 1)) && ((style.page_break_after == 1) && (css_tag_type == CSS_tag_type.HR_CSS)))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num2 += 0x10;
     }
     if ((ablaze.b[0] == 1) && (this._preserveFontFace == 1))
     {
         num3 = style.font_family;
         if ((num3 >= 0) && (num3 < this.MAX_FONTS))
         {
             newb.Clear();
             newb.Add(@"\f" + ((num3 + 2)).ToString() + " ");
             may_use_space = true;
             buf.Add(newb);
             num2 += newb.len;
         }
     }
     if ((ablaze.b[1] == 1) && (this._preserveFontColor == 1))
     {
         if (!font_color_default && (color_stack_num < color_stack.len))
         {
             color_stack.b[color_stack_num++] = (byte)this.ToInt(font_color_temp.ToByteCStartPos(3));
         }
         font_color_default = false;
         font_color_temp.Clear();
         font_color_temp.Add(@"\cf" + ((style.color + 3)).ToString() + " ");
         may_use_space = true;
         if (!font_color_default)
         {
             buf.Add(font_color_temp);
             num2 += font_color_temp.len;
         }
     }
     if (ablaze.b[2] == 1)
     {
         if (style.font_weight == 1)
         {
             buf.Add(@"{\b ");
             num2 += 4;
             may_use_space = true;
         }
         if (style.font_weight == 0)
         {
             buf.Add(@"\b0 ");
             num2 += 4;
         }
         if (style.font_weight == 1)
         {
             CSS_param.bold++;
             if (CSS_param.bold <= 0)
             {
                 CSS_param.bold = 1;
             }
         }
     }
     if ((ablaze.b[3] == 1) && (this._preserveFontSize == 1))
     {
         font_size_default = false;
         font_size_temp.Clear();
         font_size_temp.Add(@"\fs" + style.font_size + " ");
         may_use_space = true;
         buf.Add(font_size_temp);
         num2 += font_size_temp.len;
     }
     if ((ablaze.b[4] == 1) && (this._preserveAlignment == 1))
     {
         if (style.text_align == 0x6c)
         {
             align = align_l;
         }
         else if (style.text_align == 0x72)
         {
             align = align_r;
         }
         else if (style.text_align == 0x63)
         {
             align = align_c;
         }
         else if (style.text_align == 0x6a)
         {
             align = align_j;
         }
         buf.Add(align);
         num2 += align.len;
     }
     if ((ablaze.b[5] == 1) && (style.font_style == 0x69))
     {
         buf.Add(@"{\i ");
         num2 += 4;
         CSS_param.italic++;
         if (CSS_param.italic <= 0)
         {
             CSS_param.italic = 1;
         }
         may_use_space = true;
     }
     if (ablaze.b[6] == 1)
     {
         newb.Clear();
         newb.Add(@"\sb" + style.margin_top + " ");
         buf.Add(newb);
         num2 += newb.len;
     }
     if ((ablaze.b[7] == 1) && (this._preserveBackgroundColor == 1))
     {
         font_color_temp.Clear();
         font_color_temp.Add(@"\chcbpat" + ((style.background_color + 3)).ToString() + " ");
         may_use_space = true;
         buf.Add(font_color_temp);
         num2 += font_color_temp.len;
     }
     if (ablaze.b[12] == 1)
     {
         if (style.text_decoration == 0x75)
         {
             buf.Add(@"{\ul ");
             num2 += 5;
         }
         if (style.text_decoration == 110)
         {
             buf.Add(@"{\ul0 ");
             num2 += 6;
         }
         if (style.text_decoration == 0x73)
         {
             buf.Add(@"{\strike ");
             num2 += 9;
         }
         CSS_param.underline++;
         if (CSS_param.underline <= 0)
         {
             CSS_param.underline = 1;
         }
     }
     if (ablaze.b[13] == 1)
     {
         if (style.vertical_align == 0x62)
         {
             buf.Add(@"{\sub ");
             num2 += 6;
         }
         if (style.vertical_align == 0x72)
         {
             buf.Add(@"{\super ");
             num2 += 8;
         }
         CSS_param.vertical_align++;
         if (CSS_param.vertical_align <= 0)
         {
             CSS_param.vertical_align = 1;
         }
     }
     p_count2 = num2;
     return true;
 }
예제 #8
0
 private bool CSS_insert(ByteClass align_def, ByteClass align_j, ByteClass align_c, ByteClass align_l, ByteClass align_r, ByteClass align, ByteClass bufout, ref int p_ct, ByteClass buf, ref int p_count2, int max, CSS_params CSS_param, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, ArrayList font_list, ArrayList color_list, CSS_tag_type css_tag_type)
 {
     new ByteClass();
     int index = p_ct;
     int num2 = p_count2;
     int num3 = 0;
     int num4 = 0;
     ByteClass class2 = new ByteClass(20);
     int num5 = 0;
     int num6 = 0;
     bool flag = false;
     ByteClass valueStr = new ByteClass(0x40);
     int ct = 0;
     if (bufout.b[index] == 60)
     {
         index++;
     }
     num3 = index;
     num5 = 1;
     num6 = 0;
     while ((index < bufout.len) && (num5 != num6))
     {
         if (bufout.b[index] == 0x3e)
         {
             num6++;
         }
         if (num5 == num6)
         {
             break;
         }
         if (((((bufout.b[index] == 0x73) || (bufout.b[index] == 0x53)) && ((bufout.b[index + 1] == 0x74) || (bufout.b[index + 1] == 0x54))) && (((bufout.b[index + 2] == 0x79) || (bufout.b[index + 2] == 0x59)) && ((bufout.b[index + 3] == 0x6c) || (bufout.b[index + 3] == 0x4c)))) && (((bufout.b[index + 4] == 0x65) || (bufout.b[index + 4] == 0x45)) && (this.IS_DELIMITER(bufout.b[index + 5]) || (bufout.b[index + 5] == 0x3d))))
         {
             index += 6;
             this.ReadValue(bufout, ref index, valueStr);
             break;
         }
         index++;
     }
     int len = valueStr.len;
     index = num3;
     num3 = 0;
     ct = 0;
     CSS_param.found = false;
     num5 = 1;
     num6 = 0;
     while ((index < max) && (num5 != num6))
     {
         if (bufout.b[index] == 0x3e)
         {
             num6++;
         }
         if (num5 == num6)
         {
             break;
         }
         if (((((bufout.b[index] == 0x63) || (bufout.b[index] == 0x43)) && ((bufout.b[index + 1] == 0x6c) || (bufout.b[index + 1] == 0x4c))) && (((bufout.b[index + 2] == 0x61) || (bufout.b[index + 2] == 0x41)) && ((bufout.b[index + 3] == 0x73) || (bufout.b[index + 3] == 0x53)))) && (((bufout.b[index + 4] == 0x73) || (bufout.b[index + 4] == 0x53)) && ((bufout.b[index + 5] == 0x3d) || (bufout.b[index + 5] == 0x20))))
         {
             if (bufout.b[index + 5] == 0x20)
             {
                 index += 6;
             }
             else
             {
                 index += 5;
             }
             this.read_value_exact(bufout, ref index, max, CSS_param.style_name);
             if (CSS_param.style_name.len > 0)
             {
                 CSS_param.found = true;
             }
         }
         if ((((bufout.b[index] == 0x69) || (bufout.b[index] == 0x49)) && ((bufout.b[index + 1] == 100) || (bufout.b[index + 1] == 0x44))) && (bufout.b[index + 2] == 0x3d))
         {
             index += 2;
             this.read_value_exact(bufout, ref index, max, CSS_param.style_name);
             if (CSS_param.style_name.len > 0)
             {
                 CSS_param.found = true;
             }
         }
         if ((((((this._preserveAlignment == 1) && (bufout.b[index] == 0x20)) && ((bufout.b[index + 1] == 0x61) || (bufout.b[index + 1] == 0x41))) && ((bufout.b[index + 2] == 0x6c) || (bufout.b[index + 2] == 0x4c))) && (((bufout.b[index + 3] == 0x69) || (bufout.b[index + 3] == 0x49)) && ((bufout.b[index + 4] == 0x67) || (bufout.b[index + 4] == 0x47)))) && ((bufout.b[index + 5] == 110) || (bufout.b[index + 5] == 0x4e)))
         {
             index += 6;
             this.read_value(bufout, ref index, class2);
             flag = true;
             align.Clear();
             if (class2.byteCmpi("center") == 0)
             {
                 align.Add(@"\qc ");
             }
             else if (class2.byteCmpi("middle") == 0)
             {
                 align.Add(@"\qc ");
             }
             else if (class2.byteCmpi("left") == 0)
             {
                 align.Add(@"\ql ");
             }
             else if (class2.byteCmpi("right") == 0)
             {
                 align.Add(@"\qr ");
             }
             else if (class2.byteCmpi("justify") == 0)
             {
                 align.Add(@"\qj ");
             }
         }
         index++;
     }
     if ((this._preserveAlignment == 1) && flag)
     {
         buf.Add(align);
         num2 += align.len;
     }
     for (num3 = 0; num3 < CSS_param.styles; num3++)
     {
         if (((((CSS_styles)CSS_param.CSS_style[num3]).name.len == 0) && (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type != CSS_tag_type.UNKNOWN_CSS)) && (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == css_tag_type))
         {
             CSS_stack_element _element = new CSS_stack_element();
             CSS_param.stack_tag.Add(_element);
             ((CSS_stack_element)CSS_param.stack_tag[CSS_param.stack_tag_num]).style_index = num3;
             ((CSS_stack_element)CSS_param.stack_tag[CSS_param.stack_tag_num]).css_tag_type = css_tag_type;
             if (CSS_param.stack_tag_num < (this.STK_MAX - 1))
             {
                 CSS_param.stack_tag_num++;
             }
             this.CSS_insert_styles(((CSS_styles)CSS_param.CSS_style[num3]).ablaze, (CSS_styles)CSS_param.CSS_style[num3], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             break;
         }
     }
     if (css_tag_type != CSS_tag_type.FONT_CSS)
     {
         CSS_styles _styles = new CSS_styles();
         CSS_param.CSS_style_str_stack.Add(_styles);
         this.CSS_reset_style((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]);
         if (this.CSS_read_style_params(valueStr, ref ct, len, (CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num], CSS_param, font_list, color_list))
         {
             if (CSS_param.style_str_stack_num > (this.STK_MAX - 1))
             {
                 CSS_param.style_str_stack_num = this.STK_MAX - 1;
             }
             this.CSS_insert_styles(((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]).ablaze, (CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             ((CSS_styles)CSS_param.CSS_style_str_stack[CSS_param.style_str_stack_num]).css_tag_type = css_tag_type;
             if (CSS_param.style_str_stack_num < (this.STK_MAX - 1))
             {
                 CSS_param.style_str_stack_num++;
             }
         }
         else
         {
             CSS_param.CSS_style_str_stack.RemoveAt(CSS_param.style_str_stack_num);
         }
     }
     if (CSS_param.found)
     {
         CSS_param.found = false;
         num3 = 0;
         while (num3 < CSS_param.styles)
         {
             if ((((CSS_styles)CSS_param.CSS_style[num3]).name.byteCmp(CSS_param.style_name) == 0) && ((((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == css_tag_type) || (((CSS_styles)CSS_param.CSS_style[num3]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
             {
                 CSS_param.found = true;
                 break;
             }
             num3++;
         }
         if (CSS_param.found)
         {
             CSS_stack_element _element2 = new CSS_stack_element();
             CSS_param.stack.Add(_element2);
             ((CSS_stack_element)CSS_param.stack[CSS_param.stack_num]).style_index = num3;
             ((CSS_stack_element)CSS_param.stack[CSS_param.stack_num]).css_tag_type = css_tag_type;
             if (CSS_param.stack_num < (this.STK_MAX - 1))
             {
                 CSS_param.stack_num++;
             }
             for (num4 = 0; num4 < this.STYLES_KNOW; num4++)
             {
                 CSS_param.ablaze.b[num4] = ((CSS_styles)CSS_param.CSS_style[num3]).ablaze.b[num4];
             }
             this.CSS_insert_styles(CSS_param.ablaze, (CSS_styles)CSS_param.CSS_style[num3], CSS_param, align_def, align_j, align_c, align_l, align_r, align, bufout, ref index, buf, ref num2, max, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, css_tag_type);
             if (css_tag_type == CSS_tag_type.SPAN_CSS)
             {
                 CSS_param.span++;
             }
             else if (css_tag_type == CSS_tag_type.DIV_CSS)
             {
                 CSS_param.div++;
             }
             else if (css_tag_type == CSS_tag_type.P_CSS)
             {
                 CSS_param.p_tag_open++;
             }
             else if (css_tag_type == CSS_tag_type.EM_CSS)
             {
                 CSS_param.em_tag_open++;
             }
             else if (css_tag_type == CSS_tag_type.FONT_CSS)
             {
                 CSS_param.font_tag_open++;
             }
         }
     }
     p_ct = index;
     p_count2 = num2;
     return CSS_param.found;
 }
예제 #9
0
 private bool CSS_del_from_style_str_stack(int style_num, CSS_params CSS_param, CSS_tag_type css_tag_type)
 {
     int num = 0;
     CSS_styles _styles = new CSS_styles();
     if ((style_num + 1) != CSS_param.style_str_stack_num)
     {
         for (num = style_num; (num < CSS_param.style_str_stack_num) && (num < (CSS_param.CSS_style_str_stack.Count - 1)); num++)
         {
             _styles = (CSS_styles)CSS_param.CSS_style_str_stack[num + 1];
             CSS_param.CSS_style_str_stack[num] = _styles;
         }
     }
     CSS_param.style_str_stack_num--;
     return true;
 }
예제 #10
0
 private bool CSS_del_from_stack_tag(ref int style_num, CSS_params CSS_param, CSS_tag_type css_tag_type)
 {
     int num = 0;
     int num2 = 0;
     CSS_stack_element _element = new CSS_stack_element();
     if (CSS_param.stack_tag_num <= 0)
     {
         CSS_param.stack_tag_num = 0;
         return false;
     }
     num2 = CSS_param.stack_tag_num - 1;
     CSS_param.found = false;
     while (num2 >= 0)
     {
         if (((CSS_stack_element)CSS_param.stack_tag[num2]).css_tag_type == css_tag_type)
         {
             CSS_param.found = true;
             num = num2;
             break;
         }
         num2--;
     }
     if (!CSS_param.found)
     {
         return false;
     }
     if (num > 0)
     {
         CSS_param.CSS_style_default = (CSS_styles)CSS_param.CSS_style[num - 1];
         style_num = num;
     }
     if ((num + 1) != CSS_param.stack_tag_num)
     {
         for (num2 = num; (num2 < CSS_param.stack_tag_num) && (num2 < (CSS_param.stack_tag.Count - 1)); num2++)
         {
             _element = (CSS_stack_element)CSS_param.stack_tag[num2 + 1];
             CSS_param.stack_tag[num2] = _element;
         }
     }
     CSS_param.stack_tag_num--;
     return true;
 }
예제 #11
0
 private bool CSS_close_styles(ByteClass ablaze, CSS_styles style, CSS_params CSS_param, ByteClass align_def, ByteClass align_j, ByteClass align, ByteClass buf, ref int p_count2, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, int fontsize, CSS_tag_type css_tag_type, ArrayList styleStack, int styleStackNum)
 {
     int num = p_count2;
     bool flag = false;
     ByteClass newb = new ByteClass(0x10);
     int num2 = 0;
     if ((CSS_param.pos.open && (ablaze.b[9] == 1)) && ((ablaze.b[10] == 1) && (ablaze.b[11] == 1)))
     {
         buf.Add(CSS_param.pos.pos_close_str);
         num += CSS_param.pos.pos_close_str.Length;
         CSS_param.pos.open = false;
     }
     if ((ablaze.b[2] == 1) || (css_tag_type == CSS_tag_type.TD_CSS))
     {
         if (CSS_param.bold > 0)
         {
             buf.Add("}");
             num++;
         }
         CSS_param.bold--;
     }
     if ((ablaze.b[0] == 1) && (this._preserveFontFace == 1))
     {
         newb.Clear();
         newb.Add(@"\f0 ");
         if ((styleStack != null) && (styleStackNum > 0))
         {
             flag = false;
             num2 = styleStackNum - 1;
             while (num2 >= 0)
             {
                 if (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).ablaze.b[0] == 1)
                 {
                     flag = true;
                     break;
                 }
                 num2--;
             }
             if (flag && (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_family >= 0))
             {
                 newb.Clear();
                 newb.Add(@"\f" + ((((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_family + 2)).ToString() + " ");
             }
         }
         may_use_space = true;
         buf.Add(newb);
         num += newb.len;
     }
     if ((ablaze.b[3] == 1) && (this._preserveFontSize == 1))
     {
         if ((styleStack == null) || (styleStackNum <= 0))
         {
             if (style.font_size != fontsize)
             {
                 font_size_default = false;
                 font_size_temp.Clear();
                 font_size_temp.Add(@"\fs" + fontsize + " ");
                 may_use_space = true;
                 buf.Add(font_size_temp);
                 num += font_size_temp.len;
             }
         }
         else
         {
             flag = false;
             num2 = styleStackNum - 1;
             while (num2 >= 0)
             {
                 if (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).ablaze.b[3] == 1)
                 {
                     flag = true;
                     break;
                 }
                 num2--;
             }
             if (flag && (((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_size > 0))
             {
                 font_size_default = false;
                 font_size_temp.Clear();
                 font_size_temp.Add(@"\fs" + ((CSS_styles)CSS_param.CSS_style[((CSS_stack_element)styleStack[num2]).style_index]).font_size + " ");
                 may_use_space = true;
                 buf.Add(font_size_temp);
                 num += font_size_temp.len;
             }
         }
     }
     if (((ablaze.b[4] == 1) && (this._preserveAlignment == 1)) && (css_tag_type != CSS_tag_type.TD_CSS))
     {
         align.Clear();
         align.Add(align_def);
         if (css_tag_type != CSS_tag_type.DIV_CSS)
         {
             buf.Add(align);
             num += align.len;
         }
     }
     if (((ablaze.b[5] == 1) || (css_tag_type == CSS_tag_type.TD_CSS)) && (CSS_param.italic > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.italic--;
     }
     if ((ablaze.b[1] == 1) && (this._preserveFontColor == 1))
     {
         if (color_stack_num > 0)
         {
             font_color_temp.Clear();
             font_color_temp.Add(@"\cf" + color_stack.b[color_stack_num - 1] + " ");
             if ((ablaze.b[5] == 1) || (ablaze.b[2] == 1))
             {
                 may_use_space = true;
             }
             else
             {
                 may_use_space = false;
             }
             color_stack_num--;
         }
         else
         {
             if (CSS_param.body_tag && (ablaze.b[1] == 1))
             {
                 font_color_temp.Clear();
                 if (((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index]).ablaze.b[1] == 1)
                 {
                     font_color_temp.Add(@"\cf" + (((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index]).color + 3) + " ");
                 }
                 else
                 {
                     font_color_temp.Add(@"\cf1 ");
                 }
             }
             else
             {
                 font_color_temp.Clear();
                 font_color_temp.Add(@"\cf1 ");
             }
             if ((ablaze.b[5] == 1) || (ablaze.b[2] == 1))
             {
                 may_use_space = true;
             }
             else
             {
                 may_use_space = false;
             }
         }
         buf.Add(font_color_temp);
         num += font_color_temp.len;
     }
     if ((ablaze.b[7] == 1) && (this._preserveBackgroundColor == 1))
     {
         font_color_temp.Clear();
         font_color_temp.Add(@"\chcbpat0 ");
         may_use_space = true;
         buf.Add(font_color_temp);
         num += font_color_temp.len;
     }
     if ((ablaze.b[12] == 1) && (CSS_param.underline > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.underline--;
     }
     if ((ablaze.b[13] == 1) && (CSS_param.vertical_align > 0))
     {
         buf.Add("}");
         num++;
         CSS_param.vertical_align--;
     }
     if (((ablaze.b[15] == 1) && (this._preservePageBreaks == 1)) && (style.page_break_after == 1))
     {
         buf.Add("\n\\pard\\page\\par\n");
         num += 0x10;
     }
     p_count2 = num;
     return true;
 }
예제 #12
0
 private int CSS_close(ByteClass align_def, ByteClass align_j, ByteClass align, ByteClass buf, ref int p_count2, CSS_params CSS_param, ref bool font_color_default, ByteClass font_color_temp, ByteClass color_stack, ref int color_stack_num, ref bool may_use_space, ref bool font_size_default, ByteClass font_size_temp, int fontsize, CSS_tag_type css_tag_type)
 {
     int num = p_count2;
     int num2 = 0;
     int num3 = 0;
     bool flag = false;
     fontsize *= 2;
     if ((css_tag_type != CSS_tag_type.UNKNOWN_CSS) && this.CSS_del_from_stack_tag(ref num3, CSS_param, css_tag_type))
     {
         num2 = ((CSS_stack_element)CSS_param.stack_tag[num3]).style_index;
         if ((num2 >= 0) && (num2 < CSS_param.styles))
         {
             this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style[num2]).ablaze, (CSS_styles)CSS_param.CSS_style[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, null, 0);
         }
         p_count2 = num;
     }
     if (CSS_param.style_str_stack_num > 0)
     {
         flag = false;
         num2 = CSS_param.style_str_stack_num - 1;
         while (num2 >= 0)
         {
             if (css_tag_type == ((CSS_styles)CSS_param.CSS_style_str_stack[num2]).css_tag_type)
             {
                 flag = true;
                 break;
             }
             num2--;
         }
     }
     if (flag)
     {
         for (int i = CSS_param.style_str_stack_num - 1; i > num2; i--)
         {
             this.CSS_close(align_def, align_j, align, buf, ref p_count2, CSS_param, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, ((CSS_styles)CSS_param.CSS_style_str_stack[i]).css_tag_type);
         }
         this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style_str_stack[num2]).ablaze, (CSS_styles)CSS_param.CSS_style_str_stack[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, null, 0);
         p_count2 = num;
         this.CSS_reset_style((CSS_styles)CSS_param.CSS_style_str_stack[num2]);
         this.CSS_del_from_style_str_stack(num2, CSS_param, css_tag_type);
     }
     if (css_tag_type == CSS_tag_type.SPAN_CSS)
     {
         if (CSS_param.span <= 0)
         {
             CSS_param.span = 0;
             return 0;
         }
         CSS_param.span--;
     }
     else if (css_tag_type == CSS_tag_type.DIV_CSS)
     {
         if (align != align_def)
         {
             align.Clear();
             align.Add(align_def);
             buf.Add(align);
             num += align.len;
             p_count2 = num;
         }
         if (CSS_param.div <= 0)
         {
             CSS_param.div = 0;
             return 0;
         }
         CSS_param.div--;
     }
     else if (css_tag_type == CSS_tag_type.P_CSS)
     {
         if (align != align_def)
         {
             align.Clear();
             align.Add(align_def);
             buf.Add(align);
             num += align.len;
             p_count2 = num;
         }
         if (CSS_param.p_tag_open <= 0)
         {
             CSS_param.p_tag_open = 0;
             return 0;
         }
         CSS_param.p_tag_open--;
     }
     else if (css_tag_type == CSS_tag_type.EM_CSS)
     {
         if (CSS_param.em_tag_open <= 0)
         {
             CSS_param.em_tag_open = 0;
             return 0;
         }
         CSS_param.em_tag_open--;
     }
     else if (css_tag_type == CSS_tag_type.FONT_CSS)
     {
         if (CSS_param.font_tag_open <= 0)
         {
             CSS_param.font_tag_open = 0;
             return 0;
         }
         CSS_param.font_tag_open--;
     }
     else if (css_tag_type != CSS_tag_type.TD_CSS)
     {
         return 0;
     }
     if (this.CSS_del_from_stack(ref num3, CSS_param, css_tag_type))
     {
         num2 = ((CSS_stack_element)CSS_param.stack[num3]).style_index;
         if ((num2 < 0) || (num2 > (CSS_param.styles - 1)))
         {
             return 0;
         }
         this.CSS_close_styles(((CSS_styles)CSS_param.CSS_style[num2]).ablaze, (CSS_styles)CSS_param.CSS_style[num2], CSS_param, align_def, align_j, align, buf, ref num, ref font_color_default, font_color_temp, color_stack, ref color_stack_num, ref may_use_space, ref font_size_default, font_size_temp, fontsize, css_tag_type, CSS_param.stack, CSS_param.stack_num);
         p_count2 = num;
     }
     return 0;
 }
예제 #13
0
 private void CSS_analyse(CSS_params CSS_param, ByteClass buf, ArrayList font_list, ArrayList color_list)
 {
     int num3;
     int num2 = 0;
     int num4 = 0;
     int num5 = 0;
     int ct = 0;
     ByteClass class2 = new ByteClass();
     buf.ByteToString();
     int index = 0;
     CSS_param.styles = 0;
     while (index < buf.len)
     {
         if ((buf.b[index] == 0x7b) && (num2 == 0))
         {
             num2++;
             num3 = index;
             num5 = this.CSS_read_style_name(buf, ref num3, class2);
         }
         if ((buf.b[index] == 0x7d) && (num2 == 1))
         {
             if (num5 > 1)
             {
                 CSS_param.styles += num5;
             }
             else
             {
                 CSS_param.styles++;
             }
             num2 = 0;
             num5 = 0;
         }
         index++;
     }
     for (index = 0; index < CSS_param.styles; index++)
     {
         CSS_styles cSS = new CSS_styles();
         this.CSS_reset_style(cSS);
         CSS_param.CSS_style.Add(cSS);
     }
     int num7 = 0;
     for (num3 = 0; num3 < (buf.len - 1); num3++)
     {
         if ((buf.b[num3] == 0x2f) && (buf.b[num3 + 1] == 0x2a))
         {
             num7 = 0;
             while (num3 < (buf.len - 1))
             {
                 if ((buf.b[num3] == 0x2f) && (buf.b[num3 + 1] == 0x2a))
                 {
                     num7++;
                 }
                 if ((buf.b[num3] == 0x2a) && (buf.b[num3 + 1] == 0x2f))
                 {
                     num7--;
                     buf.b[num3] = 0x20;
                     buf.b[num3 + 1] = 0x20;
                     if (num7 <= 0)
                     {
                         break;
                     }
                 }
                 buf.b[num3] = 0x20;
                 num3++;
             }
         }
     }
     bool flag = false;
     num3 = 0;
     num4 = 0;
     while ((num3 < buf.len) && (num4 < CSS_param.styles))
     {
         if (buf.b[num3] == 0x7b)
         {
             num5 = this.CSS_read_style_name(buf, ref num3, ((CSS_styles)CSS_param.CSS_style[num4]).name);
             if (num5 > 0)
             {
                 if (num5 > 1)
                 {
                     this.CSS_read_second_name(buf, ref num3, CSS_param.buf_size, ((CSS_styles)CSS_param.CSS_style[num4]).name);
                     this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                     num5--;
                     ct = num3;
                     while ((buf.b[num3] != 0x7b) && (num3 < CSS_param.buf_size))
                     {
                         num3++;
                     }
                 }
                 this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                 if (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x70) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 80)) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x2e))
                 {
                     CSS_param.p_tag = true;
                 }
                 if ((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x65) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x45)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6d) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4d))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x2e))
                 {
                     CSS_param.em_tag = true;
                 }
                 if (((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x62) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x42)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6f) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4f))) && (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 100) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x44)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x79) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x59)))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[4] == 0))
                 {
                     if (CSS_param.body_tag)
                     {
                         flag = true;
                     }
                     else
                     {
                         CSS_param.body_tag = true;
                         CSS_param.body_tag_index = num4;
                     }
                 }
                 if (((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x70) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 80)) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0))
                 {
                     CSS_param.p_tag_only = true;
                     CSS_param.p_tag_only_index = num4;
                 }
                 this.CSS_read_style_params(buf, ref num3, CSS_param.buf_size, (CSS_styles)CSS_param.CSS_style[num4], CSS_param, font_list, color_list);
                 if (((flag && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x62) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[0] == 0x42))) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x6f) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[1] == 0x4f))) && ((((((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 100) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[2] == 0x44)) && ((((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x79) || (((CSS_styles)CSS_param.CSS_style[num4]).name.b[3] == 0x59))) && (((CSS_styles)CSS_param.CSS_style[num4]).name.b[4] == 0)))
                 {
                     this.CSSJoinStyles((CSS_styles)CSS_param.CSS_style[CSS_param.body_tag_index], (CSS_styles)CSS_param.CSS_style[num4]);
                 }
                 num4++;
             }
             if (num5 > 1)
             {
                 while (num5 != 0)
                 {
                     if (num4 < (CSS_param.styles - 1))
                     {
                         ((CSS_styles)CSS_param.CSS_style[num4 - 1]).CopyCSS_styles((CSS_styles)CSS_param.CSS_style[num4]);
                         this.CSS_read_second_name(buf, ref ct, CSS_param.buf_size, ((CSS_styles)CSS_param.CSS_style[num4]).name);
                         this.CSS_parse_name(((CSS_styles)CSS_param.CSS_style[num4]).name, (CSS_styles)CSS_param.CSS_style[num4]);
                         num4++;
                     }
                     num5--;
                 }
             }
         }
         num3++;
     }
 }
예제 #14
0
        private string ConvertStringPrivate(string htmlString, ArrayList ImageList)
        {
            
            int num4;
            int num5;
            int num38;
            if ((this._tableCellPadding > -1) && (this._tableCellPadding < 11))
            {
                this.TRPADDR = this._tableCellPadding * 20;
                this.TRPADDL = this._tableCellPadding * 20;
                this.TRPADDB = this._tableCellPadding * 20;
                this.TRPADDT = this._tableCellPadding * 20;
            }
            string s = this.LF + @"\trowd\trgaph" + this.TRGAPH.ToString() + @"\trautofit1\trpaddfr3\trpaddfl3\trpaddft3\trpaddfb3\trpaddr" + this.TRPADDR.ToString() + @"\trpaddl" + this.TRPADDL.ToString() + @"\trpaddb" + this.TRPADDB.ToString() + @"\trpaddt" + this.TRPADDT.ToString() + " ";
            string str2 = this.LF + @"{\*\nesttableprops\trowd\trgaph" + this.TRGAPH.ToString() + @"\trautofit1\trpaddfr3\trpaddfl3\trpaddft3\trpaddfb3\trpaddr" + this.TRPADDR.ToString() + @"\trpaddl" + this.TRPADDL.ToString() + @"\trpaddb" + this.TRPADDB.ToString() + @"\trpaddt" + this.TRPADDT.ToString() + " ";
            string str3 = @"{\pict\pngblip\picw420\pich375\picwgoal420\pichgoal375\picscalex100\picscaley100" + this.LF + "89504e470d0a1a0a0000000d494844520000001c000000190803000000151ebe15000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000206348524d00007a26000080840000fa00000080e8000075300000ea6000003a98000017709cba513c00000060504c5445000000fbf9eedfddd1cccccc7a786d202020f2f0e5171718333333faf8ede6e6e6f4f2e7848276d7d5ce141414ffffffdfdfdf7b7a70272727f7f7f73b3b3cf0f0efd6d7d7e4e2d6858378f7efef807e74000000000000000000000000000000d2cf2ddc00000083494441542853c5925d0fc2200c45afa263b6dbcac78a8bffff872a6862228d6fcbce232797de14207fc02132d3979f0290f9123f4cf74eba48da20e55e3e723ba3556f86d46ae90a32e414d62094e0ade41690ca085fc498b99187c7524406ab50599ab364cce292ab212ba9afaeedc25ece67663ef150e966be576072cc63eff2fb9e550c27c74d708d7c0000000049454e44ae426082}" + this.LF;
            string str4 = @"{\pict\pngblip\picw420\pich375\picwgoal420\pichgoal375\picscalex100\picscaley100" + this.LF + "89504e470d0a1a0a0000000d494844520000001c000000190803000000151ebe15000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000206348524d00007a26000080840000fa00000080e8000075300000ea6000003a98000017709cba513c00000030504c54457a786dffffffe5e5e4ccccccf2f0e5f5f4f2d7d5cef4f2e77b7a70dfddd1807e74f0f0eff7f7f8e4e2d684827600000079b7580a000000494944415428536360c40318064492950901d01cc0c0c8c6c001057cbc1892cc1c4cdc50c08e29c9c5031363c122c93ac82439c875101b273b0b0c60f8131e0498313b30914d93d4070094c8044f2aaddf8c0000000049454e44ae426082}" + this.LF;
            string str5 = @"{\pict\pngblip\picw420\pich375\picwgoal420\pichgoal375\picscalex100\picscaley100" + this.LF + "89504e470d0a1a0a0000000d494844520000001c000000190803000000151ebe15000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000206348524d00007a26000080840000fa00000080e8000075300000ea6000003a98000017709cba513c00000018504c5445000000fffffff1efe2aca899716f64000000000000000000d5d8b27300000053494441542853c59131120030040489fcffcd3934194491c6150a6b624d889bd01c14246f3721918d64ac104847bcde71e89d554063a45391a2a790903ff87cb615625966e2359e62202368ce7d59bd7942e8006d6903093c53bdc70000000049454e44ae42608200000000000000}" + this.LF;
            string str6 = @"{\pict\pngblip\picw420\pich375\picwgoal420\pichgoal375\picscalex100\picscaley100" + this.LF + "89504e470d0a1a0a0000000d494844520000001c000000190803000000151ebe15000000017352474200aece1ce90000000467414d410000b18f0bfc6105000000206348524d00007a26000080840000fa00000080e8000075300000ea6000003a98000017709cba513c0000000c504c5445716f64fffffff1efe2aca8995b47d6600000004d494441542853c5d14b0a00200804503ff7bf7393431029ee42172e7a852389362573e8a83c3d02b90b2af346d0bec27e17912756e0b1ac78f409db40ea1639d9df55023261f3b92fab274f045a17b502ddf2d9efa10000000049454e44ae42608200000000000000000000000000000000000000000000000000}" + this.LF;
         
            ByteClass message = new ByteClass();
            ByteClass buf = new ByteClass();
            ByteClass class4 = new ByteClass();
            string str8 = "";
            this.EncodingToASCII(htmlString, buf);
            if (this._outputTextFormat == eOutputTextFormat.Html)
            {
                return this.HtmlToHtml(buf).ByteToString();
            }
            int index = 0;
            int num3 = 0;
            int num7 = 0;
            int num8 = 0;
            int num9 = 0;
            int num10 = 0;
            int num11 = 0;
            int num12 = 0;
            ByteClass str = new ByteClass(0x80);
            str.Add(@"\'");
            ByteClass class6 = new ByteClass();
            class6.Clear();
            class6.Add(this.GetFontByEnum(this._fontFace));
            ByteClass class7 = new ByteClass();
            ByteClass class8 = new ByteClass();
            ByteClass newb = new ByteClass();
            ByteClass class10 = new ByteClass();
            ByteClass class11 = new ByteClass();
            ArrayList list = new ArrayList();
            ArrayList list2 = new ArrayList();
            int num13 = 0;
            int num14 = 0;
            bool flag = false;
            bool flag2 = false;
            bool flag3 = true;
            bool flag4 = true;
            bool flag5 = true;
            int[] numArray = new int[3];
            int[] numArray2 = new int[] { 6, 8, 10, 12, 14, 0x12, 0x18, 0x24 };
            int num15 = 0;
            int num16 = 3;
            int fontsize = this._fontSize;
            int num18 = this._fontSize;
            bool flag6 = false;
            bool flag7 = false;
            ByteClass class12 = new ByteClass(0x20);
            int num19 = 0;
            int num20 = 1;
            int num21 = 1;
            int num22 = 1;
            ByteClass class13 = new ByteClass();
            ByteClass class14 = new ByteClass();
            int[] numArray3 = new int[this.STK_MAX];
            ByteClass class15 = new ByteClass();
            bool flag8 = false;
            ByteClass class16 = new ByteClass();
            ByteClass class17 = new ByteClass();
            ByteClass class18 = new ByteClass();
            class18.Add(@"\qj ");
            ByteClass class19 = new ByteClass();
            class19.Add(@"\qc ");
            ByteClass class20 = new ByteClass();
            class20.Add(@"\ql ");
            ByteClass class21 = new ByteClass();
            class21.Add(@"\qr ");
            ByteClass class22 = new ByteClass();
            class22.Add(@"\ql ");
            byte num23 = 0x6a;
            if (this._pageAlignment == ePageAlignment.AlignLeft)
            {
                num23 = 0x6c;
            }
            else if (this._pageAlignment == ePageAlignment.AlignRight)
            {
                num23 = 0x72;
            }
            else if (this._pageAlignment == ePageAlignment.AlignCenter)
            {
                num23 = 0x63;
            }
            else if (this._pageAlignment == ePageAlignment.AlignJustify)
            {
                num23 = 0x6a;
            }
            class22.b[2] = num23;
            ByteClass align = new ByteClass();
            align.Add(class22);
            int len = align.len;
            int num25 = 100;
            int num26 = 100;
            byte num27 = 0;
            string str9 = @"\li450 ";
            bool flag9 = false;
            int num28 = 0;
            int num29 = 0;
            int num30 = 0;
            int num31 = 0;
            int num32 = 0;
            int num33 = 0;
            bool flag10 = false;
            bool flag11 = false;
            int num34 = 0;
            bool flag12 = false;
            bool flag13 = false;
            string str10 = "";
            bool flag14 = false;
            bool flag15 = false;
            ByteClass class24 = new ByteClass();
            bool flag16 = false;
            bool flag17 = false;
            if (this._borderVisibility == eBorderVisibility.Visible)
            {
                flag17 = true;
            }
            CSS_params _params = new CSS_params();
            _params.CSS_reset(_params);
            bool flag18 = false;
            nest_tables[] _tablesArray = new nest_tables[this.MAX_NEST];
            for (int i = 0; i < this.MAX_NEST; i++)
            {
                _tablesArray[i] = new nest_tables();
            }
            int num36 = 0;
            string str12 = "";
            int tBLEN = this.TBLEN;
            bool flag19 = false;
            ByteClass class25 = new ByteClass();
            int num39 = 0;
            int num40 = 0;
            int num41 = 0;
            int num42 = 0;
            ByteClass class26 = new ByteClass();
            ByteClass folder = new ByteClass();
            ByteClass class28 = new ByteClass();
            ByteClass valueStr = new ByteClass();
            string path = "";
            class28.Clear();
            class28.Add(this._htmlPath);
            ByteClass class30 = new ByteClass(8);
            int charset = 0;
            int num44 = 0x4e4;
            ByteClass class31 = new ByteClass(8);
            class31.Add("fswiss");
            bool hieroglyph = false;
            int num45 = 0x4e4;
            int lang = 0x409;
            this.detect_lang(this._rtfLanguage, ref lang, ref hieroglyph, ref num45, ref charset);
            this.margl = (int)(this._pageMarginLeft * 56.7);
            this.margr = (int)(this._pageMarginRight * 56.7);
            this.margt = (int)(this._pageMarginTop * 56.7);
            this.margb = (int)(this._pageMarginBottom * 56.7);
            this.page_width = this.PAGE_SIZE_LETTER_W;
            this.page_height = this.PAGE_SIZE_LETTER_H;
            if (this._pageSize == ePageSize.A3)
            {
                this.page_width = this.PAGE_SIZE_A3_W;
                this.page_height = this.PAGE_SIZE_A3_H;
            }
            else if (this._pageSize == ePageSize.A5)
            {
                this.page_width = this.PAGE_SIZE_A5_W;
                this.page_height = this.PAGE_SIZE_A5_H;
            }
            else if (this._pageSize == ePageSize.A4)
            {
                this.page_width = this.PAGE_SIZE_A4_W;
                this.page_height = this.PAGE_SIZE_A4_H;
            }
            else if (this._pageSize == ePageSize.B5)
            {
                this.page_width = this.PAGE_SIZE_B5_W;
                this.page_height = this.PAGE_SIZE_B5_W;
            }
            else if (this._pageSize == ePageSize.Letter)
            {
                this.page_width = this.PAGE_SIZE_LETTER_W;
                this.page_height = this.PAGE_SIZE_LETTER_H;
            }
            else if (this._pageSize == ePageSize.Legal)
            {
                this.page_width = this.PAGE_SIZE_LEGAL_W;
                this.page_height = this.PAGE_SIZE_LEGAL_H;
            }
            else if (this._pageSize == ePageSize.Executive)
            {
                this.page_width = this.PAGE_SIZE_EXECUTIVE_W;
                this.page_height = this.PAGE_SIZE_EXECUTIVE_H;
            }
            else if (this._pageSize == ePageSize.Monarh)
            {
                this.page_width = this.PAGE_SIZE_MONARH_W;
                this.page_height = this.PAGE_SIZE_MONARH_H;
            }
            if ((this.margb < 0) || (this.margb > (this.page_height / 2)))
            {
                this.margb = this.DEF_MARGIN * 2;
            }
            if ((this.margt < 0) || (this.margt > (this.page_height / 2)))
            {
                this.margt = this.DEF_MARGIN;
            }
            if ((this.margl < 0) || (this.margl > (this.page_width / 2)))
            {
                this.margl = this.DEF_MARGIN;
            }
            if ((this.margr < 0) || (this.margr > (this.page_width / 2)))
            {
                this.margr = this.DEF_MARGIN;
            }
            int max = buf.len;
            if (max <= 0)
            {
                return "";
            }
            int num = 0;
            num10 = 0;
            while (num < max)
            {
                if (buf.b[num] == 0)
                {
                    num10++;
                }
                num++;
            }
            if ((num10 * 3) > max)
            {
                class4.Clear();
                for (num = 0; num < max; num++)
                {
                    if ((buf.b[num] != 0) && (buf.b[num + 1] != 0))
                    {
                        this.ToSpecSymbol(class24, buf.b[num + 1], buf.b[num]);
                        class4.Add(class24);
                        num++;
                    }
                    else if (buf.b[num] != 0)
                    {
                        class4.Add(buf.b[num]);
                    }
                }
                max = max = num10;
                for (num = 0; num < max; num++)
                {
                    buf.b[num] = class4.b[num];
                }
            }
            if (this._encoding != eEncoding.AutoSelect)
            {
                if (this._encoding == eEncoding.Windows_1250)
                {
                    num44 = 0x4e3;
                    charset = 0xee;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1251)
                {
                    num44 = 0x4e3;
                    charset = 0xcc;
                    class31.Add("fnil");
                }
                else if (this._encoding == eEncoding.Windows_1252)
                {
                    num44 = 0x4e3;
                    charset = 0;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1253)
                {
                    num44 = 0x4e3;
                    charset = 0xa1;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1254)
                {
                    num44 = 0x4e6;
                    charset = 0xa2;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1255)
                {
                    num44 = 0x4e3;
                    charset = 0xb1;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1256)
                {
                    num44 = 0x4e8;
                    charset = 0xb2;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1257)
                {
                    num44 = 0x4e3;
                    charset = 0xba;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.Windows_1258)
                {
                    num44 = 0x4e3;
                    charset = 0;
                    class31.Add("fswiss");
                }
                else if (this._encoding == eEncoding.KOI8_R)
                {
                    num44 = 0x4e3;
                    charset = 0xcc;
                    class31.Add("fnil");
                }
                else if (this._encoding == eEncoding.ISO_8859_5)
                {
                    num44 = 0x4e3;
                    charset = 0xcc;
                    class31.Add("fnil");
                }
                else if (this._encoding == eEncoding.UTF_8)
                {
                    num44 = 0x4e4;
                    class31.Add("fswiss");
                }
                else
                {
                    num44 = 0x4e4;
                    charset = 0;
                    class31.Add("fswiss");
                }
            }
            else
            {
                num = 0;
                while (num < max)
                {
                    if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x68) || (buf.b[num + 1] == 0x48))) && (((buf.b[num + 2] == 0x65) || (buf.b[num + 2] == 0x45)) && ((buf.b[num + 3] == 0x61) || (buf.b[num + 3] == 0x41)))) && (((buf.b[num + 4] == 100) || (buf.b[num + 4] == 0x44)) && ((buf.b[num + 5] == 0x3e) || this.IS_DELIMITER(buf.b[num + 5]))))
                    {
                        num += 5;
                        while ((buf.b[num] != 0x3e) && (num < max))
                        {
                            num++;
                        }
                        break;
                    }
                    num++;
                }
                while (num < max)
                {
                    if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x68) || (buf.b[num + 2] == 0x48))) && (((buf.b[num + 3] == 0x65) || (buf.b[num + 3] == 0x45)) && ((buf.b[num + 4] == 0x61) || (buf.b[num + 4] == 0x41)))) && (((buf.b[num + 5] == 100) || (buf.b[num + 5] == 0x44)) && (buf.b[num + 6] == 0x3e)))
                    {
                        break;
                    }
                    if (((((buf.b[num] == 0x63) || (buf.b[num] == 0x43)) && ((buf.b[num + 1] == 0x68) || (buf.b[num + 1] == 0x48))) && (((buf.b[num + 2] == 0x61) || (buf.b[num + 2] == 0x41)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && ((((buf.b[num + 4] == 0x73) || (buf.b[num + 4] == 0x53)) && ((buf.b[num + 5] == 0x65) || (buf.b[num + 5] == 0x45))) && (((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54)) && (buf.b[num + 7] == 0x3d))))
                    {
                        while (num < max)
                        {
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x30)))
                            {
                                charset = 0xee;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x31)))
                            {
                                charset = 0xcc;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fnil");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 50)))
                            {
                                charset = 0;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x33)))
                            {
                                charset = 0xa1;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x34)))
                            {
                                num44 = 0x4e6;
                                charset = 0xa2;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x35)))
                            {
                                charset = 0xb1;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x36)))
                            {
                                num44 = 0x4e8;
                                charset = 0xb2;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x37)))
                            {
                                charset = 0xba;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((buf.b[num] == 0x31) && (buf.b[num + 1] == 50)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x38)))
                            {
                                charset = 0;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if ((((buf.b[num] == 0x6b) || (buf.b[num] == 0x4b)) && ((buf.b[num + 1] == 0x6f) || (buf.b[num + 1] == 0x4f))) && (((buf.b[num + 2] == 0x69) || (buf.b[num + 2] == 0x49)) && (buf.b[num + 3] == 0x38)))
                            {
                                charset = 0xcc;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fnil");
                            }
                            if ((((buf.b[num] == 0x38) && (buf.b[num + 1] == 0x38)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x39))) && ((buf.b[num + 4] == 0x2d) && (buf.b[num + 5] == 0x35)))
                            {
                                charset = 0xcc;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fnil");
                            }
                            if (((((buf.b[num] == 0x6c) || (buf.b[num] == 0x4c)) && ((buf.b[num + 1] == 0x61) || (buf.b[num + 1] == 0x41))) && (((buf.b[num + 2] == 0x74) || (buf.b[num + 2] == 0x54)) && ((buf.b[num + 3] == 0x69) || (buf.b[num + 3] == 0x49)))) && (((buf.b[num + 4] == 110) || (buf.b[num + 4] == 0x4e)) && (buf.b[num + 5] == 0x35)))
                            {
                                charset = 0xcc;
                                num44 = 0x4e3;
                                class31.Clear();
                                class31.Add("fnil");
                            }
                            if ((((buf.b[num] == 0x38) && (buf.b[num + 1] == 0x38)) && ((buf.b[num + 2] == 0x35) && (buf.b[num + 3] == 0x39))) && ((buf.b[num + 4] == 0x2d) && (buf.b[num + 5] == 0x31)))
                            {
                                num44 = 0x4e4;
                                charset = 0;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (((((buf.b[num] == 0x6c) || (buf.b[num] == 0x4c)) && ((buf.b[num + 1] == 0x61) || (buf.b[num + 1] == 0x41))) && (((buf.b[num + 2] == 0x74) || (buf.b[num + 2] == 0x54)) && ((buf.b[num + 3] == 0x69) || (buf.b[num + 3] == 0x49)))) && (((buf.b[num + 4] == 110) || (buf.b[num + 4] == 0x4e)) && (buf.b[num + 5] == 0x31)))
                            {
                                num44 = 0x4e4;
                                charset = 0;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if ((((((buf.b[num] == 0x73) || (buf.b[num] == 0x53)) && ((buf.b[num + 1] == 0x68) || (buf.b[num + 1] == 0x48))) && (((buf.b[num + 2] == 0x69) || (buf.b[num + 2] == 0x49)) && ((buf.b[num + 3] == 0x66) || (buf.b[num + 3] == 70)))) && ((((buf.b[num + 4] == 0x74) || (buf.b[num + 4] == 0x54)) && (buf.b[num + 5] == 0x5f)) && (((buf.b[num + 6] == 0x6a) || (buf.b[num + 6] == 0x4a)) && ((buf.b[num + 7] == 0x69) || (buf.b[num + 7] == 0x49))))) && ((buf.b[num + 8] == 0x73) || (buf.b[num + 8] == 0x53)))
                            {
                                num44 = 0x4e4;
                                class31.Clear();
                                class31.Add("fswiss");
                                lang = 0x409;
                                hieroglyph = true;
                                num45 = 0x3a4;
                                charset = 0x80;
                            }
                            if (((((buf.b[num] == 0x75) || (buf.b[num] == 0x55)) && ((buf.b[num + 1] == 0x74) || (buf.b[num + 1] == 0x54))) && (((buf.b[num + 2] == 0x66) || (buf.b[num + 2] == 70)) && (buf.b[num + 3] == 0x2d))) && ((buf.b[num + 4] == 0x38) || ((buf.b[num + 4] == 0x31) && (buf.b[num + 5] == 0x36))))
                            {
                                num44 = 0x4e4;
                                class31.Clear();
                                class31.Add("fswiss");
                            }
                            if (buf.b[num] == 0x3e)
                            {
                                break;
                            }
                            num++;
                        }
                    }
                    num++;
                }
            }
            if (class30.byteCmpi("Japanese") == 0)
            {
                charset = 0x80;
            }
            else if (class30.byteCmpi("SimplifiedChinese") == 0)
            {
                charset = 0x86;
            }
            else if (class30.byteCmpi("TraditionalChinese") == 0)
            {
                charset = 0x88;
            }
            else if (class30.byteCmpi("Korean") == 0)
            {
                charset = 0x81;
            }
            else if (class30.byteCmpi("Russian") == 0)
            {
                charset = 0xcc;
                num45 = 0x4e3;
            }
            num44 = this.get_ansicpg(class30.ByteToString());
            int num47 = 0;
            if (num47 == 0)
            {
                num47 = 80;
            }
            if (this._outputTextFormat == eOutputTextFormat.Text)
            {
                class4.Clear();
                num = 0;
                num4 = 0;
                num10 = 0;
                while (num < max)
                {
                    if ((((!flag9 && (buf.b[num] == 60)) && ((buf.b[num + 1] == 0x68) || (buf.b[num + 1] == 0x48))) && (((buf.b[num + 2] == 0x65) || (buf.b[num + 2] == 0x45)) && ((buf.b[num + 3] == 0x61) || (buf.b[num + 3] == 0x41)))) && (((buf.b[num + 4] == 100) || (buf.b[num + 4] == 0x44)) && (buf.b[num + 5] == 0x3e)))
                    {
                        while (num < max)
                        {
                            if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x73)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x54) && (buf.b[num + 3] == 0x59))) && ((buf.b[num + 4] == 0x4c) && (buf.b[num + 5] == 0x45))))
                            {
                                num4 = 0;
                                while ((num4 == 0) && (num < max))
                                {
                                    if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e))))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x54))) && (((buf.b[num + 4] == 0x59) && (buf.b[num + 5] == 0x4c)) && ((buf.b[num + 6] == 0x45) && (buf.b[num + 7] == 0x3e)))))
                                    {
                                        num4 = 1;
                                    }
                                    num++;
                                }
                                num += 7;
                            }
                            if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x62) || (buf.b[num + 1] == 0x42))) && (((buf.b[num + 2] == 0x6f) || (buf.b[num + 2] == 0x4f)) && ((buf.b[num + 3] == 100) || (buf.b[num + 3] == 0x44)))) && (((buf.b[num + 4] == 0x79) || (buf.b[num + 4] == 0x59)) && ((buf.b[num + 5] == 0x3e) || this.IS_DELIMITER(buf.b[num + 5]))))
                            {
                                if ((buf.b[num + 5] == 0x20) || this.IS_DELIMITER(buf.b[num + 5]))
                                {
                                    while ((buf.b[num + 5] != 0x3e) && (num < max))
                                    {
                                        num++;
                                    }
                                }
                                num += 5;
                                flag9 = true;
                                goto Label_27BA;
                            }
                            if (((buf.b[num] == 60) && ((buf.b[num + 1] == 0x70) || (buf.b[num + 1] == 80))) && (((buf.b[num + 2] == 0x3e) || (buf.b[num + 2] == 0x20)) || this.IS_DELIMITER(buf.b[num + 2])))
                            {
                                num--;
                                flag9 = true;
                                goto Label_27BA;
                            }
                            if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x74) || (buf.b[num + 1] == 0x54))) && (((buf.b[num + 2] == 100) || (buf.b[num + 2] == 0x44)) || ((buf.b[num + 2] == 0x68) || (buf.b[num + 2] == 0x48)))) && ((buf.b[num + 3] == 0x3e) || this.IS_DELIMITER(buf.b[num + 3])))
                            {
                                if ((buf.b[num + 3] == 0x20) || this.IS_DELIMITER(buf.b[num + 3]))
                                {
                                    while ((buf.b[num + 3] != 0x3e) && (num < max))
                                    {
                                        num++;
                                    }
                                }
                                num += 3;
                                flag9 = true;
                                goto Label_27BA;
                            }
                            if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x73) || (buf.b[num + 1] == 0x53))) && (((buf.b[num + 2] == 0x63) || (buf.b[num + 2] == 0x43)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && ((((buf.b[num + 4] == 0x69) || (buf.b[num + 4] == 0x49)) && ((buf.b[num + 5] == 0x70) || (buf.b[num + 5] == 80))) && ((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54))))
                            {
                                num4 = 0;
                                while ((num4 == 0) && (num < max))
                                {
                                    if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) || (buf.b[num + 2] == 0x53))) && (((buf.b[num + 3] == 0x63) || (buf.b[num + 3] == 0x43)) && ((buf.b[num + 4] == 0x72) || (buf.b[num + 4] == 0x52)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x70) || (buf.b[num + 6] == 80))) && (((buf.b[num + 7] == 0x74) || (buf.b[num + 7] == 0x54)) && (buf.b[num + 8] == 0x3e))))
                                    {
                                        num4 = 1;
                                    }
                                    num++;
                                }
                                num += 7;
                            }
                            if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x68) || (buf.b[num + 2] == 0x48))) && (((buf.b[num + 3] == 0x65) || (buf.b[num + 3] == 0x45)) && ((buf.b[num + 4] == 0x61) || (buf.b[num + 4] == 0x41)))) && (((buf.b[num + 5] == 100) || (buf.b[num + 5] == 0x44)) && (buf.b[num + 6] == 0x3e)))
                            {
                                num += 6;
                                flag9 = true;
                                goto Label_27BA;
                            }
                            num++;
                        }
                        goto Label_27BA;
                    }
                    if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x73) || (buf.b[num + 1] == 0x53))) && (((buf.b[num + 2] == 0x63) || (buf.b[num + 2] == 0x43)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && ((((buf.b[num + 4] == 0x69) || (buf.b[num + 4] == 0x49)) && ((buf.b[num + 5] == 0x70) || (buf.b[num + 5] == 80))) && ((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54))))
                    {
                        num4 = 0;
                        while ((num4 == 0) && (num < max))
                        {
                            if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) || (buf.b[num + 2] == 0x53))) && (((buf.b[num + 3] == 0x63) || (buf.b[num + 3] == 0x43)) && ((buf.b[num + 4] == 0x72) || (buf.b[num + 4] == 0x52)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x70) || (buf.b[num + 6] == 80))) && (((buf.b[num + 7] == 0x74) || (buf.b[num + 7] == 0x54)) && (buf.b[num + 8] == 0x3e))))
                            {
                                num4 = 1;
                            }
                            num++;
                        }
                        num += 7;
                        goto Label_27BA;
                    }
                    if ((((buf.b[num] != 60) || ((buf.b[num + 1] != 0x6f) && (buf.b[num + 1] != 0x4f))) || (((buf.b[num + 2] != 0x70) && (buf.b[num + 2] != 80)) || ((buf.b[num + 3] != 0x74) && (buf.b[num + 3] != 0x54)))) || ((((buf.b[num + 4] != 0x69) && (buf.b[num + 4] != 0x49)) || ((buf.b[num + 5] != 0x6f) && (buf.b[num + 5] != 0x4f))) || (((buf.b[num + 6] != 110) && (buf.b[num + 6] != 0x4e)) || ((buf.b[num + 7] != 0x3e) && (buf.b[num + 7] != 0x20)))))
                    {
                        goto Label_238A;
                    }
                    num4 = 0;
                    while ((num4 == 0) && (num < max))
                    {
                        if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x6f) || (buf.b[num + 2] == 0x4f))) && (((buf.b[num + 3] == 0x70) || (buf.b[num + 3] == 80)) && ((buf.b[num + 4] == 0x74) || (buf.b[num + 4] == 0x54)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x6f) || (buf.b[num + 6] == 0x4f))) && (((buf.b[num + 7] == 110) || (buf.b[num + 7] == 0x4e)) && (buf.b[num + 8] == 0x3e))))
                        {
                            num4 = 1;
                            goto Label_237F;
                        }
                        num++;
                    }
                Label_237F:
                    num += 8;
                goto Label_27BA;
            Label_238A:
                if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x73)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x54) && (buf.b[num + 3] == 0x59))) && ((buf.b[num + 4] == 0x4c) && (buf.b[num + 5] == 0x45))))
                {
                    num4 = 0;
                    while ((num4 == 0) && (num < max))
                    {
                        if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e))))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x54))) && (((buf.b[num + 4] == 0x59) && (buf.b[num + 5] == 0x4c)) && ((buf.b[num + 6] == 0x45) && (buf.b[num + 7] == 0x3e)))))
                        {
                            num4 = 1;
                        }
                        num++;
                    }
                    num += 7;
                }
                else if ((buf.b[num] == 60) && (buf.b[num + 1] == 0x25))
                {
                    while (num < max)
                    {
                        if ((buf.b[num - 1] == 0x25) && (buf.b[num] == 0x3e))
                        {
                            goto Label_27BA;
                        }
                        num++;
                    }
                }
                else if (((buf.b[num] == 60) && (buf.b[num + 1] == 0x21)) && ((buf.b[num + 2] == 0x2d) && (buf.b[num + 3] == 0x2d)))
                {
                    num += 3;
                    num7 = 1;
                    while ((num7 > 0) && (num < max))
                    {
                        if (((buf.b[num] == 0x2d) && (buf.b[num + 1] == 0x2d)) && (buf.b[num + 2] == 0x3e))
                        {
                            num7--;
                            num++;
                        }
                        if (((buf.b[num] == 60) && (buf.b[num + 1] == 0x21)) && ((buf.b[num + 2] == 0x2d) && (buf.b[num + 3] == 0x2d)))
                        {
                            num7++;
                            num += 3;
                        }
                        num++;
                    }
                }
                else
                {
                    class4.Add(buf.b[num]);
                    num10++;
                }
        Label_27BA:
            num++;
                }
                max = num10 = class4.len;
                buf.Clear();
                num = 0;
                num4 = 1;
                num11 = 0;
                num5 = 0;
                while (num < class4.len)
                {
                    if (buf.len > 0x1193f)
                    {
                        break;
                    }
                    if (((num == 0) && (class4.b[num] == 0xef)) && ((class4.b[num + 1] == 0xbb) && (class4.b[num + 2] == 0xbf)))
                    {
                        num += 2;
                    }
                    else if ((((!flag14 && (class4.b[num] == 60)) && ((class4.b[num + 1] == 0x68) || (class4.b[num + 1] == 0x48))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x6d) || (class4.b[num + 3] == 0x4d)))) && (((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x3e) || this.IS_DELIMITER(class4.b[num + 5]))))
                    {
                        num += 5;
                        while ((class4.b[num] != 0x3e) && (num < max))
                        {
                            num++;
                        }
                        num11 = 0;
                        flag14 = true;
                    }
                    else if (((class4.b[num] == 60) && (class4.b[num + 1] == 0x21)) && ((class4.b[num + 2] == 0x2d) && (class4.b[num + 3] == 0x2d)))
                    {
                        num += 3;
                        while (num < max)
                        {
                            if (((class4.b[num] == 0x2d) && (class4.b[num + 1] == 0x2d)) && (class4.b[num + 2] == 0x3e))
                            {
                                break;
                            }
                            if (((class4.b[num] == 60) && (class4.b[num + 1] == 0x21)) && ((class4.b[num + 2] == 0x2d) && (class4.b[num + 3] == 0x2d)))
                            {
                                num += 3;
                                while (num < max)
                                {
                                    if (((class4.b[num] == 0x2d) && (class4.b[num + 1] == 0x2d)) && (class4.b[num + 2] == 0x3e))
                                    {
                                        num += 2;
                                        break;
                                    }
                                    num++;
                                }
                            }
                            num++;
                        }
                        num += 2;
                    }
                    else
                    {
                        if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80))) && (class4.b[num + 3] == 0x3e))
                        {
                            buf.Add(this.LF);
                            num += 4;
                        }
                        if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x70) || (class4.b[num + 1] == 80))) && (class4.b[num + 2] == 0x3e))
                        {
                            buf.Add(this.LF);
                            num += 3;
                        }
                        if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48))) && (class4.b[num + 4] == 0x3e))
                        {
                            buf.Add(this.LF);
                            num += 5;
                        }
                        if ((((this._preserveHyperlinks != 1) || ((class4.b[num] != 0x68) && (class4.b[num] != 0x48))) || (((class4.b[num + 1] != 0x72) && (class4.b[num + 1] != 0x52)) || ((class4.b[num + 2] != 0x65) && (class4.b[num + 2] != 0x45)))) || (((class4.b[num + 3] != 0x66) && (class4.b[num + 3] != 70)) || ((class4.b[num + 4] != 0x3d) || (class4.b[num + 5] != 0x22))))
                        {
                            goto Label_2EC9;
                        }
                        flag10 = false;
                        index = num;
                        while (index > 0)
                        {
                            if ((class4.b[index] == 60) || (class4.b[index] == 0x3e))
                            {
                                break;
                            }
                            if (((class4.b[index + 1] == 0x20) && ((class4.b[index] == 0x61) || (class4.b[index] == 0x41))) && (class4.b[index - 1] == 60))
                            {
                                flag10 = true;
                            }
                            index--;
                        }
                        if (flag10)
                        {
                            num += 5;
                            num7 = 0;
                            class16.b[num7] = class4.b[num++];
                            num7++;
                            flag19 = true;
                            for (num38 = 0; (num38 < 500) && ((num + num38) < num10); num38++)
                            {
                                if ((((class4.b[num + num38] == 60) && (class4.b[(num + 1) + num38] == 0x2f)) && ((class4.b[(num + 2) + num38] == 0x61) || (class4.b[(num + 2) + num38] == 0x41))) && (class4.b[(num + 3) + num38] == 0x3e))
                                {
                                    break;
                                }
                                if ((((class4.b[num + num38] == 60) && ((class4.b[(num + 1) + num38] == 0x69) || (class4.b[(num + 1) + num38] == 0x49))) && (((class4.b[(num + 2) + num38] == 0x6d) || (class4.b[(num + 2) + num38] == 0x4d)) && ((class4.b[(num + 3) + num38] == 0x67) || (class4.b[(num + 3) + num38] == 0x47)))) && (class4.b[(num + 4) + num38] == 0x20))
                                {
                                    flag19 = false;
                                }
                            }
                            if (flag19 || (this._preserveImages != 0))
                            {
                                goto Label_2E10;
                            }
                        }
                    }
                    goto Label_3D27;
                Label_2DF9:
                    class16.Add(class4.b[num]);
                num++;
            Label_2E10:
                if ((class4.b[num] != 0x22) && (num < max))
                {
                    goto Label_2DF9;
                }
            class16.b[num7++] = class4.b[num];
            class16.b[num7] = 0;
            for (num7 = 0; class16.b[num7] != 0; num7++)
            {
                class17.b[num7] = 0;
            }
            if (class17.IndexOf("javascript") != -1)
            {
                flag10 = false;
                flag8 = false;
            }
            else
            {
                class15.Add("[");
                class15.Add(class16);
                class15.Add("]");
                flag8 = true;
            }
            while ((class4.b[num] != 0x3e) && (num < max))
            {
                num++;
            }
            goto Label_3D27;
        Label_2EC9:
            if ((((this._preserveHyperlinks == 1) && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && (class4.b[num + 3] == 0x3e)))
            {
                if (flag8)
                {
                    buf.Add(class15);
                }
                flag8 = false;
                num += 3;
            }
            else if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && ((class4.b[num + 3] == 0x62) || (class4.b[num + 3] == 0x42)))) && ((((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45))) && ((class4.b[num + 6] == 0x3e) || this.IS_DELIMITER(class4.b[num + 6]))))
            {
                if (this.IS_DELIMITER(class4.b[num + 6]))
                {
                    _tablesArray[num36].table_p.percent_width = 0;
                    int num48 = -1111;
                    _tablesArray[num36].table_p.table_width = this.get_width(class4, num, max, ref _tablesArray[num36].table_p.percent_width, ref index, ref index, null, num48, ref num48, null, ref num48, ref num48);
                    while ((class4.b[num + 6] != 0x3e) && (num < max))
                    {
                        num++;
                    }
                }
                if (_tablesArray[num36].table)
                {
                    while (_tablesArray[num36].cell > 0)
                    {
                        buf.Add("\t\t");
                        num11 += 2;
                        nest_tables _tables1 = _tablesArray[num36];
                        _tables1.cell--;
                    }
                    buf.Add(this.LF);
                    num11++;
                }
                _tablesArray[num36].table = false;
                num4 = 0;
                num += 6;
            }
            else if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && (((class4.b[num + 3] == 0x61) || (class4.b[num + 3] == 0x41)) && ((class4.b[num + 4] == 0x62) || (class4.b[num + 4] == 0x42)))) && ((((class4.b[num + 5] == 0x6c) || (class4.b[num + 5] == 0x4c)) && ((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45))) && (class4.b[num + 7] == 0x3e)))
            {
                _tablesArray[num36].table = false;
                if (buf.len > 1)
                {
                    while ((buf.len > 1) && this.IS_DELIMITER(buf.b[buf.len - 1]))
                    {
                        buf.len--;
                    }
                }
                buf.Add(this.LF);
                num11++;
                num += 7;
            }
            else if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && (((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52)) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3]))))
            {
                if (this.IS_DELIMITER(class4.b[num + 3]))
                {
                    while ((class4.b[num + 3] != 0x3e) && (num < max))
                    {
                        num++;
                    }
                }
                num += 3;
                if (_tablesArray[num36].table)
                {
                    while (_tablesArray[num36].cell > 0)
                    {
                        buf.Add("\t\t");
                        num11 += 2;
                        nest_tables _tables2 = _tablesArray[num36];
                        _tables2.cell--;
                    }
                    buf.Add(this.LF);
                    num11++;
                }
                if (((buf.len > 1) && (buf.b[buf.len - 1] == 0x20)) && this.IS_DELIMITER(buf.b[buf.len - 2]))
                {
                    buf.len--;
                }
                _tablesArray[num36].table = true;
                for (num7 = 0; num7 < this.MAX_COLUMNS; num7++)
                {
                    _tablesArray[num36].td_width[num7] = 0;
                    _tablesArray[num36].td_percent_width[num7] = 0;
                }
                _tablesArray[num36].td = 0;
                for (num7 = 0; (num + num7) < max; num7++)
                {
                    if (((((class4.b[num + num7] == 60) && (class4.b[(num + num7) + 1] == 0x2f)) && ((class4.b[(num + num7) + 2] == 0x74) || (class4.b[(num + num7) + 2] == 0x54))) && (((class4.b[(num + num7) + 3] == 0x72) || (class4.b[(num + num7) + 3] == 0x52)) && (class4.b[(num + num7) + 4] == 0x3e))) || (((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && (((class4.b[(num + num7) + 2] == 0x72) || (class4.b[(num + num7) + 2] == 0x52)) && ((class4.b[(num + num7) + 3] == 0x3e) || this.IS_DELIMITER(class4.b[(num + num7) + 3])))))
                    {
                        break;
                    }
                    if ((((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && (((class4.b[(num + num7) + 2] == 100) || (class4.b[(num + num7) + 2] == 0x44)) || ((class4.b[(num + num7) + 2] == 0x68) || (class4.b[(num + num7) + 2] == 0x48)))) && ((class4.b[(num + num7) + 3] == 0x3e) || this.IS_DELIMITER(class4.b[(num + num7) + 3])))
                    {
                        nest_tables _tables3 = _tablesArray[num36];
                        _tables3.td++;
                        if (this.IS_DELIMITER(class4.b[(num + num7) + 3]))
                        {
                            num7 += 3;
                            int num49 = -1111;
                            _tablesArray[num36].td_width[_tablesArray[num36].td - 1] = this.get_width(class4, num + num7, max, ref _tablesArray[num36].td_percent_width[_tablesArray[num36].td - 1], ref index, ref index, null, num49, ref num49, null, ref num49, ref num49);
                        }
                    }
                    if ((((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && (((class4.b[(num + num7) + 2] == 0x61) || (class4.b[(num + num7) + 2] == 0x41)) && ((class4.b[(num + num7) + 3] == 0x62) || (class4.b[(num + num7) + 3] == 0x42)))) && ((((class4.b[(num + num7) + 4] == 0x6c) || (class4.b[(num + num7) + 4] == 0x4c)) && ((class4.b[(num + num7) + 5] == 0x65) || (class4.b[(num + num7) + 5] == 0x45))) && (this.IS_DELIMITER(class4.b[(num + num7) + 6]) || (class4.b[(num + num7) + 6] == 0x3e))))
                    {
                        break;
                    }
                }
                _tablesArray[num36].cell = _tablesArray[num36].td;
                this.fill_columns_width(_tablesArray[num36].td_width, _tablesArray[num36].td_percent_width, _tablesArray[num36].td, _tablesArray[num36].table_p.table_width, _tablesArray[num36].table_p.percent_width, this.SCREEN_W_DEF);
            }
            else if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) || ((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48)))) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3])))
            {
                if (this.IS_DELIMITER(class4.b[num + 3]))
                {
                    while (!this.IS_XTHAN(class4.b[num + 3]) && (num < max))
                    {
                        num++;
                    }
                }
                num += 3;
                num4 = 0;
            }
            else if ((((_tablesArray[num36].table && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && ((((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)) || ((class4.b[num + 3] == 0x68) || (class4.b[num + 3] == 0x48))) && (class4.b[num + 4] == 0x3e)))
            {
                buf.Add("\t\t");
                num11 += 2;
                num += 4;
                nest_tables _tables4 = _tablesArray[num36];
                _tables4.cell--;
            }
            else if ((((_tablesArray[num36].table && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x72) || (class4.b[num + 3] == 0x52)))) && (class4.b[num + 4] == 0x3e))
            {
                while (_tablesArray[num36].cell > 0)
                {
                    buf.Add("\t\t");
                    num11 += 2;
                    nest_tables _tables5 = _tablesArray[num36];
                    _tables5.cell--;
                }
                buf.Add(this.LF);
                num11++;
                num += 4;
                _tablesArray[num36].table = false;
            }
            else if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x62) || (class4.b[num + 1] == 0x42))) && (((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52)) && (((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20)) || (class4.b[num + 3] == 0x2f))))
            {
                if ((class4.b[num + 3] == 0x20) || (class4.b[num + 3] == 0x2f))
                {
                    while ((class4.b[num + 3] != 0x3e) && (num < max))
                    {
                        num++;
                    }
                }
                buf.Add(this.LF);
                num11++;
                num += 3;
            }
            else
            {
                if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
                {
                    if (class4.b[num + 3] == 0x20)
                    {
                        while ((class4.b[num + 3] != 0x3e) && (num < max))
                        {
                            num++;
                        }
                    }
                    buf.Add(this.LF);
                    num11++;
                    num += 4;
                }
                if (((num > 1) && (class4.b[num - 1] == 0x3e)) && (class4.b[num] != 60))
                {
                    num4 = 1;
                }
                if ((class4.b[num] == 0x26) && (num4 != 0))
                {
                    num += this.special_symbols_txt(class4, num, max, class24);
                    if ((class24.b[0] != 0x20) || flag18)
                    {
                        buf.Add(class24);
                        num11 += class24.len;
                        num5 = 0;
                    }
                }
                else
                {
                    if (num11 > 0x1139b)
                    {
                        break;
                    }
                    if (class4.b[num] == 60)
                    {
                        num4 = 0;
                    }
                    else
                    {
                        if (num4 != 0)
                        {
                            if (this.IS_DELIMITER(class4.b[num]))
                            {
                                if (((buf.len > 0) && (num5 == 0)) && !this.IS_DELIMITER(buf.b[buf.len - 1]))
                                {
                                    buf.Add((byte)0x20);
                                    num11++;
                                    num5 = 1;
                                }
                            }
                            else
                            {
                                num5 = 0;
                                buf.Add(class4.b[num]);
                                num11++;
                                flag18 = true;
                            }
                        }
                        
                    }
                }
            }
    Label_3D27:
        num++;
                }
            }
            else
            {
                object[] objArray;
                fontsize = this._fontSize;
                string[] strArray = new string[] { this.LF, @"\par\pard\sb", num25.ToString(), @"\sa", num26.ToString(), @"\sbauto1\saauto1\fs", (fontsize * 2).ToString(), @"\lang", lang.ToString(), " " };
                string str14 = string.Concat(strArray);
                strArray = new string[10];
                strArray[0] = this.LF;
                strArray[1] = @"\par\pard\intbl\sb";
                strArray[2] = num25.ToString();
                strArray[3] = @"\sa";
                strArray[4] = num26.ToString();
                strArray[5] = @"\sbauto1\saauto1\fs";
                strArray[6] = (fontsize * 2).ToString();
                strArray[7] = @"\lang";
                strArray[8] = lang.ToString();
                strArray[9] = " ";
                string str15 = string.Concat(strArray);
                strArray = new string[8];
                strArray[0] = this.LF;
                strArray[1] = @"\pard\intbl\sb";
                strArray[2] = num25.ToString();
                strArray[3] = @"\fs";
                strArray[4] = (fontsize * 2).ToString();
                strArray[5] = @"\lang";
                strArray[6] = lang.ToString();
                strArray[7] = " ";
                string str16 = string.Concat(strArray);
                string str17 = this.LF + @"\sb0\sa0\par ";
                string str18 = this.LF + @"\sb0\sa0\par\intbl\lang" + lang.ToString() + " ";
                class7.Clear();
                class7.Add((fontsize * 2).ToString());
                if ((fontsize <= 0) || (fontsize > this.FONT_SIZE_MAX))
                {
                    fontsize = 10;
                }
                string str19 = (fontsize * 2).ToString();
                string str20 = this.LF + @"{\par\b\fs" + str19 + " ";
                string str21 = this.LF + @"{\b\fs" + str19 + " ";
                int length = str20.Length;
                int num51 = str21.Length;
                int num52 = 0;
                str19 = (fontsize / 2).ToString();
                string str22 = @"{\sub\dn" + str19 + " ";
                int num53 = str22.Length;
                str19 = (fontsize / 2).ToString();
                string str23 = @"{\super\up" + str19 + " ";
                int num54 = str23.Length;
                int num55 = 0;
                int num56 = 0;
                int num57 = 1;
                int num58 = 0;
                int num59 = 0;
                int[] numArray4 = new int[this.STK_MAX];
                int num60 = 0;
                int num61 = 100;
                listStyleType[] typeArray = new listStyleType[10];
                ByteClass strOLsymbol = new ByteClass();
                strOLsymbol.Add("1.");
                bool flag21 = false;
                class4.Clear();
                num = 0;
                num4 = 0;
                num10 = 0;
                while (num < max)
                {
                    if ((((buf.b[num] != 60) || ((buf.b[num + 1] != 0x6c) && (buf.b[num + 1] != 0x4c))) || (((buf.b[num + 2] != 0x69) && (buf.b[num + 2] != 0x49)) || ((buf.b[num + 3] != 110) && (buf.b[num + 3] != 0x4e)))) || (((buf.b[num + 4] != 0x6b) && (buf.b[num + 4] != 0x4b)) || !this.IS_DELIMITER(buf.b[num + 5])))
                    {
                        goto Label_43C7;
                    }
                    num += 5;
                    num7 = 0;
                    num5 = 0;
                    while (((num + num7) < max) && (buf.b[num + num7] != 0x3e))
                    {
                        if ((((((buf.b[num + num7] == 0x73) || (buf.b[num + num7] == 0x53)) && ((buf.b[(num + num7) + 1] == 0x74) || (buf.b[(num + num7) + 1] == 0x54))) && (((buf.b[(num + num7) + 2] == 0x79) || (buf.b[(num + num7) + 2] == 0x59)) && ((buf.b[(num + num7) + 3] == 0x6c) || (buf.b[(num + num7) + 3] == 0x4c)))) && ((((buf.b[(num + num7) + 4] == 0x65) || (buf.b[(num + num7) + 4] == 0x45)) && ((buf.b[(num + num7) + 5] == 0x73) || (buf.b[(num + num7) + 5] == 0x53))) && (((buf.b[(num + num7) + 6] == 0x68) || (buf.b[(num + num7) + 6] == 0x48)) && ((buf.b[(num + num7) + 7] == 0x65) || (buf.b[(num + num7) + 7] == 0x45))))) && (((buf.b[(num + num7) + 8] == 0x65) || (buf.b[(num + num7) + 8] == 0x45)) && ((buf.b[(num + num7) + 9] == 0x74) || (buf.b[(num + num7) + 9] == 0x54))))
                        {
                            num5 = 1;
                            goto Label_4287;
                        }
                        num7++;
                    }
                Label_4287:
                    if (num5 == 1)
                    {
                        for (num7 = 0; ((num + num7) < max) && (buf.b[num + num7] != 0x3e); num7++)
                        {
                            if (((((buf.b[num + num7] == 0x68) || (buf.b[num + num7] == 0x48)) && ((buf.b[(num + num7) + 1] == 0x72) || (buf.b[(num + num7) + 1] == 0x52))) && (((buf.b[(num + num7) + 2] == 0x65) || (buf.b[(num + num7) + 2] == 0x45)) && ((buf.b[(num + num7) + 3] == 0x66) || (buf.b[(num + num7) + 3] == 70)))) && (buf.b[(num + num7) + 4] == 0x3d))
                            {
                                num += num7;
                                num += 4;
                                this.ReadValue(buf, ref num, _params.file_name);
                                this.CombinePaths(this._htmlPath, _params.file_name);
                                this.CSS_read_file(_params);
                                goto Label_43AB;
                            }
                        }
                    }
            Label_43AB:
                while ((buf.b[num] != 0x3e) && (num < max))
                {
                    num++;
                }
            goto Label_5BD8;
        Label_43C7:
            if ((((!flag9 && (buf.b[num] == 60)) && ((buf.b[num + 1] == 0x68) || (buf.b[num + 1] == 0x48))) && (((buf.b[num + 2] == 0x65) || (buf.b[num + 2] == 0x45)) && ((buf.b[num + 3] == 0x61) || (buf.b[num + 3] == 0x41)))) && (((buf.b[num + 4] == 100) || (buf.b[num + 4] == 0x44)) && (buf.b[num + 5] == 0x3e)))
            {
                while (num < max)
                {
                    if ((((buf.b[num] != 60) || ((buf.b[num + 1] != 0x6c) && (buf.b[num + 1] != 0x4c))) || (((buf.b[num + 2] != 0x69) && (buf.b[num + 2] != 0x49)) || ((buf.b[num + 3] != 110) && (buf.b[num + 3] != 0x4e)))) || (((buf.b[num + 4] != 0x6b) && (buf.b[num + 4] != 0x4b)) || !this.IS_DELIMITER(buf.b[num + 5])))
                    {
                        goto Label_4834;
                    }
                    num += 5;
                    num7 = 0;
                    num5 = 0;
                    while (((num + num7) < max) && (buf.b[num + num7] != 0x3e))
                    {
                        if ((((((buf.b[num + num7] == 0x73) || (buf.b[num + num7] == 0x53)) && ((buf.b[(num + num7) + 1] == 0x74) || (buf.b[(num + num7) + 1] == 0x54))) && (((buf.b[(num + num7) + 2] == 0x79) || (buf.b[(num + num7) + 2] == 0x59)) && ((buf.b[(num + num7) + 3] == 0x6c) || (buf.b[(num + num7) + 3] == 0x4c)))) && ((((buf.b[(num + num7) + 4] == 0x65) || (buf.b[(num + num7) + 4] == 0x45)) && ((buf.b[(num + num7) + 5] == 0x73) || (buf.b[(num + num7) + 5] == 0x53))) && (((buf.b[(num + num7) + 6] == 0x68) || (buf.b[(num + num7) + 6] == 0x48)) && ((buf.b[(num + num7) + 7] == 0x65) || (buf.b[(num + num7) + 7] == 0x45))))) && (((buf.b[(num + num7) + 8] == 0x65) || (buf.b[(num + num7) + 8] == 0x45)) && ((buf.b[(num + num7) + 9] == 0x74) || (buf.b[(num + num7) + 9] == 0x54))))
                        {
                            num5 = 1;
                            goto Label_46FC;
                        }
                        num7++;
                    }
                Label_46FC:
                    if (num5 == 1)
                    {
                        for (num7 = 0; ((num + num7) < max) && (buf.b[num + num7] != 0x3e); num7++)
                        {
                            if (((((buf.b[num + num7] == 0x68) || (buf.b[num + num7] == 0x48)) && ((buf.b[(num + num7) + 1] == 0x72) || (buf.b[(num + num7) + 1] == 0x52))) && (((buf.b[(num + num7) + 2] == 0x65) || (buf.b[(num + num7) + 2] == 0x45)) && ((buf.b[(num + num7) + 3] == 0x66) || (buf.b[(num + num7) + 3] == 70)))) && (buf.b[(num + num7) + 4] == 0x3d))
                            {
                                num += num7;
                                num += 4;
                                this.ReadValue(buf, ref num, _params.file_name);
                                this.CombinePaths(this._htmlPath, _params.file_name);
                                this.CSS_read_file(_params);
                                goto Label_4820;
                            }
                        }
                    }
            Label_4820:
                while ((buf.b[num] != 0x3e) && (num < max))
                {
                    num++;
                }
        Label_4834:
            if (((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x73)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x54) && (buf.b[num + 3] == 0x59))) && ((buf.b[num + 4] == 0x4c) && (buf.b[num + 5] == 0x45)))) && !this.CSS_read_from_tags(_params, max, buf, ref num))
            {
                num4 = 0;
                while ((num4 == 0) && (num < max))
                {
                    if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e))))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x54))) && (((buf.b[num + 4] == 0x59) && (buf.b[num + 5] == 0x4c)) && ((buf.b[num + 6] == 0x45) && (buf.b[num + 7] == 0x3e)))))
                    {
                        num4 = 1;
                    }
                    num++;
                }
                num += 7;
            }
        if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x62) || (buf.b[num + 1] == 0x42))) && (((buf.b[num + 2] == 0x6f) || (buf.b[num + 2] == 0x4f)) && ((buf.b[num + 3] == 100) || (buf.b[num + 3] == 0x44)))) && (((buf.b[num + 4] == 0x79) || (buf.b[num + 4] == 0x59)) && ((buf.b[num + 5] == 0x3e) || this.IS_DELIMITER(buf.b[num + 5]))))
        {
            if (this.IS_DELIMITER(buf.b[num + 5]))
            {
                while ((buf.b[num + 5] != 0x3e) && (num < max))
                {
                    num++;
                }
            }
            num += 5;
            flag9 = true;
            goto Label_5BD8;
        }
        if (((buf.b[num] == 60) && ((buf.b[num + 1] == 0x70) || (buf.b[num + 1] == 80))) && ((buf.b[num + 2] == 0x3e) || this.IS_DELIMITER(buf.b[num + 2])))
        {
            num--;
            flag9 = true;
            goto Label_5BD8;
        }
        if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x74) || (buf.b[num + 1] == 0x54))) && (((buf.b[num + 2] == 100) || (buf.b[num + 2] == 0x44)) || ((buf.b[num + 2] == 0x68) || (buf.b[num + 2] == 0x48)))) && ((buf.b[num + 3] == 0x3e) || this.IS_DELIMITER(buf.b[num + 3])))
        {
            if (this.IS_DELIMITER(buf.b[num + 3]))
            {
                while (!this.IS_XTHAN(buf.b[num + 3]) && (num < max))
                {
                    num++;
                }
            }
            num += 3;
            flag9 = true;
            goto Label_5BD8;
        }
        if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x73) || (buf.b[num + 1] == 0x53))) && (((buf.b[num + 2] == 0x63) || (buf.b[num + 2] == 0x43)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && ((((buf.b[num + 4] == 0x69) || (buf.b[num + 4] == 0x49)) && ((buf.b[num + 5] == 0x70) || (buf.b[num + 5] == 80))) && ((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54))))
        {
            num4 = 0;
            while ((num4 == 0) && (num < max))
            {
                if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) || (buf.b[num + 2] == 0x53))) && (((buf.b[num + 3] == 0x63) || (buf.b[num + 3] == 0x43)) && ((buf.b[num + 4] == 0x72) || (buf.b[num + 4] == 0x52)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x70) || (buf.b[num + 6] == 80))) && (((buf.b[num + 7] == 0x74) || (buf.b[num + 7] == 0x54)) && (buf.b[num + 8] == 0x3e))))
                {
                    num4 = 1;
                }
                num++;
            }
            num += 7;
        }
        if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x68) || (buf.b[num + 2] == 0x48))) && (((buf.b[num + 3] == 0x65) || (buf.b[num + 3] == 0x45)) && ((buf.b[num + 4] == 0x61) || (buf.b[num + 4] == 0x41)))) && (((buf.b[num + 5] == 100) || (buf.b[num + 5] == 0x44)) && (buf.b[num + 6] == 0x3e)))
        {
            num += 6;
            flag9 = true;
            goto Label_5BD8;
        }
        num++;
                }
            }
            else if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x73) || (buf.b[num + 1] == 0x53))) && (((buf.b[num + 2] == 0x63) || (buf.b[num + 2] == 0x43)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && ((((buf.b[num + 4] == 0x69) || (buf.b[num + 4] == 0x49)) && ((buf.b[num + 5] == 0x70) || (buf.b[num + 5] == 80))) && ((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54))))
            {
                num4 = 0;
                while ((num4 == 0) && (num < max))
                {
                    if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) || (buf.b[num + 2] == 0x53))) && (((buf.b[num + 3] == 0x63) || (buf.b[num + 3] == 0x43)) && ((buf.b[num + 4] == 0x72) || (buf.b[num + 4] == 0x52)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x70) || (buf.b[num + 6] == 80))) && (((buf.b[num + 7] == 0x74) || (buf.b[num + 7] == 0x54)) && (buf.b[num + 8] == 0x3e))))
                    {
                        num4 = 1;
                    }
                    num++;
                }
                num += 7;
            }
            else if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x73)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x74) && (buf.b[num + 3] == 0x79))) && ((buf.b[num + 4] == 0x6c) && (buf.b[num + 5] == 0x65)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x53)) && ((buf.b[num + 2] == 0x54) && (buf.b[num + 3] == 0x59))) && ((buf.b[num + 4] == 0x4c) && (buf.b[num + 5] == 0x45))))
            {
                if (!this.CSS_read_from_tags(_params, max, buf, ref num))
                {
                    num4 = 0;
                    while ((num4 == 0) && (num < max))
                    {
                        if ((((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e)))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x74))) && (((buf.b[num + 4] == 0x79) && (buf.b[num + 5] == 0x6c)) && ((buf.b[num + 6] == 0x65) && (buf.b[num + 7] == 0x3e))))) || ((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x53) && (buf.b[num + 3] == 0x54))) && (((buf.b[num + 4] == 0x59) && (buf.b[num + 5] == 0x4c)) && ((buf.b[num + 6] == 0x45) && (buf.b[num + 7] == 0x3e)))))
                        {
                            num4 = 1;
                        }
                        num++;
                    }
                    num += 7;
                }
            }
            else if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x66) || (buf.b[num + 1] == 70))) && (((buf.b[num + 2] == 0x6f) || (buf.b[num + 2] == 0x4f)) && ((buf.b[num + 3] == 0x72) || (buf.b[num + 3] == 0x52)))) && (((buf.b[num + 4] == 0x6d) || (buf.b[num + 4] == 0x4d)) && ((buf.b[num + 5] == 0x3e) || this.IS_DELIMITER(buf.b[num + 5]))))
            {
                num += 5;
                while ((buf.b[num] != 0x3e) && (num < max))
                {
                    num++;
                }
            }
            else if (((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x6f) || (buf.b[num + 1] == 0x4f))) && (((buf.b[num + 2] == 0x70) || (buf.b[num + 2] == 80)) && ((buf.b[num + 3] == 0x74) || (buf.b[num + 3] == 0x54)))) && ((((buf.b[num + 4] == 0x69) || (buf.b[num + 4] == 0x49)) && ((buf.b[num + 5] == 0x6f) || (buf.b[num + 5] == 0x4f))) && ((buf.b[num + 6] == 110) || (buf.b[num + 6] == 0x4e)))) && ((buf.b[num + 7] == 0x3e) || (buf.b[num + 7] == 0x20)))
            {
                while (num < max)
                {
                    if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x6f) || (buf.b[num + 2] == 0x4f))) && (((buf.b[num + 3] == 0x70) || (buf.b[num + 3] == 80)) && ((buf.b[num + 4] == 0x74) || (buf.b[num + 4] == 0x54)))) && ((((buf.b[num + 5] == 0x69) || (buf.b[num + 5] == 0x49)) && ((buf.b[num + 6] == 0x6f) || (buf.b[num + 6] == 0x4f))) && (((buf.b[num + 7] == 110) || (buf.b[num + 7] == 0x4e)) && (buf.b[num + 8] == 0x3e))))
                    {
                        num += 8;
                        goto Label_5BD8;
                    }
                    num++;
                }
            }
            else if ((((buf.b[num] == 60) && ((buf.b[num + 1] == 0x73) || (buf.b[num + 1] == 0x53))) && (((buf.b[num + 2] == 0x65) || (buf.b[num + 2] == 0x45)) && ((buf.b[num + 3] == 0x6c) || (buf.b[num + 3] == 0x4c)))) && ((((buf.b[num + 4] == 0x65) || (buf.b[num + 4] == 0x45)) && ((buf.b[num + 5] == 0x63) || (buf.b[num + 5] == 0x43))) && (((buf.b[num + 6] == 0x74) || (buf.b[num + 6] == 0x54)) && ((buf.b[num + 7] == 0x3e) || this.IS_DELIMITER(buf.b[num + 7])))))
            {
                num += 7;
                while (num < max)
                {
                    if (((((buf.b[num] == 60) && (buf.b[num + 1] == 0x2f)) && ((buf.b[num + 2] == 0x73) || (buf.b[num + 2] == 0x53))) && (((buf.b[num + 3] == 0x65) || (buf.b[num + 3] == 0x45)) && ((buf.b[num + 4] == 0x6c) || (buf.b[num + 4] == 0x4c)))) && ((((buf.b[num + 5] == 0x65) || (buf.b[num + 5] == 0x45)) && ((buf.b[num + 6] == 0x63) || (buf.b[num + 6] == 0x43))) && (((buf.b[num + 7] == 0x74) || (buf.b[num + 7] == 0x54)) && (buf.b[num + 8] == 0x3e))))
                    {
                        num += 8;
                        goto Label_5BD8;
                    }
                    num++;
                }
            }
            else if ((buf.b[num] == 60) && (buf.b[num + 1] == 0x25))
            {
                while (num < max)
                {
                    if ((buf.b[num - 1] == 0x25) && (buf.b[num] == 0x3e))
                    {
                        goto Label_5BD8;
                    }
                    num++;
                }
            }
            else if (((buf.b[num] == 60) && (buf.b[num + 1] == 0x21)) && ((buf.b[num + 2] == 0x2d) && (buf.b[num + 3] == 0x2d)))
            {
                num += 3;
                num7 = 1;
                while ((num7 > 0) && (num < max))
                {
                    if (((buf.b[num] == 0x2d) && (buf.b[num + 1] == 0x2d)) && (buf.b[num + 2] == 0x3e))
                    {
                        num7--;
                        num++;
                    }
                    if (((buf.b[num] == 60) && (buf.b[num + 1] == 0x21)) && ((buf.b[num + 2] == 0x2d) && (buf.b[num + 3] == 0x2d)))
                    {
                        num7++;
                        num += 3;
                    }
                    num++;
                }
            }
            else if (((class4.len <= 1) || (buf.b[num] != 13)) || (class4.b[class4.len - 1] != 13))
            {
                class4.Add(buf.b[num]);
                num10++;
            }
    Label_5BD8:
        num++;
                }
                max = num10;
                for (num = 0; num < num10; num++)
                {
                    if (((((this._preserveFontFace == 1) && ((class4.b[num] == 0x66) || (class4.b[num] == 70))) && (((class4.b[num + 1] == 0x6f) || (class4.b[num + 1] == 0x4f)) && ((class4.b[num + 2] == 110) || (class4.b[num + 2] == 0x4e)))) && ((((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)) && (class4.b[num + 4] == 0x2d)) && (((class4.b[num + 5] == 0x66) || (class4.b[num + 5] == 70)) && ((class4.b[num + 6] == 0x61) || (class4.b[num + 6] == 0x41))))) && (((((class4.b[num + 7] == 0x6d) || (class4.b[num + 7] == 0x4d)) && ((class4.b[num + 8] == 0x69) || (class4.b[num + 8] == 0x49))) && (((class4.b[num + 9] == 0x6c) || (class4.b[num + 9] == 0x4c)) && ((class4.b[num + 10] == 0x79) || (class4.b[num + 10] == 0x59)))) && (class4.b[num + 11] == 0x3a)))
                    {
                        num += 12;
                        class8.Clear();
                        this.read_value_CSS(class4, ref num, num10, class8, -1111, true);
                        if (class8.len != 0)
                        {
                            num7 = 0;
                            flag = false;
                            while ((num7 < num13) && (num7 < this.MAX_FONTS))
                            {
                                if (class8.byteCmpi(list[num7].ToString()) == 0)
                                {
                                    flag = true;
                                }
                                num7++;
                            }
                            if (!flag)
                            {
                                list.Add(class8.ByteToString());
                                num13++;
                            }
                        }
                    }
                    else
                    {
                        if (((((this._preserveFontColor == 1) || (this._preserveBackgroundColor == 1)) && ((class4.b[num] == 0x63) || (class4.b[num] == 0x43))) && (((class4.b[num + 1] == 0x6f) || (class4.b[num + 1] == 0x4f)) && ((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)))) && ((((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)) && ((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52))) && (class4.b[num + 5] == 0x3a)))
                        {
                            num += 6;
                            this.read_color(class4, ref num, max, class10);
                            num7 = 0;
                            flag2 = false;
                            while ((num7 < num14) && (num7 < this.MAX_COLORS))
                            {
                                if (class10.byteCmpi(list2[num7].ToString()) == 0)
                                {
                                    flag2 = true;
                                }
                                num7++;
                            }
                            if (!flag2)
                            {
                                list2.Add(class10.ByteToString());
                                num14++;
                                class10.Clear();
                            }
                        }
                        if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x66) || (class4.b[num + 1] == 70))) && (((class4.b[num + 2] == 0x6f) || (class4.b[num + 2] == 0x4f)) && ((class4.b[num + 3] == 110) || (class4.b[num + 3] == 0x4e)))) && (((class4.b[num + 4] == 0x74) || (class4.b[num + 4] == 0x54)) && this.IS_DELIMITER(class4.b[num + 5])))
                        {
                            while ((class4.b[num + 5] != 0x3e) && (num < num10))
                            {
                                if ((((this._preserveFontColor != 1) || ((class4.b[num] != 0x66) && (class4.b[num] != 70))) || (((class4.b[num + 1] != 0x61) && (class4.b[num + 1] != 0x41)) || ((class4.b[num + 2] != 0x63) && (class4.b[num + 2] != 0x43)))) || (((class4.b[num + 3] != 0x65) && (class4.b[num + 3] != 0x45)) || (class4.b[num + 4] != 0x3d)))
                                {
                                    goto Label_61CA;
                                }
                                num7 = 0;
                                class8.Clear();
                                if ((class4.b[num + 5] != 0x22) && (class4.b[num + 5] != 0x27))
                                {
                                    goto Label_6145;
                                }
                                while ((((class4.b[num + 6] != 0x3e) && (class4.b[num + 6] != 0x22)) && (class4.b[num + 6] != 0x27)) && (class4.b[num + 6] != 0x2c))
                                {
                                    class8.Add(class4.b[num + 6]);
                                    num++;
                                }
                                goto Label_6179;
                            Label_612C:
                                class8.Add(class4.b[num + 5]);
                            num++;
                        Label_6145:
                            if (((class4.b[num + 5] != 0x3e) && !this.IS_DELIMITER(class4.b[num + 5])) && (class4.b[num + 6] != 0x2c))
                            {
                                goto Label_612C;
                            }
                    Label_6179:
                        num7 = 0;
                    flag = false;
                    while ((num7 < num13) && (num7 < this.MAX_FONTS))
                    {
                        if (class8.byteCmpi(list[num7].ToString()) == 0)
                        {
                            flag = true;
                        }
                        num7++;
                    }
                    if (!flag)
                    {
                        list.Add(class8.ByteToString());
                        num13++;
                    }
                Label_61CA:
                    if (((((this._preserveFontColor == 1) || (this._preserveBackgroundColor == 1)) && ((class4.b[num] == 0x63) || (class4.b[num] == 0x43))) && (((class4.b[num + 1] == 0x6f) || (class4.b[num + 1] == 0x4f)) && ((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)))) && ((((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)) && ((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52))) && ((class4.b[num + 5] == 0x3d) || (class4.b[num + 5] == 0x3a))))
                    {
                        num += 6;
                        this.read_color(class4, ref num, max, class10);
                        num7 = 0;
                        flag2 = false;
                        while ((num7 < num14) && (num7 < this.MAX_COLORS))
                        {
                            if (class10.byteCmpi(list2[num7].ToString()) == 0)
                            {
                                flag2 = true;
                            }
                            num7++;
                        }
                        if (!flag2)
                        {
                            list2.Add(class10.ByteToString());
                            num14++;
                            class10.Clear();
                        }
                    }
                num++;
                            }
                        }
                        else if (((((this._preserveBackgroundColor == 1) && ((class4.b[num] == 0x62) || (class4.b[num] == 0x42))) && (((class4.b[num + 1] == 0x67) || (class4.b[num + 1] == 0x47)) && ((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)))) && ((((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)) && ((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c))) && (((class4.b[num + 5] == 0x6f) || (class4.b[num + 5] == 0x4f)) && ((class4.b[num + 6] == 0x72) || (class4.b[num + 6] == 0x52))))) && ((class4.b[num + 7] == 0x3d) || (class4.b[num + 7] == 0x3a)))
                        {
                            num += 8;
                            this.read_color(class4, ref num, max, class10);
                            num7 = 0;
                            flag2 = false;
                            while ((num7 < num14) && (num7 < this.MAX_COLORS))
                            {
                                if (class10.byteCmpi(list2[num7].ToString()) == 0)
                                {
                                    flag2 = true;
                                }
                                num7++;
                            }
                            if (!flag2)
                            {
                                list2.Add(class10.ByteToString());
                                num14++;
                                class10.Clear();
                            }
                        }
                    }
                }
                if (_params.use)
                {
                    _params.font_list_num = num13;
                    _params.color_list_num = num14;
                    this.CSS_analyse(_params, _params.buf, list, list2);
                    num13 = _params.font_list_num;
                    num14 = _params.color_list_num;
                }
                else
                {
                    _params.font_list_num = num13;
                    _params.color_list_num = num14;
                }
                if ((_params.body_tag && (((CSS_styles)_params.CSS_style[_params.body_tag_index]).ablaze.b[0] == 1)) && (this._preserveFontFace == 1))
                {
                    class6.Clear();
                    class6.Add((string)list[((CSS_styles)_params.CSS_style[_params.body_tag_index]).font_family]);
                }
                buf.Clear();
                num11 = 0;
                if (this._rtfParts == eRtfParts.RtfCompletely)
                {
                    if (!hieroglyph)
                    {
                        class16.Clear();
                        objArray = new object[] { @"{\rtf1\ansi\ansicpg", num44, @"\deff0\deflang", lang, @"\fs", (fontsize * 2).ToString(), @"{\fonttbl{\f0\", class31.ByteToString(), @"\fprq2\fcharset", charset, " ", class6.ByteToString(), ";}", this.LF };
                        class16.Add(string.Concat(objArray));
                    }
                    else
                    {
                        class16.Clear();
                        objArray = new object[] { @"{\rtf1\ansi\ansicpg", num44, @"\deff0\deflang", lang, @"\fs", (fontsize * 2).ToString(), @"{\fonttbl{\f0\", class31.ByteToString(), @"\fprq2\fcharset", charset, " ", class6.ByteToString(), " Unicode MS;}", this.LF };
                        class16.Add(string.Concat(objArray));
                    }
                    buf.Add(class16);
                    num11 += class16.len;
                }
                else
                {
                    buf.Add("{");
                    num11++;
                }
                if (this._rtfParts == eRtfParts.RtfCompletely)
                {
                    for (num7 = 0; num7 < num13; num7++)
                    {
                        class16.Clear();
                        class16.Add(string.Concat(new object[] { @"{\f", num7 + 2, @"\fnil\fcharset", charset, " ", list[num7].ToString(), ";}", this.LF }));
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    class16.Clear();
                    class16.Add(@"{\f99\froman\fcharset0\fprq2{\*\panose 02020603050405020304}" + class6.ByteToString() + ";}");
                    class16.Add(@"{\f100\fnil\fcharset2 Symbol;}{\f101\fnil\fcharset2 Wingdings;}{\f102\fcharset204{\*\fname Courier New;}Courier New CYR;}{\f103\fcharset0 " + class6.ByteToString() + ";}}");
                    class16.Add(this.LF + @"{\colortbl ;\red0\green0\blue0;\red51\green102\blue255;");
                    buf.Add(class16);
                    num11 += class16.len;
                    for (num7 = 0; num7 < list2.Count; num7++)
                    {
                        class10.Clear();
                        str8 = list2[num7].ToString();
                        class10.Add((byte)str8[0]);
                        class10.Add((byte)str8[1]);
                        numArray[0] = this.hex_to_dec(class10);
                        class10.Clear();
                        class10.Add((byte)str8[2]);
                        class10.Add((byte)str8[3]);
                        numArray[1] = this.hex_to_dec(class10);
                        class10.Clear();
                        class10.Add((byte)str8[4]);
                        class10.Add((byte)str8[5]);
                        numArray[2] = this.hex_to_dec(class10);
                        class10.Clear();
                        class16.Clear();
                        class16.Add(@"\red" + numArray[0].ToString() + @"\green" + numArray[1].ToString() + @"\blue" + numArray[2].ToString() + ";");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    buf.Add("}" + this.LF);
                    num11 += 2;
                }
                if (this._pageOrientation == ePageOrientation.Portrait)
                {
                    class16.Clear();
                    class16.Add(string.Concat(new object[] { @"\paperw", this.page_width, @"\paperh", this.page_height, @"\margl", this.margl, @"\margr", this.margr, @"\margt", this.margt, @"\margb", this.margb, "" }));
                    this.TBLEN = this.TBLEN = (this.page_width - this.margl) - this.margr;
                    if (this.TBLEN < 0x3e8)
                    {
                        this.TBLEN = 0x251c;
                    }
                }
                else
                {
                    class16.Clear();
                    class16.Add(string.Concat(new object[] { @"\paperh", this.page_width, @"\paperw", this.page_height, @"\landscape\margl", this.margl, @"\margr", this.margr, @"\margt", this.margt, @"\margb", this.margb }));
                    this.TBLEN = (this.page_height - this.margl) - this.margr;
                    if (this.TBLEN < 0x3e8)
                    {
                        this.TBLEN = 0x251c;
                    }
                }
                if (this._rtfParts == eRtfParts.RtfCompletely)
                {
                    buf.Add(class16);
                    num11 += class16.len;
                }
                if (_params.body_tag)
                {
                    if ((((CSS_styles)_params.CSS_style[_params.body_tag_index]).ablaze.b[0] == 1) && (this._preserveFontFace == 1))
                    {
                        class16.Clear();
                        class16.Add(this.LF + @"\f" + ((((CSS_styles)_params.CSS_style[_params.body_tag_index]).font_family + 2)).ToString() + " ");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    if ((((CSS_styles)_params.CSS_style[_params.body_tag_index]).ablaze.b[1] == 1) && (this._preserveFontColor == 1))
                    {
                        class16.Clear();
                        class16.Add(this.LF + @"\cf" + ((((CSS_styles)_params.CSS_style[_params.body_tag_index]).color + 3)).ToString() + " ");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    if ((((CSS_styles)_params.CSS_style[_params.body_tag_index]).ablaze.b[3] == 1) && (this._preserveFontSize == 1))
                    {
                        fontsize = ((CSS_styles)_params.CSS_style[_params.body_tag_index]).font_size / 2;
                        if ((fontsize <= 0) || (fontsize > this.FONT_SIZE_MAX))
                        {
                            fontsize = 12;
                        }
                        else
                        {
                            str19 = (fontsize * 2).ToString();
                            strArray = new string[] { this.LF, @"\par\pard\sb", num25.ToString(), @"\sa", num26.ToString(), @"\sbauto1\saauto1\fs", (fontsize * 2).ToString(), @"\lang", lang.ToString(), " " };
                            str14 = string.Concat(strArray);
                            strArray = new string[10];
                            strArray[0] = this.LF;
                            strArray[1] = @"\par\pard\intbl\sb";
                            strArray[2] = num25.ToString();
                            strArray[3] = @"\sa";
                            strArray[4] = num26.ToString();
                            strArray[5] = @"\sbauto1\saauto1\fs";
                            strArray[6] = (fontsize * 2).ToString();
                            strArray[7] = @"\lang";
                            strArray[8] = lang.ToString();
                            strArray[9] = " ";
                            str15 = string.Concat(strArray);
                            strArray = new string[8];
                            strArray[0] = this.LF;
                            strArray[1] = @"\pard\intbl\sb";
                            strArray[2] = num25.ToString();
                            strArray[3] = @"\fs";
                            strArray[4] = (fontsize * 2).ToString();
                            strArray[5] = @"\lang";
                            strArray[6] = lang.ToString();
                            strArray[7] = " ";
                            str16 = string.Concat(strArray);
                            str17 = this.LF + @"\sb0\sa0\par ";
                            str18 = this.LF + @"\sb0\sa0\par\intbl\lang" + lang.ToString() + " ";
                            str20 = this.LF + @"{\par\b\fs" + str19 + " ";
                            str21 = this.LF + @"{\b\fs" + str19 + " ";
                            length = str20.Length;
                            num51 = str21.Length;
                            str19 = (fontsize / 2).ToString();
                            str22 = @"{\sub\dn" + str19 + " ";
                            num53 = str22.Length;
                            str19 = (fontsize / 2).ToString();
                            str23 = @"{\super\up" + str19 + " ";
                            num54 = str23.Length;
                        }
                    }
                }
                if (this._rtfParts == eRtfParts.RtfCompletely)
                {
                    if (this._pageNumbers == ePageNumbers.PageNumSecond)
                    {
                        class16.Clear();
                        class16.Add(this.LF + @"\titlepg ");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    if (this._pageHeader.Length > 0)
                    {
                        class16.Clear();
                        class16.Add(this.LF + @"{\header\pard\plain " + this._pageHeader + @" \par}");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    if (((this._pageFooter.Length > 0) || (this._pageNumbers == ePageNumbers.PageNumFirst)) || (this._pageNumbers == ePageNumbers.PageNumSecond))
                    {
                        class16.Clear();
                        if ((this._pageNumbers == ePageNumbers.PageNumFirst) || (this._pageNumbers == ePageNumbers.PageNumSecond))
                        {
                            if (this._pageOrientation == ePageOrientation.Landscape)
                            {
                                num39 = this.page_height;
                                num40 = this.page_width;
                            }
                            else
                            {
                                num39 = this.page_width;
                                num40 = this.page_height;
                            }
                            if (this._pageNumbersAlignH == ePageAlignment.AlignCenter)
                            {
                                num8 = num39 / 2;
                            }
                            else if (this._pageNumbersAlignH == ePageAlignment.AlignRight)
                            {
                                num8 = num39 - this.margr;
                            }
                            else
                            {
                                num8 = 0;
                            }
                            if (num8 > num39)
                            {
                                num8 = 0;
                            }
                            if (this._pageNumbersAlignV == ePageAlignment.AlignTop)
                            {
                                num9 = -(this.margt / 2);
                            }
                            else
                            {
                                num9 = num40 - 950;
                            }
                            if (num9 > num40)
                            {
                                num9 = 0;
                            }
                            class16.Clear();
                            str19 = (fontsize * 2).ToString();
                            class17.Add(string.Concat(new object[] { @" \pvpg\phpg\posx", num8, @"\posy", num9, @"{\field{\*\fldinst {\fs", str19, @" PAGE}}}\par", this.LF }));
                        }
                        class16.Clear();
                        class16.Add(this.LF + @"{\footer" + class17.ByteToString() + @"\pard\plain " + this._pageFooter + @" \par}");
                        buf.Add(class16);
                        num11 += class16.len;
                    }
                    class16.Clear();
                    str19 = (fontsize * 2).ToString();
                    objArray = new object[] { this.LF, @"\pard\sb", num25, @"\sa", num26, @"\sbauto1\saauto1\fs", (fontsize * 2).ToString(), @"\lang", lang, this.LF };
                    class16.Add(string.Concat(objArray));
                    buf.Add(class16);
                    num11 += class16.len;
                }
                numArray3[0] = fontsize;
                num = 0;
                num4 = 1;
                num12 = buf.len;
                num5 = 1;
                while (num < num10)
                {
                    string str11;
                    if ((((class4.len > 0) && (num > 0)) && ((class4.b[num - 1] == 0x3e) && (class4.b[num] != 60))) && (class4.b[num] != 10))
                    {
                        num4 = 1;
                    }
                    if ((((!flag14 && (class4.b[num] == 60)) && ((class4.b[num + 1] == 0x68) || (class4.b[num + 1] == 0x48))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x6d) || (class4.b[num + 3] == 0x4d)))) && (((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x3e) || this.IS_DELIMITER(class4.b[num + 5]))))
                    {
                        num += 5;
                        while ((class4.b[num] != 0x3e) && (num < max))
                        {
                            num++;
                        }
                        buf.len = num12;
                        flag14 = true;
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x62) || (class4.b[num + 1] == 0x42))) && (((class4.b[num + 2] == 0x6f) || (class4.b[num + 2] == 0x4f)) && ((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)))) && (((class4.b[num + 4] == 0x79) || (class4.b[num + 4] == 0x59)) && ((class4.b[num + 5] == 0x3e) || this.IS_DELIMITER(class4.b[num + 5]))))
                    {
                        if (this.IS_DELIMITER(class4.b[num + 5]))
                        {
                            while ((class4.b[num + 5] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        num += 5;
                        buf.len = num12;
                        goto Label_134B7;
                    }
                    if (((num == 0) && (class4.b[num] == 0xef)) && ((class4.b[num + 1] == 0xbb) && (class4.b[num + 2] == 0xbf)))
                    {
                        num += 2;
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80))) && (class4.b[num + 3] == 0x3e))
                    {
                        if (flag12)
                        {
                            if (num34 < 2)
                            {
                                num34++;
                            }
                            else
                            {
                                num34 = 1;
                                num5 = 0;
                            }
                        }
                        if (_tablesArray[num36].table)
                        {
                            buf.Add(str15);
                            num5 = 1;
                            if ((num36 > 0) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else
                        {
                            buf.Add(str14);
                            num5 = 1;
                        }
                        num += 3;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.P_CSS);
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x70) || (class4.b[num + 1] == 80))) && ((class4.b[num + 2] == 0x3e) || (class4.b[num + 2] == 0x20)))
                    {
                        if (flag12)
                        {
                            if (num34 < 2)
                            {
                                num34++;
                                num5 = 1;
                            }
                            else
                            {
                                num34 = 1;
                                num5 = 0;
                            }
                        }
                        if (buf.len < (num12 + 2))
                        {
                            num5 = 1;
                        }
                        if (num5 == 0)
                        {
                            if (_tablesArray[num36].table)
                            {
                                if (flag21)
                                {
                                    buf.Add(str15);
                                }
                                else
                                {
                                    buf.Add(str16);
                                }
                                if ((num36 > 0) && (this._preserveNestedTables == 1))
                                {
                                    str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                                    buf.Add(str11);
                                    num11 += str11.Length;
                                }
                            }
                            else
                            {
                                buf.Add(str14);
                            }
                            num5 = 1;
                        }
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.P_CSS);
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && (class4.b[num + 1] == 0x21)) && ((class4.b[num + 2] == 0x2d) && (class4.b[num + 3] == 0x2d)))
                    {
                        num += 3;
                        while (num < max)
                        {
                            if (((class4.b[num] == 0x2d) && (class4.b[num + 1] == 0x2d)) && (class4.b[num + 2] == 0x3e))
                            {
                                break;
                            }
                            if (((class4.b[num] == 60) && (class4.b[num + 1] == 0x21)) && ((class4.b[num + 2] == 0x2d) && (class4.b[num + 3] == 0x2d)))
                            {
                                num += 3;
                                while (num < max)
                                {
                                    if (((class4.b[num] == 0x2d) && (class4.b[num + 1] == 0x2d)) && (class4.b[num + 2] == 0x3e))
                                    {
                                        num += 2;
                                        break;
                                    }
                                    num++;
                                }
                            }
                            num++;
                        }
                        num += 2;
                        goto Label_134B7;
                    }
                    if ((((((num5 == 0) && (class4.b[num] == 60)) && ((class4.b[num + 1] == 0x61) || (class4.b[num + 1] == 0x41))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) && ((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)))) && ((((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52)) && ((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45))) && (((class4.b[num + 6] == 0x73) || (class4.b[num + 6] == 0x53)) && ((class4.b[num + 7] == 0x73) || (class4.b[num + 7] == 0x53))))) && (class4.b[num + 8] == 0x3e))
                    {
                        if (_tablesArray[num36].table)
                        {
                            buf.Add(str15);
                            if ((num36 > 0) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else
                        {
                            buf.Add(str14);
                        }
                        num5 = 1;
                        num += 8;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        goto Label_134B7;
                    }
                    if ((((((num5 == 0) && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && ((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)))) && ((((class4.b[num + 4] == 100) || (class4.b[num + 4] == 0x44)) && ((class4.b[num + 5] == 0x72) || (class4.b[num + 5] == 0x52))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && ((class4.b[num + 7] == 0x73) || (class4.b[num + 7] == 0x53))))) && (((class4.b[num + 8] == 0x73) || (class4.b[num + 8] == 0x53)) && (class4.b[num + 9] == 0x3e)))
                    {
                        if (_tablesArray[num36].table)
                        {
                            buf.Add(str15);
                            if ((num36 > 0) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else
                        {
                            buf.Add(str14);
                        }
                        num5 = 1;
                        num += 9;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x66) || (class4.b[num + 1] == 70))) && (((class4.b[num + 2] == 0x6f) || (class4.b[num + 2] == 0x4f)) && ((class4.b[num + 3] == 110) || (class4.b[num + 3] == 0x4e)))) && (((class4.b[num + 4] == 0x74) || (class4.b[num + 4] == 0x54)) && ((class4.b[num + 5] == 0x3e) || this.IS_DELIMITER(class4.b[num + 5]))))
                    {
                        index = num + 5;
                        flag6 = false;
                        flag7 = false;
                        if (this.IS_DELIMITER(class4.b[num + 5]))
                        {
                            while ((class4.b[num] != 0x3e) && (num < max))
                            {
                                if ((((this._preserveFontFace == 1) && ((class4.b[num] == 0x66) || (class4.b[num] == 70))) && (((class4.b[num + 1] == 0x61) || (class4.b[num + 1] == 0x41)) && ((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)))) && (((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)) && (((class4.b[num + 4] == 0x3d) || (class4.b[num + 4] == 0x3a)) || (class4.b[num + 4] == 0x20))))
                                {
                                    num7 = 0;
                                    class8.Clear();
                                    if (!flag3 && (num20 < this.STK_MAX))
                                    {
                                        class13.Add((byte)this.ToInt(class8));
                                        num20++;
                                    }
                                    num += 5;
                                    this.ReadValue(class4, ref num, class8);
                                    for (num7 = 0; num7 < num13; num7++)
                                    {
                                        if (class8.byteCmpi(list[num7].ToString()) == 0)
                                        {
                                            flag3 = false;
                                            class8.Clear();
                                            class8.Add(@"\f" + ((num7 + 2)).ToString() + " ");
                                            flag16 = true;
                                        }
                                    }
                                }
                                if ((((this._preserveFontSize == 1) && ((class4.b[num] == 0x73) || (class4.b[num] == 0x53))) && (((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49)) && ((class4.b[num + 2] == 0x7a) || (class4.b[num + 2] == 90)))) && (((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)) && (((class4.b[num + 4] == 0x3d) || (class4.b[num + 4] == 0x3a)) || (class4.b[num + 4] == 0x20))))
                                {
                                    num += 5;
                                    this.read_value_CSS_tolower(class4, ref num, max, newb, this.MAX_STYLE_NAME_LENGTH);
                                    num18 = newb.ByteToInt();
                                    num15 = num18;
                                    if (newb.IndexOf("px") != -1)
                                    {
                                        num18 = (int)(num18 * 0.75);
                                    }
                                    else if (newb.IndexOf("em") != -1)
                                    {
                                        num18 *= 12;
                                    }
                                    else if (newb.IndexOf("pt") != -1)
                                    {
                                        num18 = num18;
                                    }
                                    else if (newb.IndexOf("xx-small") != -1)
                                    {
                                        num18 = 8;
                                    }
                                    else if (newb.IndexOf("x-small") != -1)
                                    {
                                        num18 = 10;
                                    }
                                    else if (newb.IndexOf("small") != -1)
                                    {
                                        num18 = 12;
                                    }
                                    else if (newb.IndexOf("medium") != -1)
                                    {
                                        num18 = 14;
                                    }
                                    else if (newb.IndexOf("large") != -1)
                                    {
                                        num18 = 0x12;
                                    }
                                    else if (newb.IndexOf("x-large") != -1)
                                    {
                                        num18 = 0x18;
                                    }
                                    else if (newb.IndexOf("xx-large") != -1)
                                    {
                                        num18 = 0x24;
                                    }
                                    else if (newb.IndexOf("%") != -1)
                                    {
                                        num18 = (num15 * 12) / 100;
                                    }
                                    else
                                    {
                                        if (newb.b[0] == 0x2b)
                                        {
                                            num15 += num16;
                                            if (num15 < 0)
                                            {
                                                num15 = 0;
                                            }
                                            if (num15 > 7)
                                            {
                                                num15 = 7;
                                            }
                                        }
                                        if (newb.b[0] == 0x2d)
                                        {
                                            num15 = num16 - Math.Abs(num15);
                                            if (num15 < 0)
                                            {
                                                num15 = 0;
                                            }
                                            if (num15 > 7)
                                            {
                                                num15 = 7;
                                            }
                                        }
                                        if ((num15 >= 0) && (num15 <= 7))
                                        {
                                            num18 = numArray2[num15];
                                        }
                                    }
                                    flag5 = false;
                                    newb.Clear();
                                    newb.Add(@"\fs" + ((2 * num18)).ToString() + " ");
                                    if (num22 < this.STK_MAX)
                                    {
                                        numArray3[num22] = num18;
                                    }
                                    flag16 = true;
                                    flag7 = true;
                                    num--;
                                }
                                if ((((((this._preserveBackgroundColor == 1) && ((class4.b[num] == 0x62) || (class4.b[num] == 0x42))) && (((class4.b[num + 1] == 0x61) || (class4.b[num + 1] == 0x41)) && ((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)))) && ((((class4.b[num + 3] == 0x6b) || (class4.b[num + 3] == 0x4b)) && ((class4.b[num + 4] == 0x67) || (class4.b[num + 4] == 0x47))) && (((class4.b[num + 5] == 0x72) || (class4.b[num + 5] == 0x52)) && ((class4.b[num + 6] == 0x6f) || (class4.b[num + 6] == 0x4f))))) && (((((class4.b[num + 7] == 0x75) || (class4.b[num + 7] == 0x55)) && ((class4.b[num + 8] == 110) || (class4.b[num + 8] == 0x4e))) && (((class4.b[num + 9] == 100) || (class4.b[num + 9] == 0x44)) && (class4.b[num + 10] == 0x2d))) && ((((class4.b[num + 11] == 0x63) || (class4.b[num + 11] == 0x43)) && ((class4.b[num + 12] == 0x6f) || (class4.b[num + 12] == 0x4f))) && (((class4.b[num + 13] == 0x6c) || (class4.b[num + 13] == 0x4c)) && ((class4.b[num + 14] == 0x6f) || (class4.b[num + 14] == 0x4f)))))) && (((class4.b[num + 15] == 0x72) || (class4.b[num + 15] == 0x52)) && (class4.b[num + 0x10] == 0x3a)))
                                {
                                    num += 0x11;
                                    this.read_color(class4, ref num, max, class12);
                                    for (num7 = 0; num7 < num14; num7++)
                                    {
                                        if (class12.byteCmpi(list2[num7].ToString()) == 0)
                                        {
                                            class12.Clear();
                                            class12.Add(@"\chcbpat" + ((num7 + 3)).ToString() + " ");
                                            buf.Add(class12);
                                            num11 += class12.len;
                                            num19 = 1;
                                        }
                                    }
                                }
                                if ((((this._preserveFontColor == 1) && ((class4.b[num] == 0x63) || (class4.b[num] == 0x43))) && (((class4.b[num + 1] == 0x6f) || (class4.b[num + 1] == 0x4f)) && ((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)))) && ((((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)) && ((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52))) && (class4.b[num + 5] == 0x3d)))
                                {
                                    num += 6;
                                    this.ToInt(class10);
                                    this.read_color(class4, ref num, max, class10);
                                    for (num7 = 0; num7 < num14; num7++)
                                    {
                                        if (class10.byteCmpi(list2[num7].ToString()) == 0)
                                        {
                                            class10.Clear();
                                            class10.Add(@"\cf" + ((num7 + 3)).ToString() + " ");
                                            flag16 = true;
                                            if (num21 < this.STK_MAX)
                                            {
                                                class14.b[num21] = (byte)(num7 + 3);
                                            }
                                            flag4 = false;
                                            flag6 = true;
                                            break;
                                        }
                                    }
                                }
                                num++;
                            }
                        }
                        else
                        {
                            num += 5;
                        }
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag4)
                        {
                            buf.Add(class10);
                            num11 += class10.len;
                            if (!flag6 && (num21 < this.STK_MAX))
                            {
                                class14.b[num21] = class14.b[num21 - 1];
                            }
                            num21++;
                        }
                        else
                        {
                            class14.Add((byte)1);
                            num21++;
                            flag4 = false;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                            if (!flag7 && (num22 < this.STK_MAX))
                            {
                                numArray3[num22] = numArray3[num22 - 1];
                            }
                            num22++;
                        }
                        num = index;
                        this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.FONT_CSS);
                        goto Label_134B7;
                    }
                    if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x66) || (class4.b[num + 2] == 70))) && (((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)) && ((class4.b[num + 4] == 110) || (class4.b[num + 4] == 0x4e)))) && (((class4.b[num + 5] == 0x74) || (class4.b[num + 5] == 0x54)) && (class4.b[num + 6] == 0x3e)))
                    {
                        if ((this._preserveBackgroundColor == 1) && (num19 == 1))
                        {
                            buf.Add(@"\chcbpat0 ");
                            num11 += 10;
                            num19 = 0;
                        }
                        if (num20 > 0)
                        {
                            class8.Clear();
                            class8.Add(@"\f" + class13.b[num20 - 1] + " ");
                            flag16 = true;
                            num20--;
                        }
                        else
                        {
                            class8.Clear();
                            class8.Add(@"\f0 ");
                            flag16 = true;
                            flag3 = true;
                        }
                        if (num21 > 0)
                        {
                            num21--;
                            if (num21 == 0)
                            {
                                class10.Clear();
                                class10.Add(@"\cf1 ");
                                flag16 = true;
                                flag4 = true;
                            }
                            else if (num21 > 0)
                            {
                                class10.Clear();
                                class10.Add(@"\cf" + class14.b[num21 - 1] + " ");
                            }
                            flag16 = true;
                        }
                        else
                        {
                            class10.Clear();
                            class10.Add(@"\cf1 ");
                            flag16 = true;
                            flag4 = true;
                        }
                        if (num22 > 0)
                        {
                            num22--;
                            newb.Clear();
                            if (num22 > 0)
                            {
                                newb.Add(@"\fs" + ((numArray3[num22 - 1] * 2)).ToString() + " ");
                                flag16 = true;
                            }
                        }
                        else
                        {
                            newb.Clear();
                            newb.Add(@"\fs" + (fontsize * 2) + " ");
                            flag16 = true;
                            flag5 = true;
                        }
                        flag5 = true;
                        num += 6;
                        buf.Add(class10);
                        num11 += class10.len;
                        buf.Add(class8);
                        num11 += class8.len;
                        buf.Add(newb);
                        num11 += newb.len;
                        this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.FONT_CSS);
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && (((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80)) && ((class4.b[num + 3] == 0x61) || (class4.b[num + 3] == 0x41)))) && (((class4.b[num + 4] == 110) || (class4.b[num + 4] == 0x4e)) && this.IS_DELIMITER(class4.b[num + 5])))
                    {
                        num += 5;
                        this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.SPAN_CSS);
                        goto Label_134B7;
                    }
                    if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (((class4.b[num + 3] == 0x70) || (class4.b[num + 3] == 80)) && ((class4.b[num + 4] == 0x61) || (class4.b[num + 4] == 0x41)))) && (((class4.b[num + 5] == 110) || (class4.b[num + 5] == 0x4e)) && (class4.b[num + 6] == 0x3e)))
                    {
                        num += 6;
                        this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.SPAN_CSS);
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 110) || (class4.b[num + 2] == 0x4e)) && ((class4.b[num + 3] == 0x70) || (class4.b[num + 3] == 80)))) && ((((class4.b[num + 4] == 0x75) || (class4.b[num + 4] == 0x55)) && ((class4.b[num + 5] == 0x74) || (class4.b[num + 5] == 0x54))) && this.IS_DELIMITER(class4.b[num + 6])))
                    {
                        num += 6;
                        bool flag22 = false;
                        int num62 = 0;
                        while ((class4.b[num] != 0x3e) && (num < class4.len))
                        {
                            if (((((class4.b[num] == 0x74) || (class4.b[num] == 0x54)) && ((class4.b[num + 1] == 0x79) || (class4.b[num + 1] == 0x59))) && (((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)))) && (this.IS_DELIMITER(class4.b[num + 4]) || (class4.b[num + 4] == 0x3d)))
                            {
                                valueStr.Clear();
                                num += 4;
                                this.ReadValue(class4, ref num, valueStr);
                                if (valueStr.byteCmpi("checkbox") == 0)
                                {
                                    num62 = 1;
                                }
                                else if (valueStr.byteCmpi("radio") == 0)
                                {
                                    num62 = 2;
                                }
                            }
                            if (((this.IS_DELIMITER(class4.b[num]) && ((class4.b[num + 1] == 0x63) || (class4.b[num + 1] == 0x43))) && (((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)))) && ((((class4.b[num + 4] == 0x63) || (class4.b[num + 4] == 0x43)) && ((class4.b[num + 5] == 0x6b) || (class4.b[num + 5] == 0x4b))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && ((class4.b[num + 7] == 100) || (class4.b[num + 7] == 0x44)))))
                            {
                                flag22 = true;
                            }
                            num++;
                        }
                        if (num62 != 0)
                        {
                            if (num62 == 1)
                            {
                                if (flag22)
                                {
                                    buf.Add(str3);
                                }
                                else
                                {
                                    buf.Add(str4);
                                }
                            }
                            else if (num62 == 2)
                            {
                                if (flag22)
                                {
                                    buf.Add(str5);
                                }
                                else
                                {
                                    buf.Add(str6);
                                }
                            }
                        }
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x62) || (class4.b[num + 1] == 0x42))) && (((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52)) && (((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20)) || (class4.b[num + 3] == 0x2f))))
                    {
                        if ((class4.b[num + 3] == 0x20) || (class4.b[num + 3] == 0x2f))
                        {
                            while ((class4.b[num + 3] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        num5 = 1;
                        if ((num55 > 0) || (num56 > 0))
                        {
                            buf.Add(this.BR_STR_BULLETS);
                            num11 += this.BR_STR_BULLETS.Length;
                            num5 = 0;
                        }
                        else if (_tablesArray[num36].table)
                        {
                            if (_tablesArray[num36].cell > 0)
                            {
                                buf.Add(str18);
                                if ((num36 > 0) && (this._preserveNestedTables == 1))
                                {
                                    if (!_tablesArray[num36].tr_open && (_tablesArray[num36].table_level > 1))
                                    {
                                        str11 = @"\itap" + ((_tablesArray[num36].table_level - 1)).ToString() + " ";
                                    }
                                    else
                                    {
                                        str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                    }
                                    buf.Add(str11);
                                    num11 += str11.Length;
                                }
                            }
                        }
                        else
                        {
                            buf.Add(str17);
                        }
                        num += 3;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        buf.Add(align);
                        num11 += len;
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x75) || (class4.b[num + 1] == 0x55))) && (((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
                    {
                        num += 3;
                        if (class4.b[num] == 0x20)
                        {
                            while ((class4.b[num] != 0x3e) && (num < max))
                            {
                                if (((((class4.b[num] == 0x63) || (class4.b[num] == 0x43)) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && ((class4.b[num + 3] == 0x73) || (class4.b[num + 3] == 0x53)))) && (((class4.b[num + 4] == 0x73) || (class4.b[num + 4] == 0x53)) && (class4.b[num + 5] == 0x3d)))
                                {
                                    num += 5;
                                    _params.found = false;
                                    this.read_value_exact(class4, ref num, max, _params.style_name);
                                    if (_params.style_name.len > 0)
                                    {
                                        _params.found = true;
                                    }
                                    if (_params.found)
                                    {
                                        _params.found = false;
                                        for (num7 = 0; num7 < _params.styles; num7++)
                                        {
                                            if ((((CSS_styles)_params.CSS_style[num7]).name.byteCmp(_params.style_name.ByteToString()) == 0) && ((((CSS_styles)_params.CSS_style[num7]).css_tag_type == CSS_tag_type.UL_CSS) || (((CSS_styles)_params.CSS_style[num7]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
                                            {
                                                _params.found = true;
                                                if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 1)
                                                {
                                                    typeArray[num55] = listStyleType.LIST_NONE;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 2)
                                                {
                                                    typeArray[num55] = listStyleType.LIST_UL_DISC;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 3)
                                                {
                                                    typeArray[num55] = listStyleType.LIST_UL_CIRCLE;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 4)
                                                {
                                                    typeArray[num55] = listStyleType.LIST_UL_SQUARE;
                                                }
                                                break;
                                            }
                                        }
                                    }
                                }
                                if ((((((class4.b[num] == 0x6c) || (class4.b[num] == 0x4c)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)))) && (((class4.b[num + 4] == 0x2d) && ((class4.b[num + 5] == 0x73) || (class4.b[num + 5] == 0x53))) && (((class4.b[num + 6] == 0x74) || (class4.b[num + 6] == 0x54)) && ((class4.b[num + 7] == 0x79) || (class4.b[num + 7] == 0x59))))) && ((((class4.b[num + 8] == 0x6c) || (class4.b[num + 8] == 0x4c)) && ((class4.b[num + 9] == 0x65) || (class4.b[num + 9] == 0x45))) && (class4.b[num + 10] == 0x3a)))
                                {
                                    num += 11;
                                    this.read_value_CSS(class4, ref num, max, class16, -1111, false);
                                    if (class16.byteCmpi("none") == 0)
                                    {
                                        typeArray[num55] = listStyleType.LIST_NONE;
                                    }
                                    else
                                    {
                                        if (class16.byteCmpi("disc") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_DISC;
                                            continue;
                                        }
                                        if (class16.byteCmpi("circle") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_CIRCLE;
                                        }
                                        else if (class16.byteCmpi("square") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_SQUARE;
                                        }
                                    }
                                }
                                else
                                {
                                    if ((((((class4.b[num] == 0x6c) || (class4.b[num] == 0x4c)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)))) && (((class4.b[num + 4] == 0x2d) && ((class4.b[num + 5] == 0x73) || (class4.b[num + 5] == 0x53))) && (((class4.b[num + 6] == 0x74) || (class4.b[num + 6] == 0x54)) && ((class4.b[num + 7] == 0x79) || (class4.b[num + 7] == 0x59))))) && (((((class4.b[num + 8] == 0x6c) || (class4.b[num + 8] == 0x4c)) && ((class4.b[num + 9] == 0x65) || (class4.b[num + 9] == 0x45))) && ((class4.b[num + 10] == 0x2d) && ((class4.b[num + 11] == 0x74) || (class4.b[num + 11] == 0x54)))) && ((((class4.b[num + 12] == 0x79) || (class4.b[num + 12] == 0x59)) && ((class4.b[num + 13] == 0x70) || (class4.b[num + 13] == 80))) && (((class4.b[num + 14] == 0x65) || (class4.b[num + 14] == 0x45)) && (class4.b[num + 15] == 0x3a)))))
                                    {
                                        num += 0x10;
                                        this.read_value_CSS(class4, ref num, max, class16, -1111, false);
                                        if (class16.byteCmpi("none") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_NONE;
                                        }
                                        else if (class16.byteCmpi("disc") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_DISC;
                                        }
                                        else if (class16.byteCmpi("circle") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_CIRCLE;
                                        }
                                        else if (class16.byteCmpi("square") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_SQUARE;
                                        }
                                        continue;
                                    }
                                    if ((((class4.b[num] == 0x74) || (class4.b[num] == 0x54)) && ((class4.b[num + 1] == 0x79) || (class4.b[num + 1] == 0x59))) && (((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45))))
                                    {
                                        num += 4;
                                        this.read_value_CSS(class4, ref num, max, class16, -1111, false);
                                        if (class16.byteCmpi("none") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_NONE;
                                        }
                                        else if (class16.byteCmpi("disc") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_DISC;
                                        }
                                        else if (class16.byteCmpi("circle") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_CIRCLE;
                                        }
                                        else if (class16.byteCmpi("square") == 0)
                                        {
                                            typeArray[num55] = listStyleType.LIST_UL_SQUARE;
                                        }
                                        continue;
                                    }
                                    num++;
                                }
                            }
                        }
                        num55++;
                        numArray4[num60] = 0;
                        if (num60 < (this.STK_MAX - 1))
                        {
                            num60++;
                        }
                        if (num5 == 0)
                        {
                            if (_tablesArray[num36].table)
                            {
                                buf.Add(str15);
                                if ((num36 > 0) && (this._preserveNestedTables == 1))
                                {
                                    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                    buf.Add(str11);
                                    num11 += str11.Length;
                                }
                            }
                            else
                            {
                                buf.Add(str14);
                                num5 = 1;
                            }
                        }
                        num59 = 0;
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x75) || (class4.b[num + 2] == 0x55))) && (((class4.b[num + 3] == 0x6c) || (class4.b[num + 3] == 0x4c)) && (class4.b[num + 4] == 0x3e)))
                    {
                        num55--;
                        if (num55 < 0)
                        {
                            num55 = 0;
                        }
                        if (num60 >= 1)
                        {
                            num60--;
                        }
                        if (num60 == 0)
                        {
                            num59 = 0;
                        }
                        else
                        {
                            num59 = numArray4[num60 - 1];
                        }
                        typeArray[num55] = listStyleType.LIST_STANDARD;
                        num += 4;
                        if (_tablesArray[num36].table)
                        {
                            buf.Add(str15);
                            if ((num36 > 0) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else if (num5 == 0)
                        {
                            buf.Add(str14);
                            num5 = 1;
                        }
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x6f) || (class4.b[num + 1] == 0x4f))) && (((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
                    {
                        num58 = 0;
                        num += 3;
                        if (class4.b[num] == 0x20)
                        {
                            while ((class4.b[num] != 0x3e) && (num < max))
                            {
                                if (((((class4.b[num] == 0x74) || (class4.b[num] == 0x54)) && ((class4.b[num + 1] == 0x79) || (class4.b[num + 1] == 0x59))) && (((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)))) && (class4.b[num + 4] == 0x3d))
                                {
                                    num += 4;
                                    this.read_value_exact(class4, ref num, max, class17);
                                    if (class17.byteCmp("i") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_OL_LOWER_ROMAN;
                                    }
                                    else if (class17.byteCmp("I") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_OL_UPPER_ROMAN;
                                    }
                                    else if (class17.byteCmp("a") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_OL_LOWER_ALPHA;
                                    }
                                    else if (class17.byteCmp("A") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_OL_UPPER_ALPHA;
                                    }
                                    else if (class17.byteCmp("1") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_STANDARD;
                                    }
                                }
                                if (((((class4.b[num] == 0x63) || (class4.b[num] == 0x43)) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && ((class4.b[num + 3] == 0x73) || (class4.b[num + 3] == 0x53)))) && (((class4.b[num + 4] == 0x73) || (class4.b[num + 4] == 0x53)) && (class4.b[num + 5] == 0x3d)))
                                {
                                    num += 5;
                                    _params.found = false;
                                    this.read_value_exact(class4, ref num, max, _params.style_name);
                                    if (_params.style_name.len > 0)
                                    {
                                        _params.found = true;
                                    }
                                    if (_params.found)
                                    {
                                        _params.found = false;
                                        for (num7 = 0; num7 < _params.styles; num7++)
                                        {
                                            if ((((CSS_styles)_params.CSS_style[num7]).name.byteCmp(_params.style_name) == 0) && ((((CSS_styles)_params.CSS_style[num7]).css_tag_type == CSS_tag_type.OL_CSS) || (((CSS_styles)_params.CSS_style[num7]).css_tag_type == CSS_tag_type.UNKNOWN_CSS)))
                                            {
                                                _params.found = true;
                                                if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 1)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_NONE;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 5)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_OL_LOWER_ROMAN;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 6)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_OL_UPPER_ROMAN;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 7)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_OL_LOWER_ALPHA;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 8)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_OL_UPPER_ALPHA;
                                                }
                                                else if (((CSS_styles)_params.CSS_style[num7]).list_style_type == 9)
                                                {
                                                    typeArray[num56] = listStyleType.LIST_STANDARD;
                                                }
                                                break;
                                            }
                                        }
                                    }
                                }
                                if ((((((class4.b[num] == 0x6c) || (class4.b[num] == 0x4c)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)))) && (((class4.b[num + 4] == 0x2d) && ((class4.b[num + 5] == 0x73) || (class4.b[num + 5] == 0x53))) && (((class4.b[num + 6] == 0x74) || (class4.b[num + 6] == 0x54)) && ((class4.b[num + 7] == 0x79) || (class4.b[num + 7] == 0x59))))) && ((((class4.b[num + 8] == 0x6c) || (class4.b[num + 8] == 0x4c)) && ((class4.b[num + 9] == 0x65) || (class4.b[num + 9] == 0x45))) && (class4.b[num + 10] == 0x3a)))
                                {
                                    num += 11;
                                    this.read_value_CSS(class4, ref num, max, class16, -1111, false);
                                    if (class16.byteCmpi("none") == 0)
                                    {
                                        typeArray[num56] = listStyleType.LIST_NONE;
                                    }
                                }
                                else
                                {
                                    num++;
                                }
                            }
                        }
                        num56++;
                        num57 = 1;
                        numArray4[num60] = 1;
                        if (num60 < (this.STK_MAX - 1))
                        {
                            num60++;
                        }
                        if (num5 == 0)
                        {
                            if (_tablesArray[num36].table)
                            {
                                buf.Add(str15);
                                if ((num36 > 0) && (this._preserveNestedTables == 1))
                                {
                                    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                    buf.Add(str11);
                                    num11 += str11.Length;
                                }
                            }
                            else
                            {
                                buf.Add(str14);
                                num5 = 1;
                            }
                        }
                        num59 = 1;
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x6f) || (class4.b[num + 2] == 0x4f))) && (((class4.b[num + 3] == 0x6c) || (class4.b[num + 3] == 0x4c)) && (class4.b[num + 4] == 0x3e)))
                    {
                        num58 = 0;
                        if (num60 >= 1)
                        {
                            num60--;
                        }
                        if (num60 == 0)
                        {
                            num59 = 0;
                        }
                        else
                        {
                            num59 = numArray4[num60 - 1];
                        }
                        num56--;
                        if (num56 < 0)
                        {
                            num56 = 0;
                        }
                        typeArray[num56] = listStyleType.LIST_STANDARD;
                        num += 4;
                        if (_tablesArray[num36].table)
                        {
                            buf.Add(str15);
                            if ((num36 > 0) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else if (num5 == 0)
                        {
                            buf.Add(str14);
                            num5 = 1;
                        }
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
                    {
                        num58++;
                        if (class4.b[num + 3] == 0x20)
                        {
                            while ((class4.b[num + 3] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        if (num5 == 0)
                        {
                            if (_tablesArray[num36].table)
                            {
                                buf.Add(str18);
                                if ((num36 > 0) && (this._preserveNestedTables == 1))
                                {
                                    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                    buf.Add(str11);
                                    num11 += str11.Length;
                                }
                            }
                            else
                            {
                                buf.Add(str17);
                            }
                        }
                        if ((num55 > 0) && (num59 == 0))
                        {
                            if (typeArray[num55 - 1] == listStyleType.LIST_UL_DISC)
                            {
                                num61 = 100;
                            }
                            else if (typeArray[num55 - 1] == listStyleType.LIST_UL_SQUARE)
                            {
                                num61 = 0x65;
                            }
                            else if (typeArray[num55 - 1] == listStyleType.LIST_UL_CIRCLE)
                            {
                                num61 = 0x66;
                            }
                            string str24 = _tablesArray[num36].table ? @"\pard\intbl" : string.Concat(strArray = new string[9]);
                            buf.Add(str24);
                            num11 += str24.Length;
                            if ((_tablesArray[num36].table && (num36 > 0)) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                        }
                        else if ((num56 > 0) && (num59 == 1))
                        {
                            this.MakeOLsymbol(num58, strOLsymbol, (int)typeArray[num56 - 1]);
                            strArray = new string[] { _tablesArray[num36].table ? @"\pard\intbl" : "", @"{\*\pn\pnlvlbody\pnf0\pnindent0\pnstart1", (typeArray[num56 - 1] == listStyleType.LIST_STANDARD) ? @"\pndec" : "", @"{\pntxta ", strOLsymbol.ByteToString(), @".}}\fi-240\li", ((400 * num56) * ((num55 > 0) ? (num55 + 1) : 1)).ToString(), @"{\pntext}" };
                            string str26 = string.Concat(strArray);
                            buf.Add(str26);
                            num11 += str26.Length;
                            if ((_tablesArray[num36].table && (num36 > 0)) && (this._preserveNestedTables == 1))
                            {
                                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                                buf.Add(str11);
                                num11 += str11.Length;
                            }
                            num57++;
                        }
                        num += 3;
                        num5 = 1;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x68) || (class4.b[num + 1] == 0x48))) && (((class4.b[num + 2] >= 0x30) && (class4.b[num + 2] <= 0x39)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
                    {
                        if (flag12)
                        {
                            if (num34 < 2)
                            {
                                num34++;
                                num5 = 1;
                            }
                            else
                            {
                                num34 = 1;
                                num5 = 0;
                                buf.Add(str21);
                                num11 += num51;
                            }
                        }
                        if (num5 == 0)
                        {
                            buf.Add(str20);
                            num11 += length;
                            num5 = 1;
                        }
                        else
                        {
                            buf.Add(str21);
                            num11 += num51;
                        }
                        if ((class4.b[num + 2] > 0x30) && (class4.b[num + 2] < 0x37))
                        {
                            switch (((char)class4.b[num + 2]))
                            {
                                case '1':
                                    num7 = 0x24;
                                    break;

                                case '2':
                                    num7 = 0x20;
                                    break;

                                case '3':
                                    num7 = 0x1c;
                                    break;

                                case '4':
                                    num7 = 0x18;
                                    break;

                                case '5':
                                    num7 = 20;
                                    break;

                                case '6':
                                    num7 = 0x10;
                                    break;

                                default:
                                    num7 = 0x18;
                                    break;
                            }
                            if (this._preserveFontSize == 1)
                            {
                                newb.Clear();
                                newb.Add(@"\fs" + num7.ToString() + " ");
                                flag16 = true;
                                flag5 = false;
                            }
                        }
                        switch (class4.b[num + 2])
                        {
                            case 0x31:
                                _params.hNumber = CSS_tag_type.H1_CSS;
                                break;

                            case 50:
                                _params.hNumber = CSS_tag_type.H2_CSS;
                                break;

                            case 0x33:
                                _params.hNumber = CSS_tag_type.H3_CSS;
                                break;

                            case 0x34:
                                _params.hNumber = CSS_tag_type.H4_CSS;
                                break;

                            case 0x35:
                                _params.hNumber = CSS_tag_type.H5_CSS;
                                break;

                            case 0x36:
                                _params.hNumber = CSS_tag_type.H6_CSS;
                                break;

                            default:
                                _params.hNumber = CSS_tag_type.H_CSS;
                                break;
                        }
                        num7 = num;
                        if (class4.b[num + 3] == 0x20)
                        {
                            while ((class4.b[num + 3] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        num5 = 1;
                        if (!flag3)
                        {
                            buf.Add(class8);
                            num11 += class8.len;
                        }
                        if (!flag5)
                        {
                            buf.Add(newb);
                            num11 += newb.len;
                        }
                        num = num7;
                        num += 3;
                        this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, _params.hNumber);
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48))) && (class4.b[num + 4] == 0x3e))
                    {
                        flag5 = true;
                        if (flag12)
                        {
                            if (num34 < 2)
                            {
                                num34++;
                                buf.Add((byte)0x7d);
                            }
                            else
                            {
                                num34 = 1;
                                num11++;
                                buf.Add((byte)0x5c);
                                num11++;
                                buf.Add((byte)0x70);
                                num11++;
                                buf.Add((byte)0x61);
                                num11++;
                                buf.Add((byte)0x72);
                                num11++;
                                buf.Add((byte)0x7d);
                            }
                        }
                        else
                        {
                            num11++;
                            buf.Add((byte)0x5c);
                            num11++;
                            buf.Add((byte)0x70);
                            num11++;
                            buf.Add((byte)0x61);
                            num11++;
                            buf.Add((byte)0x72);
                            num11++;
                            buf.Add((byte)0x7d);
                        }
                        num += 4;
                        switch (_params.hNumber)
                        {
                            case CSS_tag_type.H1_CSS:
                                _params.hNumber = CSS_tag_type.H1_CSS;
                                break;

                            case CSS_tag_type.H2_CSS:
                                _params.hNumber = CSS_tag_type.H2_CSS;
                                break;

                            case CSS_tag_type.H3_CSS:
                                _params.hNumber = CSS_tag_type.H3_CSS;
                                break;

                            case CSS_tag_type.H4_CSS:
                                _params.hNumber = CSS_tag_type.H4_CSS;
                                break;

                            case CSS_tag_type.H5_CSS:
                                _params.hNumber = CSS_tag_type.H5_CSS;
                                break;

                            case CSS_tag_type.H6_CSS:
                                _params.hNumber = CSS_tag_type.H6_CSS;
                                break;

                            default:
                                _params.hNumber = CSS_tag_type.H_CSS;
                                break;
                        }
                        this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, _params.hNumber);
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x72) || (class4.b[num + 3] == 0x52)))) && ((((class4.b[num + 4] == 0x6f) || (class4.b[num + 4] == 0x4f)) && ((class4.b[num + 5] == 110) || (class4.b[num + 5] == 0x4e))) && (((class4.b[num + 6] == 0x67) || (class4.b[num + 6] == 0x47)) && ((class4.b[num + 7] == 0x3e) || (class4.b[num + 7] == 0x20)))))
                    {
                        num11++;
                        buf.Add((byte)0x7b);
                        num11++;
                        buf.Add((byte)0x5c);
                        num11++;
                        buf.Add((byte)0x62);
                        num11++;
                        buf.Add((byte)0x20);
                        flag16 = true;
                        if (class4.b[num + 7] == 0x20)
                        {
                            while ((class4.b[num + 7] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        num += 7;
                        num29++;
                        if (num29 <= 0)
                        {
                            num29 = 1;
                        }
                        goto Label_134B7;
                    }
                    if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)) && ((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52)))) && ((((class4.b[num + 5] == 0x6f) || (class4.b[num + 5] == 0x4f)) && ((class4.b[num + 6] == 110) || (class4.b[num + 6] == 0x4e))) && (((class4.b[num + 7] == 0x67) || (class4.b[num + 7] == 0x47)) && (class4.b[num + 8] == 0x3e))))
                    {
                        if (num29 > 0)
                        {
                            buf.Add((byte)0x7d);
                            num11++;
                            flag16 = false;
                        }
                        num29--;
                        num += 8;
                        goto Label_134B7;
                    }
                    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x62) || (class4.b[num + 1] == 0x42))) && ((class4.b[num + 2] == 0x3e) || (class4.b[num + 2] == 0x20)))
                    {
                        num11++;
                        buf.Add((byte)0x7b);
                        num11++;
                        buf.Add((byte)0x5c);
                        num11++;
                        buf.Add((byte)0x62);
                        num11++;
                        buf.Add((byte)0x20);
                        flag16 = true;
                        if (class4.b[num + 2] == 0x20)
                        {
                            while ((class4.b[num + 2] != 0x3e) && (num < max))
                            {
                                num++;
                            }
                        }
                        num += 2;
                        num28++;
                        if (num28 <= 0)
                        {
                            num28 = 1;
                        }
                        goto Label_134B7;
                    }
                    if ((((class4.b[num] != 60) || (class4.b[num + 1] != 0x2f)) || ((class4.b[num + 2] != 0x62) && (class4.b[num + 2] != 0x42))) || (class4.b[num + 3] != 0x3e))
                    {
                        goto Label_AFB9;
                    }
                    if (num28 > 0)
                    {
                        buf.Add((byte)0x7d);
                        num11++;
                        flag16 = false;
                    }
                    num28--;
                    num += 3;
                    if (num11 <= 0x1116f)
                    {
                        goto Label_134B7;
                    }
                    if (!_tablesArray[num36].table)
                    {
                        break;
                    }
                    if (this._preserveNestedTables != 1)
                    {
                        goto Label_AF9B;
                    }
                    goto Label_AF73;
                Label_AE98:
                    buf.Add("\n\\pard \\intbl");
                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                buf.Add(str11);
                num11 += str11.Length;
                buf.Add("\n\\nestcell");
                nest_tables _tables6 = _tablesArray[num36];
                _tables6.cell--;
            Label_AEF7:
                if (_tablesArray[num36].cell > 0)
                {
                    goto Label_AE98;
                }
            buf.Add("\n\\pard \\intbl");
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            num11 += str11.Length;
            buf.Add(_tablesArray[num36].nestTblDescription);
            buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
            num36--;
        Label_AF73:
            if (num36 > 0)
            {
                goto Label_AEF7;
            }
    Label_AF9B:
        while (_tablesArray[num36].cell > 0)
        {
            buf.Add("\n\\pard \\intbl\\cell");
            nest_tables _tables7 = _tablesArray[num36];
            _tables7.cell--;
        }
    buf.Add("\n\\pard \\intbl \\row \\pard");
    break;
Label_AFB9:
    if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && ((class4.b[num + 2] == 0x3e) || (class4.b[num + 2] == 0x20)))
    {
        num11++;
        buf.Add((byte)0x7b);
        num11++;
        buf.Add((byte)0x5c);
        num11++;
        buf.Add((byte)0x69);
        num11++;
        buf.Add((byte)0x20);
        flag16 = true;
        if (class4.b[num + 2] == 0x20)
        {
            while ((class4.b[num + 2] != 0x3e) && (num < max))
            {
                num++;
            }
        }
        num += 2;
        num31++;
        if (num31 <= 0)
        {
            num31 = 1;
        }
        goto Label_134B7;
    }
if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49))) && (class4.b[num + 3] == 0x3e))
{
    if (num31 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        flag16 = false;
    }
    num31--;
    num += 3;
    goto Label_134B7;
}
if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x65) || (class4.b[num + 1] == 0x45))) && (((class4.b[num + 2] == 0x6d) || (class4.b[num + 2] == 0x4d)) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20))))
{
    num11++;
    buf.Add((byte)0x7b);
    this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.EM_CSS);
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x69);
    num11++;
    buf.Add((byte)0x20);
    flag16 = true;
    num33++;
    if (num33 <= 0)
    {
        num33 = 1;
    }
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x65) || (class4.b[num + 2] == 0x45))) && (((class4.b[num + 3] == 0x6d) || (class4.b[num + 3] == 0x4d)) && (class4.b[num + 4] == 0x3e)))
{
    this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.EM_CSS);
    if (num33 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        flag16 = false;
    }
    num33--;
    num += 4;
    goto Label_134B7;
}
if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x75) || (class4.b[num + 1] == 0x55))) && ((class4.b[num + 2] == 0x3e) || (class4.b[num + 2] == 0x20)))
{
    num11++;
    buf.Add((byte)0x7b);
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x75);
    num11++;
    buf.Add((byte)0x6c);
    num11++;
    buf.Add((byte)0x20);
    flag16 = true;
    if (class4.b[num + 2] == 0x20)
    {
        while ((class4.b[num + 2] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    num += 2;
    num32++;
    if (num32 <= 0)
    {
        num32 = 1;
    }
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x75) || (class4.b[num + 2] == 0x55))) && (class4.b[num + 3] == 0x3e))
{
    if (num32 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        flag16 = false;
    }
    num32--;
    num += 3;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x72) || (class4.b[num + 3] == 0x52)))) && ((((class4.b[num + 4] == 0x69) || (class4.b[num + 4] == 0x49)) && ((class4.b[num + 5] == 0x6b) || (class4.b[num + 5] == 0x4b))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && ((class4.b[num + 7] == 0x3e) || (class4.b[num + 7] == 0x20)))))
{
    num11++;
    buf.Add((byte)0x7b);
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x73);
    num11++;
    buf.Add((byte)0x74);
    num11++;
    buf.Add((byte)0x72);
    num11++;
    buf.Add((byte)0x69);
    num11++;
    buf.Add((byte)0x6b);
    num11++;
    buf.Add((byte)0x65);
    num11++;
    buf.Add((byte)0x20);
    flag16 = true;
    if (class4.b[num + 7] == 0x20)
    {
        while ((class4.b[num + 7] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    num += 7;
    num30++;
    if (num30 <= 0)
    {
        num30 = 1;
    }
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)) && ((class4.b[num + 4] == 0x72) || (class4.b[num + 4] == 0x52)))) && ((((class4.b[num + 5] == 0x69) || (class4.b[num + 5] == 0x49)) && ((class4.b[num + 6] == 0x6b) || (class4.b[num + 6] == 0x4b))) && (((class4.b[num + 7] == 0x65) || (class4.b[num + 7] == 0x45)) && (class4.b[num + 8] == 0x3e))))
{
    if (num30 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        flag16 = false;
    }
    num30--;
    num += 8;
    goto Label_134B7;
}
if (((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && ((class4.b[num + 2] == 0x3e) || (class4.b[num + 2] == 0x20)))
{
    num11++;
    buf.Add((byte)0x7b);
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x73);
    num11++;
    buf.Add((byte)0x74);
    num11++;
    buf.Add((byte)0x72);
    num11++;
    buf.Add((byte)0x69);
    num11++;
    buf.Add((byte)0x6b);
    num11++;
    buf.Add((byte)0x65);
    num11++;
    buf.Add((byte)0x20);
    flag16 = true;
    if (class4.b[num + 2] == 0x20)
    {
        while ((class4.b[num + 2] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    num += 2;
    num30++;
    if (num30 <= 0)
    {
        num30 = 1;
    }
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (class4.b[num + 3] == 0x3e))
{
    if (num30 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        flag16 = false;
    }
    num30--;
    num += 3;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && (((class4.b[num + 2] == 0x75) || (class4.b[num + 2] == 0x55)) && ((class4.b[num + 3] == 0x62) || (class4.b[num + 3] == 0x42)))) && ((class4.b[num + 4] == 0x3e) || (class4.b[num + 4] == 0x20)))
{
    if (class4.b[num + 4] == 0x20)
    {
        while ((class4.b[num + 4] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    buf.Add(str22);
    num11 += num53;
    num += 4;
    if (!flag3)
    {
        buf.Add(class8);
        num11 += class8.len;
    }
    if (!flag5)
    {
        buf.Add(newb);
        num11 += newb.len;
    }
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (((class4.b[num + 3] == 0x75) || (class4.b[num + 3] == 0x55)) && ((class4.b[num + 4] == 0x62) || (class4.b[num + 4] == 0x42)))) && (class4.b[num + 5] == 0x3e))
{
    buf.Add("}");
    num11++;
    flag16 = false;
    num += 5;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x73) || (class4.b[num + 1] == 0x53))) && (((class4.b[num + 2] == 0x75) || (class4.b[num + 2] == 0x55)) && ((class4.b[num + 3] == 0x70) || (class4.b[num + 3] == 80)))) && ((class4.b[num + 4] == 0x3e) || (class4.b[num + 4] == 0x20)))
{
    if (class4.b[num + 4] == 0x20)
    {
        while ((class4.b[num + 4] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    buf.Add(str23);
    num11 += num54;
    num += 4;
    if (!flag3)
    {
        buf.Add(class8);
        num11 += class8.len;
    }
    if (!flag5)
    {
        buf.Add(newb);
        num11 += newb.len;
    }
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x73) || (class4.b[num + 2] == 0x53))) && (((class4.b[num + 3] == 0x75) || (class4.b[num + 3] == 0x55)) && ((class4.b[num + 4] == 0x70) || (class4.b[num + 4] == 80)))) && (class4.b[num + 5] == 0x3e))
{
    buf.Add("}");
    num11++;
    flag16 = false;
    num += 5;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 100) || (class4.b[num + 1] == 0x44))) && (((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49)) && ((class4.b[num + 3] == 0x76) || (class4.b[num + 3] == 0x56)))) && ((class4.b[num + 4] == 0x3e) || (class4.b[num + 4] == 0x20)))
{
    num += 4;
    if (flag12)
    {
        if (num34 < 2)
        {
            num34++;
            num5 = 1;
        }
        else
        {
            num34 = 1;
            num5 = 0;
        }
    }
    if (buf.len < (num12 + 2))
    {
        num5 = 1;
    }
    if (num5 == 0)
    {
        if (_tablesArray[num36].table)
        {
            buf.Add(this.DIV_TBL_STR);
            num11 += this.DIV_TBL_STR.Length;
            if ((num36 > 0) && (this._preserveNestedTables == 1))
            {
                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                buf.Add(str11);
                num11 += str11.Length;
            }
        }
        else
        {
            buf.Add(this.DIV_STR);
            num11 += this.DIV_STR.Length;
        }
        num5 = 1;
    }
    if (!flag3)
    {
        buf.Add(class8);
        num11 += class8.len;
    }
    if (!flag5)
    {
        buf.Add(newb);
        num11 += newb.len;
    }
    this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.DIV_CSS);
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44))) && (((class4.b[num + 3] == 0x69) || (class4.b[num + 3] == 0x49)) && ((class4.b[num + 4] == 0x76) || (class4.b[num + 4] == 0x56)))) && (class4.b[num + 5] == 0x3e))
{
    if (flag12)
    {
        if (num34 < 2)
        {
            num34++;
            num5 = 1;
        }
        else
        {
            num34 = 1;
            num5 = 0;
        }
    }
    if (num5 == 0)
    {
        if (_tablesArray[num36].table)
        {
            buf.Add(this.DIV_TBL_STR);
            num11 += this.DIV_TBL_STR.Length;
            if ((num36 > 0) && (this._preserveNestedTables == 1))
            {
                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                buf.Add(str11);
                num11 += str11.Length;
            }
        }
        else
        {
            buf.Add(this.DIV_STR);
            num11 += this.DIV_STR.Length;
        }
        if (!flag3)
        {
            buf.Add(class8);
            num11 += class8.len;
        }
        if (!flag5)
        {
            buf.Add(newb);
            num11 += newb.len;
        }
        num5 = 1;
    }
    num += 5;
    this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.DIV_CSS);
    goto Label_134B7;
}
if ((((num5 == 0) && (class4.b[num] == 60)) && ((class4.b[num + 1] == 100) || (class4.b[num + 1] == 0x44))) && (((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)) && (class4.b[num + 3] == 0x3e)))
{
    if (_tablesArray[num36].table)
    {
        buf.Add(str15);
        if ((num36 > 0) && (this._preserveNestedTables == 1))
        {
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            num11 += str11.Length;
        }
    }
    else
    {
        buf.Add(str14);
    }
    num += 3;
    num5 = 1;
    if (!flag3)
    {
        buf.Add(class8);
        num11 += class8.len;
    }
    if (!flag5)
    {
        buf.Add(newb);
        num11 += newb.len;
    }
    goto Label_134B7;
}
if (((((num5 == 0) && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) && ((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)))) && (class4.b[num + 4] == 0x3e))
{
    if (_tablesArray[num36].table)
    {
        buf.Add(str15);
        if ((num36 > 0) && (this._preserveNestedTables == 1))
        {
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            num11 += str11.Length;
        }
    }
    else
    {
        buf.Add(str14);
    }
    num += 4;
    if (!flag3)
    {
        buf.Add(class8);
        num11 += class8.len;
    }
    if (!flag5)
    {
        buf.Add(newb);
        num11 += newb.len;
    }
    goto Label_134B7;
}
if (((((this._preserveAlignment == 1) && (class4.b[num] == 60)) && ((class4.b[num + 1] == 0x63) || (class4.b[num + 1] == 0x43))) && (((class4.b[num + 2] == 0x65) || (class4.b[num + 2] == 0x45)) && ((class4.b[num + 3] == 110) || (class4.b[num + 3] == 0x4e)))) && ((((class4.b[num + 4] == 0x74) || (class4.b[num + 4] == 0x54)) && ((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45))) && (((class4.b[num + 6] == 0x72) || (class4.b[num + 6] == 0x52)) && ((class4.b[num + 7] == 0x3e) || (class4.b[num + 7] == 0x20)))))
{
    if (num5 == 0)
    {
        if (_tablesArray[num36].table)
        {
            buf.Add(str15);
            if ((num36 > 0) && (this._preserveNestedTables == 1))
            {
                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                buf.Add(str11);
                num11 += str11.Length;
            }
        }
        else
        {
            buf.Add(str14);
        }
        num5 = 1;
    }
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x71);
    num11++;
    buf.Add((byte)0x63);
    num11++;
    buf.Add((byte)0x20);
    if (class4.b[num + 7] == 0x20)
    {
        while ((class4.b[num + 7] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    num += 7;
    num52 = 1;
    goto Label_134B7;
}
if ((((((this._preserveAlignment == 1) && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)))) && ((((class4.b[num + 4] == 110) || (class4.b[num + 4] == 0x4e)) && ((class4.b[num + 5] == 0x74) || (class4.b[num + 5] == 0x54))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && ((class4.b[num + 7] == 0x72) || (class4.b[num + 7] == 0x52))))) && (class4.b[num + 8] == 0x3e))
{
    if (num5 == 0)
    {
        if (_tablesArray[num36].table)
        {
            buf.Add(str15);
            if ((num36 > 0) && (this._preserveNestedTables == 1))
            {
                str11 = @"\itap" + _tablesArray[num36].table_level + " ";
                buf.Add(str11);
                num11 += str11.Length;
            }
        }
        else
        {
            buf.Add(str14);
        }
        num5 = 1;
    }
    num11++;
    buf.Add((byte)0x5c);
    num11++;
    buf.Add((byte)0x71);
    num11++;
    buf.Add(num23);
    num11++;
    buf.Add((byte)0x20);
    num += 8;
    num52 = 0;
    goto Label_134B7;
}
if ((((this._preserveHyperlinks == 1) && (class4.b[num] == 60)) && ((class4.b[num + 1] == 0x61) || (class4.b[num + 1] == 0x41))) && this.IS_DELIMITER(class4.b[num + 2]))
{
    if (flag8)
    {
        buf.Add("}}}");
    }
    flag8 = false;
    num += 2;
    flag10 = false;
    while ((class4.b[num] != 0x3e) && (num < max))
    {
        if (((!this.IS_DELIMITER(class4.b[num]) || ((class4.b[num + 1] != 0x68) && (class4.b[num + 1] != 0x48))) || (((class4.b[num + 2] != 0x72) && (class4.b[num + 2] != 0x52)) || ((class4.b[num + 3] != 0x65) && (class4.b[num + 3] != 0x45)))) || ((((class4.b[num + 4] != 0x66) && (class4.b[num + 4] != 70)) || (class4.b[num + 5] != 0x3d)) || ((class4.b[num + 6] != 0x22) && (class4.b[num + 6] != 0x27))))
        {
            goto Label_CAA6;
        }
        if (class4.b[num + 6] == 0x27)
        {
            flag10 = true;
        }
        num += 6;
        num7 = 0;
        class16.Clear();
        class16.Add(class4.b[num++]);
        num7++;
        flag19 = true;
        for (num38 = 0; (num38 < 500) && ((num + num38) < num10); num38++)
        {
            if ((((class4.b[num + num38] == 60) && (class4.b[(num + 1) + num38] == 0x2f)) && ((class4.b[(num + 2) + num38] == 0x61) || (class4.b[(num + 2) + num38] == 0x41))) && (class4.b[(num + 3) + num38] == 0x3e))
            {
                break;
            }
            if ((((class4.b[num + num38] == 60) && ((class4.b[(num + 1) + num38] == 0x69) || (class4.b[(num + 1) + num38] == 0x49))) && (((class4.b[(num + 2) + num38] == 0x6d) || (class4.b[(num + 2) + num38] == 0x4d)) && ((class4.b[(num + 3) + num38] == 0x67) || (class4.b[(num + 3) + num38] == 0x47)))) && (class4.b[(num + 4) + num38] == 0x20))
            {
                flag19 = false;
            }
        }
        if (flag19 || (this._preserveImages != 0))
        {
            goto Label_C8DF;
        }
        continue;
    Label_C8A4:
        if ((class4.b[num] == 0x27) && flag10)
        {
            goto Label_C901;
        }
    class16.Add(class4.b[num]);
    num++;
    if (num7 < (this.HYPERLINK_SIZE - 5))
    {
        num7++;
    }
Label_C8DF:
    if (((class4.b[num] != 0x22) && (num < max)) && (class4.b[num] != 0x3e))
    {
        goto Label_C8A4;
    }
Label_C901:
class16.Add(class4.b[num]);
class17.Clear();
for (num7 = 0; num7 < class16.len; num7++)
{
    if (flag10 && (class16.b[num7] == 0x27))
    {
        class17.Add("\"");
    }
    else
    {
        class17.Add(class16.b[num7]);
    }
}
class15.Clear();
if (class17.len > 1)
{
    if (class17.b[1] == 0x23)
    {
        num7 = 1;
        while (class17.b[num7] == 0)
        {
            class17.b[num7] = class17.b[num7++ + 1];
        }
        if (class17.b[1] != 0x22)
        {
            class15.Clear();
            class15.Add(@"{\field\fldedit{\*\fldinst { HYPERLINK \\l " + class17.ByteToString() + @" }}{\fldrslt {" + (!flag19 ? "" : @"\ul\cf2") + " ");
        }
    }
    else
    {
        if (class17.b[1] != 0x22)
        {
            class15.Clear();
        }
        class15.Add(@"{\field\fldedit{\*\fldinst { HYPERLINK " + class17.ByteToString() + @" }}{\fldrslt {" + (!flag19 ? "" : @"\ul\cf2") + " ");
    }
}
if (class15.len != 0)
{
    class15.ByteToString();
    buf.Add(class15);
    num11 += class15.len;
    flag8 = true;
}
Label_CAA6:
if (((((class4.b[num] != 110) && (class4.b[num] != 0x4e)) || ((class4.b[num + 1] != 0x61) && (class4.b[num + 1] != 0x41))) || (((class4.b[num + 2] != 0x6d) && (class4.b[num + 2] != 0x4d)) || ((class4.b[num + 3] != 0x65) && (class4.b[num + 3] != 0x45)))) || ((class4.b[num + 4] != 0x3d) || ((class4.b[num + 5] != 0x22) && (class4.b[num + 5] != 0x27))))
{
    goto Label_CDEA;
}
if (class4.b[num + 5] == 0x27)
{
    flag10 = true;
}
num += 5;
num7 = 0;
class16.Clear();
class16.Add(class4.b[num++]);
num7++;
flag19 = true;
for (num38 = 0; (num38 < 500) && ((num + num38) < num10); num38++)
{
    if ((((class4.b[num + num38] == 60) && (class4.b[(num + 1) + num38] == 0x2f)) && ((class4.b[(num + 2) + num38] == 0x61) || (class4.b[(num + 2) + num38] == 0x41))) && (class4.b[(num + 3) + num38] == 0x3e))
    {
        break;
    }
    if ((((class4.b[num + num38] == 60) && ((class4.b[(num + 1) + num38] == 0x69) || (class4.b[(num + 1) + num38] == 0x49))) && (((class4.b[(num + 2) + num38] == 0x6d) || (class4.b[(num + 2) + num38] == 0x4d)) && ((class4.b[(num + 3) + num38] == 0x67) || (class4.b[(num + 3) + num38] == 0x47)))) && (class4.b[(num + 4) + num38] == 0x20))
    {
        flag19 = false;
    }
}
if (flag19 || (this._preserveImages != 0))
{
    goto Label_CD11;
}
continue;
Label_CCD6:
if ((class4.b[num] == 0x27) && flag10)
{
    goto Label_CD33;
}
class16.Add(class4.b[num]);
num++;
if (num7 < (this.HYPERLINK_SIZE - 5))
{
    num7++;
}
Label_CD11:
if (((class4.b[num] != 0x22) && (num < max)) && (class4.b[num] != 0x3e))
{
    goto Label_CCD6;
}
Label_CD33:
class16.Add(class4.b[num]);
num7++;
class17.Clear();
for (num7 = 0; class16.b[num7] != 0; num7++)
{
    if ((!flag10 && (class16.b[num7] != 0x22)) || (flag10 && (class16.b[num7] != 0x27)))
    {
        class17.Add(class16.b[num7]);
    }
}
class15.Clear();
class15.Add(string.Concat(new object[] { @"{\*\bkmkstart ", class17, @"}{\*\bkmkend ", class17, "}" }));
buf.Add(class15);
Label_CDEA:
if (((((class4.b[num] == 0x74) || (class4.b[num] == 0x54)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && ((class4.b[num + 3] == 0x6c) || (class4.b[num + 3] == 0x4c)))) && (((class4.b[num + 4] == 0x65) || (class4.b[num + 4] == 0x45)) && ((class4.b[num + 5] == 0x3d) || this.IS_DELIMITER(class4.b[num + 5]))))
{
    num += 5;
    this.ReadValue(class4, ref num, class17);
}
num++;
    }
    goto Label_134B7;
}
if ((((this._preserveHyperlinks == 1) && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && (class4.b[num + 3] == 0x3e)))
{
    if (flag8)
    {
        buf.Add("}}}");
        num11 += 3;
    }
    flag8 = false;
    num += 3;
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x62) || (class4.b[num + 1] == 0x42))) && (((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c)) && ((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)))) && ((((class4.b[num + 4] == 0x63) || (class4.b[num + 4] == 0x43)) && ((class4.b[num + 5] == 0x6b) || (class4.b[num + 5] == 0x4b))) && (((class4.b[num + 6] == 0x71) || (class4.b[num + 6] == 0x51)) && ((class4.b[num + 7] == 0x75) || (class4.b[num + 7] == 0x55))))) && ((((class4.b[num + 8] == 0x6f) || (class4.b[num + 8] == 0x4f)) && ((class4.b[num + 9] == 0x74) || (class4.b[num + 9] == 0x54))) && (((class4.b[num + 10] == 0x65) || (class4.b[num + 10] == 0x45)) && ((class4.b[num + 11] == 0x3e) || (class4.b[num + 11] == 0x20)))))
{
    if (class4.b[num + 11] == 0x20)
    {
        while ((class4.b[num + 11] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    num += 11;
    num27 = (byte)(num27 + 1);
    if (num5 != 0)
    {
        buf.Add(str9);
        num11 += str9.Length;
    }
    str14 = str14 + str9;
    str15 = str15 + str9;
    if (_tablesArray[num36].table)
    {
        buf.Add(str15);
        if ((num36 > 0) && (this._preserveNestedTables == 1))
        {
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            num11 += str11.Length;
        }
    }
    else
    {
        buf.Add(str14);
    }
    num5 = 1;
    goto Label_134B7;
}
if ((((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x62) || (class4.b[num + 2] == 0x42))) && (((class4.b[num + 3] == 0x6c) || (class4.b[num + 3] == 0x4c)) && ((class4.b[num + 4] == 0x6f) || (class4.b[num + 4] == 0x4f)))) && ((((class4.b[num + 5] == 0x63) || (class4.b[num + 5] == 0x43)) && ((class4.b[num + 6] == 0x6b) || (class4.b[num + 6] == 0x4b))) && (((class4.b[num + 7] == 0x71) || (class4.b[num + 7] == 0x51)) && ((class4.b[num + 8] == 0x75) || (class4.b[num + 8] == 0x55))))) && ((((class4.b[num + 9] == 0x6f) || (class4.b[num + 9] == 0x4f)) && ((class4.b[num + 10] == 0x74) || (class4.b[num + 10] == 0x54))) && (((class4.b[num + 11] == 0x65) || (class4.b[num + 11] == 0x45)) && (class4.b[num + 12] == 0x3e))))
{
    num += 12;
    if ((num5 != 0) && (buf.ToByteCStartPos(buf.len - str9.Length).byteCmp(str9) == 0))
    {
        buf.len -= str9.Length;
    }
    if (num27 > 0)
    {
        str15 = str15.Substring(0, str15.Length - str9.Length);
    }
    num27 = (byte)(num27 - 1);
    if (num27 < 0)
    {
        num27 = 0;
    }
    if (_tablesArray[num36].table)
    {
        buf.Add(str15);
        if ((num36 > 0) && (this._preserveNestedTables == 1))
        {
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            num11 += str11.Length;
        }
    }
    else
    {
        buf.Add(str14);
    }
    num5 = 1;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x70) || (class4.b[num + 1] == 80))) && (((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52)) && ((class4.b[num + 3] == 0x65) || (class4.b[num + 3] == 0x45)))) && (class4.b[num + 4] == 0x3e))
{
    num += 4;
    flag11 = true;
    num4 = 1;
    goto Label_134B7;
}
if (((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x70) || (class4.b[num + 2] == 80))) && (((class4.b[num + 3] == 0x72) || (class4.b[num + 3] == 0x52)) && ((class4.b[num + 4] == 0x65) || (class4.b[num + 4] == 0x45)))) && (class4.b[num + 5] == 0x3e))
{
    num += 5;
    flag11 = false;
    goto Label_134B7;
}
if ((class4.b[num] == 0x26) && (num4 != 0))
{
    num += this.special_symbols_rtf(class4, num, max, class24, charset != 0);
    buf.Add(class24);
    num11 += class24.len;
    num5 = 0;
    goto Label_134B7;
}
if (((class4.b[num] == 0x7b) || (class4.b[num] == 0x7d)) && !hieroglyph)
{
    if (num4 != 0)
    {
        num11++;
        buf.Add((byte)0x5c);
        num11++;
        buf.Add(class4.b[num]);
    }
    goto Label_134B7;
}
if (((class4.b[num] == 0x5c) && (num4 != 0)) && !hieroglyph)
{
    buf.Add(@"\\");
    num11 += 2;
    goto Label_134B7;
}
if (this._preserveTables != 1)
{
    goto Label_1143D;
}
if ((this._preserveNestedTables == 0) && (this._preserveTableWidth == 0))
{
    if (((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && ((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41))) && (((class4.b[num + 3] == 0x62) || (class4.b[num + 3] == 0x42)) && ((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)))) && (((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45)) && ((class4.b[num + 6] == 0x20) || (class4.b[num + 6] == 0x3e))))
    {
        _tablesArray[num36].table_border_visible = flag17;
        if (class4.b[num + 6] == 0x20)
        {
            if (this._borderVisibility == eBorderVisibility.SameAsOriginalHtml)
            {
                _tablesArray[num36].table_border_visible = false;
                _tablesArray[num36].table_border_visible = this.get_border(class4, num, max);
            }
            _tablesArray[num36].table_p.percent_width = 0;
            int num63 = -1111;
            _tablesArray[num36].table_p.table_width = this.get_width(class4, num, max, ref _tablesArray[num36].table_p.percent_width, ref index, ref index, null, num63, ref num63, null, ref num63, ref num63);
            while ((class4.b[num + 6] != 0x3e) && (num < max))
            {
                num++;
            }
        }
        if (_tablesArray[num36].table)
        {
            while (_tablesArray[num36].cell > 0)
            {
                buf.Add(this.LF + @"\pard \intbl\cell");
                num11 += 0x12;
                nest_tables _tables8 = _tablesArray[num36];
                _tables8.cell--;
            }
            buf.Add(this.LF + @"\pard \intbl \row");
            num11 += 0x12;
        }
        _tablesArray[num36].table = false;
        num4 = 0;
        if (flag21 && (num5 == 0))
        {
            buf.Add(this.LF + @"\pard\par" + this.LF);
            num11 += 11;
        }
        num += 6;
        goto Label_134B7;
    }
    if ((((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && ((class4.b[num + 3] == 0x61) || (class4.b[num + 3] == 0x41))) && (((class4.b[num + 4] == 0x62) || (class4.b[num + 4] == 0x42)) && ((class4.b[num + 5] == 0x6c) || (class4.b[num + 5] == 0x4c)))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && (class4.b[num + 7] == 0x3e)))
    {
        _tablesArray[num36].table = false;
        if (class4.len > 1)
        {
            while ((class4.len > 1) && this.IS_DELIMITER(class4.b[buf.len - 1]))
            {
                class4.len--;
            }
        }
        buf.Add(@"\pard" + this.LF);
        num11 += 6;
        num += 7;
        flag21 = false;
        goto Label_134B7;
    }
    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && ((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52))) && ((class4.b[num + 3] == 0x3e) || (class4.b[num + 3] == 0x20)))
    {
        if (class4.b[num + 3] == 0x20)
        {
            while ((class4.b[num + 3] != 0x3e) && (num < max))
            {
                num++;
            }
        }
        num += 3;
        if (_tablesArray[num36].table)
        {
            while (_tablesArray[num36].cell > 0)
            {
                buf.Add(this.LF + @"\pard \intbl\cell");
                num11 += 0x12;
                nest_tables _tables9 = _tablesArray[num36];
                _tables9.cell--;
            }
            buf.Add(@"\pard \intbl \row" + this.LF);
            num11 += 0x12;
        }
        if (((buf.len > 1) && (buf.b[buf.len - 1] == 0x20)) && this.IS_DELIMITER(buf.b[buf.len - 2]))
        {
            buf.len--;
        }
        buf.Add(s);
        num11 += s.Length;
        if (_tablesArray[num36].table_p.tableAlign != 0)
        {
            if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_CENTER)
            {
                buf.Add(@"\trqc ");
                num11 += 6;
            }
            else if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_RIGHT)
            {
                buf.Add(@"\trqr ");
                num11 += 6;
            }
        }
        _tablesArray[num36].table = true;
        for (num7 = 0; num7 < this.MAX_COLUMNS; num7++)
        {
            _tablesArray[num36].td_width[num7] = 0;
            _tablesArray[num36].td_percent_width[num7] = 0;
        }
        _tablesArray[num36].td = 0;
        for (num7 = 0; (num + num7) < max; num7++)
        {
            if ((((((class4.b[num + num7] == 60) && (class4.b[(num + num7) + 1] == 0x2f)) && ((class4.b[(num + num7) + 2] == 0x74) || (class4.b[(num + num7) + 2] == 0x54))) && ((class4.b[(num + num7) + 3] == 0x72) || (class4.b[(num + num7) + 3] == 0x52))) && (class4.b[(num + num7) + 4] == 0x3e)) || ((((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && ((class4.b[(num + num7) + 2] == 0x72) || (class4.b[(num + num7) + 2] == 0x52))) && ((class4.b[(num + num7) + 3] == 0x3e) || (class4.b[(num + num7) + 3] == 0x20))))
            {
                break;
            }
            if ((((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && (((class4.b[(num + num7) + 2] == 100) || (class4.b[(num + num7) + 2] == 0x44)) || ((class4.b[(num + num7) + 2] == 0x68) || (class4.b[(num + num7) + 2] == 0x48)))) && ((class4.b[(num + num7) + 3] == 0x3e) || (class4.b[(num + num7) + 3] == 0x20)))
            {
                nest_tables _tables10 = _tablesArray[num36];
                _tables10.td++;
                if (class4.b[(num + num7) + 3] == 0x20)
                {
                    num7 += 3;
                    int bgcolor = -1111;
                    _tablesArray[num36].td_width[_tablesArray[num36].td - 1] = this.get_width(class4, num + num7, max, ref _tablesArray[num36].td_percent_width[_tablesArray[num36].td - 1], ref index, ref index, null, -1111, ref bgcolor, null, ref bgcolor, ref bgcolor);
                }
            }
            if (((((class4.b[num + num7] == 60) && ((class4.b[(num + num7) + 1] == 0x74) || (class4.b[(num + num7) + 1] == 0x54))) && ((class4.b[(num + num7) + 2] == 0x61) || (class4.b[(num + num7) + 2] == 0x41))) && (((class4.b[(num + num7) + 3] == 0x62) || (class4.b[(num + num7) + 3] == 0x42)) && ((class4.b[(num + num7) + 4] == 0x6c) || (class4.b[(num + num7) + 4] == 0x4c)))) && (((class4.b[(num + num7) + 5] == 0x65) || (class4.b[(num + num7) + 5] == 0x45)) && ((class4.b[(num + num7) + 6] == 0x20) || (class4.b[(num + num7) + 6] == 0x3e))))
            {
                break;
            }
        }
        _tablesArray[num36].cell = _tablesArray[num36].td;
        this.fill_columns_width(_tablesArray[num36].td_width, _tablesArray[num36].td_percent_width, _tablesArray[num36].td, _tablesArray[num36].table_p.table_width, _tablesArray[num36].table_p.percent_width, this.SCREEN_W_DEF);
        if (_tablesArray[num36].td != 0)
        {
            for (num7 = 0; num7 < _tablesArray[num36].td; num7++)
            {
                if (_tablesArray[num36].table_border_visible)
                {
                    buf.Add(this.LF + @"\clbrdrl\brdrs\clbrdrt\brdrs\clbrdrr\brdrs\clbrdrb\brdrs\cellx");
                }
                else
                {
                    buf.Add(this.LF + @"\cellx");
                    num11 += 7;
                }
                str12 = _tablesArray[num36].td_width[num7].ToString();
                buf.Add(str12);
                num11 += str12.Length;
            }
        }
        goto Label_134B7;
    }
    if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) || ((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48)))) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3])))
    {
        buf.Add(this.LF + @"\pard \intbl ");
        num11 += 14;
        if (this.IS_DELIMITER(class4.b[num + 3]))
        {
            while (!this.IS_XTHAN(class4.b[num + 3]) && (num < max))
            {
                if (this._preserveAlignment == 1)
                {
                    if (((((class4.b[num] == 0x63) || (class4.b[num] == 0x43)) && ((class4.b[num + 1] == 0x65) || (class4.b[num + 1] == 0x45))) && (((class4.b[num + 2] == 110) || (class4.b[num + 2] == 0x4e)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)))) && (((class4.b[num + 4] == 0x65) || (class4.b[num + 4] == 0x45)) && ((class4.b[num + 5] == 0x72) || (class4.b[num + 5] == 0x52))))
                    {
                        align = class19;
                    }
                    if (((((class4.b[num] == 0x6d) || (class4.b[num] == 0x4d)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) && ((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)))) && (((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45))))
                    {
                        align = class19;
                    }
                    if ((((class4.b[num] == 0x6c) || (class4.b[num] == 0x4c)) && ((class4.b[num + 1] == 0x65) || (class4.b[num + 1] == 0x45))) && (((class4.b[num + 2] == 0x66) || (class4.b[num + 2] == 70)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54))))
                    {
                        align = class20;
                    }
                    if (((((class4.b[num] == 0x72) || (class4.b[num] == 0x52)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 0x67) || (class4.b[num + 2] == 0x47)) && ((class4.b[num + 3] == 0x68) || (class4.b[num + 3] == 0x48)))) && ((class4.b[num + 4] == 0x74) || (class4.b[num + 4] == 0x54)))
                    {
                        align = class21;
                    }
                }
                if (((((this._preserveBackgroundColor == 1) && ((class4.b[num] == 0x62) || (class4.b[num] == 0x42))) && ((class4.b[num + 1] == 0x67) || (class4.b[num + 1] == 0x47))) && (((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)) && ((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)))) && ((((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x6f) || (class4.b[num + 5] == 0x4f))) && (((class4.b[num + 6] == 0x72) || (class4.b[num + 6] == 0x52)) && (class4.b[num + 7] == 0x3d))))
                {
                    num += 8;
                    this.read_color(class4, ref num, max, class10);
                    for (num7 = 0; num7 < num14; num7++)
                    {
                        if (class10.byteCmpi((string)list2[num7]) == 0)
                        {
                            _tablesArray[num36].td_bg = num7 + 3;
                        }
                    }
                }
                num++;
            }
        }
        if (this._preserveAlignment == 1)
        {
            buf.Add(align);
            num11 += len;
        }
        num += 3;
        num4 = 0;
        goto Label_134B7;
    }
    if (((((_tablesArray[num36].table && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && (((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)) || ((class4.b[num + 3] == 0x68) || (class4.b[num + 3] == 0x48)))) && (class4.b[num + 4] == 0x3e))
    {
        buf.Add(@"\cell");
        num11 += 5;
        num += 4;
        nest_tables _tables11 = _tablesArray[num36];
        _tables11.cell--;
        if (this._preserveBackgroundColor == 1)
        {
            _tablesArray[num36].td_bg = 0;
        }
        if (this._preserveAlignment == 1)
        {
            align.Clear();
            align.Add(class22);
            buf.Add(align);
            num11 += align.len;
        }
        goto Label_134B7;
    }
    if (((((_tablesArray[num36].table && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && ((class4.b[num + 3] == 0x72) || (class4.b[num + 3] == 0x52))) && (class4.b[num + 4] == 0x3e))
    {
        while (_tablesArray[num36].cell > 0)
        {
            buf.Add(this.LF + @"\pard \intbl\cell");
            num11 += 0x12;
            nest_tables _tables12 = _tablesArray[num36];
            _tables12.cell--;
        }
        buf.Add(@"\pard \intbl \row" + this.LF);
        num11 += 0x12;
        num += 4;
        _tablesArray[num36].table = false;
        goto Label_134B7;
    }
}
if (this._preserveNestedTables != 1)
{
    goto Label_1143D;
}
if (((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && ((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41))) && (((class4.b[num + 3] == 0x62) || (class4.b[num + 3] == 0x42)) && ((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)))) && (((class4.b[num + 5] == 0x65) || (class4.b[num + 5] == 0x45)) && ((class4.b[num + 6] == 0x3e) || this.IS_DELIMITER(class4.b[num + 6]))))
{
    if ((_tablesArray[num36].table && (_tablesArray[num36].cell == 0)) && _tablesArray[num36].tr_open)
    {
        if (_tablesArray[num36].table_level > 1)
        {
            buf.Add(this.LF + @"\pard \intbl");
            str11 = @"\itap" + _tablesArray[num36].table_level + " ";
            buf.Add(str11);
            buf.Add(_tablesArray[num36].nestTblDescription);
            buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
            if (_tablesArray[num36].tr_cur == _tablesArray[num36].table_p.rows)
            {
                nest_tables _tables13 = _tablesArray[num36];
                _tables13.table_level--;
            }
        }
        else
        {
            buf.Add(@"\pard\intbl\row" + this.LF);
            _tablesArray[num36].table = false;
        }
        this.table_clear_carts(_tablesArray[num36]);
        this.nested_table_clear(_tablesArray[num36]);
        if (num36 > 0)
        {
            num36--;
        }
    }
    if (this._preserveNestedTables == 1)
    {
        if (_tablesArray[num36].table_level < 1)
        {
            nest_tables _tables14 = _tablesArray[num36];
            _tables14.table_level++;
        }
        else
        {
            num36++;
            _tablesArray[num36].table_level = num36 + 1;
        }
        if (align.b[2] == 0x72)
        {
            _tablesArray[num36].table_p.tableAlign = 2;
        }
        else if ((align.b[2] == 0x63) || (num52 == 1))
        {
            _tablesArray[num36].table_p.tableAlign = 1;
        }
        else
        {
            _tablesArray[num36].table_p.tableAlign = 0;
        }
        if ((this.table_getsize(class4, num, max, _tablesArray[num36].table_p) == table_types.TABLE_UNCLOSED) || (_tablesArray[num36].table_p.cols > (this.MAX_COLUMNS - 1)))
        {
            this.table_skip_table2(class4, ref num, max);
            if (_tablesArray[num36].table_level == 1)
            {
                nest_tables _tables15 = _tablesArray[num36];
                _tables15.table_level--;
            }
            else
            {
                _tablesArray[num36].table_level = num36 - 1;
                num36--;
            }
            goto Label_134B7;
        }
        if ((_tablesArray[num36].table_p.cols == 0) || (_tablesArray[num36].table_p.rows == 0))
        {
            this.table_skip_table2(class4, ref num, max);
            if (_tablesArray[num36].table_level == 1)
            {
                nest_tables _tables16 = _tablesArray[num36];
                _tables16.table_level--;
            }
            else
            {
                _tablesArray[num36].table_level = num36 - 1;
                num36--;
            }
            goto Label_134B7;
        }
        this.table_clear_carts(_tablesArray[num36]);
        this.table_alloc_carts(_tablesArray[num36]);
        if (_tablesArray[num36].table_level > 1)
        {
            tBLEN = this.get_max_tblen_width(_tablesArray[num36 - 1]);
        }
        else
        {
            tBLEN = this.TBLEN;
        }
        this.table_analyse(class4, num, max, _tablesArray[num36].table_array, _tablesArray[num36].table_symbols, _tablesArray[num36].table_map, _tablesArray[num36].table_colspan, _tablesArray[num36].table_rowspan, _tablesArray[num36].table_images, _tablesArray[num36].table_width, _tablesArray[num36].table_colbg, _tablesArray[num36].table_valign, _params, _tablesArray[num36].table_p, list2, num14, class25, tBLEN, hieroglyph, _tablesArray[num36].tdAlignColgroup);
        this.table_free_carts(_tablesArray[num36]);
    }
    _tablesArray[num36].table_border_visible = flag17;
    if (this.IS_DELIMITER(class4.b[num + 6]))
    {
        if (this._borderVisibility == eBorderVisibility.SameAsOriginalHtml)
        {
            _tablesArray[num36].table_border_visible = false;
            _tablesArray[num36].table_border_visible = this.get_border(class4, num, max);
        }
        while ((class4.b[num + 6] != 0x3e) && (num < max))
        {
            num++;
        }
    }
    if (_tablesArray[num36].table_level > 1)
    {
        if (flag21)
        {
            buf.Add(str15);
            if (num36 > 0)
            {
                buf.Add(@"\intbl");
                str11 = @"\itap" + ((_tablesArray[num36].table_level - 1)).ToString() + " ";
                buf.Add(str11);
                num11 += str11.Length;
            }
        }
    }
    else
    {
        if (_tablesArray[num36].table)
        {
            while (_tablesArray[num36].cell > 0)
            {
                buf.Add(@"\pard \intbl" + this.LF + @"\cell");
                nest_tables _tables17 = _tablesArray[num36];
                _tables17.cell--;
            }
            _tablesArray[num36].td_open = false;
            buf.Add(this.LF + @"\pard \intbl \row\pard" + this.LF);
        }
        if (flag21 && (num5 == 0))
        {
            buf.Add(this.LF + @"\pard\par" + this.LF);
            num11 += 11;
        }
    }
    num += 6;
    if (!this.check_tr_tag(class4, num, max))
    {
        this.check_tr_close(class4, num, max);
        if ((_tablesArray[num36].table_level <= 1) && _tablesArray[num36].table)
        {
            while (_tablesArray[num36].cell > 0)
            {
                buf.Add(this.LF + @"\pard\intbl\cell");
                nest_tables _tables18 = _tablesArray[num36];
                _tables18.cell--;
            }
            buf.Add(@"\pard\intbl\row" + this.LF);
        }
        if (((buf.len > 1) && (buf.b[buf.len - 1] == 0x20)) && this.IS_DELIMITER(buf.b[buf.len - 2]))
        {
            buf.len--;
        }
        if (_tablesArray[num36].table_level > 1)
        {
            _tablesArray[num36].nestTblDescription = "";
            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str2;
            _tablesArray[num36].td = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur, 0];
            _tablesArray[num36].tblen = this.get_table_width(_tablesArray[num36], _tablesArray[num36 - 1]);
        }
        else
        {
            buf.Add(s);
            _tablesArray[num36].td = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur, 0];
            _tablesArray[num36].tblen = this.TBLEN;
            _tablesArray[num36].td_up_columns = _tablesArray[num36].td;
            _tablesArray[num36].cell = _tablesArray[num36].td;
            _tablesArray[num36].td_up_curcol = 0;
        }
        _tablesArray[num36].table = true;
        if (_tablesArray[num36].td != 0)
        {
            for (num7 = 0; num7 < _tablesArray[num36].td; num7++)
            {
                if (_tablesArray[num36].table_border_visible)
                {
                    if (_tablesArray[num36].table_level > 1)
                    {
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\clbrdrl\brdrs\clbrdrt\brdrs\clbrdrr\brdrs\clbrdrb\brdrs";
                    }
                    else
                    {
                        buf.Add(this.LF + @"\clbrdrl\brdrs\clbrdrt\brdrs\clbrdrr\brdrs\clbrdrb\brdrs");
                    }
                }
                if (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] > 0)
                {
                    if ((_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMGF) || (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMRG2))
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                        }
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvmgf";
                        }
                        else
                        {
                            buf.Add(@"\clvmgf");
                        }
                    }
                    else if (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMRG)
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                        }
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvmrg";
                        }
                        else
                        {
                            buf.Add(@"\clvmrg");
                        }
                    }
                }
                if (_tablesArray[num36].table_level > 1)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\cellx";
                }
                else
                {
                    buf.Add(this.LF + @"\cellx");
                }
                str12 = this.table_make_cellx(_tablesArray[num36].table_map, _tablesArray[num36].tr_cur, num7);
                if (_tablesArray[num36].table_level > 1)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str12;
                }
                else
                {
                    buf.Add(str12);
                }
            }
        }
    }
    goto Label_134B7;
}
if ((((((class4.b[num] != 60) || (class4.b[num + 1] != 0x2f)) || ((class4.b[num + 2] != 0x74) && (class4.b[num + 2] != 0x54))) || ((class4.b[num + 3] != 0x61) && (class4.b[num + 3] != 0x41))) || (((class4.b[num + 4] != 0x62) && (class4.b[num + 4] != 0x42)) || ((class4.b[num + 5] != 0x6c) && (class4.b[num + 5] != 0x4c)))) || (((class4.b[num + 6] != 0x65) && (class4.b[num + 6] != 0x45)) || (class4.b[num + 7] != 0x3e)))
{
    goto Label_F56E;
}
if (_tablesArray[num36].tr_open && _tablesArray[num36].table)
{
    if (_tablesArray[num36].table_level <= 1)
    {
        goto Label_F435;
    }
    while (_tablesArray[num36].cell > 0)
    {
        buf.Add(this.LF + @"\pard\intbl");
        str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
        buf.Add(str11);
        buf.Add(this.LF + @"\nestcell");
        nest_tables _tables19 = _tablesArray[num36];
        _tables19.cell--;
    }
    buf.Add(this.LF + @"\pard\intbl");
    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
    buf.Add(str11);
    buf.Add(_tablesArray[num36].nestTblDescription);
    buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
}
goto Label_F464;
Label_F40C:
buf.Add(this.LF + @"\pard\intbl\cell");
nest_tables _tables20 = _tablesArray[num36];
_tables20.cell--;
Label_F435:
if (_tablesArray[num36].cell > 0)
{
    goto Label_F40C;
}
buf.Add(@"\pard\intbl\row" + this.LF);
_tablesArray[num36].table = false;
Label_F464:
if ((_tablesArray[num36].table_level > 1) || (num36 > 0))
{
    _tablesArray[num36].table = false;
    if (buf.len > 0)
    {
        while ((buf.b[buf.len - 1] != 10) && (buf.len > 1))
        {
            buf.len--;
        }
    }
}
else
{
    if (buf.len > 1)
    {
        while ((buf.len > 1) && this.IS_DELIMITER(buf.b[buf.len - 1]))
        {
            buf.len--;
        }
    }
    buf.Add(@"\pard" + this.LF);
}
num += 7;
if (this._preserveNestedTables == 1)
{
    this.table_clear_carts(_tablesArray[num36]);
    this.nested_table_clear(_tablesArray[num36]);
    if (num36 > 0)
    {
        num36--;
        if (num36 == 0)
        {
            buf.Add(@"\itap1" + this.LF);
        }
    }
}
flag21 = false;
num34 = 0;
flag12 = false;
goto Label_134B7;
Label_F56E:
if ((((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43))) && ((class4.b[num + 3] == 0x61) || (class4.b[num + 3] == 0x41))) && (((class4.b[num + 4] == 0x70) || (class4.b[num + 4] == 80)) && ((class4.b[num + 5] == 0x74) || (class4.b[num + 5] == 0x54)))) && ((((class4.b[num + 6] == 0x69) || (class4.b[num + 6] == 0x49)) && ((class4.b[num + 7] == 0x6f) || (class4.b[num + 7] == 0x4f))) && (((class4.b[num + 8] == 110) || (class4.b[num + 8] == 0x4e)) && (class4.b[num + 9] == 0x3e))))
{
    if (_tablesArray[num36].table)
    {
        buf.Add(str15);
        num5 = 1;
        if ((num36 > 0) && (this._preserveNestedTables == 1))
        {
            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
            buf.Add(str11);
        }
    }
    else
    {
        buf.Add(str14);
        num5 = 1;
    }
    num += 9;
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && ((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52))) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3])))
{
    num += 3;
    if (this.IS_DELIMITER(class4.b[num]))
    {
        while (!this.IS_XTHAN(class4.b[num]) && (num < class4.len))
        {
            if ((((((this._preserveAlignment == 1) && (class4.b[num] == 0x20)) && ((class4.b[num + 1] == 0x61) || (class4.b[num + 1] == 0x41))) && ((class4.b[num + 2] == 0x6c) || (class4.b[num + 2] == 0x4c))) && (((class4.b[num + 3] == 0x69) || (class4.b[num + 3] == 0x49)) && ((class4.b[num + 4] == 0x67) || (class4.b[num + 4] == 0x47)))) && ((class4.b[num + 5] == 110) || (class4.b[num + 5] == 0x4e)))
            {
                num += 6;
                this.read_value(class4, ref num, class16);
                if (class16.byteCmpi("center") == 0)
                {
                    _tablesArray[num36].tr_align = class19.ByteToString();
                }
                else if (class16.byteCmpi("middle") == 0)
                {
                    _tablesArray[num36].tr_align = class19.ByteToString();
                }
                else if (class16.byteCmpi("left") == 0)
                {
                    _tablesArray[num36].tr_align = class20.ByteToString();
                }
                else if (class16.byteCmpi("right") == 0)
                {
                    _tablesArray[num36].tr_align = class21.ByteToString();
                }
            }
            if (((((this._preserveBackgroundColor == 1) && ((class4.b[num] == 0x62) || (class4.b[num] == 0x42))) && ((class4.b[num + 1] == 0x67) || (class4.b[num + 1] == 0x47))) && (((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)) && ((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)))) && ((((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x6f) || (class4.b[num + 5] == 0x4f))) && (((class4.b[num + 6] == 0x72) || (class4.b[num + 6] == 0x52)) && (class4.b[num + 7] == 0x3d))))
            {
                num += 8;
                if (this.read_color(class4, ref num, max, class11))
                {
                    for (num7 = 0; num7 < num14; num7++)
                    {
                        if (class11.byteCmpi((string)list2[num7]) == 0)
                        {
                            _tablesArray[num36].tr_bg = num7 + 3;
                        }
                    }
                }
            }
            num++;
        }
    }
    if ((_tablesArray[num36].table_p.cols == 0) || (_tablesArray[num36].table_p.rows == 0))
    {
        this.table_skip_table(class4, ref num, max);
    }
    else
    {
        if (_tablesArray[num36].table_level > 1)
        {
            if (_tablesArray[num36].table && _tablesArray[num36].tr_open)
            {
                while (_tablesArray[num36].cell > 0)
                {
                    buf.Add(this.LF + @"\pard\intbl");
                    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                    buf.Add(str11);
                    buf.Add(this.LF + @"\nestcell");
                    nest_tables _tables21 = _tablesArray[num36];
                    _tables21.cell--;
                }
                buf.Add(this.LF + @"\pard\intbl");
                str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                buf.Add(str11);
                buf.Add(_tablesArray[num36].nestTblDescription);
                buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
            }
        }
        else if (_tablesArray[num36].table)
        {
            while (_tablesArray[num36].cell > 0)
            {
                buf.Add(this.LF + @"\pard\intbl\cell");
                nest_tables _tables22 = _tablesArray[num36];
                _tables22.cell--;
            }
            buf.Add(@"\pard\intbl\row" + this.LF);
        }
        if (((buf.len > 2) && (buf.b[buf.len - 1] == 0x20)) && this.IS_DELIMITER(buf.b[buf.len - 2]))
        {
            buf.len--;
        }
        if (_tablesArray[num36].table_level > 1)
        {
            _tablesArray[num36].nestTblDescription = "";
            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str2;
            if (_tablesArray[num36].table_p.tableAlign != 0)
            {
                if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_CENTER)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\trqc ";
                }
                else if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_RIGHT)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\trqr ";
                }
            }
            _tablesArray[num36].td = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur, 0];
            _tablesArray[num36].td_up_columns = _tablesArray[num36].td;
            _tablesArray[num36].cell = _tablesArray[num36].td;
            _tablesArray[num36].td_up_curcol = 0;
            if (_tablesArray[num36].change_width != 1)
            {
                _tablesArray[num36].tblen = this.get_table_width(_tablesArray[num36], _tablesArray[num36 - 1]);
            }
        }
        else
        {
            buf.Add(s);
            if (_tablesArray[num36].table_p.tableAlign != 0)
            {
                if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_CENTER)
                {
                    buf.Add(@"\trqc ");
                }
                else if (_tablesArray[num36].table_p.tableAlign == this.ALIGN_RIGHT)
                {
                    buf.Add(@"\trqr ");
                }
            }
            _tablesArray[num36].td = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur, 0];
            _tablesArray[num36].tblen = this.TBLEN;
            _tablesArray[num36].td_up_columns = _tablesArray[num36].td;
            _tablesArray[num36].cell = _tablesArray[num36].td;
            _tablesArray[num36].td_up_curcol = 0;
        }
        _tablesArray[num36].table = true;
        if (_tablesArray[num36].td != 0)
        {
            for (num7 = 0; num7 < _tablesArray[num36].td; num7++)
            {
                if (_tablesArray[num36].table_border_visible)
                {
                    if (_tablesArray[num36].table_level > 1)
                    {
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\clbrdrl\brdrs\clbrdrt\brdrs\clbrdrr\brdrs\clbrdrb\brdrs";
                    }
                    else
                    {
                        buf.Add(this.LF + @"\clbrdrl\brdrs\clbrdrt\brdrs\clbrdrr\brdrs\clbrdrb\brdrs");
                    }
                }
                if ((this._preserveBackgroundColor == 1) && (_tablesArray[num36].tr_bg != 0))
                {
                    if (_tablesArray[num36].table_level > 1)
                    {
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clcbpat" + _tablesArray[num36].tr_bg.ToString() + " ";
                    }
                    else
                    {
                        buf.Add(@"\clcbpat" + _tablesArray[num36].tr_bg.ToString() + " ");
                    }
                }
                if (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] > 0)
                {
                    if ((_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMGF) || (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMRG2))
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                        }
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvmgf";
                        }
                        else
                        {
                            buf.Add(@"\clvmgf");
                        }
                    }
                    else if (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7 + 1] == this.CLVMRG)
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                        }
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvmrg";
                        }
                        else
                        {
                            buf.Add(@"\clvmrg");
                        }
                    }
                }
                if (((this._preserveBackgroundColor == 1) && (_tablesArray[num36].table_colbg[_tablesArray[num36].tr_cur, num7 + 1] > 0)) && (_tablesArray[num36].table_colbg[_tablesArray[num36].tr_cur, num7 + 1] < (num14 + 5)))
                {
                    if (_tablesArray[num36].table_level > 1)
                    {
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clcbpat" + _tablesArray[num36].table_colbg[_tablesArray[num36].tr_cur, num7 + 1].ToString();
                    }
                    else
                    {
                        buf.Add(@"\clcbpat" + _tablesArray[num36].table_colbg[_tablesArray[num36].tr_cur, num7 + 1].ToString());
                    }
                }
                if (this._preserveAlignment == 1)
                {
                    if (_tablesArray[num36].table_valign[_tablesArray[num36].tr_cur, num7 + 1] == this.VALIGN_CENTER)
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvertalc";
                        }
                        else
                        {
                            buf.Add(@"\clvertalc");
                        }
                    }
                    else if (_tablesArray[num36].table_valign[_tablesArray[num36].tr_cur, num7 + 1] == this.VALIGN_BOTTOM)
                    {
                        if (_tablesArray[num36].table_level > 1)
                        {
                            _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\clvertalb";
                        }
                        else
                        {
                            buf.Add(@"\clvertalb");
                        }
                    }
                }
                if (_tablesArray[num36].table_level > 1)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\cellx";
                }
                else
                {
                    buf.Add(this.LF + @"\cellx");
                }
                str12 = this.table_make_cellx(_tablesArray[num36].table_map, _tablesArray[num36].tr_cur, num7);
                if (_tablesArray[num36].table_level > 1)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str12;
                }
                else
                {
                    buf.Add(str12);
                }
            }
            if ((_tablesArray[num36].td_up_curcol == 0) && (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, 1] == this.CLVMRG))
            {
                if (_tablesArray[num36].table_level > 1)
                {
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\pard\intbl";
                    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                    _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\nestcell";
                    nest_tables _tables23 = _tablesArray[num36];
                    _tables23.cell--;
                }
                else
                {
                    buf.Add(@"\pard\intbl\cell");
                    nest_tables _tables24 = _tablesArray[num36];
                    _tables24.cell--;
                }
                nest_tables _tables25 = _tablesArray[num36];
                _tables25.td_up_curcol++;
                for (num7 = 2; num7 < _tablesArray[num36].table_p.cols; num7++)
                {
                    if (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur, num7] != this.CLVMRG)
                    {
                        break;
                    }
                    if (_tablesArray[num36].table_level > 1)
                    {
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + this.LF + @"\pard\intbl";
                        str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + str11;
                        _tablesArray[num36].nestTblDescription = _tablesArray[num36].nestTblDescription + @"\nestcell";
                        nest_tables _tables26 = _tablesArray[num36];
                        _tables26.cell--;
                    }
                    else
                    {
                        buf.Add(@"\pard \intbl\cell");
                        nest_tables _tables27 = _tablesArray[num36];
                        _tables27.cell--;
                    }
                    nest_tables _tables28 = _tablesArray[num36];
                    _tables28.td_up_curcol++;
                }
                _tablesArray[num36].td_open = false;
            }
        }
        if (_tablesArray[num36].table_p.rows > 1)
        {
            nest_tables _tables29 = _tablesArray[num36];
            _tables29.tr_cur++;
        }
        _tablesArray[num36].tr_open = true;
        _tablesArray[num36].td_open = false;
    }
    goto Label_134B7;
}
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x74) || (class4.b[num + 1] == 0x54))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) || ((class4.b[num + 2] == 0x68) || (class4.b[num + 2] == 0x48)))) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3])))
{
    if ((_tablesArray[num36].table && (_tablesArray[num36].cell == 0)) && _tablesArray[num36].tr_open)
    {
        if (_tablesArray[num36].table_level > 1)
        {
            buf.Add(this.LF + @"\pard\intbl");
            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
            buf.Add(str11);
            buf.Add(_tablesArray[num36].nestTblDescription);
            buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
            if (_tablesArray[num36].tr_cur == _tablesArray[num36].table_p.rows)
            {
                nest_tables _tables30 = _tablesArray[num36];
                _tables30.table_level--;
            }
        }
        else
        {
            buf.Add(@"\pard\intbl\row" + this.LF);
            _tablesArray[num36].table = false;
        }
        this.table_clear_carts(_tablesArray[num36]);
        this.nested_table_clear(_tablesArray[num36]);
        if (num36 > 0)
        {
            num36--;
        }
    }
    if (_tablesArray[num36].td_open)
    {
        if (_tablesArray[num36].table_level > 1)
        {
            buf.Add(this.LF + @"\pard\intbl");
            str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
            buf.Add(str11);
            buf.Add(@"\nestcell");
            nest_tables _tables31 = _tablesArray[num36];
            _tables31.cell--;
        }
        else
        {
            buf.Add(@"\pard\intbl\cell");
            nest_tables _tables32 = _tablesArray[num36];
            _tables32.cell--;
        }
        nest_tables _tables33 = _tablesArray[num36];
        _tables33.td_up_curcol++;
        _tablesArray[num36].td_open = false;
    }
    if ((_tablesArray[num36].tr_cur > 0) && (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur - 1, _tablesArray[num36].td_up_curcol + 1] == this.CLVMRG))
    {
        for (num7 = _tablesArray[num36].td_up_curcol + 1; (_tablesArray[num36].table_rowspan[_tablesArray[num36].tr_cur - 1, num7] == this.CLVMRG) && (num7 < _tablesArray[num36].table_p.cols); num7++)
        {
            if (_tablesArray[num36].table_level > 1)
            {
                buf.Add(this.LF + @"\pard \intbl");
                str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
                buf.Add(str11);
                buf.Add(@"\nestcell");
                nest_tables _tables34 = _tablesArray[num36];
                _tables34.cell--;
            }
            else
            {
                buf.Add(@"\pard\intbl\cell");
                nest_tables _tables35 = _tablesArray[num36];
                _tables35.cell--;
            }
            nest_tables _tables36 = _tablesArray[num36];
            _tables36.td_up_curcol++;
            _tablesArray[num36].td_open = false;
        }
    }
    if (_tablesArray[num36].table_level > 1)
    {
        buf.Add(this.LF + @"\pard\intbl");
        str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
        buf.Add(str11);
    }
    else
    {
        buf.Add(this.LF + @"\pard\intbl ");
    }
    if (((_tablesArray[num36].td_up_curcol >= 0) && (_tablesArray[num36].td_up_curcol < (this.MAX_COLUMNS - 1))) && (_tablesArray[num36].tdAlignColgroup[_tablesArray[num36].td_up_curcol] != 0))
    {
        if (_tablesArray[num36].tdAlignColgroup[_tablesArray[num36].td_up_curcol] == 0x63)
        {
            _tablesArray[num36].td_align = class19.ByteToString();
        }
        else if (_tablesArray[num36].tdAlignColgroup[_tablesArray[num36].td_up_curcol] == 0x6c)
        {
            _tablesArray[num36].td_align = class20.ByteToString();
        }
        else if (_tablesArray[num36].tdAlignColgroup[_tablesArray[num36].td_up_curcol] == 0x72)
        {
            _tablesArray[num36].td_align = class21.ByteToString();
        }
        else if (_tablesArray[num36].tdAlignColgroup[_tablesArray[num36].td_up_curcol] == 0x6a)
        {
            _tablesArray[num36].td_align = class18.ByteToString();
        }
    }
    num3 = num;
    if (this.IS_DELIMITER(class4.b[num + 3]))
    {
        while ((class4.b[num + 3] != 0x3e) && (num < class4.len))
        {
            if (((((this._preserveAlignment == 1) && ((class4.b[num] == 0x61) || (class4.b[num] == 0x41))) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49)) && ((class4.b[num + 3] == 0x67) || (class4.b[num + 3] == 0x47)))) && ((class4.b[num + 4] == 110) || (class4.b[num + 4] == 0x4e)))
            {
                num += 5;
                if (class4.b[num] == 0x3a)
                {
                    num++;
                }
                this.read_value_CSS_tolower(class4, ref num, max, class16, 30);
                if (class16.byteCmpi("center") == 0)
                {
                    _tablesArray[num36].td_align = class19.ByteToString();
                }
                else if (class16.byteCmpi("middle") == 0)
                {
                    _tablesArray[num36].td_align = class19.ByteToString();
                }
                else if (class16.byteCmpi("left") == 0)
                {
                    _tablesArray[num36].td_align = class20.ByteToString();
                }
                else if (class16.byteCmpi("right") == 0)
                {
                    _tablesArray[num36].td_align = class21.ByteToString();
                }
            }
            if (((((this._preserveBackgroundColor == 1) && ((class4.b[num] == 0x62) || (class4.b[num] == 0x42))) && ((class4.b[num + 1] == 0x67) || (class4.b[num + 1] == 0x47))) && (((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)) && ((class4.b[num + 3] == 0x6f) || (class4.b[num + 3] == 0x4f)))) && ((((class4.b[num + 4] == 0x6c) || (class4.b[num + 4] == 0x4c)) && ((class4.b[num + 5] == 0x6f) || (class4.b[num + 5] == 0x4f))) && (((class4.b[num + 6] == 0x72) || (class4.b[num + 6] == 0x52)) && (class4.b[num + 7] == 0x3d))))
            {
                num += 8;
                this.read_color(class4, ref num, max, class11);
                for (num7 = 0; num7 < num14; num7++)
                {
                    if (class11.byteCmpi((string)list2[num7]) == 0)
                    {
                        _tablesArray[num36].td_bg = num7 + 3;
                    }
                }
            }
            num++;
        }
    }
    if (this._preserveAlignment == 1)
    {
        if (_tablesArray[num36].td_align == null)
        {
            if (_tablesArray[num36].tr_align == null)
            {
                _tablesArray[num36].tr_align = class18.ByteToString();
                buf.Add(_tablesArray[num36].tr_align);
            }
            else
            {
                buf.Add(_tablesArray[num36].tr_align);
            }
        }
        else
        {
            buf.Add(_tablesArray[num36].td_align);
            align.Clear();
            align.Add(_tablesArray[num36].td_align);
        }
    }
    num = num3;
    num += 3;
    num4 = 0;
    flag21 = false;
    _tablesArray[num36].td_open = true;
    flag12 = true;
    this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.TD_CSS);
    goto Label_134B7;
}
if (((((_tablesArray[num36].table && (class4.b[num] == 60)) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && (((class4.b[num + 3] == 100) || (class4.b[num + 3] == 0x44)) || ((class4.b[num + 3] == 0x68) || (class4.b[num + 3] == 0x48)))) && (class4.b[num + 4] == 0x3e))
{
    while (num28 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        num28--;
    }
    while (num29 > 0)
    {
        buf.Add((byte)0x7d);
        num11++;
        num29--;
    }
    num += 4;
    this.CSS_close(class22, class18, align, buf, ref num11, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, fontsize, CSS_tag_type.TD_CSS);
    if (_tablesArray[num36].table_level > 1)
    {
        str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
        buf.Add(str11);
        buf.Add(@"\nestcell");
        nest_tables _tables37 = _tablesArray[num36];
        _tables37.cell--;
    }
    else
    {
        buf.Add(@"\cell");
        nest_tables _tables38 = _tablesArray[num36];
        _tables38.cell--;
    }
    nest_tables _tables39 = _tablesArray[num36];
    _tables39.td_up_curcol++;
    _tablesArray[num36].td_open = false;
    if (this._preserveBackgroundColor == 1)
    {
        _tablesArray[num36].td_bg = 0;
    }
    if (this._preserveAlignment == 1)
    {
        align.Clear();
        align.Add(class22);
        _tablesArray[num36].td_align = class22.ByteToString();
    }
    num34 = 0;
    flag12 = false;
    goto Label_134B7;
}
if (((((!_tablesArray[num36].table || (class4.b[num] != 60)) || (class4.b[num + 1] != 0x2f)) || ((class4.b[num + 2] != 0x74) && (class4.b[num + 2] != 0x54))) || ((class4.b[num + 3] != 0x72) && (class4.b[num + 3] != 0x52))) || (class4.b[num + 4] != 0x3e))
{
    goto Label_1143D;
}
if (_tablesArray[num36].table_level <= 1)
{
    goto Label_112B1;
}
while (_tablesArray[num36].cell > 0)
{
    buf.Add(this.LF + @"\pard\intbl");
    str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
    buf.Add(str11);
    buf.Add(this.LF + @"\nestcell");
    nest_tables _tables40 = _tablesArray[num36];
    _tables40.cell--;
}
buf.Add(this.LF + @"\pard\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level.ToString() + " ";
buf.Add(str11);
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
if (_tablesArray[num36].tr_cur == _tablesArray[num36].table_p.rows)
{
    nest_tables _tables41 = _tablesArray[num36];
    _tables41.table_level--;
}
if ((_tablesArray[num36].tr_cur == 0) && (_tablesArray[num36].table_p.rows == 1))
{
    str11 = @"\intbl\itap" + ((_tablesArray[num36].table_level - 1)).ToString() + " ";
}
else
{
    str11 = @"\intbl\itap" + _tablesArray[num36].table_level.ToString() + " ";
}
buf.Add(str11);
flag16 = false;
goto Label_112E0;
Label_11288:
buf.Add(this.LF + @"\pard\intbl\cell");
nest_tables _tables42 = _tablesArray[num36];
_tables42.cell--;
Label_112B1:
if (_tablesArray[num36].cell > 0)
{
    goto Label_11288;
}
buf.Add(@"\pard\intbl\row" + this.LF);
_tablesArray[num36].table = false;
Label_112E0:
if (this._preserveAlignment == 1)
{
    _tablesArray[num36].tr_align = class18.ByteToString();
}
if (this._preserveBackgroundColor == 1)
{
    _tablesArray[num36].tr_bg = 0;
}
_tablesArray[num36].tr_open = false;
num += 4;
if (_tablesArray[num36].tr_cur == _tablesArray[num36].table_p.rows)
{
    while (num < class4.len)
    {
        if ((((((class4.b[num] == 60) && (class4.b[num + 1] == 0x2f)) && ((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54))) && ((class4.b[num + 3] == 0x61) || (class4.b[num + 3] == 0x41))) && (((class4.b[num + 4] == 0x62) || (class4.b[num + 4] == 0x42)) && ((class4.b[num + 5] == 0x6c) || (class4.b[num + 5] == 0x4c)))) && (((class4.b[num + 6] == 0x65) || (class4.b[num + 6] == 0x45)) && (class4.b[num + 7] == 0x3e)))
        {
            num--;
            break;
        }
        num++;
    }
}
goto Label_134B7;
Label_1143D:
if ((((class4.b[num] == 60) && ((class4.b[num + 1] == 0x68) || (class4.b[num + 1] == 0x48))) && ((class4.b[num + 2] == 0x72) || (class4.b[num + 2] == 0x52))) && ((class4.b[num + 3] == 0x3e) || this.IS_DELIMITER(class4.b[num + 3])))
{
    num += 3;
    str10 = @"{\*\picprop {\sp{\sn pictureBiLevel}{\sv 1}}}";
    index = num;
    while ((class4.b[num] != 0x3e) && (num < max))
    {
        if (((((class4.b[num] == 0x62) || (class4.b[num] == 0x42)) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x61) || (class4.b[num + 2] == 0x41)) && ((class4.b[num + 3] == 0x63) || (class4.b[num + 3] == 0x43)))) && ((class4.b[num + 4] == 0x6b) || (class4.b[num + 4] == 0x4b)))
        {
            str10 = @"{\*\picprop {\sp{\sn pictureBiLevel}{\sv 1}}}";
        }
        num++;
    }
    if (this._preserveHR == 1)
    {
        if (this._pageOrientation == ePageOrientation.Landscape)
        {
            num39 = (this.page_height - this.margl) - this.margr;
        }
        else
        {
            num39 = (this.page_width - this.margl) - this.margr;
        }
        if (_tablesArray[num36].table && (_tablesArray[num36].table_p.rows > 1))
        {
            if (_tablesArray[num36].td_up_curcol == 0)
            {
                num39 = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur - 1, _tablesArray[num36].td_up_curcol + 1];
            }
            else
            {
                num39 = _tablesArray[num36].table_map[_tablesArray[num36].tr_cur - 1, _tablesArray[num36].td_up_curcol + 1] - _tablesArray[num36].table_map[_tablesArray[num36].tr_cur - 1, _tablesArray[num36].td_up_curcol];
            }
        }
        class16.Clear();
        strArray = new string[] { this.LF, @"{\par\pict", str10, @"\picscalex", (num39 / 10).ToString(), @"\picscaley6\picw52\pich52\picwgoal1000\pichgoal500\wmetafile8", this.LF };
        class16.Add(string.Concat(strArray));
        buf.Add(class16);
        num11 += class16.len;
        buf.Add(@"0100090000033a0000000000240000000000050000000b0200000000050000000c022300230024000000430f2000cc00000001000100000000002300230000000000280000000100000001000000010018000000000004000000120b0000120b0000000000000000000000000000030000000000}\par ");
        num11 += @"0100090000033a0000000000240000000000050000000b0200000000050000000c022300230024000000430f2000cc00000001000100000000002300230000000000280000000100000001000000010018000000000004000000120b0000120b0000000000000000000000000000030000000000}\par ".Length;
        flag16 = false;
    }
    num = index;
    this.CSS_insert(class22, class18, class19, class20, class21, align, class4, ref num, buf, ref num11, max, _params, ref flag4, class10, class14, ref num21, ref flag16, ref flag5, newb, list, list2, CSS_tag_type.HR_CSS);
    goto Label_134B7;
}
if ((((class4.b[num] != 60) || ((class4.b[num + 1] != 0x69) && (class4.b[num + 1] != 0x49))) || ((class4.b[num + 2] != 0x6d) && (class4.b[num + 2] != 0x4d))) || (((class4.b[num + 3] != 0x67) && (class4.b[num + 3] != 0x47)) || !this.IS_DELIMITER(class4.b[num + 4])))
{
    goto Label_12A9F;
}
if (this._deleteImages == 1)
{
    while ((class4.b[num] != 0x3e) && (num < class4.len))
    {
        num++;
    }
    goto Label_134B7;
}
if (this._preserveImages == 0)
{
    while ((class4.b[num] != 0x3e) && (num < class4.len))
    {
        buf.Add(class4.b[num]);
        num++;
    }
    buf.Add(">");
    goto Label_134B7;
}
num3 = num;
folder.Clear();
class26.Clear();
num41 = -1;
num42 = -1;
while ((class4.b[num] != 0x3e) && (num < class4.len))
{
    if ((((class4.b[num] == 0x73) || (class4.b[num] == 0x53)) && ((class4.b[num + 1] == 0x72) || (class4.b[num + 1] == 0x52))) && ((class4.b[num + 2] == 0x63) || (class4.b[num + 2] == 0x43)))
    {
        while ((class4.b[num] != 0x3e) && (num < class4.len))
        {
            if (class4.b[num] == 0x3d)
            {
                while ((class4.b[num] != 0x3e) && (num < class4.len))
                {
                    if ((class4.b[num] == 0x22) || (class4.b[num] == 0x27))
                    {
                        break;
                    }
                    if ((class4.b[num] == 0x20) && ((class4.b[num + 1] != 0x22) || (class4.b[num + 1] != 0x27)))
                    {
                        num++;
                        break;
                    }
                    if (((class4.b[num + 1] != 0x20) && (class4.b[num + 1] != 0x22)) && (class4.b[num + 1] != 0x27))
                    {
                        num++;
                        break;
                    }
                    num++;
                }
                break;
            }
            num++;
        }
        byte num65 = 0;
        if ((class4.b[num] != 0x22) && (class4.b[num] != 0x27))
        {
            goto Label_11A65;
        }
        num65 = class4.b[num];
        num++;
        while ((class4.b[num] != 0x3e) && (num < class4.len))
        {
            if (class4.b[num] == num65)
            {
                break;
            }
            class26.Add(class4.b[num]);
            num++;
        }
    }
    goto Label_11AA8;
Label_11A4E:
    class26.Add(class4.b[num]);
num++;
Label_11A65:
if (((class4.b[num] != 0x3e) && (num < class4.len)) && (((class4.b[num] != 0x22) && (class4.b[num] != 0x27)) && (class4.b[num] != 0x20)))
{
    goto Label_11A4E;
}
Label_11AA8:
if ((((class4.b[num] == 0x61) || (class4.b[num] == 0x41)) && ((class4.b[num + 1] == 0x6c) || (class4.b[num + 1] == 0x4c))) && (((class4.b[num + 2] == 0x74) || (class4.b[num + 2] == 0x54)) && (class4.b[num + 3] == 0x3d)))
{
    num += 3;
    this.read_value(class4, ref num, valueStr);
}
if (((((class4.b[num] == 0x77) || (class4.b[num] == 0x57)) && ((class4.b[num + 1] == 0x69) || (class4.b[num + 1] == 0x49))) && (((class4.b[num + 2] == 100) || (class4.b[num + 2] == 0x44)) && ((class4.b[num + 3] == 0x74) || (class4.b[num + 3] == 0x54)))) && ((class4.b[num + 4] == 0x68) || (class4.b[num + 4] == 0x48)))
{
    num += 5;
    this.read_value(class4, ref num, valueStr);
    num41 = this.ToInt(valueStr);
}
if (((((class4.b[num] == 0x68) || (class4.b[num] == 0x48)) && ((class4.b[num + 1] == 0x65) || (class4.b[num + 1] == 0x45))) && (((class4.b[num + 2] == 0x69) || (class4.b[num + 2] == 0x49)) && ((class4.b[num + 3] == 0x67) || (class4.b[num + 3] == 0x47)))) && (((class4.b[num + 4] == 0x68) || (class4.b[num + 4] == 0x48)) && ((class4.b[num + 5] == 0x74) || (class4.b[num + 5] == 0x54))))
{
    num += 6;
    this.read_value(class4, ref num, valueStr);
    num42 = this.ToInt(valueStr);
}
num++;
}
if (class26.b[0] == 0x20)
{
    num7 = 0;
    while (class26.b[num7] == 0x20)
    {
        num7++;
    }
    while (num7 < class26.len)
    {
        folder.Add(class26.b[num7]);
        num7++;
    }
    class26.Clear();
    for (num7 = 0; num7 < folder.len; num7++)
    {
        if (((folder.b[num7] == 0x25) && (folder.b[num7 + 1] == 50)) && (folder.b[num7 + 2] == 0x30))
        {
            class26.Add((byte)0x20);
            num7 += 3;
        }
        else if ((((folder.b[num7] == 0x26) && (folder.b[num7 + 1] == 0x61)) && ((folder.b[num7 + 2] == 0x6d) && (folder.b[num7 + 3] == 0x70))) && (folder.b[num7 + 4] == 0x3b))
        {
            class26.Add((byte)0x26);
            num7 += 5;
        }
        else
        {
            class26.Add(folder.b[num7]);
        }
    }
}
string requestUriString = System.Text.Encoding.UTF8.GetString(class26.b, 0, class26.len);
Stream responseStream = null;
bool flag23 = false;
bool flag24 = false;
WebResponse response = null;
if (((((this._baseURL.Length > 6) && ((this._baseURL[0] == 'h') || (this._baseURL[0] == 'H'))) && ((this._baseURL[1] == 't') || (this._baseURL[1] == 'T'))) && (((this._baseURL[2] == 't') || (this._baseURL[2] == 'T')) && ((this._baseURL[3] == 'p') || (this._baseURL[3] == 'P')))) && (((this._baseURL[4] == ':') && (this._baseURL[5] == '/')) && (this._baseURL[6] == '/')))
{
    for (num7 = this._baseURL.Length - 1; num7 > 0; num7--)
    {
        if (this._baseURL[num7] == '/')
        {
            break;
        }
        this._baseURL = this._baseURL.Remove(num7, 1);
    }
    flag24 = true;
}
if ((((class26.b[0] == 0x77) || (class26.b[0] == 0x57)) && ((class26.b[1] == 0x77) || (class26.b[1] == 0x57))) && (((class26.b[2] == 0x77) || (class26.b[2] == 0x57)) && (class26.b[3] == 0x2e)))
{
    valueStr.Clear();
    valueStr.Add("http://");
    valueStr.Add(class26);
    class26.Clear();
    class26.Add(valueStr);
    requestUriString = System.Text.Encoding.UTF8.GetString(class26.b, 0, class26.len);
}
if (((((class26.b[0] == 0x68) || (class26.b[0] == 0x48)) && ((class26.b[1] == 0x74) || (class26.b[1] == 0x54))) && (((class26.b[2] == 0x74) || (class26.b[2] == 0x54)) && ((class26.b[3] == 0x70) || (class26.b[3] == 80)))) && ((class26.b[4] == 0x3a) || (((class26.b[4] == 0x73) || (class26.b[4] == 0x53)) && (class26.b[5] == 0x3a))))
{
    if (this._preserveHttpImages == 0)
    {
        goto Label_134B7;
    }
    this.CheckRemotePath(class26);
    requestUriString = System.Text.Encoding.UTF8.GetString(class26.b, 0, class26.len);
    HttpWebRequest aWebRequest = (HttpWebRequest)WebRequest.Create(requestUriString);
    this.OnBeforeImageDownload(aWebRequest);
    try
    {
        message.Clear();
        message.Add("Trying to connect with: ");
        message.Add(requestUriString);
        message.Add(this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
        responseStream = aWebRequest.GetResponse().GetResponseStream();
        if (responseStream.CanRead)
        {
            flag23 = true;
            message.Clear();
            message.Add("Connected OK!" + this.LF);
            if (this._createTraceFile == 1)
            {
                this.MyTrace(message, this._traceFilePath);
            }
        }
    }
    catch (Exception exception)
    {
        flag23 = false;
        message.Clear();
        message.Add(exception.Message);
        message.Add("Error!" + this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
    }
}
else if (flag24)
{
    requestUriString = this.CombineURLs(this._baseURL, requestUriString);
    HttpWebRequest request2 = (HttpWebRequest)WebRequest.Create(requestUriString);
    this.OnBeforeImageDownload(request2);
    try
    {
        message.Clear();
        message.Add("Trying to connect with: ");
        message.Add(requestUriString);
        message.Add(this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
        response = request2.GetResponse();
        responseStream = response.GetResponseStream();
        if (responseStream.CanRead)
        {
            flag23 = true;
            message.Clear();
            message.Add("Connected OK!" + this.LF);
            if (this._createTraceFile == 1)
            {
                this.MyTrace(message, this._traceFilePath);
            }
        }
    }
    catch (Exception exception2)
    {
        flag23 = false;
        message.Clear();
        message.Add(exception2.Message);
        message.Add("Error!" + this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
    }
}
ByteClass class33 = new ByteClass();
bool flag25 = false;
Image img = null;
if (!flag23)
{
    for (num7 = 0; num7 < class26.len; num7++)
    {
        if (class26.b[num7] == 0x2f)
        {
            class26.b[num7] = 0x5c;
        }
    }
    if (((((class26.b[0] == 0x66) || (class26.b[0] == 70)) && ((class26.b[1] == 0x69) || (class26.b[1] == 0x49))) && (((class26.b[2] == 0x6c) || (class26.b[2] == 0x4c)) && ((class26.b[3] == 0x65) || (class26.b[3] == 0x45)))) && (class26.b[4] == 0x3a))
    {
        num7 = 5;
        while ((class26.b[num7] == 0x5c) && (num7 < class26.len))
        {
            num7++;
        }
        while (num7 < class26.len)
        {
            folder.Add(class26.b[num7]);
            num7++;
        }
        class26.Clear();
        for (num7 = 0; num7 < folder.len; num7++)
        {
            class26.Add(folder.b[num7]);
        }
    }
    folder.Clear();
    for (num7 = 0; num7 < class28.len; num7++)
    {
        folder.Add(class28.b[num7]);
    }
    if ((folder.len > 0) && (folder.b[folder.len - 1] != 0x5c))
    {
        folder.Add((byte)0x5c);
    }
    if (((class26.b[1] != 0x3a) && (class26.b[2] != 0x5c)) && ((class26.b[0] != 0x2e) && (class26.b[1] != 0x2e)))
    {
        for (num7 = 0; num7 < class26.len; num7++)
        {
            folder.Add(class26.b[num7]);
        }
    }
    else
    {
        this.combine_img_path(folder, class26);
    }
    path = "";
    path = System.Text.Encoding.UTF8.GetString(folder.b, 0, folder.len);
    if (!File.Exists(path))
    {
        flag25 = false;
        if ((((class26.b[0] == 0x63) || (class26.b[0] == 0x43)) && ((class26.b[1] == 0x69) || (class26.b[1] == 0x49))) && (((class26.b[2] == 100) || (class26.b[2] == 0x44)) && (class26.b[3] == 0x3a)))
        {
            class33.Clear();
            for (num7 = 4; num7 < class26.len; num7++)
            {
                class33.Add(class26.b[num7]);
            }
            if (ImageList != null)
            {
                for (num7 = 0; num7 < ImageList.Count; num7++)
                {
                    if (class33.byteCmpi(((SautinImage)ImageList[num7]).Cid) == 0)
                    {
                        img = ((SautinImage)ImageList[num7]).Img;
                        flag25 = true;
                        break;
                    }
                }
            }
        }
        if (!flag25)
        {
            message.Clear();
            message.Add("Can't open file from: " + path + this.LF);
            if (this._createTraceFile == 1)
            {
                this.MyTrace(message, this._traceFilePath);
            }
            goto Label_134B7;
        }
    }
}
Image image2 = null;
MemoryStream stream2 = new MemoryStream();
if (flag25)
{
    image2 = img;
}
else
{
    if (flag23)
    {
        message.Clear();
        message.Add("Reading remote image..." + this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
        try
        {
            image2 = Image.FromStream(responseStream);
            responseStream.Close();
            response.Close();
            goto Label_1274A;
        }
        catch (Exception exception3)
        {
            message.Clear();
            message.Add(exception3.Message);
            message.Add("Reading remote image error!" + this.LF);
            if (this._createTraceFile == 1)
            {
                this.MyTrace(message, this._traceFilePath);
            }
            goto Label_134B7;
        }
    }
    message.Clear();
    message.Add("Reading local image..." + this.LF);
    if (this._createTraceFile == 1)
    {
        this.MyTrace(message, this._traceFilePath);
    }
    try
    {
        image2 = Image.FromFile(path);
    }
    catch (Exception exception4)
    {
        message.Clear();
        message.Add(exception4.Message);
        message.Add("Reading local image error!" + this.LF);
        if (this._createTraceFile == 1)
        {
            this.MyTrace(message, this._traceFilePath);
        }
        goto Label_134B7;
    }
}
Label_1274A:
if (path.ToLower().IndexOf(".png", 0, path.Length) > 0)
{
    this.imageType = eImageType.Png;
}
else if (path.ToLower().IndexOf(".jpg", 0, path.Length) > 0)
{
    this.imageType = eImageType.Jpeg;
}
else if (path.ToLower().IndexOf(".jpeg", 0, path.Length) > 0)
{
    this.imageType = eImageType.Jpeg;
}
else if (path.ToLower().IndexOf(".gif", 0, path.Length) > 0)
{
    this.imageType = eImageType.Gif;
}
else if (path.ToLower().IndexOf(".bmp", 0, path.Length) > 0)
{
    this.imageType = eImageType.Bmp;
}
if (this._imageCompatible == eImageCompatible.image_Word)
{
    if (this.imageType == eImageType.Jpeg)
    {
        image2.Save(stream2, ImageFormat.Jpeg);
    }
    else
    {
        image2.Save(stream2, ImageFormat.Png);
    }
}
else
{
    image2.Save(stream2, ImageFormat.Bmp);
}
if (stream2.Length != 0L)
{
    int num68;
    int num69;
    message.Clear();
    message.Add("Image was converted OK!" + this.LF);
    if (this._createTraceFile == 1)
    {
        this.MyTrace(message, this._traceFilePath);
    }
    byte[] buffer = stream2.GetBuffer();
    stream2.Close();
    str8 = "";
    int width = image2.Width;
    int height = image2.Height;
    if (num41 >= 0)
    {
        num68 = num41 * 15;
    }
    else
    {
        num68 = width * 15;
    }
    if (num42 >= 0)
    {
        num69 = num42 * 15;
    }
    else
    {
        num69 = height * 15;
    }
    int num70 = 100;
    int num71 = 100;
    if (this._imageCompatible == eImageCompatible.image_Word)
    {
        if (this.imageType == eImageType.Jpeg)
        {
            str8 = string.Format(@"{{\pict\jpegblip\picw{0:D}\pich{1:D}\picwgoal{2:D}\pichgoal{3:D}\picscalex{4:D}\picscaley{5:D}" + this.LF, new object[] { width * 15, height * 15, num68, num69, num70, num71 });
        }
        else
        {
            str8 = string.Format(@"{{\pict\pngblip\picw{0:D}\pich{1:D}\picwgoal{2:D}\pichgoal{3:D}\picscalex{4:D}\picscaley{5:D}" + this.LF, new object[] { width * 15, height * 15, num68, num69, num70, num71 });
        }
    }
    else
    {
        str8 = string.Format(@"{{\pict\dibitmap0\picw{0:D}\pich{1:D}\picwgoal{2:D}\pichgoal{3:D}\picscalex{4:D}\picscaley{5:D}" + this.LF, new object[] { (int)(width * 26.45), (int)(height * 26.45), num68, num69, num70, num71 });
    }
    buf.Add(str8);
    str8 = "";
    if (this._imageCompatible == eImageCompatible.image_Word)
    {
        num7 = 0;
    }
    else
    {
        num7 = 14;
    }
    while (num7 < buffer.Length)
    {
        this.ByteToHexByteClass(buffer[num7], valueStr);
        buf.Add(valueStr);
        num7++;
    }
    buf.Add("}");
}
goto Label_134B7;
Label_12A9F:
if (flag11)
{
    if (class4.b[num] == 10)
    {
        buf.Add(@"\par" + this.LF);
        goto Label_134B7;
    }
    if (class4.b[num] == 0x20)
    {
        buf.Add(" ");
        goto Label_134B7;
    }
    if (class4.b[num] == 9)
    {
        buf.Add(@"\tab" + this.LF);
        goto Label_134B7;
    }
    if (class4.b[num] == 0x3e)
    {
        goto Label_134B7;
    }
    if (class4.b[num] == 60)
    {
        while ((class4.b[num] != 0x3e) && (num < max))
        {
            if ((((this._preserveHyperlinks == 1) && ((class4.b[num] == 0x68) || (class4.b[num] == 0x48))) && ((class4.b[num + 1] == 0x72) || (class4.b[num + 1] == 0x52))) && ((((class4.b[num + 2] == 0x65) || (class4.b[num + 2] == 0x45)) && ((class4.b[num + 3] == 0x66) || (class4.b[num + 3] == 70))) && ((class4.b[num + 4] == 0x3d) && (class4.b[num + 5] == 0x22))))
            {
                num--;
                break;
            }
            num++;
        }
        goto Label_134B7;
    }
}
if (num11 <= 0x11463)
{
    goto Label_12D68;
}
if (!_tablesArray[num36].table)
{
    break;
}
if (this._preserveNestedTables != 1)
{
    goto Label_12D4A;
}
goto Label_12D22;
Label_12C47:
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add("\n\\nestcell");
nest_tables _tables43 = _tablesArray[num36];
_tables43.cell--;
Label_12CA6:
if (_tablesArray[num36].cell > 0)
{
    goto Label_12C47;
}
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
num36--;
Label_12D22:
if (num36 > 0)
{
    goto Label_12CA6;
}
Label_12D4A:
while (_tablesArray[num36].cell > 0)
{
    buf.Add("\n\\pard \\intbl\\cell");
    nest_tables _tables44 = _tablesArray[num36];
    _tables44.cell--;
}
buf.Add("\n\\pard \\intbl \\row\\pard");
break;
Label_12D68:
if (num11 != 0x11167)
{
    goto Label_12EB5;
}
if (!_tablesArray[num36].table)
{
    break;
}
if (this._preserveNestedTables != 1)
{
    goto Label_12E97;
}
goto Label_12E6F;
Label_12D94:
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add("\n\\nestcell");
nest_tables _tables45 = _tablesArray[num36];
_tables45.cell--;
Label_12DF3:
if (_tablesArray[num36].cell > 0)
{
    goto Label_12D94;
}
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
num36--;
Label_12E6F:
if (num36 > 0)
{
    goto Label_12DF3;
}
Label_12E97:
while (_tablesArray[num36].cell > 0)
{
    buf.Add("\n\\pard \\intbl\\cell");
    nest_tables _tables46 = _tablesArray[num36];
    _tables46.cell--;
}
buf.Add("\n\\pard \\intbl \\row \\pard");
break;
Label_12EB5:
if (((class4.len > 0) && (num > 0)) && ((class4.b[num - 1] == 0x3e) && (class4.b[num] != 60)))
{
    num4 = 1;
}
if (class4.b[num] == 60)
{
    num4 = 0;
    goto Label_134B7;
}
if ((num4 != 0) || flag11)
{
    if (flag15 && (num5 == 0))
    {
        buf.Add(str14);
        num5 = 1;
    }
    flag15 = false;
    if (this.IS_DELIMITER(class4.b[num]))
    {
        if ((num5 == 0) && (buf.len > 0))
        {
            if (((class4.b[num] == 10) || (class4.b[num] == 13)) && (buf.b[buf.len - 1] == 0x7d))
            {
                if ((buf.len > 2) && (buf.b[buf.len - 2] != 0x20))
                {
                    buf.Add((byte)0x20);
                    num11 = buf.len;
                }
            }
            else if (buf.b[buf.len - 1] != 0x20)
            {
                buf.Add((byte)0x20);
                num11 = buf.len;
            }
            else if (flag16)
            {
                buf.Add((byte)0x20);
                num11++;
                flag21 = true;
            }
            flag16 = false;
        }
    }
    else
    {
        if (class4.b[num] > 0x1f)
        {
            if (hieroglyph)
            {
                this.tohex(class4.b[num], str);
                buf.Add(str);
                num11 += 4;
            }
            else if ((class4.b[num] < 160) || (charset > 0))
            {
                buf.Add(class4.b[num]);
                num11++;
                if (flag13 && (charset > 0))
                {
                    buf.Add(@"\f0 ");
                    num11 += 4;
                    flag13 = false;
                }
            }
            else
            {
                if (!flag13 && (charset > 0))
                {
                    buf.Add(@"\f99 ");
                    num11 += @"\f99 ".Length;
                    flag13 = true;
                }
                this.tohex(class4.b[num], str);
                buf.Add(str);
                num11 += 4;
            }
            if (num52 == 1)
            {
                num52 = 2;
            }
            num5 = 0;
            flag21 = true;
        }
        flag16 = false;
    }
}
if (num11 <= Int32.MaxValue)
{
    goto Label_13220;
}
if (!_tablesArray[num36].table)
{
    break;
}
if (this._preserveNestedTables != 1)
{
    goto Label_13202;
}
goto Label_131DA;
Label_130FF:
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add("\n\\nestcell");
nest_tables _tables47 = _tablesArray[num36];
_tables47.cell--;
Label_1315E:
if (_tablesArray[num36].cell > 0)
{
    goto Label_130FF;
}
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
num36--;
Label_131DA:
if (num36 > 0)
{
    goto Label_1315E;
}
Label_13202:
while (_tablesArray[num36].cell > 0)
{
    buf.Add("\n\\pard \\intbl\\cell");
    nest_tables _tables48 = _tablesArray[num36];
    _tables48.cell--;
}
buf.Add("\n\\pard \\intbl \\row \\pard");
break;
Label_13220:
if (num11 <= 0x124f7)
{
    goto Label_1336D;
}
if (!_tablesArray[num36].table)
{
    break;
}
if (this._preserveNestedTables != 1)
{
    goto Label_1334F;
}
goto Label_13327;
Label_1324C:
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add("\n\\nestcell");
nest_tables _tables49 = _tablesArray[num36];
_tables49.cell--;
Label_132AB:
if (_tablesArray[num36].cell > 0)
{
    goto Label_1324C;
}
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
num36--;
Label_13327:
if (num36 > 0)
{
    goto Label_132AB;
}
Label_1334F:
while (_tablesArray[num36].cell > 0)
{
    buf.Add("\n\\pard \\intbl\\cell");
    nest_tables _tables50 = _tablesArray[num36];
    _tables50.cell--;
}
buf.Add("\n\\pard \\intbl \\row \\pard");
break;
Label_1336D:
if (num11 <= 0x1117a)
{
    goto Label_134B7;
}
if (!_tablesArray[num36].table)
{
    break;
}
if (this._preserveNestedTables != 1)
{
    goto Label_1349C;
}
goto Label_13474;
Label_13399:
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add("\n\\nestcell");
nest_tables _tables51 = _tablesArray[num36];
_tables51.cell--;
Label_133F8:
if (_tablesArray[num36].cell > 0)
{
    goto Label_13399;
}
buf.Add("\n\\pard \\intbl");
str11 = @"\itap" + _tablesArray[num36].table_level + " ";
buf.Add(str11);
num11 += str11.Length;
buf.Add(_tablesArray[num36].nestTblDescription);
buf.Add(@"\nestrow}{\nonesttables\par}" + this.LF);
num36--;
Label_13474:
if (num36 > 0)
{
    goto Label_133F8;
}
Label_1349C:
while (_tablesArray[num36].cell > 0)
{
    buf.Add("\n\\pard \\intbl\\cell");
    nest_tables _tables52 = _tablesArray[num36];
    _tables52.cell--;
}
buf.Add("\n\\pard \\intbl \\row \\pard");
break;
Label_134B7:
num++;
                }
            }
            
            if (this._outputTextFormat == eOutputTextFormat.Rtf)
            {
                if (this._rtfParts == eRtfParts.RtfBody)
                {
                    buf.Add("}");
                }
                else
                {
                    buf.Add(@"\pard}");
                }
            }
            int num72 = 0;
            int num73 = 0;
            for (num7 = 0; num7 < buf.len; num7++)
            {
                if (buf.b[num7] == 0x5c)
                {
                    num7++;
                }
                else
                {
                    if (buf.b[num7] == 0x7b)
                    {
                        num72++;
                    }
                    if (buf.b[num7] == 0x7d)
                    {
                        num73++;
                    }
                }
            }
            for (num7 = 0; num7 < (num72 - num73); num7++)
            {
                buf.Add("}");
            }
            return buf.ByteToString();
        }
예제 #15
0
 private void table_analyse(ByteClass buf, int posStartBuf, int max, int[,] table_array, int[,] table_symbols, int[,] table_map, int[,] table_colspan, int[,] table_rowspan, int[,] table_images, int[,] table_width, int[,] table_colbg, int[,] table_valign, CSS_params CSS_param, table_params table_p, ArrayList color_list, int color_list_num, ByteClass img_folder, int TBLEN_MAX, bool hieroglyph, byte[] tdAlignColgroup)
 {
     int num;
     int num2;
     int num11;
     int num16;
     int num17;
     int num18;
     int[,] numArray8;
     IntPtr ptr;
     bool flag = true;
     int index = posStartBuf;
     int percent = 0;
     int num5 = 0;
     int num6 = 0;
     int colspan = 0;
     int rowspan = 0;
     int num9 = 0;
     int num10 = 0;
     int num12 = TBLEN_MAX;
     int num13 = 0;
     int num14 = 0;
     int num15 = 0;
     int[] numArray = new int[2];
     ByteClass class2 = new ByteClass(0x20);
     float num19 = 1f;
     int rows = 1;
     int[] numArray2 = new int[this.MAX_COLUMNS];
     int[] numArray3 = new int[this.MAX_COLUMNS];
     int[] numArray4 = new int[this.MAX_COLUMNS];
     int[] numArray5 = new int[this.MAX_COLUMNS];
     bool flag2 = false;
     bool flag3 = false;
     int bgcolor = 0;
     int valign = 0;
     int[] numArray6 = null;
     bool flag4 = false;
     if (numArray6 != null)
     {
         flag4 = true;
     }
     int[,] numArray7 = new int[table_p.rows, table_p.cols + 2];
     bool flag5 = false;
     bool flag6 = false;
     bool flag7 = false;
     int num23 = 0;
     if (numArray7 != null)
     {
         flag5 = true;
     }
     if (flag5)
     {
         for (num = 0; num < table_p.rows; num++)
         {
             for (num2 = 0; num2 < (table_p.cols + 2); num2++)
             {
                 numArray7[num, num2] = 0;
             }
         }
     }
     table_p.table_width = this.get_width(buf, posStartBuf, max, ref percent, ref colspan, ref rowspan, color_list, color_list_num, ref bgcolor, CSS_param, ref valign, ref table_p.tableAlign);
     table_p.percent_width = percent;
     num = 0;
     num2 = 0;
     for (num11 = 0; num11 < this.MAX_COLUMNS; num11++)
     {
         tdAlignColgroup[num11] = 0;
     }
     this.table_clear(table_array, table_p, 0);
     this.table_clear(table_symbols, table_p, 0);
     this.table_clear(table_colspan, table_p, 1);
     this.table_clear(table_rowspan, table_p, 1);
     this.table_clear(table_images, table_p, 0);
     this.table_clear(table_width, table_p, 0);
     this.table_clear(table_colbg, table_p, 0);
     this.table_clear(table_valign, table_p, this.VALIGN_TOP);
     this.table_clear(table_map, table_p, 0);
     index++;
     while (index < max)
     {
         if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x62) || (buf.b[index + 4] == 0x42)) && ((buf.b[index + 5] == 0x6c) || (buf.b[index + 5] == 0x4c)))) && (((buf.b[index + 6] == 0x65) || (buf.b[index + 6] == 0x45)) && (buf.b[index + 7] == 0x3e)))
         {
             if (num2 > 0)
             {
                 table_array[num, 0] = num2;
                 table_colspan[num, 0] = num2;
                 table_rowspan[num, 0] = num2;
                 table_symbols[num, 0] = num2;
                 table_width[num, 0] = num2;
                 table_images[num, 0] = num2;
                 table_map[num, 0] = num2;
             }
             break;
         }
         if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && ((buf.b[index + 6] == 0x3e) || this.IS_DELIMITER(buf.b[index + 6]))))
         {
             IntPtr ptr2;
             index += 6;
             rows++;
             if (flag5)
             {
                 (numArray8 = numArray7)[(int)(ptr = (IntPtr)num), (int)(ptr2 = (IntPtr)num2)] = numArray8[(int)ptr, (int)ptr2] + 1;
             }
             if (this.IS_DELIMITER(buf.b[index]))
             {
                 int align = -1111;
                 num13 = this.get_width(buf, index, max, ref percent, ref colspan, ref rowspan, color_list, color_list_num, ref bgcolor, CSS_param, ref valign, ref align);
                 if (num2 <= 0)
                 {
                     num2 = 1;
                 }
                 if (percent == 0)
                 {
                     num13 = this.table_translate_width(num13);
                     if (table_array[num, num2] < num13)
                     {
                         table_array[num, num2] = num13;
                     }
                 }
                 else
                 {
                     num13 = this.table_translate(num13, table_p, percent);
                     if (table_array[num, num2] < num13)
                     {
                         table_array[num, num2] = num13;
                     }
                 }
             }
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 index++;
             }
             if (buf.b[index] == 0x3e)
             {
                 index++;
             }
             num14 = 0;
             num15 = 0;
             while ((rows > 1) && (index < max))
             {
                 if ((((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x61) || (buf.b[index + 3] == 0x41))) && (((buf.b[index + 4] == 0x62) || (buf.b[index + 4] == 0x42)) && ((buf.b[index + 5] == 0x6c) || (buf.b[index + 5] == 0x4c)))) && (((buf.b[index + 6] == 0x65) || (buf.b[index + 6] == 0x45)) && (buf.b[index + 7] == 0x3e)))
                 {
                     rows--;
                     index += 6;
                 }
                 else if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x61) || (buf.b[index + 2] == 0x41))) && (((buf.b[index + 3] == 0x62) || (buf.b[index + 3] == 0x42)) && ((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)))) && (((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45)) && ((buf.b[index + 6] == 0x3e) || this.IS_DELIMITER(buf.b[index + 6]))))
                 {
                     rows++;
                     if (flag5)
                     {
                         (numArray8 = numArray7)[(int)(ptr = (IntPtr)num), (int)(ptr2 = (IntPtr)num2)] = numArray8[(int)ptr, (int)ptr2] + 1;
                     }
                     if (this.IS_DELIMITER(buf.b[index + 6]))
                     {
                         int num25 = -1111;
                         num13 = this.get_width(buf, index, max, ref percent, ref colspan, ref rowspan, color_list, color_list_num, ref bgcolor, CSS_param, ref valign, ref num25);
                         if (percent == 0)
                         {
                             num13 = this.table_translate_width(num13);
                             if (table_array[num, num2] < num13)
                             {
                                 table_array[num, num2] = num13;
                             }
                         }
                         else
                         {
                             num13 = this.table_translate(num13, table_p, percent);
                             if (table_array[num, num2] < num13)
                             {
                                 table_array[num, num2] = num13;
                             }
                         }
                     }
                 }
                 else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && (((buf.b[index + 2] == 100) || (buf.b[index + 2] == 0x44)) || ((buf.b[index + 2] == 0x68) || (buf.b[index + 2] == 0x48)))) && ((buf.b[index + 3] == 0x3e) || this.IS_DELIMITER(buf.b[index + 3])))
                 {
                     num14 = 0;
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         index++;
                     }
                 }
                 else if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) || ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48)))) && (buf.b[index + 4] == 0x3e))
                 {
                     if (num15 < num14)
                     {
                         num15 = num14;
                     }
                     num14 = 0;
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         index++;
                     }
                 }
                 else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x62) || (buf.b[index + 1] == 0x42))) && ((buf.b[index + 2] == 0x72) || (buf.b[index + 2] == 0x52))) && ((buf.b[index + 3] == 0x3e) || this.IS_DELIMITER(buf.b[index + 3])))
                 {
                     if (num14 > num15)
                     {
                         num15 = num14;
                     }
                     num14 = 0;
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         index++;
                     }
                 }
                 else if (buf.b[index] == 60)
                 {
                     while ((buf.b[index] != 0x3e) && (index < max))
                     {
                         index++;
                     }
                 }
                 else if (buf.b[index] == 0x26)
                 {
                     index += this.special_symbols_rtf(buf, index, max, class2, false);
                 }
                 else if (this.IS_DELIMITER(buf.b[index]))
                 {
                     if (num14 > num15)
                     {
                         num15 = num14;
                     }
                     num14 = 0;
                 }
                 else if (buf.b[index] >= 0x20)
                 {
                     num14++;
                 }
                 index++;
             }
             if (num6 < num15)
             {
                 num6 = num15;
             }
             if (num6 < num14)
             {
                 num6 = num14;
             }
         }
         else if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x68) || (buf.b[index + 2] == 0x48))) && (((buf.b[index + 3] == 0x65) || (buf.b[index + 3] == 0x45)) && ((buf.b[index + 4] == 0x61) || (buf.b[index + 4] == 0x41)))) && (((buf.b[index + 5] == 100) || (buf.b[index + 5] == 0x44)) && (buf.b[index + 6] == 0x3e)))
         {
             if (flag3)
             {
                 if (num2 == 0)
                 {
                     num2 = 1;
                 }
                 table_array[num, 0] = num2;
                 table_colspan[num, 0] = num2;
                 table_rowspan[num, 0] = num2;
                 table_symbols[num, 0] = num2;
                 table_width[num, 0] = num2;
                 table_images[num, 0] = num2;
                 table_map[num, 0] = num2;
                 if (flag5)
                 {
                     numArray7[num, 0] = num2;
                 }
                 num++;
                 num2 = 0;
             }
             flag3 = true;
             flag6 = true;
         }
         else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && ((buf.b[index + 2] == 0x72) || (buf.b[index + 2] == 0x52))) && ((buf.b[index + 3] == 0x3e) || this.IS_DELIMITER(buf.b[index + 3])))
         {
             if (flag6 && (num2 == 0))
             {
                 flag6 = false;
                 flag3 = true;
             }
             else
             {
                 if (flag3 || (num2 == table_p.cols))
                 {
                     if (num2 == 0)
                     {
                         num2 = 1;
                     }
                     table_array[num, 0] = num2;
                     table_colspan[num, 0] = num2;
                     table_rowspan[num, 0] = num2;
                     table_symbols[num, 0] = num2;
                     table_width[num, 0] = num2;
                     table_images[num, 0] = num2;
                     table_map[num, 0] = num2;
                     if (flag5)
                     {
                         numArray7[num, 0] = num2;
                     }
                     num++;
                     num2 = 0;
                 }
                 flag3 = true;
                 flag6 = false;
             }
         }
         else if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && ((buf.b[index + 3] == 0x72) || (buf.b[index + 3] == 0x52))) && (buf.b[index + 4] == 0x3e))
         {
             if (flag3 || (num2 == table_p.cols))
             {
                 table_array[num, 0] = num2;
                 table_colspan[num, 0] = num2;
                 table_rowspan[num, 0] = num2;
                 table_symbols[num, 0] = num2;
                 table_width[num, 0] = num2;
                 table_colbg[num, 0] = num2;
                 table_valign[num, 0] = num2;
                 table_images[num, 0] = num2;
                 table_map[num, 0] = num2;
                 if (flag5)
                 {
                     numArray7[num, 0] = num2;
                 }
                 num++;
                 num2 = 0;
                 while ((buf.b[index] != 0x3e) && (index < max))
                 {
                     index++;
                 }
             }
             else if (!flag3 && (num2 > 0))
             {
                 table_array[num, 0] = num2;
                 table_colspan[num, 0] = num2;
                 table_rowspan[num, 0] = num2;
                 table_symbols[num, 0] = num2;
                 table_width[num, 0] = num2;
                 table_colbg[num, 0] = num2;
                 table_valign[num, 0] = num2;
                 table_images[num, 0] = num2;
                 table_map[num, 0] = num2;
                 if (flag5)
                 {
                     numArray7[num, 0] = num2;
                 }
                 num++;
                 num2 = 0;
                 while ((buf.b[index] != 0x3e) && (index < max))
                 {
                     index++;
                 }
             }
             flag3 = false;
             if (num == table_p.rows)
             {
                 break;
             }
         }
         else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x74) || (buf.b[index + 1] == 0x54))) && (((buf.b[index + 2] == 100) || (buf.b[index + 2] == 0x44)) || ((buf.b[index + 2] == 0x68) || (buf.b[index + 2] == 0x48)))) && ((buf.b[index + 3] == 0x3e) || this.IS_DELIMITER(buf.b[index + 3])))
         {
             num2++;
             if (this.IS_DELIMITER(buf.b[index + 3]))
             {
                 index += 3;
                 int num26 = -1111;
                 table_array[num, num2] = this.get_width(buf, index, max, ref percent, ref colspan, ref rowspan, color_list, color_list_num, ref bgcolor, CSS_param, ref valign, ref num26);
                 table_colspan[num, num2] = colspan;
                 table_rowspan[num, num2] = rowspan;
                 table_colbg[num, num2] = bgcolor;
                 table_valign[num, num2] = valign;
                 table_array[num, num2] = this.table_translate(table_array[num, num2], table_p, percent);
             }
             num5 = 0;
             num6 = 0;
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 index++;
             }
             if (flag)
             {
                 table_images[num, num2] = this.get_width_img(buf, index, max, img_folder);
             }
         }
         else if (((((buf.b[index] == 60) && (buf.b[index + 1] == 0x2f)) && ((buf.b[index + 2] == 0x74) || (buf.b[index + 2] == 0x54))) && (((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)) || ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48)))) && (buf.b[index + 4] == 0x3e))
         {
             if (num6 > num5)
             {
                 num5 = num6;
             }
             table_symbols[num, num2] = num5;
             num5 = 0;
             num6 = 0;
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 index++;
             }
         }
         else if ((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x62) || (buf.b[index + 1] == 0x42))) && ((buf.b[index + 2] == 0x72) || (buf.b[index + 2] == 0x52))) && ((buf.b[index + 3] == 0x3e) || this.IS_DELIMITER(buf.b[index + 3])))
         {
             if (num5 > num6)
             {
                 num6 = num5;
             }
             num5 = 0;
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 index++;
             }
         }
         else if (((((buf.b[index] == 60) && ((buf.b[index + 1] == 0x63) || (buf.b[index + 1] == 0x43))) && ((buf.b[index + 2] == 0x6f) || (buf.b[index + 2] == 0x4f))) && (((buf.b[index + 3] == 0x6c) || (buf.b[index + 3] == 0x4c)) && ((buf.b[index + 4] == 0x67) || (buf.b[index + 4] == 0x47)))) && ((((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52)) && ((buf.b[index + 6] == 0x6f) || (buf.b[index + 6] == 0x4f))) && ((((buf.b[index + 7] == 0x75) || (buf.b[index + 7] == 0x55)) && ((buf.b[index + 8] == 0x70) || (buf.b[index + 8] == 80))) && (buf.b[index + 9] == 0x3e))))
         {
             flag7 = true;
         }
         else if (((((num23 < (this.MAX_COLUMNS - 1)) && (buf.b[index] == 60)) && ((buf.b[index + 1] == 0x63) || (buf.b[index + 1] == 0x43))) && ((buf.b[index + 2] == 0x6f) || (buf.b[index + 2] == 0x4f))) && (((buf.b[index + 3] == 0x6c) || (buf.b[index + 3] == 0x4c)) && ((buf.b[index + 4] == 0x20) && flag7)))
         {
             index += 3;
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 if (buf.b[index] == 60)
                 {
                     index--;
                     break;
                 }
                 if (((((buf.b[index] == 0x63) || (buf.b[index] == 0x43)) && ((buf.b[index + 1] == 0x65) || (buf.b[index + 1] == 0x45))) && (((buf.b[index + 2] == 110) || (buf.b[index + 2] == 0x4e)) && ((buf.b[index + 3] == 0x74) || (buf.b[index + 3] == 0x54)))) && (((buf.b[index + 4] == 0x65) || (buf.b[index + 4] == 0x45)) && ((buf.b[index + 5] == 0x72) || (buf.b[index + 5] == 0x52))))
                 {
                     tdAlignColgroup[num23++] = 0x63;
                 }
                 if (((((buf.b[index] == 0x6d) || (buf.b[index] == 0x4d)) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && (((buf.b[index + 2] == 100) || (buf.b[index + 2] == 0x44)) && ((buf.b[index + 3] == 100) || (buf.b[index + 3] == 0x44)))) && (((buf.b[index + 4] == 0x6c) || (buf.b[index + 4] == 0x4c)) && ((buf.b[index + 5] == 0x65) || (buf.b[index + 5] == 0x45))))
                 {
                     tdAlignColgroup[num23++] = 0x63;
                 }
                 if ((((buf.b[index] == 0x6c) || (buf.b[index] == 0x4c)) && ((buf.b[index + 1] == 0x65) || (buf.b[index + 1] == 0x45))) && (((buf.b[index + 2] == 0x66) || (buf.b[index + 2] == 70)) && ((buf.b[index + 3] == 0x74) || (buf.b[index + 3] == 0x54))))
                 {
                     tdAlignColgroup[num23++] = 0x6c;
                 }
                 if (((((buf.b[index] == 0x72) || (buf.b[index] == 0x52)) && ((buf.b[index + 1] == 0x69) || (buf.b[index + 1] == 0x49))) && (((buf.b[index + 2] == 0x67) || (buf.b[index + 2] == 0x47)) && ((buf.b[index + 3] == 0x68) || (buf.b[index + 3] == 0x48)))) && ((buf.b[index + 4] == 0x74) || (buf.b[index + 4] == 0x54)))
                 {
                     tdAlignColgroup[num23++] = 0x72;
                 }
                 if (((((buf.b[index] == 0x6a) || (buf.b[index] == 0x4a)) && ((buf.b[index + 1] == 0x75) || (buf.b[index + 1] == 0x55))) && (((buf.b[index + 2] == 0x73) || (buf.b[index + 2] == 0x53)) && ((buf.b[index + 3] == 0x74) || (buf.b[index + 3] == 0x54)))) && ((((buf.b[index + 4] == 0x69) || (buf.b[index + 4] == 0x49)) && ((buf.b[index + 5] == 0x66) || (buf.b[index + 5] == 70))) && ((buf.b[index + 6] == 0x79) || (buf.b[index + 6] == 0x59))))
                 {
                     tdAlignColgroup[num23++] = 0x6a;
                 }
                 index++;
             }
         }
         else if ((buf.b[index] == 60) || (buf.b[index - 1] == 60))
         {
             while ((buf.b[index] != 0x3e) && (index < max))
             {
                 index++;
             }
         }
         else if (buf.b[index] == 0x26)
         {
             index += this.special_symbols_rtf(buf, index, max, class2, false);
             num5++;
         }
         else if (this.IS_DELIMITER(buf.b[index]))
         {
             if (num5 > num6)
             {
                 num6 = num5;
             }
             num5 = 0;
         }
         else if ((buf.b[index] >= 0x20) && ((buf.b[index] <= 0x80) || !hieroglyph))
         {
             num5++;
         }
         index++;
     }
     num10 = 0;
     int num27 = 0;
     int num28 = 0;
     int num29 = 0;
     int num30 = 0;
     int num31 = 0;
     int num32 = 0;
     int num33 = 0;
     int num34 = 0;
     int num35 = 0;
     int num36 = 0;
     int num37 = 0;
     int num38 = 0;
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 1; num2 < (table_colspan[num, 0] + 1); num2++)
         {
             if (table_rowspan[num, num2] > 1)
             {
                 rowspan = table_rowspan[num, num2];
                 for (num17 = 1; (num17 < rowspan) && ((num + num17) < table_p.rows); num17++)
                 {
                     (numArray8 = table_colspan)[(int)(ptr = (IntPtr)(num + num17)), 0] = numArray8[(int)ptr, 0] + 1;
                     num18 = num2;
                     colspan = table_colspan[num, num2];
                     while (num18 < (table_colspan[num + num17, 0] + 1))
                     {
                         num10 = table_colspan[num + num17, num18];
                         table_colspan[num + num17, num18] = colspan;
                         colspan = num10;
                         num18++;
                     }
                 }
             }
         }
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_colspan[num, 0]] > 0)
         {
             num2 = numArray2[table_colspan[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_colspan[num, index] = table_colspan[num2, index];
             }
         }
         else
         {
             num16 = 0;
             for (num2 = 1; num2 < (table_p.cols + 1); num2++)
             {
                 num16 += table_colspan[num, num2];
                 table_colspan[num, num2] = num16;
             }
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 1; num2 < (table_colspan[num, 0] + 1); num2++)
         {
             if (table_rowspan[num, num2] > 1)
             {
                 rowspan = table_rowspan[num, num2];
                 table_map[num, num2] = this.CLVMGF;
                 for (num17 = 1; (num17 < rowspan) && ((num + num17) < table_p.rows); num17++)
                 {
                     table_rowspan[num + num17, 0] = table_colspan[num + num17, 0];
                     table_map[num + num17, 0] = table_colspan[num + num17, 0];
                     table_images[num + num17, 0] = table_colspan[num + num17, 0];
                     table_array[num + num17, 0] = table_colspan[num + num17, 0];
                     table_symbols[num + num17, 0] = table_colspan[num + num17, 0];
                     table_width[num + num17, 0] = table_colspan[num + num17, 0];
                     table_colbg[num + num17, 0] = table_colspan[num + num17, 0];
                     table_valign[num + num17, 0] = table_colspan[num + num17, 0];
                     if (flag5)
                     {
                         numArray7[num + num17, 0] = table_colspan[num + num17, 0];
                         num33 = numArray7[num, num2];
                     }
                     num16 = table_colspan[num, num2];
                     num18 = num2;
                     while (num18 < (table_colspan[num + num17, 0] + 1))
                     {
                         if (num16 == table_colspan[num + num17, num18])
                         {
                             break;
                         }
                         num18++;
                     }
                     colspan = table_colspan[num, num2];
                     num27 = table_array[num, num2];
                     num29 = table_symbols[num, num2];
                     num31 = table_images[num, num2];
                     num35 = table_colbg[num, num2];
                     num37 = table_valign[num, num2];
                     while (num18 < (table_colspan[num + num17, 0] + 1))
                     {
                         num28 = table_array[num + num17, num18];
                         table_array[num + num17, num18] = num27;
                         num27 = num28;
                         num30 = table_symbols[num + num17, num18];
                         table_symbols[num + num17, num18] = num29;
                         num29 = num30;
                         num32 = table_images[num + num17, num18];
                         table_images[num + num17, num18] = num31;
                         num31 = num32;
                         num36 = table_colbg[num + num17, num18];
                         table_colbg[num + num17, num18] = num35;
                         num35 = num36;
                         num38 = table_valign[num + num17, num18];
                         table_valign[num + num17, num18] = num37;
                         num37 = num38;
                         if (flag5)
                         {
                             num34 = numArray7[num + num17, num18];
                             numArray7[num + num17, num18] = num33;
                             num33 = num34;
                         }
                         num18++;
                     }
                 }
             }
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (table_array[num, 0] == 0)
         {
             table_array[num, 0] = 1;
             table_colspan[num, 0] = 1;
             table_rowspan[num, 0] = 1;
             table_symbols[num, 0] = 1;
             table_width[num, 0] = 1;
             table_images[num, 0] = 1;
             table_colbg[num, 0] = 1;
             table_valign[num, 0] = 1;
             table_map[num, 0] = 1;
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 1; num2 < (table_rowspan[num, 0] + 1); num2++)
         {
             if (table_rowspan[num, num2] > 1)
             {
                 rows = table_rowspan[num, num2];
                 if ((table_p.rows - rows) <= 0)
                 {
                     rows = table_p.rows;
                 }
                 if (table_p.rows != 1)
                 {
                     num16 = table_colspan[num, num2];
                     if (table_map[num, num2] != this.CLVMRG)
                     {
                         table_map[num, num2] = this.CLVMGF;
                     }
                     for (num17 = 1; (num17 < rows) && ((num + num17) < table_p.rows); num17++)
                     {
                         for (num18 = 1; num18 < (table_p.cols + 1); num18++)
                         {
                             if (num16 == table_colspan[num + num17, num18])
                             {
                                 table_map[num + num17, num18] = this.CLVMRG;
                             }
                         }
                     }
                 }
             }
         }
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
         numArray3[num] = 0;
         numArray4[num] = 0;
         numArray5[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         colspan = 0;
         for (num2 = 1; num2 < (table_array[num, 0] + 1); num2++)
         {
             if (table_array[num, num2] != 0)
             {
                 break;
             }
             colspan++;
         }
         if (table_array[num, 0] == colspan)
         {
             numArray3[table_array[num, 0]] = 1;
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 1; num2 < (table_p.cols + 1); num2++)
         {
             if (table_array[num, num2] == 0)
             {
                 table_width[num, num2] = 1;
             }
             table_rowspan[num, num2] = table_map[num, num2];
             table_map[num, num2] = 0;
         }
     }
     this.table_sort(table_array, table_p);
     this.table_sort(table_symbols, table_p);
     this.TableSpecifyCols(table_array, table_rowspan, table_colspan, table_p);
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_symbols[num, 0]] > 0)
         {
             num2 = numArray2[table_symbols[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_symbols[num, index] = table_symbols[num2, index];
             }
         }
         else
         {
             for (num2 = 1; num2 < (table_colspan[num, 0] + 1); num2++)
             {
                 num16 = table_colspan[num, num2];
                 num12 = table_symbols[num, num2];
                 num17 = 0;
                 num10 = 0;
                 while (num17 < table_p.rows)
                 {
                     for (num18 = 1; num18 < (table_colspan[num17, 0] + 1); num18++)
                     {
                         if (num16 == table_colspan[num17, num18])
                         {
                             num10++;
                             if (num12 <= table_symbols[num17, num18])
                             {
                                 num12 = table_symbols[num17, num18];
                             }
                         }
                     }
                     num17++;
                 }
                 if (num10 > 0)
                 {
                     for (num17 = num; num17 < table_p.rows; num17++)
                     {
                         for (num18 = 1; num18 < (table_colspan[num17, 0] + 1); num18++)
                         {
                             if ((num16 == table_colspan[num17, num18]) && (table_symbols[num17, num18] == 0))
                             {
                                 table_symbols[num17, num18] = num12;
                             }
                         }
                     }
                 }
             }
         }
     }
     this.table_check_width(table_array, table_symbols, table_images, numArray7, table_colspan, table_p, numArray3, numArray6, flag4);
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_map[num, 0]] > 0)
         {
             num2 = numArray2[table_map[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_map[num, index] = table_map[num2, index];
             }
         }
         else
         {
             index = 1;
             num5 = 0;
             while (index < (table_symbols[num, 0] + 1))
             {
                 num5 += table_symbols[num, index];
                 index++;
             }
             if (num5 > this.MAX_SYMBOLS_IN_COLUMN)
             {
                 num5 = this.MAX_SYMBOLS_IN_COLUMN;
             }
             num5 = this.TBLEN / this.TWIPS_PER_ONE_SYMBOL;
             for (index = 1; index < (table_symbols[num, 0] + 1); index++)
             {
                 if (num5 != 0)
                 {
                     if (table_symbols[num, index] == 1)
                     {
                         table_map[num, index] = (table_symbols[num, index] * TBLEN_MAX) / num5;
                     }
                     else if (table_symbols[num, index] == 0)
                     {
                         table_map[num, index] = 10;
                     }
                     else if ((table_symbols[num, index] >= 2) && (table_symbols[num, index] <= 3))
                     {
                         table_map[num, index] = (table_symbols[num, index] * TBLEN_MAX) / num5;
                     }
                     else if ((table_symbols[num, index] >= 4) && (table_symbols[num, index] <= 10))
                     {
                         table_map[num, index] = (table_symbols[num, index] * TBLEN_MAX) / num5;
                     }
                     else if ((table_symbols[num, index] >= 11) && (table_symbols[num, index] <= 0x19))
                     {
                         table_map[num, index] = (table_symbols[num, index] * TBLEN_MAX) / num5;
                     }
                     else if ((table_symbols[num, index] > 0x19) && (table_symbols[num, index] <= 50))
                     {
                         table_map[num, index] = (0x19 * TBLEN_MAX) / num5;
                     }
                     else if ((table_symbols[num, index] > 50) && (table_symbols[num, index] <= 100))
                     {
                         table_map[num, index] = (0x33 * TBLEN_MAX) / num5;
                     }
                     else if ((table_symbols[num, index] > 100) && (table_symbols[num, index] <= 0xc7))
                     {
                         table_map[num, index] = (70 * TBLEN_MAX) / num5;
                     }
                     else if (table_symbols[num, index] > 200)
                     {
                         table_map[num, index] = (this.MAX_SYMBOLS_IN_COLUMN * TBLEN_MAX) / num5;
                     }
                     if (table_map[num, index] > this.TBLEN)
                     {
                         table_map[num, index] = this.TBLEN;
                     }
                 }
             }
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 if (table_width[num, index] == 0)
                 {
                     if (table_map[num, index] < table_array[num, index])
                     {
                         table_map[num, index] = table_array[num, index];
                     }
                 }
                 else if (table_array[num, index] != 0)
                 {
                     table_map[num, index] = table_array[num, index];
                 }
             }
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 0; num2 < (table_p.cols + 1); num2++)
         {
             table_array[num, num2] = table_colspan[num, num2];
         }
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     if (flag)
     {
         for (num = 0; num < table_p.rows; num++)
         {
             if (numArray2[table_map[num, 0]] > 0)
             {
                 num2 = numArray2[table_map[num, 0]] - 1;
                 for (index = 1; index < (table_p.cols + 1); index++)
                 {
                     table_map[num, index] = table_map[num2, index];
                 }
             }
             else
             {
                 num10 = 0;
                 for (num11 = 1; num11 < (table_images[num, 0] + 1); num11++)
                 {
                     if (table_images[num, num11] > 0)
                     {
                         num10 = 1;
                         break;
                     }
                 }
                 if (num10 > 0)
                 {
                     for (num2 = 1; num2 < (table_images[num, 0] + 1); num2++)
                     {
                         if (table_map[num, num2] < table_images[num, num2])
                         {
                             table_map[num, num2] = table_images[num, num2];
                         }
                         if ((table_images[num, num2] > 0) && (table_images[num, num2] > table_map[num, num2]))
                         {
                             numArray5[num2] = 1;
                         }
                     }
                 }
                 if (num10 == 0)
                 {
                     num2 = 1;
                     num5 = 0;
                     num12 = 0;
                     while (num2 < (table_map[num, 0] + 1))
                     {
                         num5 += table_map[num, num2];
                         if (table_width[num, num2] == 1)
                         {
                             num12 += table_map[num, num2];
                         }
                         num2++;
                     }
                     num10 = 0;
                     if ((num12 < num5) && (num12 > 0))
                     {
                         if (TBLEN_MAX > (num5 - num12))
                         {
                             num19 = ((float)num12) / ((float)(TBLEN_MAX - (num5 - num12)));
                             num10 = 1;
                         }
                         else
                         {
                             num19 = ((float)num5) / ((float)TBLEN_MAX);
                         }
                     }
                     else
                     {
                         num19 = ((float)num5) / ((float)TBLEN_MAX);
                     }
                     for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                     {
                         if (num10 == 1)
                         {
                             if (table_width[num, num2] == 1)
                             {
                                 table_map[num, num2] = (int)(((float)table_map[num, num2]) / num19);
                             }
                         }
                         else
                         {
                             table_map[num, num2] = (int)(((float)table_map[num, num2]) / num19);
                         }
                     }
                 }
                 else
                 {
                     num5 = 0;
                     num9 = 0;
                     for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                     {
                         num5 += table_map[num, num2];
                         if (numArray5[num2] == 1)
                         {
                             num9 += table_map[num, num2];
                         }
                     }
                     if (num9 > TBLEN_MAX)
                     {
                         num9 = TBLEN_MAX - 100;
                     }
                     if (num5 != num9)
                     {
                         num19 = ((float)(num5 - num9)) / ((float)(TBLEN_MAX - num9));
                     }
                     else
                     {
                         num19 = ((float)num9) / ((float)TBLEN_MAX);
                     }
                     for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                     {
                         if ((numArray5[num2] != 1) || (num19 < 1f))
                         {
                             table_map[num, num2] = (int)(((float)table_map[num, num2]) / num19);
                         }
                     }
                     num2 = 1;
                     num5 = 0;
                     while (num2 < (table_map[num, 0] + 1))
                     {
                         num5 += table_map[num, num2];
                         num2++;
                     }
                     if ((num5 < (TBLEN_MAX - 100)) || (num5 > (TBLEN_MAX + 1)))
                     {
                         num19 = ((float)num5) / ((float)TBLEN_MAX);
                         for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                         {
                             table_map[num, num2] = (int)(((float)table_map[num, num2]) / num19);
                         }
                     }
                     numArray2[table_map[num, 0]] = num + 1;
                     for (num2 = 0; num2 < table_p.cols; num2++)
                     {
                         numArray5[num2] = 0;
                     }
                 }
             }
         }
     }
     else
     {
         for (num = 0; num < table_p.rows; num++)
         {
             if (numArray2[table_map[num, 0]] > 0)
             {
                 num2 = numArray2[table_map[num, 0]] - 1;
                 for (index = 1; index < (table_p.cols + 1); index++)
                 {
                     table_map[num, index] = table_map[num2, index];
                 }
             }
             else
             {
                 num2 = 1;
                 num5 = 0;
                 while (num2 < (table_map[num, 0] + 1))
                 {
                     num5 += table_map[num, num2];
                     num2++;
                 }
                 num19 = ((float)num5) / ((float)TBLEN_MAX);
                 for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                 {
                     table_map[num, num2] = (int)(((float)table_map[num, num2]) / num19);
                 }
                 numArray2[table_map[num, 0]] = num + 1;
             }
         }
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_map[num, 0]] > 0)
         {
             num2 = numArray2[table_map[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_map[num, index] = table_map[num2, index];
             }
         }
         else
         {
             num2 = table_map[num, 0];
             num5 = 0;
             while (num2 >= 1)
             {
                 colspan = table_map[num, num2];
                 table_map[num, num2] = TBLEN_MAX - num5;
                 num5 += colspan;
                 num2--;
             }
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         for (num2 = 1; num2 < (table_p.cols + 1); num2++)
         {
             table_colspan[num, num2] = 0;
             table_symbols[num, num2] = table_map[num, num2];
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         table_map[num, table_map[num, 0]] = TBLEN_MAX;
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_map[num, 0]] > 0)
         {
             num2 = numArray2[table_map[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_map[num, index] = table_map[num2, index];
             }
         }
         else
         {
             for (num2 = 1; num2 < (table_array[num, 0] + 1); num2++)
             {
                 num16 = table_array[num, num2];
                 if (((num16 != 1) || (table_map[num, 0] != 1)) && (((num2 != 1) || (num16 <= 1)) || ((table_width[num, num2] != 1) || (table_map[num, 0] != 1))))
                 {
                     num12 = table_map[num, num2];
                     flag2 = false;
                     if (table_width[num, num2] == 1)
                     {
                         flag2 = true;
                     }
                     num17 = 0;
                     num10 = 0;
                     while (num17 < table_p.rows)
                     {
                         for (num18 = 1; num18 < (table_array[num17, 0] + 1); num18++)
                         {
                             if ((num16 == table_array[num17, num18]) && ((num16 != 1) || (table_map[num17, 0] != 1)))
                             {
                                 num10++;
                                 if ((num12 <= table_map[num17, num18]) && (table_map[num17, num18] != TBLEN_MAX))
                                 {
                                     if ((numArray3[table_map[num17, 0]] == 0) || (table_width[num17, num18] == 0))
                                     {
                                         num12 = table_map[num17, num18];
                                     }
                                 }
                                 else if (num12 > table_map[num17, num18])
                                 {
                                     if (flag2 && (table_width[num17, num18] == 0))
                                     {
                                         num12 = table_map[num17, num18];
                                         flag2 = false;
                                     }
                                     else if (numArray4[num17 + 1] == 1)
                                     {
                                         num12 = table_map[num17, num18];
                                     }
                                 }
                             }
                         }
                         num17++;
                     }
                     if (num10 > 0)
                     {
                         for (num17 = num; num17 < table_p.rows; num17++)
                         {
                             for (num18 = 1; num18 < (table_array[num17, 0] + 1); num18++)
                             {
                                 if (num16 == table_array[num17, num18])
                                 {
                                     if (num10 > 1)
                                     {
                                         table_colspan[num17, num18] = 1;
                                     }
                                     table_map[num17, num18] = num12;
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     for (num = 0; num < this.MAX_COLUMNS; num++)
     {
         numArray2[num] = 0;
     }
     for (num = 0; num < table_p.rows; num++)
     {
         if (numArray2[table_map[num, 0]] > 0)
         {
             num2 = numArray2[table_map[num, 0]] - 1;
             for (index = 1; index < (table_p.cols + 1); index++)
             {
                 table_map[num, index] = table_map[num2, index];
             }
         }
         else
         {
             for (num2 = 1; num2 < table_map[num, 0]; num2++)
             {
                 numArray[0] = table_map[num, num2];
                 numArray[1] = table_map[num, num2 + 1];
                 if ((numArray[1] < numArray[0]) && ((num2 + 1) < table_map[num, 0]))
                 {
                     table_map[num, num2 + 1] = (table_map[num, num2] + table_map[num, num2 + 2]) / 2;
                 }
             }
         }
     }
     for (num = 0; num < table_p.rows; num++)
     {
         table_map[num, table_map[num, 0]] = TBLEN_MAX;
     }
     if ((this._preserveTableWidth == 1) && (table_p.table_width > 0))
     {
         num12 = TBLEN_MAX;
         if (table_p.percent_width == 0)
         {
             num12 = (table_p.table_width * TBLEN_MAX) / this.SCREEN_W_DEF;
         }
         else if (table_p.table_width < 100)
         {
             num12 = (table_p.table_width * TBLEN_MAX) / 100;
         }
         if ((num12 < (TBLEN_MAX - 500)) && (num12 > 0x3e8))
         {
             num19 = ((float)num12) / ((float)TBLEN_MAX);
             for (num = 0; num < table_p.rows; num++)
             {
                 for (num2 = 1; num2 < (table_map[num, 0] + 1); num2++)
                 {
                     table_map[num, num2] = (int)(table_map[num, num2] * num19);
                 }
             }
         }
     }
 }