Module:TreeChart/data
local SLD = '1px solid black'
 local DSH = '1px dashed black'
 local DOT = '1px dotted black'
 
 local data = {
 	['!'] = {
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['%'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	[&quot;'&quot;] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['('] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	[')'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['*'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['+'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	[','] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['-'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
 			},
 	['.'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['7'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	[':'] = {
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['A'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['C'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['D'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['F'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['G'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['H'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['J'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['L'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['M'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
 			},
 	['P'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
 			},
 	['Q'] = {
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['R'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['S'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['T3'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['T'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['V'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
 			},
 	['W'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['Y'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['Z'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['^'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['$'] = {
 		t = { { attr = { colspan = '2', rowspan = '2'}, style = { width = '2em', height = '2em' } } }
 			},
 	['`'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['a2'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['a'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['b2'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['b3'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['b'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['c'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['d'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['e'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['f'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['h'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['i'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['j'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
 			},
 	['k2'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['k3'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['k'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DOT, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['l2'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['l3'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['l'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['m2'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
 			},
 	['m'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DOT, width = '2em', height = '1em' } } }
 			},
 	['n2'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['n'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['o2'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = DSH, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['o'] = {
 		b = { { style = { width = '1em', height = '1em' } } },
 		t = { { attr = { rowspan = '2' }, style = { ['border-right'] = SLD, width = '1em', height = '2em' } },
 			{ style = { ['border-bottom'] = DOT, width = '1em', height = '1em' } } }
 			},
 	['p2'] = {
 		b = { { style = { ['border-right'] = DSH, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DSH, ['border-bottom'] = '1px dotted #000001', width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['p'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DOT, width = '1em', height = '1em' } },
 			{ attr = { rowspan = '2' }, style = { width = '1em', height = '2em' } } }
 			},
 	['q2'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = '1px dashed #000001', width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['q'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { style = { ['border-right'] = DOT, ['border-bottom'] = SLD, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = SLD, width = '1em', height = '1em' } } }
 			},
 	['r2'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
 			},
 	['r'] = {
 		b = { { style = { ['border-right'] = DOT, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
 			},
 	['t'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { style = { ['border-right'] = SLD, ['border-bottom'] = DSH, width = '1em', height = '1em' } },
 			{ style = { ['border-bottom'] = DSH, width = '1em', height = '1em' } } }
 			},
 	['v'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = SLD, width = '2em', height = '1em' } } }
 			},
 	['x'] = {},
 	['y'] = {
 		b = { { style = { ['border-right'] = SLD, width = '1em', height = '1em' } },
 			{ style = { width = '1em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
 			},
 	['~'] = {
 		b = { { attr = { colspan = '2' }, style = { width = '2em', height = '1em' } } },
 		t = { { attr = { colspan = '2' }, style = { ['border-bottom'] = DSH, width = '2em', height = '1em' } } }
 			}
 }
 
 local retval = {}
 
 for k,v in pairs(data) do
 	retval[k] = {}
 	for k2,v2 in pairs(v) do
 		local renderedCells = mw.html.create()
 		for k3,v3 in ipairs(v2) do
 			renderedCells:tag('td'):css(v3.style or {}):attr(v3.attr or {})
 		end
 		retval[k][k2] = tostring(renderedCells)
 	end
 end